Jump to content

New StreamDeck Plugin


Recommended Posts

2 hours ago, Bailey said:

Yahoo! Would you like to share how?

Sure, but it doesn't work in multiplayer on most servers. The server option "Allow Sensor Export" must be enabled for it to work, and the default is off, so I haven't found a server with it enabled yet.

The data seems to come from the "game engine" data rather than the "aircraft" data which it normally does. I don't know a better way to describe it.

The data from line 1056 onwards also treats all the fuel as one tank, so I couldn't separate internal and external tanks. But it does add external tanks successfully to the fuel total.
 

So I inserted the following into line 1069

local lendurance = (lEngineFuelInternal *1440) / lFuelConsumptionTotal

and the following at line 1113

ExportScript.Tools.SendData(8020, format_int(round(lEngineFuelTotal *3170, -1))) -- Tot fuel
ExportScript.Tools.SendData(8030, formatTime(lendurance)) -- Endurance hours


 

 


Edited by jonsky7
Link to comment
Share on other sites

RADAR mode control not working properly in A4E.

I have the most recent A4E mod in the saved games/.../aircraft folder and also a copy of the mod (minus the entry.lua file) in the proper DCS open beta folder.

I created a rotary in stream deck and assigned it to the radar mode switch

Button ID 3063, Device ID 10, DCS ID 120, Increment 0.1, increment range 0.0 to 0.4

 

Pushing the streamdeck button changes the position of the switch in the cockpit but the radar does not turn on.

For example

Instant action ->: ground attack bomb truckin mission-> RDR already in standby->take off->RDR PLAN

Detail, Gain,Brillianceall turned clockwise max

RDR to SRCH or A/G

No scan line. Nothing green at all.

 

If I click the control in the cockpit, the radar works.

 

Help? Can anyone reproduce this? or is it problem with my machine.


Edited by skypickle

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

1 hour ago, skypickle said:

RADAR mode control not working properly in A4E.

I have the most recent A4E mod in the saved games/.../aircraft folder and also a copy of the mod (minus the entry.lua file) in the proper DCS open beta folder.

I created a rotary in stream deck and assigned it to the radar mode switch

Button ID 3063, Device ID 10, DCS ID 120, Increment 0.1, increment range 0.0 to 0.4

 

Pushing the streamdeck button changes the position of the switch in the cockpit but the radar does not turn on.

For example

Instant action ->: ground attack bomb truckin mission-> RDR already in standby->take off->RDR PLAN

Detail, Gain,Brillianceall turned clockwise max

RDR to SRCH or A/G

No scan line. Nothing green at all.

 

If I click the control in the cockpit, the radar works.

 

Help? Can anyone reproduce this? or is it problem with my machine.

 

I've run into the same issue with that and a couple other controls. Don't know why.

Link to comment
Share on other sites

On 7/28/2022 at 9:29 PM, jonsky7 said:

Sure, but it doesn't work in multiplayer on most servers. The server option "Allow Sensor Export" must be enabled for it to work, and the default is off, so I haven't found a server with it enabled yet.

The data seems to come from the "game engine" data rather than the "aircraft" data which it normally does. I don't know a better way to describe it.

The data from line 1056 onwards also treats all the fuel as one tank, so I couldn't separate internal and external tanks. But it does add external tanks successfully to the fuel total.
 

So I inserted the following into line 1069

local lendurance = (lEngineFuelInternal *1440) / lFuelConsumptionTotal

and the following at line 1113

ExportScript.Tools.SendData(8020, format_int(round(lEngineFuelTotal *3170, -1))) -- Tot fuel
ExportScript.Tools.SendData(8030, formatTime(lendurance)) -- Endurance hours


 

 

 

Awesome. Thanks for sharing. 

9 hours ago, skypickle said:

RADAR mode control not working properly in A4E.

I have the most recent A4E mod in the saved games/.../aircraft folder and also a copy of the mod (minus the entry.lua file) in the proper DCS open beta folder.

I created a rotary in stream deck and assigned it to the radar mode switch

Button ID 3063, Device ID 10, DCS ID 120, Increment 0.1, increment range 0.0 to 0.4

 

