Jump to content

ctytler

Members
  • Posts

    67
  • Joined

  • Last visited

Everything posted by ctytler

  1. Unfortunately I had tried looking into using custom fonts but it's not supported within the Streamdeck SDK right now. There are some nice F-18 UFC fonts that were created for Helios that would be nice to use also for the displays. The closest thing I found was on Elgato's Discord channel, someone requested on their #feature-request channel: But looks like no response ever came.
  2. Sure, I've tried to set things up to allow other collaborators to contribute if they like via Pull Requests in github. Look at the section "Build from source instructions" in the Readme. The plugin basically is written in two sections: The main plugin and UDP communication with DCS is done in C++. You'll need to install Visual Studio to build the Windows executable for this. The streamdeck settings windows are programmed in javascript and the plugin itself is a package that gets assembled with all the javascript and the compiled C++ executable that gets run on startup, and the javascript PropertyInspector as StreamDeck calls it is able to communicate back and forth with the C++ plugin. For the C++ side I've created a large set of unit tests that can be run to make sure nothing accidentally gets broken with changes. I'm not as familiar with javascript and so that could use some organization and also unit tests to protect against bugs I still need to do. For future capabilities I have some ideas I haven't gotten to yet, and have wanted to reorganize the C++ a bit to make it more scalable for more button types. But what I'd like to add is: - Separate Short/Long press actions are definitely doable if time between press/release is measured. Potential use cases: (small/large increment, increment/switch direction, uncover/press button, 2-way switch/hold for momentary as in some of the on/off/test switches in game). - I have Lua scripting included already to read the ID Lookup values, there could potentially be a Streamdeck button with a generic Lua textbox that would allow users to write custom logic per inputs. Although I think the use for this should be focused on button actions, whereas DCS ID monitoring logic is more capably handled in the export scripts as you've already done. - I think Streamdeck can handle more than two image states, but the button types need to have a fixed number of states defined. So making a button type for 3-way switches would be really nice that has a friendly interface for common DCS uses like 3-way toggle switch or 2-way toggle + momentary. This could also be a more generic button with something like 10 states where you could use as many as needed more in the line of your thinking with gauges. The difficulty here is Streamdeck only provides 2-states for the images upload in the setting with the nice display. The images uploaded would need some additional javascript to upload PNG images one by one, and I'm not sure a good approach right now to make the user interface capable but understandable by users. I think it would have to be handled by a custom web page interface like the ID Lookup, DCS Comms windows in order to make sense. - Another far-fetched idea that seems really hard would be image manipulation, allowing rotating images for things like a dial/lever. Maybe with something like OpenCV this could be done, but getting it working with the Streamdeck SDK seems tough.
  3. Wow, nosa great work! I watched the youtube video and at first couldn't figure out how you got the RPM display showing there :-)
  4. Hi I’ll update my Streamdeck firmware and check for issues with the plugin. Feel free to post issues on that Github page as they’re easier for me to track. It’s easy to lose things in these forum threads.
  5. Wow, fantastic! Thank you for contributing, I'll be sure to try these out.
  6. Yep, that's correct. You can test the connection with the "DCS Comms" button in the Streamdeck button settings while a mission in DCS is running.
  7. Hi pocketedition, The stream deck plugin is made according to the official SDK from Stream Deck, meaning there’s no modification done to the stream deck software. Adding and removing the plugin should be as simple as adding/removing an App to an iPhone. It just adds additional button options to choose from in the menu and all standard Stream Deck Key press buttons are still available. The complicated part is the copying over the export scripts, but hopefully if you follow along with the installation video on YouTube it hopefully won’t be too bad. The risk of messing anything up to the point of the game not working is pretty low.
  8. Also, if anyone would like to try out an A-10C profile for Stream Deck XL I've been using, here it is attached. Screenshots: https://imgur.com/a/UzCHYmZ Also, credit for the UFC button images goes to: https://github.com/Togg-streamdeck/dcs A-10C_streamDeckProfile.zip
  9. The versions are mostly just bug fixes and improvements I've made in response to issues users bring to my attention, I've listed the changes for each release here. For v1.0.3 these were: Fixes bug where switches that were not visible would not align with game after a mission restart Improved state transition of switches to remove flickering between states upon press Added some notes on LEV type items in documentation There are instructions on doing a Version Update on the Github readme, it's pretty simple and all the profiles you've made will persist with an uninstall/re-install. Hi sharkfin61, I have this mapped as well, can you check your values against these: DCS Command: Button ID: 3006 Device ID: 7 Send Value for 1st->2nd State: 1 Send Value for 2nd->1st State: -1 Image State Change: DCS ID: 380 Show 2nd State When: greater than (>) Value: 0 Yep, try ID's 2023 and 2024. Another thing that can be helpful when searching for display values is set them to a recognizable number or letter (i.e. not 0 or 1), then click the "DCS Comms" button in the Streamdeck and "Refresh" while DCS is running for a print out of most recent data values. If you scroll to the bottom you should generally see the IDs for radios/comms/displays based on their value. For example, look for something like "X16" to spot the TACAN display easily. That's how I usually go about finding them, as in the AV8BNA.lua they're called "lUFC_Chnl1" which isn't intuitive to search for. I've tried to avoid getting into the export script business since I'm afraid of all the maintenance involved there :noexpression:, but check out this person's reddit post relating to the JF-17
  10. I just released the v1.0.3 version the previous night (May 9th), so if you downloaded before then you have an older version. I need to do a better job of marking versions in the release, but you can find the version number if you click "More Actions..." at the bottom-right of the Stream Deck window and find "DCS Interface" plugin there. Prior versions have just been marked with "1.0", but I've updated the v1.0.3 download just now so it will show "1.0.3" in the Stream Deck, and will keep it up in the future.
  11. This was a bug in the plugin where switches in the 2nd state wouldn't reset to a restarted mission, but has now been fixed in the v1.0.3 Release I published on the GitHub page. If you still run into problems, feel free to post an issue on the GitHub project where I can more easily keep track of them, here: https://github.com/charlestytler/streamdeck-dcs-interface/issues The fuel autobalance confused me for a bit until I realized it has different button IDs for left/right, but the same DCS ID for switch state. Given that, I would probably use two buttons for left and right, you can have them both track the value of the switch, but one changes image state when <0, and one when >0. If you command it to left, then you have to move it back to center before you can command it with the other button to right; however in practice you'll probably just want to let the plane auto-center it anyways. For the emergency jettison if you want it on the same button I don't currently have a way to send commands to different button IDs for the two switch states otherwise that would work nicely -- I can look into that for a future update. I do allow the momentary button in multi-actions though. I tried this and it works pretty well (even puts the cover back on for you haha): Create a Stream Deck -> Multi action switch For Multi-Action 1 - Drag a DCS Interface-> Momentary Button and set it to command (Jettison All Button Cover, send value 1) For Multi-Action 2 - Drag 2 momentary buttons to the list; the first set it to command (Jettison All - push to jettison) and the second set it to command (Jettison All Cover, send value -1) Add images of the covered and unconvered button for the two states
  12. Hi for questions on the Export tool and .lua scripts for modules within it, I unfortunately only know as much as the instructions provide as I am only a user of the project, and not a developer of it. I also use Tacview and SRS so have an interest in resolving the conflicts, but would be starting from scratch in debugging there. I'll report anything I find (like the trivial re-ordering of includes I reported earlier in the thread), but don't plan to commit time to learning those code-bases in detail. That being said, I am trying to expand compatibility of the Streamdeck plugin to support different sources of Export scripts, so it can communicate also with Helios export scripts if users prefer those. Also, for those asking about adding F14, F16, and JF-17 lua scripts: Please see the wiki for DCS-ExportScript on creating additional modules here https://github.com/s-d-a/DCS-ExportScripts/wiki I also have put up a github repo the clickabledata extraction script I made for the modules that can be run on its own. So if it's helpful in creating the new module lua scripts you can generate a CSV file which can be opened in any spreadsheet software that contains all clickabledata (not including gauges, lamps) Github - DCS Clickabledata Extract One user on reddit reported success for simple creation of one for the JF-17 on reddit here:
  13. I actually ran into the same issue in the past with Helios and Ikarus. I just did some testing with them now and for some reason if DCS-ExportScript is included after the Helios include, the Helios doesn't work, but the other way around worked for me. My Export.lua that works looks like: I was able to get pretty repeatable results switching the order back and forth. You just need to quit and start a mission after modifying the Export.lua, shouldn't need a full restart of DCS if you want to try it. Does that work for you?
  14. Thanks. I did look at DCS-BIOS when trying things out, however it seemed geared towards Serial communication with external hardware, such as Arduino boards. The documented API as well seems focused on providing a library of function calls that, while well-documented and understandable, also appeared more suited for a piece of hardware with buttons that have clearly defined functionality. I'm saying "seemed" and "appeared" because that's as far as I got in consideration before looking at the other options. For good measure, I tried installing the DCS-BIOS hub just now, but got to the point where it wants to connect to a COM port to do anything, and I'm not interested in making a virtual COM bus to communicate with it. Some of this may be misunderstanding some of the capability, but that's my perspective as someone who hasn't used DCS-BIOS before. There is also a DCSFlightpanels/dcs-bios fork I came across that has Lua export scripts, but doesn't seem to do anything any more advanced than the other options. The primary examples I had tried working with DCS externally were Ikarus and Helios which provide recreated gauges and virtual recreation of buttons and switches. These were the main examples of user interface I had in mind while creating the Streamdeck interface. The Helios software had a nice GUI, but the Export scripts were all a bit spread out and individually created. Ikarus used an already partitioned Github project, DCS-ExportScript, as it's DCS communication and it had a good collection of scripts for most aircraft defined, including interpretation of strings for module text displays. It also had a simple, but effective, API where it just publishes and receives everything in a {key:value} format over UDP ports. This seemed ideal to communicate with as another program running on the same machine. Both Ikarus and Helios use the same format for their message payloads actually, so I think I can add an option to be able to support both methods. I've also tried to keep the module specifics or things that can get out of date external to the Streamdeck plugin, so at the core everything is set by ID values and the user can edit them if they wish. The way Streamdeck packages its plugins it's not easy to include a set of database files that can be modified (at least not in a way straight-forward for users to edit). I do have ID Lookup done within the program for modules, but I do this by reading directly from the installed module's clickabledata.lua file so it should hopefully be stable with any changed values in updates. For the indicators and lamps, I just rely on users looking them up in their preferred export lua scripts, as I couldn't find a reliable way to extract them from a DCS World installation. However I found, in my use at least, that for most of the buttons I was creating referencing the clickabledata table was sufficient, with occasionally having to reference the export lua.
  15. New StreamDeck Plugin Hi, since users interested in StreamDeck may already be subscribed to this thread, I wanted to share a new bi-directional StreamDeck plugin I created for DCS. I started a new thread with details here: https://forums.eagle.ru/showthread.php?t=269642 It is currently built to communicate with SDA's DCS-ExportScript (the backend for Ikarus). Capt Zeen, I was also just testing it with your Helios export scripts yesterday, and with some minor modifications to how I initialize the UDP connections it should be simple to enable compatibility with those as well. (The export scripts would still have to add a second port to be used at the same time as Helios).
  16. Hi I wanted to share a new StreamDeck plugin I've created for DCS https://github.com/charlestytler/streamdeck-dcs-interface DCS Interface is a plugin that allows you to create buttons and interfaces that update with DCS events. It is currently set up to interact with S-D-A's DCS-ExportScript as the backend communication with DCS. There are three settings for each Streamdeck button you create: DCS Command - Specify which button/switch you want to activate in game (allows setting of any clickable object in a cockpit). Supports push-button, switch, and increment (dials, levers, etc.) input types. Image Change Settings - Specify a function within the DCS simulation to monitor and change the display of the Streamdeck image conditionally. Examples: Lamps for Warnings/Modes, Switch states Title Text Change Settings - Specify a function in the DCS simulation which will be monitored and its text is displayed as the Streamdeck button Title. Examples: UFC text displays, scratchpads, radio displays
  17. Hi McMicha, I really like the setup for Ikarus and DCS-ExportScript you and others have put together. I'm developing a plugin for the Elgato Stream Deck hardware where I have modeled the button configuration to be similar to Ikarus, and I've been testing it out with DCS-ExportScript as the lua backend. I wanted to reach out to you with a couple questions: 1. Would you be ok with me sharing my project publicly with a link to your DCS-ExportScript github page for the export configuration (similar to how is done with Ikarus)? 2. Right now I can use my plugin in combination with Ikarus if I use one of the DAC export ports, however the existing Glass cockpit exports per module ("ExportScript.ProcessIkarusDCSConfigLowImportance") are better suited to my use. Would you be open to supporting configurations with multiple Glass Cockpit Ikarus ports in DCS-ExportScript as is already done with the D.A.C. export (i.e. Config.DAC[1], Config.DAC[2], etc.)? Thanks for all the work you've done in these projects. If you'd like to see what I'm working on it's hosted here on github.
×
×
  • Create New...