Merge pull request #12 from ExoLightFR/master

Fix crash in F-15E export script
This commit is contained in:
Bailey 2024-01-19 22:21:06 +09:00 committed by GitHub
commit 361822997e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -870,11 +870,11 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) -- Po
ExportScript.Tools.SendData(757575,"⚪⚫\n🟡🔴\n🟢❌")
-- ADVANCED UFC IMPLEMENTATION v1
if Norsk_UFC == "TRUE" then
PILOT_UFCa(ExportScript.Tools.getListIndicatorValue(8))
PILOT_UFCa(ExportScript.Tools.getListIndicatorValue(9))
else
PILOT_UFC(ExportScript.Tools.getListIndicatorValue(8))
PILOT_UFC(ExportScript.Tools.getListIndicatorValue(9))
end
WSO_UFC(ExportScript.Tools.getListIndicatorValue(20))
WSO_UFC(ExportScript.Tools.getListIndicatorValue(21))
-- COMBINED FUEL DISPLAY
ExportScript.Tools.SendData(83830,FUEL_display(mainPanelDevice,0)) -- NOTE EXPORT ID HAS CHANGED
-- INDIVIDUAL FUEL DATA
@ -956,6 +956,7 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) -- Po
function ExportScript.CockpitParamsLogDump(mainPanelDevice) -- Get list of cockpit params
ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params()))
end
function ExportScript.MetaTableLogDump(mainPanelDevice) -- getmetatable get function name from devices
local ltmp1 = 0
for ltmp2 = 1, 70, 1 do
@ -964,6 +965,7 @@ function ExportScript.MetaTableLogDump(mainPanelDevice) -- getmetatable get func
ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1)))
end
end
function ExportScript.ListIndicationLogDump(mainPanelDevice) -- list_indication get the value of cockpit displays
local ltmp1 = 0
for ltmp2 = 0, 20, 1 do
@ -971,6 +973,7 @@ function ExportScript.ListIndicationLogDump(mainPanelDevice) -- list_indication
ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1))
end
end
function Linearize(current_value, raw_tab, final_tab) -- Converts Guage value to readable format
if current_value <= 0 then
return 0
@ -985,17 +988,21 @@ function Linearize(current_value, raw_tab, final_tab) -- Converts Guage value to
-- 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
function RoundTo(num, numDecimalPlaces) --http://lua-users.org/wiki/SimpleRound
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
function Round(num) -- Rounds UP/Down to Nearest Whole Number
return num % 1 >= 0.5 and math.ceil(num) or math.floor(num)
end
function RoundDP(num) -- Rounds UP/Down to Nearest Whole Number
value = Round(num*10)
return value/10
end
function ZeroNine(num) -- Used with Round to roll a round up from 10 to 0.
if num >= 9.9 then
return 0
@ -1003,6 +1010,7 @@ function ZeroNine(num) -- Used with Round to roll a round up from 10 to 0.
return num
end
end
function OneToZero(num) -- Used to roll a round up from 1.0 to 0.0
if num >= 1.0 then
return 0.0
@ -1010,6 +1018,7 @@ function OneToZero(num) -- Used to roll a round up from 1.0 to 0.0
return num
end
end
function nilToEmpty(value) -- Converts a nil string to an empty string ""
if value == nil then
value = ''
@ -1052,6 +1061,7 @@ function FORMAT_UFC(Input) -- Re-Formats Data For Clear UFC Display v1
return Input -- or just retun the <5 char string
end
end
function FORMAT_UFCRAD(Input) -- Re-Formats Data For Clear UFC RADIO Display v1
-- OFF
if string.sub(Input,(string.len(Input)-2),(string.len(Input))) == "OFF" then return string.sub(Input,2,string.len(Input)):gsub(" ","\n")
@ -1062,6 +1072,7 @@ function FORMAT_UFCRAD(Input) -- Re-Formats Data For Clear UFC RADIO Display v1
-- Spit Freq from Channel and return strings
if string.len(Input) < 5 then return Input else return string.sub(Input,1,(string.len(Input)-3)).."\n."..string.sub(Input,(string.len(Input)-2),(string.len(Input))) end
end
function FORMAT_SCRATCH(Input)
Input = Input:gsub(":",".")
Len = string.len(Input)
@ -1075,6 +1086,7 @@ function FORMAT_SCRATCH(Input)
return string.sub(Input,1,4).."\n"..string.sub(Input,5,8).."\n"..string.sub(Input, 9,Len)
end
end
function PILOT_UFC(UFC_PILOT) -- PILOT UFC export for Norsk-L
if UFC_PILOT == nil then
ExportScript.Tools.SendData(82001,"NO\nDATA")
@ -1089,9 +1101,9 @@ function PILOT_UFC(UFC_PILOT) -- PILOT UFC export for Norsk-L
ExportScript.Tools.SendData(82006,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_06))) -- Radio Channel
-- CENTRE DESCENDING FROM THE TOP
ExportScript.Tools.SendData(82011,nilToEmpty(UFC_PILOT.UFC_CC_01:gsub(":",".")))
ExportScript.Tools.SendData(82012,nilToEmpty(UFC_PILOT.UFC_CC_02:gsub(":",".")))
ExportScript.Tools.SendData(82013,nilToEmpty(UFC_PILOT.UFC_CC_03:gsub(":",".")))
ExportScript.Tools.SendData(82011,nilToEmpty(UFC_PILOT.UFC_CC_01):gsub(":","."))
ExportScript.Tools.SendData(82012,nilToEmpty(UFC_PILOT.UFC_CC_02):gsub(":","."))
ExportScript.Tools.SendData(82013,nilToEmpty(UFC_PILOT.UFC_CC_03):gsub(":","."))
ExportScript.Tools.SendData(82014,FORMAT_SCRATCH(nilToEmpty(UFC_PILOT.UFC_CC_04))) -- SCRATCHPAD
-- RIGHT SIDE SIDE DESCENDING FROM THE TOP
@ -1104,6 +1116,7 @@ function PILOT_UFC(UFC_PILOT) -- PILOT UFC export for Norsk-L
ExportScript.Tools.SendData(82026,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_07))) -- Radio Channel
end
end
function PILOT_UFCa(UFC_PILOT) -- PILOT UFC export for Norsk-L
if UFC_PILOT == nil then
ExportScript.Tools.SendData(82001,"NO\nDATA")
@ -1127,12 +1140,13 @@ function PILOT_UFCa(UFC_PILOT) -- PILOT UFC export for Norsk-L
ExportScript.Tools.SendData(82007,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_07))) -- Radio Channel
--CENTRE DESCENDING FROM THE TOP
ExportScript.Tools.SendData(82013,nilToEmpty(UFC_PILOT.UFC_CC_01:gsub(":",".")))
ExportScript.Tools.SendData(82014,nilToEmpty(UFC_PILOT.UFC_CC_02:gsub(":",".")))
ExportScript.Tools.SendData(82015,nilToEmpty(UFC_PILOT.UFC_CC_03:gsub(":",".")))
ExportScript.Tools.SendData(82013,nilToEmpty(UFC_PILOT.UFC_CC_01):gsub(":","."))
ExportScript.Tools.SendData(82014,nilToEmpty(UFC_PILOT.UFC_CC_02):gsub(":","."))
ExportScript.Tools.SendData(82015,nilToEmpty(UFC_PILOT.UFC_CC_03):gsub(":","."))
ExportScript.Tools.SendData(82016,FORMAT_SCRATCH(nilToEmpty(UFC_PILOT.UFC_CC_04))) -- SCRATCHPAD
end
end
function WSO_UFC(UFC_WSO) -- WSO UFC export for Norsk-L
if UFC_WSO == nil then
ExportScript.Tools.SendData(82000,"NO\nDATA\nWSO")
@ -1146,9 +1160,9 @@ function WSO_UFC(UFC_WSO) -- WSO UFC export for Norsk-L
ExportScript.Tools.SendData(82035,FORMAT_UFCRAD(nilToEmpty(UFC_WSO.UFC_SC_05))) -- Radio Freq
ExportScript.Tools.SendData(82036,FORMAT_UFCRAD(nilToEmpty(UFC_WSO.UFC_SC_06))) -- Radio Channel
--CENTRE DESCENDING FROM THE TOP
ExportScript.Tools.SendData(82041,nilToEmpty(UFC_WSO.UFC_CC_01:gsub(":",".")))
ExportScript.Tools.SendData(82042,nilToEmpty(UFC_WSO.UFC_CC_02:gsub(":",".")))
ExportScript.Tools.SendData(82043,nilToEmpty(UFC_WSO.UFC_CC_03:gsub(":",".")))
ExportScript.Tools.SendData(82041,nilToEmpty(UFC_WSO.UFC_CC_01):gsub(":","."))
ExportScript.Tools.SendData(82042,nilToEmpty(UFC_WSO.UFC_CC_02):gsub(":","."))
ExportScript.Tools.SendData(82043,nilToEmpty(UFC_WSO.UFC_CC_03):gsub(":","."))
ExportScript.Tools.SendData(82044,FORMAT_SCRATCH(nilToEmpty(UFC_WSO.UFC_CC_04))) -- SCRATCHPAD
-- RIGHT SIDE SIDE DESCENDING FROM THE TOP
ExportScript.Tools.SendData(82051,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_12)))
@ -1160,6 +1174,7 @@ function WSO_UFC(UFC_WSO) -- WSO UFC export for Norsk-L
ExportScript.Tools.SendData(82056,FORMAT_UFCRAD(nilToEmpty(UFC_WSO.UFC_SC_07))) -- Radio Channel
end
end
function FUEL_display(Data,Option) -- Combines/Converts FUEL guage to single string or pulls the seperate values
-- Option 0 gives all data, use the seperale element names to pull single values (OFF,Dial,TOTAL,Left,RIGHT)
-- Example ExportScript.Tools.SendData(88383,ExportScript.FUEL(mainPanelDevice,"TOTAL")) sends back just the TOTALizer
@ -1206,6 +1221,7 @@ function FUEL_display(Data,Option) -- Combines/Converts FUEL guage to single str
return _G[Option]
end
end
function EMD_display(Data,Option) -- Combines/Converts EMD to single string or pulls the seperate values
-- Option 0 gives all data, use the seperale element names to pull single values (RPM_L,RPM_R,TMP_L,TMP_R,FF_L,FF_R,NOZ_L,NOZ_R,OIL_L,OIL_R)
-- Example ExportScript.Tools.SendData(81101,ExportScript.EMD(mainPanelDevice,"RPM_L")) sends back just the Left RPM value
@ -1251,6 +1267,7 @@ function EMD_display(Data,Option) -- Combines/Converts EMD to single string or p
return _G[Option]
end
end
function HUD_display(Data,Option) -- Extracts dat aelemnts from the HUD to provide as single exports or combined exports
-- Check for data flowing into function
if Data == nil then return "NO\nDATA"
@ -1316,6 +1333,7 @@ function HUD_display(Data,Option) -- Extracts dat aelemnts from the HUD to provi
end
end
end
function RADIO_display(Option,Radio)
-- Set Raw Data Into variables
r1_chan = nilToEmpty(ExportScript.Tools.getListIndicatorValue(8).UFC_SC_06)
@ -1356,12 +1374,14 @@ function RADIO_display(Option,Radio)
end
return _G[Option]
end
--[[function RadioFreqs(mainPanelDevice) -- TODO: can string this up to display both the channel and freq on the tile
local radio1_freq = (GetDevice(7):get_frequency())/1000000 -- returns 243.000427
local radio2_freq = (GetDevice(8):get_frequency())/1000000 -- returns 121.500759
ExportScript.Tools.SendData(5020, ExportScript.Tools.RoundFreqeuncy(radio1_freq))
ExportScript.Tools.SendData(5021, ExportScript.Tools.RoundFreqeuncy(radio2_freq))
end]]
function GearTile(mainPanelDevice) -- From Bailey's LUA: A grphical indication of Gear Status
-- ⚪ white
-- ⚫ black
@ -1409,6 +1429,7 @@ function GearTile(mainPanelDevice) -- From Bailey's LUA: A grphical indication o
return 'GEAR\n' .. noseCircle .. '\n' .. leftCircle .. rightCircle .. '\n' .. handleCircle
end
end
function FlapTile(mainPanelDevice) -- From Bailey's LUA: A grphical indication of Flaps Status
-- init as black because it represents the lights as off
local flapOrange = ''
@ -1433,6 +1454,7 @@ function FlapTile(mainPanelDevice) -- From Bailey's LUA: A grphical indication
----------------
function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice)
end
function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice)
end
-- ⚪ white