Pushing the streamdeck button changes the position of the switch in the cockpit but the radar does not turn on.

For example

Instant action ->: ground attack bomb truckin mission-> RDR already in standby->take off->RDR PLAN

Detail, Gain,Brillianceall turned clockwise max

RDR to SRCH or A/G

No scan line. Nothing green at all.

 

If I click the control in the cockpit, the radar works.

 

Help? Can anyone reproduce this? or is it problem with my machine.

 

Sounds like an issue similar to the battery switch of the UH-60. The control activation works only for clicks and keybinds because the logic is in tge FM (flight model) part of the mod. 

Link to comment
Share on other sites

@Bailey thank you for the reply but I don’t understand the difference. If a control is identified in the clickable exports, does that not mean it is a control that is accessible by the streamdeck plugin? Is this a question I should post to ctytler’s GitHub?

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

24 minutes ago, skypickle said:

@Bailey thank you for the reply but I don’t understand the difference. If a control is identified in the clickable exports, does that not mean it is a control that is accessible by the streamdeck plugin? Is this a question I should post to ctytler’s GitHub?

The control is, but the reaction isn’t. 

Link to comment
Share on other sites

I'm going a bit crazy here but my labels are flashing on my buttons in the tomcat for ICS and fuel Qty.

I've tried copying my Refuel Prob which doesn't blink, but for life of me when I put in the DCS ID 2044 (ICS) or 1076 (Fuel Qty).  They just blink

 

Any tips?  Thanks

Link to comment
Share on other sites

13 minutes ago, hasole said:

I'm going a bit crazy here but my labels are flashing on my buttons in the tomcat for ICS and fuel Qty.

I've tried copying my Refuel Prob which doesn't blink, but for life of me when I put in the DCS ID 2044 (ICS) or 1076 (Fuel Qty).  They just blink

 

Any tips?  Thanks

There's likely duplicate export IDs. Remove the duplicates. 

Link to comment
Share on other sites

12 minutes ago, Bailey said:

There's likely duplicate export IDs. Remove the duplicates. 

Legend.  Just -- these 2

[1076]  =  "%.1f",   --      FUELSYSTEM_Fuel_Qty_Sel

[2044]  =  "%.1f",   --      RADIO_ICS_Func_Pilot

Link to comment
Share on other sites

15 minutes ago, hasole said:

Legend.  Just -- these 2

[1076]  =  "%.1f",   --      FUELSYSTEM_Fuel_Qty_Sel

[2044]  =  "%.1f",   --      RADIO_ICS_Func_Pilot

Haha, ty.

You can remove them. No reason to keep the duplicates in the file. 


Edited by Bailey
  • Like 1
Link to comment
Share on other sites

On 7/29/2022 at 2:01 PM, skypickle said:

RADAR mode control not working properly in A4E.

I have the most recent A4E mod in the saved games/.../aircraft folder and also a copy of the mod (minus the entry.lua file) in the proper DCS open beta folder.

I created a rotary in stream deck and assigned it to the radar mode switch

Button ID 3063, Device ID 10, DCS ID 120, Increment 0.1, increment range 0.0 to 0.4

 

Pushing the streamdeck button changes the position of the switch in the cockpit but the radar does not turn on.

For example

Instant action ->: ground attack bomb truckin mission-> RDR already in standby->take off->RDR PLAN

Detail, Gain,Brillianceall turned clockwise max

RDR to SRCH or A/G

No scan line. Nothing green at all.

 

If I click the control in the cockpit, the radar works.

 

Help? Can anyone reproduce this? or is it problem with my machine.

 

Please attach file i try it for you, i have a very little panle working for the A4 🙂

Link to comment
Share on other sites

Has anyone successfully gotten this to work with the su-33 in flaming cliffs?

I cannot get clickable data info on the Su-33 which is part of the Flaming Cliffs package. This aircraft exists in this directory:

C:\Eagle Dynamics\DCS World OpenBeta\Mods\aircraft\Flaming Cliffs

Also I have installed a free mod named the SU30

https://drive.google.com/file/d/1AxoQEtcM4Q8rnkRSLHz-TEIYAJQr_m6A/view

https://www.youtube.com/watch?v=1PEMRtJtBH8

