New StreamDeck Plugin - ED Forums
 


Notices

Reply
 
Thread Tools Display Modes
Old 04-14-2020, 02:27 AM   #1
ctytler
Junior Member
 
Join Date: Mar 2020
Location: USA
Posts: 18
Default New StreamDeck Plugin

Hi I wanted to share a new StreamDeck plugin I've created for DCS

https://github.com/charlestytler/str...-dcs-interface

Link to instructional videos for use


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
ctytler is offline   Reply With Quote
Old 04-14-2020, 08:01 AM   #2
DERacing
Member
 
DERacing's Avatar
 
Join Date: Apr 2018
Location: Ohio, USA
Posts: 230
Default

WOW!!!! Thank you for this!


I have 2 SD's, 1 mini and just opened the box on a new XL yesterday!

I have some work to do. Completing a new build system now and this is on the list.

Thanks again!
__________________
Intel i7 9700k, 64GB DDR4, Gigabyte Z390 Master, RTX 2080 Ti 11gb, 500GB Sabrent Rocket (System) 1TB XPG Gammix S11 Pro M.2 (DCS), Windows 10 64, Samsung 55" 4K UHD TV, Samsung Odyssey Plus

DCS OB 2.5.6, F-14B Tomcat, F-18C Hornet, F-16C Viper, A-10C Warthog, F-5 Tiger II, AV-8B Harrier, P-51D Mustang, FC3, Super Carrier

Thrustmaster Warthog Hotas, (3) Cougar MFD's, Logitech Pro Rudder Pedals, (2) Stream Decks, (1) Stream Deck XL, (1) Stream Deck Mini, Misc Button Boxes
DERacing is offline   Reply With Quote
Old 04-14-2020, 10:45 AM   #3
Koriel
Member
 
Koriel's Avatar
 
Join Date: Nov 2004
Location: NL
Posts: 449
Default

++++
Koriel is offline   Reply With Quote
Old 04-14-2020, 07:09 PM   #4
flyelmo
Junior Member
 
flyelmo's Avatar
 
Join Date: Mar 2014
Location: Germany
Posts: 37
Default

Thanks for this brilliant plugin, I were looking for this powerful functionality. AAA+++ thank you

Sent from my CLT-L29 using Tapatalk
__________________
ASUS Maximus XI CODE Z390 | I9 9900K (5GHz) | Alphacool Eissturm Hurricane | G-Skill TridentZ 32GB 4000MHz | ASUS Strix 1080Ti OC | Creative AE-7 | Samsung 970 EVO PLUS 2TB |
Oculus Rift-S | Monitor ASUS ROG Swift PG43UQ | Track IR 5 | VPC MongoosT-50CM Base/CM2 Grip & VPC MongoosT-50CM Thottle | MFG Crosswinds | Stream Deck XL | Buddy-Fox UFC | Thustmaster MFDs | Windows 10
flyelmo is offline   Reply With Quote
Old 04-14-2020, 07:28 PM   #5
BaD CrC
Senior Member
 
BaD CrC's Avatar
 
Join Date: Dec 2008
Location: New Jersey, USA
Posts: 2,766
Default

That's a really great plugin you made here ctytler. Quite powerful. Any technical reason why you didn't go the streamline way of DCS BIOS and use another export script?
__________________
BaD CrC is offline   Reply With Quote
Old 04-14-2020, 10:17 PM   #6
ctytler
Junior Member
 
Join Date: Mar 2020
Location: USA
Posts: 18
Default

Quote:
Originally Posted by BaD CrC View Post
That's a really great plugin you made here ctytler. Quite powerful. Any technical reason why you didn't go the streamline way of DCS BIOS and use another export script?
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.
ctytler is offline   Reply With Quote
Old 04-14-2020, 10:27 PM   #7
BaD CrC
Senior Member
 
BaD CrC's Avatar
 
Join Date: Dec 2008
Location: New Jersey, USA
Posts: 2,766
Default

Thanks for this detailed explanation!

I installed your plugin and the export script. Modified the port in config file to the Streamdeck plugin default one and added the line in my scripts/export.lua.
I started to add some momentary switches in my new SD profile. The interface of your plugin is awesome and I REALLY appreciate that you took some time to make video tutorials!! I watched them all.

Current issue I have is that the moment I add the ExportScript.lua line in my export.lua, Helios just stop working.
Is that a no go to have Helios running along with ExportScript?

Thanks.
__________________
BaD CrC is offline   Reply With Quote
Old 04-15-2020, 01:07 AM   #8
ctytler
Junior Member
 
Join Date: Mar 2020
Location: USA
Posts: 18
Default

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:
Quote:
-- load the DCS ExportScript for DAC and Ikarus
dofile(lfs.writedir()..[[Scripts\DCS-ExportScript\ExportScript.lua]])

local lfs=require('lfs');
dofile(lfs.writedir()..'Scripts\\Helios\\HeliosExport.lua')
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?
ctytler is offline   Reply With Quote
Old 04-15-2020, 08:43 PM   #9
BaD CrC
Senior Member
 
BaD CrC's Avatar
 
Join Date: Dec 2008
Location: New Jersey, USA
Posts: 2,766
Default

Yes. That did it. Thanks.

This export.lua file is becoming a headache with all hose scripts fighting for the top position.
Now back to SD programming!
__________________
BaD CrC is offline   Reply With Quote
Old 04-15-2020, 11:32 PM   #10
rem27
Junior Member
 
Join Date: Jan 2015
Location: Switzerland land of chocolat
Posts: 62
Default

Hi Ctytler. I installed your plugin for StreamDeck and I watch all your tutorial.
What a amazing job you did, I really enjoy your plugin.
Thank you very much for your great effort
Now Elgado have to make us the possibility to have a three stage icon
Best regards
Rem27
__________________
Intel(R) Core(TM) i7-7700K @4,20GHz - 32 Go RAM - GeForce GTX 1070 Ti - Windows Pro 64 bit - Stream Deck - HOTAS Warthog
rem27 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT. The time now is 10:25 AM. vBulletin Skin by ForumMonkeys. Powered by vBulletin®.
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.