Bailey Posted July 15, 2021 Share Posted July 15, 2021 On 7/13/2021 at 9:33 AM, Simm0 said: There's some pretty cool stuff in here and I have my F-14 almost working how I want in the stream deck thanks to everyone. Just wondering if this work should be checked back into the main DCS Export Scripts git and we start managing it there? Possible first step https://github.com/asherao/DCS-ExportScripts 1 DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
hitmanalpha1 Posted August 17, 2021 Share Posted August 17, 2021 Can any of this be exported to a small lcd screen or is it streamdeck only? Link to comment Share on other sites More sharing options...
hasole Posted September 8, 2021 Share Posted September 8, 2021 Does anyone have a Lua for the f-14a? Link to comment Share on other sites More sharing options...
Simm0 Posted September 8, 2021 Share Posted September 8, 2021 4 hours ago, hasole said: Does anyone have a Lua for the f-14a? I just copied and renamed f-14b file to F-14A-135-GR.lua seems to work so far Link to comment Share on other sites More sharing options...
hasole Posted September 8, 2021 Share Posted September 8, 2021 6 hours ago, Simm0 said: I just copied and renamed f-14b file to F-14A-135-GR.lua seems to work so far Thanks, I'll try that. Link to comment Share on other sites More sharing options...
scoobie Posted September 12, 2021 Share Posted September 12, 2021 (edited) Yes, F-14A-135-GR.lua works just fine. First of all, big thanks to @nosaMtrevoC for taking the time & pain to prepare the file! Very much appreciated! Now, down to the business... Have anybody cracked airspeed in Tomcat yet? Couldn't find it in F-14B.lua. If not, I THINK I kind of did it, but not very "cheaply", so proceed at your own discretion. I tried the least squares approximation, but didn't like the results (square and cubic polynomials, didn't look higher than that). So I stayed with my crude polygonal chain approximation (I think that's how you call it in English, but I'm not sure). I used var. number 2504, it seems to be free to take (I hope!). Single KIAS (ones) are "trembling" a bit, so you may want to filter them out, or you can leave them, as you wish. Seems to work fine, I've just done it and I'm still testing. I you want, put the pieces of code at the 3 places (hints below). Ellipsis "(...)" means "some stuff of yours is probably here". ExportScript.ConfigEveryFrameArguments = { -- (...) [2129] = "%.4f", -- scoobie, what's this? KIAS needle maybe? YES! -- (...) } function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) -- (...) local x = {0, 0.057, 0.1, 0.141, 0.212, 0.328, 0.427, 0.518, 0.588, 0.646, 0.731, 0.801, 0.867, 0.915, 1.000} local y = {0, 80, 100, 120, 150, 200, 250, 300, 350, 400, 500, 600, 700, 800, 1000} -- 1000 KIAS is fake just to fill the range ExportScript.Tools.SendData(2504, string.format("%d", ExportScript.Linearize(mainPanelDevice:get_argument_value(2129), x, y))) -- (...) -- somewhere at the bottom of the file: function ExportScript.Linearize(current_value, raw_tab, final_tab) -- (c) scoobie if current_value <= raw_tab[1] then return final_tab[1] end for index, value in pairs(raw_tab) do if current_value <= value then local ft = final_tab[index] local rt = raw_tab[index] return (current_value - rt) * (ft - final_tab[index - 1]) / (rt - raw_tab[index - 1]) + ft end end -- we shouldn't be here, so something went wrong - return arbitrary max. final value, maybe the user will notice the problem: return final_tab[#final_tab] end Edited September 12, 2021 by scoobie 2 i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Bailey Posted September 13, 2021 Share Posted September 13, 2021 16 hours ago, scoobie said: Yes, F-14A-135-GR.lua works just fine. First of all, big thanks to @nosaMtrevoC for taking the time & pain to prepare the file! Very much appreciated! Now, down to the business... Have anybody cracked airspeed in Tomcat yet? Couldn't find it in F-14B.lua. If not, I THINK I kind of did it, but not very "cheaply", so proceed at your own discretion. I tried the least squares approximation, but didn't like the results (square and cubic polynomials, didn't look higher than that). So I stayed with my crude polygonal chain approximation (I think that's how you call it in English, but I'm not sure). I used var. number 2504, it seems to be free to take (I hope!). Single KIAS (ones) are "trembling" a bit, so you may want to filter them out, or you can leave them, as you wish. Seems to work fine, I've just done it and I'm still testing. I you want, put the pieces of code at the 3 places (hints below). Ellipsis "(...)" means "some stuff of yours is probably here". ExportScript.ConfigEveryFrameArguments = { -- (...) [2129] = "%.4f", -- scoobie, what's this? KIAS needle maybe? YES! -- (...) } function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) -- (...) local x = {0, 0.057, 0.1, 0.141, 0.212, 0.328, 0.427, 0.518, 0.588, 0.646, 0.731, 0.801, 0.867, 0.915, 1.000} local y = {0, 80, 100, 120, 150, 200, 250, 300, 350, 400, 500, 600, 700, 800, 1000} -- 1000 KIAS is fake just to fill the range ExportScript.Tools.SendData(2504, string.format("%d", ExportScript.Linearize(mainPanelDevice:get_argument_value(2129), x, y))) -- (...) -- somewhere at the bottom of the file: function ExportScript.Linearize(current_value, raw_tab, final_tab) -- (c) scoobie if current_value <= raw_tab[1] then return final_tab[1] end for index, value in pairs(raw_tab) do if current_value <= value then local ft = final_tab[index] local rt = raw_tab[index] return (current_value - rt) * (ft - final_tab[index - 1]) / (rt - raw_tab[index - 1]) + ft end end -- we shouldn't be here, so something went wrong - return arbitrary max. final value, maybe the user will notice the problem: return final_tab[#final_tab] end Nice. Can this be adapted to other aircraft with similar airspeed dials by changing the local x and y values? DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
scoobie Posted September 13, 2021 Share Posted September 13, 2021 Yes, you can! Airspeed or whatever that seems to have non-linear scale (e.g. VVIs are often non-linear). It's just... it's best to put as few numbers into these tables as is sufficient for acceptable errors. Otherwise, if the current value of the variable (instrument needle position etc.) is high (close to 1.000 according to DCS "ideology"), Lua will have to - upon rendering every damned frame - run through a lot of elements in the x table to finally find the "subrange" we are in. It's needlessly slow. In the code above I put ALL the points on airspeed indicator's scale I had "measured" with Model Viewer. It's bad, but it's because F-14B.lua is "early WIP" for me, I just bought the Cat. I suspect there maybe fewer of these points. Oh, and of course - in simple cases a simpler solution is favourable: nothing beats the simplest "y = ax + b" or "if (x > something) then y = a1x + b1 else y = a2b + b2 end". AFAICR you put quite a few of such statements in Mi-24. They are faster to run. 1 i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Simm0 Posted September 13, 2021 Share Posted September 13, 2021 20 hours ago, scoobie said: Yes, F-14A-135-GR.lua works just fine. First of all, big thanks to @nosaMtrevoC for taking the time & pain to prepare the file! Very much appreciated! Now, down to the business... Have anybody cracked airspeed in Tomcat yet? Couldn't find it in F-14B.lua. If not, I THINK I kind of did it, but not very "cheaply", so proceed at your own discretion. I tried the least squares approximation, but didn't like the results (square and cubic polynomials, didn't look higher than that). So I stayed with my crude polygonal chain approximation (I think that's how you call it in English, but I'm not sure). I used var. number 2504, it seems to be free to take (I hope!). Single KIAS (ones) are "trembling" a bit, so you may want to filter them out, or you can leave them, as you wish. Seems to work fine, I've just done it and I'm still testing. I you want, put the pieces of code at the 3 places (hints below). Ellipsis "(...)" means "some stuff of yours is probably here". ExportScript.ConfigEveryFrameArguments = { -- (...) [2129] = "%.4f", -- scoobie, what's this? KIAS needle maybe? YES! -- (...) } function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) -- (...) local x = {0, 0.057, 0.1, 0.141, 0.212, 0.328, 0.427, 0.518, 0.588, 0.646, 0.731, 0.801, 0.867, 0.915, 1.000} local y = {0, 80, 100, 120, 150, 200, 250, 300, 350, 400, 500, 600, 700, 800, 1000} -- 1000 KIAS is fake just to fill the range ExportScript.Tools.SendData(2504, string.format("%d", ExportScript.Linearize(mainPanelDevice:get_argument_value(2129), x, y))) -- (...) -- somewhere at the bottom of the file: function ExportScript.Linearize(current_value, raw_tab, final_tab) -- (c) scoobie if current_value <= raw_tab[1] then return final_tab[1] end for index, value in pairs(raw_tab) do if current_value <= value then local ft = final_tab[index] local rt = raw_tab[index] return (current_value - rt) * (ft - final_tab[index - 1]) / (rt - raw_tab[index - 1]) + ft end end -- we shouldn't be here, so something went wrong - return arbitrary max. final value, maybe the user will notice the problem: return final_tab[#final_tab] end I had tried cracking this nut but the solution I had was causing the sim to lock up after a while. I think I had a bad if loop in it somewhere. Link to comment Share on other sites More sharing options...
hasole Posted September 14, 2021 Share Posted September 14, 2021 Does anyone have the chaff/flare counters working on their stream deck? Link to comment Share on other sites More sharing options...
Bailey Posted September 28, 2021 Share Posted September 28, 2021 (edited) On 9/15/2021 at 8:59 AM, hasole said: Does anyone have the chaff/flare counters working on their stream deck? Are you looking for a solution, fix, or a new implementation? I think I see the counters in the jet as IDs 392-395. I have tried, but about 1 out of every 10 or so smooth rotations does not update the output for some reason. I have noticed quite a lot of "jitter" on the animation output. Maybe it wont update due to too many jitter calculations? Edited September 28, 2021 by Bailey DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
Bailey Posted September 28, 2021 Share Posted September 28, 2021 1 hour ago, Bailey said: Are you looking for a solution, fix, or a new implementation? I think I see the counters in the jet as IDs 392-395. On 9/13/2021 at 2:29 PM, scoobie said: Yes, you can! Airspeed or whatever that seems to have non-linear scale (e.g. VVIs are often non-linear). It's just... it's best to put as few numbers into these tables as is sufficient for acceptable errors. Otherwise, if the current value of the variable (instrument needle position etc.) is high (close to 1.000 according to DCS "ideology"), Lua will have to - upon rendering every damned frame - run through a lot of elements in the x table to finally find the "subrange" we are in. It's needlessly slow. In the code above I put ALL the points on airspeed indicator's scale I had "measured" with Model Viewer. It's bad, but it's because F-14B.lua is "early WIP" for me, I just bought the Cat. I suspect there maybe fewer of these points. Oh, and of course - in simple cases a simpler solution is favourable: nothing beats the simplest "y = ax + b" or "if (x > something) then y = a1x + b1 else y = a2b + b2 end". AFAICR you put quite a few of such statements in Mi-24. They are faster to run. I'll admit, it has taken me 3 months to finally understand what in the world you did in that lua formula! I started doing the spitfire in preparation for the mossie (waiting for free trial period to start, eventually). I did the values via my old way of equations, with one having a 5th order polynomial. Whatever gets the job done I guess. After failing to get a good solution for the chaff/flare readouts I tried your method of linear interpolation within the table and it has been working fine for me for the F14B airspeed readout. Pretty spot on, no complaints. When I finally get my hands on the mossie I'll be glad to be skipping the step of using excel and copy-pasting the formula that pops out. Sure, your function may be slower, but the update rate is still fast enough to feel fine. That, plus rounding off the final digit for stuff like altimeter readings and no-one will know the difference! DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
scoobie Posted September 28, 2021 Share Posted September 28, 2021 Ha, it's a bit of a pity as I actually preferred your solution over mine... even more so if someone else came up with a ready to use formula Laziness is a bad thing, I know, I know. I have no idea about this whole Lua language-like thing, so I wonder if 5th order polynomial isn't even slower than searching through a table, who knows. I'm very glad if you can make any use of this junk of mine in any of the cool things you're doing for folks here. That's the least I could do, really. i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Bailey Posted September 29, 2021 Share Posted September 29, 2021 (edited) On 7/13/2021 at 9:33 AM, Simm0 said: There's some pretty cool stuff in here and I have my F-14 almost working how I want in the stream deck thanks to everyone. Just wondering if this work should be checked back into the main DCS Export Scripts git and we start managing it there? I took the dive and decided to open my Git as a public library. Feel free to add to it. Edited September 29, 2021 by Bailey DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
Bailey Posted September 29, 2021 Share Posted September 29, 2021 (edited) On 9/29/2021 at 2:15 AM, scoobie said: Ha, it's a bit of a pity as I actually preferred your solution over mine... even more so if someone else came up with a ready to use formula Laziness is a bad thing, I know, I know. I have no idea about this whole Lua language-like thing, so I wonder if 5th order polynomial isn't even slower than searching through a table, who knows. I'm very glad if you can make any use of this junk of mine in any of the cool things you're doing for folks here. That's the least I could do, really. The results are in. The exponential equation is about 6 times "faster" compared to the process of a linearly interpolated table. Each operation was done 10 million times. Maybe exponential may be the way to go if you have like 20 of these on the SD at once or if an animation has a particularly nasty equation. Edited September 29, 2021 by Bailey DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
scoobie Posted September 29, 2021 Share Posted September 29, 2021 (edited) How interesting! Those orbit-high-level languages, you never know what's going on under the hood. Or at least I have no idea what's going on, it's never been my cup of tea or a job, I'm kind of scared of such "abstract" languages --------- A little off-topic if I may... Great idea with the github lib! I... don't quite feel like... "in position" to impose my sick ideas on other people, in these export scripts, so I guess I won't contribute there (moreover, I never did anything on Github, don't know how this thing works, I only know standalone Git), but is there a place on the forums here where one could present their sick ideas - more as "desing ideas" than ready to use solutions? A fishing rod, not the fish. It just occurred to me that I have one more odd patent up the sleeve and I'm not sure if anyone came up with it before (maybe, maybe not - these forums are really huge). But I don't want to mess up this thread, it's messed up enough already PS. The idea I'm talking about came to me with the Dora. I have all the gear up/down and flaps down/mid/up annunciator lights (so... 7 lamps) on a single SD button. Doesn't look great, isn't terribly practical (in a Dora at least), but does the job - I'm often absent-minded and this allows me to quickly glimpse and check if she's really set up for landing. PS. Oh, and one more, but maybe it's known already? My ugly "which fuel tank is on + tell me gallons of fuel in them" for the P-51. It looks... ugly (all things I do look ugly, unfortunately). Pictures: Dora with gear down and flaps in "start" position, next picture is gear down and flaps up. And last one is the Pony with 89 gallons (IIRC it's "floored" value, not rounded) in each wing tank, 0 gallons in the center tank and left wing tank is currently selected (square brackets around the number). "LD" and "RD" stand for "left drop" and "right drop", Pony doesn't know how much fuel is there, so no fuel contents is given for them. Edited September 29, 2021 by scoobie i7-8700K 32GB 2060(6GB) 27"@1080p TM Hawg HOTAS TPR TIR5 SD-XL 2xSD+ HC Bravo button/pot box Link to comment Share on other sites More sharing options...
Bailey Posted September 29, 2021 Share Posted September 29, 2021 (edited) 2 hours ago, scoobie said: How interesting! Those orbit-high-level languages, you never know what's going on under the hood. Or at least I have no idea what's going on, it's never been my cup of tea or a job, I'm kind of scared of such "abstract" languages --------- A little off-topic if I may... Great idea with the github lib! I... don't quite feel like... "in position" to impose my sick ideas on other people, in these export scripts, so I guess I won't contribute there (moreover, I never did anything on Github, don't know how this thing works, I only know standalone Git), but is there a place on the forums here where one could present their sick ideas - more as "desing ideas" than ready to use solutions? A fishing rod, not the fish. It just occurred to me that I have one more odd patent up the sleeve and I'm not sure if anyone came up with it before (maybe, maybe not - these forums are really huge). But I don't want to mess up this thread, it's messed up enough already PS. The idea I'm talking about came to me with the Dora. I have all the gear up/down and flaps down/mid/up annunciator lights (so... 7 lamps) on a single SD button. Doesn't look great, isn't terribly practical (in a Dora at least), but does the job - I'm often absent-minded and this allows me to quickly glimpse and check if she's really set up for landing. PS. Oh, and one more, but maybe it's known already? My ugly "which fuel tank is on + tell me gallons of fuel in them" for the P-51. It looks... ugly (all things I do look ugly, unfortunately). Pictures: Dora with gear down and flaps in "start" position, next picture is gear down and flaps up. And last one is the Pony with 89 gallons (IIRC it's "floored" value, not rounded) in each wing tank, 0 gallons in the center tank and left wing tank is currently selected (square brackets around the number). "LD" and "RD" stand for "left drop" and "right drop", Pony doesn't know how much fuel is there, so no fuel contents is given for them. The great part about a library is that not only are there already books there, but ppl go there to study, learn, and discuss too! It’s a very flexible place. Yes, the ExportScripts Library is the perfect place to post these ideas of yours. I, too, am quite curious… Don't worry about the GitHub part. I’ll take care of that. Edited September 29, 2021 by Bailey DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
hasole Posted September 30, 2021 Share Posted September 30, 2021 On 9/28/2021 at 11:33 PM, Bailey said: Are you looking for a solution, fix, or a new implementation? I think I see the counters in the jet as IDs 392-395. I have tried, but about 1 out of every 10 or so smooth rotations does not update the output for some reason. I have noticed quite a lot of "jitter" on the animation output. Maybe it wont update due to too many jitter calculations? Hi @Bailey I'm just after a counter as I'm always the pilot. Link to comment Share on other sites More sharing options...
hasole Posted September 30, 2021 Share Posted September 30, 2021 Another question, in the controls there are options to bind some jester commands. Would they be possible to pull via this instead of using hotkeys on the stream deck? Link to comment Share on other sites More sharing options...
Bailey Posted September 30, 2021 Share Posted September 30, 2021 1 hour ago, hasole said: Another question, in the controls there are options to bind some jester commands. Would they be possible to pull via this instead of using hotkeys on the stream deck? Yes DCS VoiceAttack Profiles | My Mods and Utilities on ED User Files | DiCE: DCS Integrated Countermeasure Editor DCS Update Witching Utility | DCS-ExportScripts for Stream Deck Community Github Library Link to comment Share on other sites More sharing options...
bones1014 Posted October 2, 2021 Share Posted October 2, 2021 Another question, in the controls there are options to bind some jester commands. Would they be possible to pull via this instead of using hotkeys on the stream deck?I'd suggest using voice attack for jester commands. Works great! Sent from my SM-G781U using Tapatalk Link to comment Share on other sites More sharing options...
thekow Posted December 22, 2021 Share Posted December 22, 2021 Hi i was looking at this and I installed the RAR file but only one segment of the profile is in the RAR The A6 panels? Is there a link to a profile with all the panels. I have data coming from dcs to the dcs-plugin for stream deck but yeh not much else is there. Thanks. Link to comment Share on other sites More sharing options...
Smashy Posted January 17, 2022 Share Posted January 17, 2022 On 6/15/2020 at 1:42 PM, nosaMtrevoC said: for use with these two great projects: DCS-ExportScripts: https://github.com/s-d-a/DCS-ExportScripts DCS Stream Deck Plugin by Ctytler on ED: https://github.com/charlestytler/streamdeck-dcs-interface Example of how I use the two scripts on my stream deck (p-51 example): How to you reformat the raw output from the P-51D.lua to something that's better suited for a Stream Deck button? I've been interested in doing exactly what you've done in this P-51D example video. Did you have to modify the P-51D.lua to get this done? If so, I guess I better start learning some LUA scripting! Link to comment Share on other sites More sharing options...
Smashy Posted January 19, 2022 Share Posted January 19, 2022 On 1/17/2022 at 11:20 AM, Smashy said: How to you reformat the raw output from the P-51D.lua to something that's better suited for a Stream Deck button? I've been interested in doing exactly what you've done in this P-51D example video. Did you have to modify the P-51D.lua to get this done? If so, I guess I better start learning some LUA scripting! Disregard my question. After looking at the problem for a bit, I was able to modify the P-51D.lua file to get it to feed the Stream Deck what I needed. I wanted to be able to display coolant temp, oil temp and fuel levels in gallons of all tanks. I referenced other Stream Deck threads in the forums here and looked at other module exports files to get a good idea of what to do. I used the Model Viewer to eyeball the relationship between DCS ID values and cockpit gauge values. That worked well for the ones with linear relationships. The fuel tanks seemed non-linear so I found an online function generator and used it to generate some parabolic functions. Yay, math! All that was left was to copypasta some really simple lua stuff and massage it to work for me. 1 Link to comment Share on other sites More sharing options...
winghunter Posted January 24, 2022 Share Posted January 24, 2022 Is there a way to export the thrust / throttle position for the F-14 ? DCS Web Editor - New 3D Mission Editor for DCS that runs in your browser DCS Web Viewer free browser based mission planner / viewer 4090 RTX, 13700KF, water cooled Link to comment Share on other sites More sharing options...
Recommended Posts