It also generates no csv file. To be certain that the script can look in the 'usual place', I placed a copy of the mod into two locations:
C:\Users\Stefan\Saved Games\DCS.openbeta\Mods\aircraft
and
C:\Eagle Dynamics\DCS World OpenBeta\Mods\aircraft

 

i don’t understand why the A4E mod is compatible but the su30 mod is not

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

On 8/12/2022 at 8:26 AM, skypickle said:

Has anyone successfully gotten this to work with the su-33 in flaming cliffs?

I cannot get clickable data info on the Su-33 which is part of the Flaming Cliffs package. This aircraft exists in this directory:

C:\Eagle Dynamics\DCS World OpenBeta\Mods\aircraft\Flaming Cliffs

Also I have installed a free mod named the SU30

https://drive.google.com/file/d/1AxoQEtcM4Q8rnkRSLHz-TEIYAJQr_m6A/view

https://www.youtube.com/watch?v=1PEMRtJtBH8

It also generates no csv file. To be certain that the script can look in the 'usual place', I placed a copy of the mod into two locations:
C:\Users\Stefan\Saved Games\DCS.openbeta\Mods\aircraft
and
C:\Eagle Dynamics\DCS World OpenBeta\Mods\aircraft

 

i don’t understand why the A4E mod is compatible but the su30 mod is not

Hi there. The Su33 is not clickable. This is why you wont see entries in DCS Module Clickable Data in DCS-Interface.

Looking at the Su30 code, it is not made in a way that DCS-Interface will recognize. Someone will have to find out the stuff by hand, similar to how people have done for the Mirage F1.

I have made the Su30 Luas for you and others.
https://github.com/asherao/DCS-ExportScripts/tree/master/Scripts/DCS-ExportScript/ExportsModules

You can find the raw clickable data here: C:\Users\...\Saved Games\DCS\mods\aircraft\Su-30MK_SFM v2.01B\Cockpit\Scripts\clickabledata.lua

The method to assign them as buttons is similar to the Mirage F1. There is a guide for that here: https://github.com/asherao/DCS-ExportScripts/wiki/Mirage-F1


Edited by Bailey
Link to comment
Share on other sites

Thank you Bailey for your attention and your reply.

 

Regarding the Su33, although the cockpit is not clickable, there is a su33.lua file in DCS exports.

so how do I find the button IDs to assign in the streamdeck?

 

Regarding the Su30 mods, I added the lua files to the DCS exports directory where all the other lua files for my planes reside. I have the streamdeck working for the regular planes as well as the mods like the AE-4 and the UH-60.

The clickabledata.lua for the SU30 has this line:

elements["BATTERY1"] = {class = {class_type.TUMB,class_type.TUMB}, hint  = _("Battery 1"), device = devices.ELECTRIC_SYSTEM, action = {device_commands.Button_127, device_commands.Button_127}, arg = {3127,3127}, arg_value = {0,1}, arg_lim = {{0,1},{0,1}},updatable = true}

I followed the F1 Mirage example you linked me and from the clickabledata.lua above, I see that the button ID is 3127. To get the device ID I went to the devices.lus file which has this:

local count = 0
local function counter()
    count = count + 1
    return count
end

aircraft = ""
if get_aircraft_type ~= nil then
    aircraft = get_aircraft_type()
end

FLANKER_Cfg = FLANKERS[aircraft]

MFDOffsets = {}
MFDOffsets = {3214, 3245, 3276, 3307, 3338, 3369, 3400}
 
-------DEVICE ID----------
devices = {}
devices["ELECTRIC_SYSTEM"]            = counter()
devices["ENGINE"]                     = counter()
.
.
.
.

From the above code, I guess that the electrical system has device ID = 1.

So I plugged these values into a streamdeck button but nothing happens in the cockpit.

 

I also tried to modify the default.lua file so that bindings would appear in the controls tab.
I added these lines to the default.lua

 

{down = device_systems.Batt1OnOff,        value_down = 1 , name = _('Battary 1 ON'),                        category = _('Systems')},
{down = device_systems.Batt1OnOff,        value_down = 0 , name = _('Battary 1 OFF'),                        category = _('Systems')},

Although bindings appear in the controls tab, thebuttons on my box assigned to these actions do nothing in the cockpit.

 

Any insight you have on how to proceed would be helpful.

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

1 hour ago, skypickle said:

Thank you Bailey for your attention and your reply.

 

Regarding the Su33, although the cockpit is not clickable, there is a su33.lua file in DCS exports.

so how do I find the button IDs to assign in the streamdeck?

 

Regarding the Su30 mods, I added the lua files to the DCS exports directory where all the other lua files for my planes reside. I have the streamdeck working for the regular planes as well as the mods like the AE-4 and the UH-60.

The clickabledata.lua for the SU30 has this line:

elements["BATTERY1"] = {class = {class_type.TUMB,class_type.TUMB}, hint  = _("Battery 1"), device = devices.ELECTRIC_SYSTEM, action = {device_commands.Button_127, device_commands.Button_127}, arg = {3127,3127}, arg_value = {0,1}, arg_lim = {{0,1},{0,1}},updatable = true}

I followed the F1 Mirage example you linked me and from the clickabledata.lua above, I see that the button ID is 3127. To get the device ID I went to the devices.lus file which has this:

local count = 0
local function counter()
    count = count + 1
    return count
end

aircraft = ""
if get_aircraft_type ~= nil then
    aircraft = get_aircraft_type()
end

FLANKER_Cfg = FLANKERS[aircraft]

MFDOffsets = {}
MFDOffsets = {3214, 3245, 3276, 3307, 3338, 3369, 3400}
 
-------DEVICE ID----------
devices = {}
devices["ELECTRIC_SYSTEM"]            = counter()
devices["ENGINE"]                     = counter()
.
.
.
.

From the above code, I guess that the electrical system has device ID = 1.

So I plugged these values into a streamdeck button but nothing happens in the cockpit.

 

I also tried to modify the default.lua file so that bindings would appear in the controls tab.
I added these lines to the default.lua

 

{down = device_systems.Batt1OnOff,        value_down = 1 , name = _('Battary 1 ON'),                        category = _('Systems')},
{down = device_systems.Batt1OnOff,        value_down = 0 , name = _('Battary 1 OFF'),                        category = _('Systems')},

Although bindings appear in the controls tab, thebuttons on my box assigned to these actions do nothing in the cockpit.

 

Any insight you have on how to proceed would be helpful.

DCS-Interface can be thought of as 2 different halves. The first half is DCS-Interface listening to dcs. This is how it gets information from the sim and displays it on your streamdeck. The second half is the communication from DCS-Interface to DCS. This is how buttons are manipulated. Because they are two halves, one can be working perfectly while the other isn't working at all, depending on your network settings, lua files, etc. 

The Su33 does not have a clickables file, so it cannot interact with the second half of DCS-Interface, the buttons manipulation half. As you have noticed, there is a Su33.lua file, which is the other half, which works.

For the Su30, this is working for me. Your assumptions were correct. It manipulates the battery switch. If you are having trouble, make sure your network settings are set correctly. You can try other known working aircraft (not mods) to make sure.

image.png

 

For the keybinds:
Change Batt1OnOff to Button_127 and you will get some progress.


Edited by Bailey
Link to comment
Share on other sites

16 hours ago, Bailey said:

DCS-Interface can be thought of as 2 different halves. The first half is DCS-Interface listening to dcs. This is how it gets information from the sim and displays it on your streamdeck. The second half is the communication from DCS-Interface to DCS. This is how buttons are manipulated. Because they are two halves, one can be working perfectly while the other isn't working at all, depending on your network settings, lua files, etc. 

The Su33 does not have a clickables file, so it cannot interact with the second half of DCS-Interface, the buttons manipulation half. As you have noticed, there is a Su33.lua file, which is the other half, which works.

For the Su30, this is working for me. Your assumptions were correct. It manipulates the battery switch. If you are having trouble, make sure your network settings are set correctly. You can try other known working aircraft (not mods) to make sure.

image.png

 

For the keybinds:
Change Batt1OnOff to Button_127 and you will get some progress.

 

Interestingly, I can create a button in the stream deck with those settings you pictured and it works in the aircraft without any modification to the default.lua file.

I still cannot get the ID lookup button to populate even though I have a copy of the Su-30 mod in the Eagle dynamics /mod/aircraft folder with the entry.lua file removed. Does yours populate??

 

 

I also am trying to get bindable buttons to work in the controls tab.

I tried adding these lines

 

  {down = 127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 1, name = _('Batt1 On'), category = _('Special')},

{down = 127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 0, name = _('Batt1 Off'), category = _('Special')},

or these lines in the default.lua file at both locations (saved games su-30 mod  andeagle dynamics su30 mod)


  {down = 3127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 1, name = _('Batt1 On'), category = _('Special')},

{down = 3127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 0, name = _('Batt1 Off'), category = _('Special')},

And although bindable controls appear in the controls dialog, pushing the assigned buttons on the button box while sitting in the cockpit does nothing. The streamdeck rotary tho works.


Edited by skypickle
added details

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

7 hours ago, skypickle said:

Interestingly, I can create a button in the stream deck with those settings you pictured and it works in the aircraft without any modification to the default.lua file.

I still cannot get the ID lookup button to populate even though I have a copy of the Su-30 mod in the Eagle dynamics /mod/aircraft folder with the entry.lua file removed. Does yours populate??

 

 

I also am trying to get bindable buttons to work in the controls tab.

I tried adding these lines

 

  {down = 127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 1, name = _('Batt1 On'), category = _('Special')},

{down = 127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 0, name = _('Batt1 Off'), category = _('Special')},

or these lines in the default.lua file at both locations (saved games su-30 mod  andeagle dynamics su30 mod)


  {down = 3127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 1, name = _('Batt1 On'), category = _('Special')},

{down = 3127, cockpit_device_id = devices.ELECTRIC_SYSTEM, value_down = 0, name = _('Batt1 Off'), category = _('Special')},

And although bindable controls appear in the controls dialog, pushing the assigned buttons on the button box while sitting in the cockpit does nothing. The streamdeck rotary tho works.

 

> I still cannot get the ID lookup button to populate even though I have a copy of the Su-30 mod in the Eagle dynamics /mod/aircraft folder with the entry.lua file removed. Does yours populate??

Nope. It is a DCS-Interface programing limitation.

 

> I also am trying to get bindable buttons to work in the controls tab.

Try

{down = device_commands.Button_127, value_down = 1 , name = _('Battary 1 ON'),category = _('Systems')},

 

 

Link to comment
Share on other sites

@Bailey That didnt work either. I contacted the dev and he said "you can not just add those lines to make it work, need to add code to electricalsystem to run action when key pressed".

That's beyond me so I guess the streamdeck is the only way I can get more physical buttons.

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

54 minutes ago, skypickle said:

@Bailey That didnt work either. I contacted the dev and he said "you can not just add those lines to make it work, need to add code to electricalsystem to run action when key pressed".

That's beyond me so I guess the streamdeck is the only way I can get more physical buttons.

Ah. I misunderstood. When you said not working I thought you meant the switch is not moving. My bad. Very well. It’s a common issue with some community mods. Thanks for the heads up and correction. 


Edited by Bailey
Link to comment
Share on other sites

  • 2 weeks later...

Is there a way to implement a three way switch? Currently I am using a rotary with increment value of 1 and min,max values= -1,1

To get this to work however I need to enable cycling.

To date, I have also used two single switches, 1 switch with values of 0,1 and the other with values of -1,0.

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

4 hours ago, skypickle said:

Is there a way to implement a three way switch? Currently I am using a rotary with increment value of 1 and min,max values= -1,1

To get this to work however I need to enable cycling.

To date, I have also used two single switches, 1 switch with values of 0,1 and the other with values of -1,0.

The solution is most likely using an increment of 0.5. If you need more assistance I'd need more info such as, specifically, which switch on which module.

Link to comment
Share on other sites

After thinking about this, I realize there is no solution. For example, if the switch is in the middle position, then how could a button press on the stream deck indicate which direction the switch will move?

 

even if I use a switch/rotary with cycling, how can three different icons be used to reflect switch state?

4930K @ 4.5, 32g ram, TitanPascal

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...