-- UH-60L Export Module -- Feel free to use, modify and repost in any way you desire. --[[ To see the cockpit textures in model viewer Load model "uh-60l_cockpit.edm" from dcs/mods/aircraft/UH-60L/Shapes" Click Tools > Mount textures > Mount Zip and select "dcs/mods/aircraft/UH-60L/Textures/h60Textures.zip Click open Load model "uh-60l_cockpit.edm" from dcs/mods/aircraft/UH-60L/Shapes" Done ]] ExportScript.FoundDCSModule = true ExportScript.Version.UH60L = "1.2.1" ExportScript.ConfigEveryFrameArguments = { --[[ every frames arguments based of "mainpanel_init.lua" Example (http://www.lua.org/manual/5.1/manual.html#pdf-string.format) [DeviceID] = "Format" [4] = "%.4f", <- floating-point number with 4 digits after point [19] = "%0.1f", <- floating-point number with 1 digit after point [129] = "%1d", <- decimal number [5] = "%.f", <- floating point number rounded to a decimal number ]] [1] = "%.4f", -- OAT Guages [17] = "%.4f", -- Battery Switch ON/OFF [18] = "%.4f", -- External Power Switch ON/OFF/RESET [19] = "%.4f", -- APU GEN ON/OFF/TEST [20] = "%.4f", -- GEN 1 Switch ON/OFF/TEST [21] = "%.4f", -- GEN 2 Switch ON/OFF/TEST [22] = "%.4f", -- Fuel Pump Switch FUEL PRIME/OFF/APU BOOST [23] = "%.4f", -- Air Source Switch AIR/OFF/ENG [24] = "%.f", -- APU Control ON/OFF [26] = "%.4f", -- Engine 1 Control [27] = "%.4f", -- Engine 2 Control [28] = "%.4f", -- Engine 1 FSS [29] = "%.4f", -- Engine 2 FSS [30] = "%.4f", -- Engine 1 Starter [31] = "%.4f", -- Engine 2 Starter [32] = "%.4f", -- Stabilator Manual Slew UP/Down [33] = "%.4f", -- Stabilator Auto ON/OFF [34] = "%.4f", -- SAS 1 ON/OFF [35] = "%.4f", -- SAS 2 ON/OFF [36] = "%.4f", -- Trim ON/OFF [37] = "%.4f", -- FPS ON/OFF [38] = "%.4f", -- SAS Boost ON/OFF [40] = "%.4f", -- No. 1 Fuel Boost Pump ON/OFF [41] = "%.4f", -- No. 2 Fuel Boost Pump ON/OFF [42] = "%.4f", -- Engine 1 Power Control Linkage [43] = "%.4f", -- Engine 2 Power Control Linkage -- AN/ARC-164 UHF Radio [50] = "%0.2f", -- AN/ARC-164 Mode [52] = "%0.2f", -- AN/ARC-164 Manual/Preset/Guard [53] = "%.1f", -- AN/ARC-164 100s [54] = "%.1f", -- AN/ARC-164 10s [55] = "%.1f", -- AN/ARC-164 1s [56] = "%.1f", -- AN/ARC-164 .1s [57] = "%.1f", -- AN/ARC-164 .010s [58] = "%.4f", -- AN/ARC-164 Preset [60] = "%.4f", -- Altimeter 100s PLT [61] = "%.4f", -- Altimeter 1000s PLT [62] = "%.4f", -- Altimeter 10000s PLT [63] = "%.4f", -- ??? [64] = "%.4f", -- Kollsman Window Digit 1 PLT [65] = "%.4f", -- Kollsman Window Digit 2 PLT [66] = "%.4f", -- Kollsman Window Digit 3 PLT [67] = "%.4f", -- Kollsman Window Digit 4 PLT [68] = "%.4f", -- Altimeter Flag PLT [70] = "%.4f", -- Altimeter 100s CPLT [71] = "%.4f", -- Altimeter 1000s CPLT [72] = "%.4f", -- Altimeter 10000s CPLT [73] = "%.4f", -- [74] = "%.4f", -- Kollsman Window Digit 1 CPLT [75] = "%.4f", -- Kollsman Window Digit 2 CPLT [76] = "%.4f", -- Kollsman Window Digit 3 CPLT [77] = "%.4f", -- Kollsman Window Digit 4 CPLT [78] = "%.4f", -- Altimeter Flag CPLT [81] = "%.4f", -- Parking Brake ON/OFF [82] = "%.4f", -- ??? -- AHRU [95] = "%.4f", -- AHRU Light 2 [96] = "%.4f", -- AHRU Light 3 [97] = "%.4f", -- AHRU Light 5 [98] = "%.4f", -- AHRU Light 7 [99] = "%.4f", -- AHRU Light 8 [100] = "%.4f", -- Airspeed Indicator [103] = "%.4f", -- Vertical Speed Indicator (VSI) [105] = "%.4f", -- Angle of Bank Indicator [120] = "%.4f", -- Wet Compass Degrees [121] = "%.4f", -- Wet Compass Bank [122] = "%.4f", -- Wet Compass Pitch -- Horizontal Situational Indicator (HSI) PLT [130] = "%.4f", -- HSI Heading Knob PLT [131] = "%.4f", -- HSI Course Knob PLT [132] = "%.4f", -- HSI Compass Rotation PLT [133] = "%.4f", -- HSI Heading Bug PLT [134] = "%.4f", -- HSI Bearing Needle 1 PLT [135] = "%.4f", -- HSI Bearing Needle 2 PLT [136] = "%.4f", -- HSI Course Line PLT [137] = "%.4f", -- HSI Course Deviation Bar PLT [138] = "%.4f", -- HSI TO FROM Flag PLT [139] = "%.4f", -- HSI Distance 100s PLT [140] = "%.4f", -- HSI Distance 10s PLT [141] = "%.4f", -- HSI Distance 1s PLT [142] = "%.4f", -- HSI Distance .1s PLT [143] = "%.4f", -- HSI Course 100s PLT [144] = "%.4f", -- HSI Course 10s PLT [145] = "%.4f", -- HSI Course 1s PLT [146] = "%.4f", -- HSI Heading Flag PLT [147] = "%.4f", -- HSI Nav Flag PLT [148] = "%.4f", -- HSI DME Flag PLT -- Horizontal Situational Indicator (HSI) CPLT [150] = "%.4f", -- HSI Heading Knob CPLT [151] = "%.4f", -- HSI Course Knob CPLT [152] = "%.4f", -- HSI Compass Rotation CPLT [153] = "%.4f", -- HSI Heading Bug CPLT [154] = "%.4f", -- HSI Bearing Needle 1 CPLT [155] = "%.4f", -- HSI Bearing Needle 2 CPLT [156] = "%.4f", -- HSI Course Line CPLT [157] = "%.4f", -- HSI Course Deviation Bar CPLT [158] = "%.4f", -- HSI TO FROM Flag CPLT [159] = "%.4f", -- HSI Distance 100s CPLT [160] = "%.4f", -- HSI Distance 10s CPLT [161] = "%.4f", -- HSI Distance 1s CPLT [162] = "%.4f", -- HSI Distance .1s CPLT [163] = "%.4f", -- HSI Course 100s CPLT [164] = "%.4f", -- HSI Course 10s CPLT [165] = "%.4f", -- HSI Course 1s CPLT [166] = "%.4f", -- HSI Heading Flag CPLT [167] = "%.4f", -- HSI Nav Flag CPLT [168] = "%.4f", -- HSI DME Flag CPLT -- Radar Altimeter PLT [170] = "%.4f", -- Radar Altimeter Low Set Knob PLT [171] = "%.4f", -- Radar Altimeter High Set Knob PLT [173] = "%.4f", -- Radar Altimeter Indicator Needle PLT [174] = "%.4f", -- Radar Altimeter 1000s Indicator PLT [175] = "%.4f", -- Radar Altimeter 100s Indicator PLT [176] = "%.4f", -- Radar Altimeter 10s Indicator PLT [177] = "%.4f", -- Radar Altimeter 1s Indicator PLT [178] = "%.4f", -- Radar Altimeter Low Bug PLT [179] = "%.4f", -- Radar Altimeter High Bug PLT [180] = "%.4f", -- Radar Altimeter Low Flag PLT [181] = "%.4f", -- Radar Altimeter High Flag PLT [182] = "%.4f", -- Radar Altimeter Off Flag PLT -- Radar Altimeter CPLT [183] = "%.4f", -- Radar Altimeter Low Set Knob CPLT [184] = "%.4f", -- Radar Altimeter High Set Knob CPLT [186] = "%.4f", -- Radar Altimeter Indicator Needle CPLT [187] = "%.4f", -- Radar Altimeter 1000s Indicator CPLT [188] = "%.4f", -- Radar Altimeter 100s Indicator CPLT [189] = "%.4f", -- Radar Altimeter 10s Indicator CPLT [190] = "%.4f", -- Radar Altimeter 1s Indicator CPLT [191] = "%.4f", -- Radar Altimeter Low Bug CPLT [192] = "%.4f", -- Radar Altimeter High Bug CPLT [193] = "%.4f", -- Radar Altimeter Low Flag CPLT [194] = "%.4f", -- Radar Altimeter High Flag CPLT [195] = "%.4f", -- Radar Altimeter Off Flag CPLT [201] = "%.4f", -- Instrument Panel Brightness Light PLT [202] = "%.4f", -- Instrument Panel Brightness Light CPLT [203] = "%.4f", -- Instrument Panel Brightness Light Center [204] = "%.4f", -- Instrument Panel Brightness Overhead [205] = "%.4f", -- Instrument Panel Brightness Pedestal [206] = "%.4f", -- Instrument Autopilot AP Modes Brightness [207] = "%.4f", -- HSI and Radar Altimeter Instrument Lights PLT [208] = "%.4f", -- HSI and Radar Altimeter Instrument Lights CPLT [210] = "%.4f", -- Dashboard Brightness [211] = "%.4f", -- Magnetic Compass Lights -- Autopilot Panel PLT [212] = "%.4f", -- AP HDG Light PLT [213] = "%.4f", -- AP NAV Light PLT [214] = "%.4f", -- AP ALT Light PLT [215] = "%.4f", -- MODE SEL DPLR GLS Light PLT [216] = "%.4f", -- MODE SEL VOR Light PLT [217] = "%.4f", -- MODE SEL ILS Light PLT [218] = "%.4f", -- MODE SEL BACK CRS Light PLT [219] = "%.4f", -- MODE SEL FM HOME Light PLT [220] = "%.4f", -- MODE SEL TURN RATE NORM Light PLT [221] = "%.4f", -- MODE SEL TURN RATE ALTR Light PLT [222] = "%.4f", -- MODE SEL CRS HDG PLT Light PLT [223] = "%.4f", -- MODE SEL CRS HDG CPLT Light PLT [224] = "%.4f", -- MODE SEL VERT GYRO NORM Light PLT [225] = "%.4f", -- MODE SEL VERT GYRO ALTR Light PLT [226] = "%.4f", -- MODE SEL BRG 2 ADF Light PLT [227] = "%.4f", -- MODE SEL BRG 2 VOR Light PLT -- Autopilot Panel CPLT [228] = "%.4f", -- MODE SEL DLPR GLS Light CPLT [229] = "%.4f", -- MODE SEL VOR Light CPLT [230] = "%.4f", -- MODE SEL ILS Light CPLT [231] = "%.4f", -- MODE SEL BACK CRS Light CPLT [232] = "%.4f", -- MODE SEL FM HOME Light CPLT [233] = "%.4f", -- MODE SEL TURN RATE NORM Light CPLT [234] = "%.4f", -- MODE SEL TURN RATE ALTR Light CPLT [235] = "%.4f", -- MODE SEL CRS HDG PLT Light CPLT [236] = "%.4f", -- MODE SEL CRS HDG CPLT Light CPLT [237] = "%.4f", -- MODE SEL VERT GYRO NORM Light CPLT [238] = "%.4f", -- MODE SEL VERT GYRO ALTR Light CPLT [239] = "%.4f", -- MODE SEL BRG 2 ADF Light CPLT [240] = "%.4f", -- MODE SEL BRG 2 VOR Light CPLT -- AUTO FLIGHT CONTROL [241] = "%.4f", -- BOOST Light [242] = "%.4f", -- SAS 1 Light [243] = "%.4f", -- SAS 2 Light [244] = "%.4f", -- TRIM Light [245] = "%.4f", -- FPS Light [246] = "%.4f", -- AUTO CONTROL Light [251] = "%.4f", -- Glareshield Lights Knob [252] = "%.4f", -- Position Lights DIM/OFF/BRIGHT [253] = "%.4f", -- POsition Lights STEADY/FLASH [254] = "%.4f", -- Anticollision Lights UPPER/BOTH/LOWER [255] = "%.4f", -- Anticollision Lights DAY/OFF/NIGHT [256] = "%.4f", -- NAV Lishts NORM/IR [257] = "%.4f", -- Cabin Lights BLUE/OFF/WHITE [259] = "%.4f", -- CPTL Flight Instrument Lights Knob [260] = "%.4f", -- Lighted Switches Knob [261] = "%.4f", -- Formation Lights Knob [262] = "%.4f", -- Console Lights UPPER Knob [263] = "%.4f", -- Console Lights LOWER Knob [264] = "%.4f", -- Console Lights NON FLT Knob [265] = "%.4f", -- Console Lights PILOT FLT Knob [266] = "%.4f", -- Radar Altimeter Dimmer [267] = "%.4f", -- Radar Altimeter Dimmer [268] = "%.4f", -- Magnetic Compass Light ON/OFF [269] = "%.4f", -- Cockpit Lights BLUE/OFF/WHITE -- AN/APR-39 [270] = "%.4f", -- AN/APR-39 Power Switch ON/OFF [271] = "%.4f", -- AN/APR-39 Self Test Button (Inop.) [272] = "%.4f", -- AN/APR-39 Altitude HI/LOW (Inop.) [273] = "%.4f", -- AN/APR-39 Volume [274] = "%.4f", -- AN/APR-39 Brilliance [275] = "%.4f", -- Cockpit Blue Lights [276] = "%.4f", -- Cockpit White Lights [280] = "%.4f", -- Pilot's Chronometer RESET/SET Button [281] = "%.4f", -- Pilot's Chronometer MODE Button [282] = "%.4f", -- Pilot's Chronometer START/STOP/ADVANCE Button [283] = "%.4f", -- Copilot's Chronometer RESET/SET Button [284] = "%.4f", -- Copilot's Chronometer MODE Button [285] = "%.4f", -- Copilot's Chronometer START/STOP/ADVANCE Button [294] = "%.4f", -- Tail Wheel ON Light [296] = "%.4f", -- Tail Servo Select NORMAL/BACKUP (Inop.) -- Caution and Warning Lights [304] = "%.4f", -- CAP Lamp Test Switch [305] = "%.4f", -- Master Caution Reset [306] = "%.4f", -- Master Caution Reset [309] = "%.4f", -- Annunciator Brightness [310] = "%.4f", -- #1 ENG OUT Light [311] = "%.4f", -- #2 ENG OUT Light [312] = "%.4f", -- Fire Light [313] = "%.4f", -- MASTER CAUTION PRESS TO RESET Light [314] = "%.4f", -- Low ROTOR RPM Light [315] = "%.4f", -- #1 FUEL LOW Light [316] = "%.4f", -- #1 GEN Light [317] = "%.4f", -- #2 GEN Light [318] = "%.4f", -- #2 FUEL LOW Light [319] = "%.4f", -- #1 FUEL PRESS Light [320] = "%.4f", -- #1 GEN BRG Light [321] = "%.4f", -- #2 GEN BRG Light [322] = "%.4f", -- #2 FUEL PRESS Light [323] = "%.4f", -- #1 ENGINE OIL PRESS Light [324] = "%.4f", -- #1 CONV Light [325] = "%.4f", -- #2 CONV Light [326] = "%.4f", -- #2 ENGINE OIL PRESS Light [327] = "%.4f", -- #1 ENGINE OIL TEMP Light [328] = "%.4f", -- AC ESS BUS OFF Light [329] = "%.4f", -- DC ESS BUS OFF Light [330] = "%.4f", -- #2 ENGINE OIL TEMP Light [331] = "%.4f", -- CHIP #1 ENGINE Light [332] = "%.4f", -- BATT LOW CHARGE Light [333] = "%.4f", -- BATTERY FAULT Light [334] = "%.4f", -- CHIP #2 ENGINE Light [335] = "%.4f", -- #1 FUEL FLTR BYPASS Light [336] = "%.4f", -- GUST LOCK Light [337] = "%.4f", -- PITCH BIAS FAIL Light [338] = "%.4f", -- #2 FUEL FLTR BYPASS Light [339] = "%.4f", -- #1 ENGINE STARTER Light [340] = "%.4f", -- #1 OIL FLTR BYPASS Light [341] = "%.4f", -- #2 OIL FLTR BYPASS Light [342] = "%.4f", -- #2 ENGINE STARTER Light [343] = "%.4f", -- #1 PRI SERVER PRESS Light [344] = "%.4f", -- #1 HYD PUMP Light [345] = "%.4f", -- #2 HYD PUMP Light [346] = "%.4f", -- #2 PRI SERVO PRESS Light [347] = "%.4f", -- TAIL ROTOR QUADRANT Light [348] = "%.4f", -- IRCM INOP Light [349] = "%.4f", -- AUX FUEL Light [350] = "%.4f", -- #1 TAIL TRT XERVO Light [351] = "%.4f", -- MAIN XMSN OIL TEMP Light [352] = "%.4f", -- INT XMSN OIL TEMP Light [353] = "%.4f", -- TAIL XMSN OIL TEMP Light [354] = "%.4f", -- APU OIL TEMP HI Light [355] = "%.4f", -- BOOST SERVO OFF Light [356] = "%.4f", -- STABILATOR Light [357] = "%.4f", -- SAS OFF Light [358] = "%.4f", -- TRIM FAIL Light [359] = "%.4f", -- LFT PITOT HEAT Light [360] = "%.4f", -- FLT PATH STAB Light [361] = "%.4f", -- IFF Light [362] = "%.4f", -- RT PITOT HEAT Light [363] = "%.4f", -- CHIP INPUT MDL - LH Light [364] = "%.4f", -- CHIP INT XMSN Light [365] = "%.4f", -- CHIP TAIL XMSN Light [366] = "%.4f", -- CHIP INPUT MDL - RH Light [367] = "%.4f", -- CHIP ACCESS MDL - LH Light [368] = "%.4f", -- CHIP MAIN MDL SUMP Light [369] = "%.4f", -- APU FAIL Light [370] = "%.4f", -- CHIP ACCESS MDL - RH Light [371] = "%.4f", -- MR DE-IACE FAIL Light [372] = "%.4f", -- MR DE-ICE FAULT Light [373] = "%.4f", -- TR DE-ICE FAIL Light [374] = "%.4f", -- ICE DETECTED Light [375] = "%.4f", -- MAIN XMSN OIL PRESS Light [376] = "%.4f", -- #1 RSVR LOW Light [377] = "%.4f", -- #2 RSVR LOW Light [378] = "%.4f", -- BACK-UP RSVR LOW Light [379] = "%.4f", -- #1 ENG ANTI-ICE ON Light [380] = "%.4f", -- #1 ENG INLET ANTI-ICE ON Light [381] = "%.4f", -- #2 ENG INLET ANTI-ICE ON Light [382] = "%.4f", -- #2 ENG ANTI-ICE ON Light [383] = "%.4f", -- APU ON Light [384] = "%.4f", -- APU GEN ON Light [385] = "%.4f", -- PRIME BOOST PUMP ON Light [386] = "%.4f", -- BACK-UP PUMP ON Light [387] = "%.4f", -- APU ACCUM LOW Light [388] = "%.4f", -- SEATCH LT ON Light [389] = "%.4f", -- LDG LT ON Light [390] = "%.4f", -- #2 TAIL RTR SERVER ON Light [391] = "%.4f", -- CARGO HOOK OPEN Light [392] = "%.4f", -- HOOK ARMED Light [393] = "%.4f", -- GPS POS ALERT Light [394] = "%.4f", -- PARKING BRAKE ON Light [395] = "%.4f", -- EXT POWER CONNECTED Light [396] = "%.4f", -- GREEN BAR Light -- COMM Panel [400] = "%0.1f", -- Pilot/CPilot ICP XMIT Transmit Radio Selector [401] = "%.4f", -- Pilot ICP Receive Volume [402] = "%.4f", -- Pilot ICP Hot Mike Switch (Inop.) [403] = "%.4f", -- Comm 1 ON/OFF Switch [404] = "%.4f", -- Comm 2 ON/OFF Switch [405] = "%.4f", -- Comm 3 ON/OFF Switch [406] = "%.4f", -- Comm 4 ON/OFF Switch [407] = "%.4f", -- Comm 5 ON/OFF Switch [408] = "%.4f", -- Comm AUX ON/OFF Switch [409] = "%.4f", -- Comm NAV ON/OFF Switch -- AN/ARC-186 VHF Radio [410] = "%.4f", -- AN/ARC-186 Volume [411] = "%.4f", -- AN/ARC-186 Tone [412] = "%.4f", -- AN/ARC-186 10MHz Selector [413] = "%.4f", -- AN/ARC-186 1MHz Selector [414] = "%.4f", -- AN/ARC-186 100KHz Selector [415] = "%.4f", -- AN/ARC-186 25KHz Selector [416] = "%.4f", -- AN/ARC-186 Frequency Control Selector [418] = "%.4f", -- AN/ARC-186 Preset Channel Selector [419] = "%.4f", -- AN/ARC-186 Mode Selector -- Vertical Situation Indicator PLT [420] = "%.4f", -- VSI Pitch PLT [421] = "%.4f", -- VSI Roll PLT [422] = "%.4f", -- Inclinometer Indicator PLT [423] = "%.4f", -- Roll Command Bar PLT [424] = "%.4f", -- Pitch Command Bar PLT [425] = "%.4f", -- Collective Command Bar PLT [426] = "%.4f", -- Turn Rate Indicator PLT [427] = "%.4f", -- Course Deviation Pointer PLT [428] = "%.4f", -- Glide Slope Indicator PLT [429] = "%.4f", -- CMD Flag PLT [430] = "%.4f", -- ATT Flag PLT [431] = "%.4f", -- NAV Flag PLT [432] = "%.4f", -- GS Flag PLT -- Vertical Situation Indicator CPLT [433] = "%.4f", -- VSI Pitch CPLT [434] = "%.4f", -- VSI Roll CPLT [435] = "%.4f", -- Inclinometer Indicator CPLT [436] = "%.4f", -- Roll Command Bar CPLT [437] = "%.4f", -- Pitch Command Bar CPLT [438] = "%.4f", -- Collective Command Bar CPLT [439] = "%.4f", -- Turn Rate Indicator CPLT [440] = "%.4f", -- Course Deviation Pointer CPLT [441] = "%.4f", -- Glide Slope Indicator CPLT [442] = "%.4f", -- CMD Flag CPLT [443] = "%.4f", -- ATT Flag CPLT [444] = "%.4f", -- NAV Flag CPLT [445] = "%.4f", -- GS Flag CPLT [450] = "%.4f", -- %RPM RTR OVERSPEED Dot Left PLT [451] = "%.4f", -- %RPM RTR OVERSPEED Dot Center PLT [452] = "%.4f", -- %RPM RTR OVERSPEED Dot Right PLT [453] = "%.4f", -- %RPM RTR OVERSPEED Dot Left CPLT [454] = "%.4f", -- %RPM RTR OVERSPEED Dot Center CPLT [455] = "%.4f", -- %RPM RTR OVERSPEED Dot Right CPLT -- AUX FUEL PANEL [460] = "%.4f", -- Aux Fuel Transfer Mode MAN/OFF/AUTO [461] = "%.4f", -- Aux Fuel Manual Transfer RIGHT/BOTH/LEFT [462] = "%.4f", -- Aux Fuel Transfer From OUTBD/INBD [463] = "%.4f", -- Aux Fuel Pressurization Selector [470] = "%.4f", -- Copilot Door [471] = "%.4f", -- Pilot Door [472] = "%.4f", -- Left Gunner Window [473] = "%.4f", -- Right Gunner Window [474] = "%.4f", -- Left Cargo Door [475] = "%.4f", -- Right Cargo Door -- AN/ASN-128B GPS/DPLR [500] = "%.4f", -- AN/ASN-128B Display Selector [501] = "%0.2f", -- AN/ASN-128B Mode Selector [502] = "%.4f", -- AN/ASN-128B Btn KYBD [503] = "%.4f", -- AN/ASN-128B Btn LTR LEFT [504] = "%.4f", -- AN/ASN-128B Btn LTR MID [505] = "%.4f", -- AN/ASN-128B Btn LTR RIGHT [506] = "%.4f", -- AN/ASN-128B Btn F1 [507] = "%.4f", -- AN/ASN-128B Btn 1 [508] = "%.4f", -- AN/ASN-128B Btn 2 [509] = "%.4f", -- AN/ASN-128B Btn 3 [510] = "%.4f", -- AN/ASN-128B Btn TGT STR [511] = "%.4f", -- AN/ASN-128B Btn 4 [512] = "%.4f", -- AN/ASN-128B Btn 5 [513] = "%.4f", -- AN/ASN-128B Btn 6 [514] = "%.4f", -- AN/ASN-128B Btn INC [515] = "%.4f", -- AN/ASN-128B Btn 7 [516] = "%.4f", -- AN/ASN-128B Btn 8 [517] = "%.4f", -- AN/ASN-128B Btn 9 [518] = "%.4f", -- AN/ASN-128B Btn DEC [519] = "%.4f", -- AN/ASN-128B Btn CLR [520] = "%.4f", -- AN/ASN-128B Btn 0 [521] = "%.4f", -- AN/ASN-128B Btn ENT -- Countermeasures Panel [552] = "%.4f", -- Flare Counter Knob [553] = "%.4f", -- Chaff COunter Knob [554] = "%.4f", -- Flare 1st Digit [555] = "%.4f", -- Flare 2nd Digit [556] = "%.4f", -- Chaff 1st Digit [557] = "%.4f", -- Chaff 2nd Digit [558] = "%.4f", -- Countermeasures Arm Light [559] = "%.4f", -- Countermeasures Arming Switch [560] = "%.4f", -- Chaff Dispenser Mode Selector [561] = "%.4f", -- Chaff Dispense -- AN/ARC-201 (FM1) PLT [600] = "%0.2f", -- AN/ARC-201 (FM1) Preset Selector [601] = "%0.2f", -- AN/ARC-201 (FM1) Function Selector [602] = "%0.2f", -- AN/ARC-201 (FM1) Power Selector [603] = "%0.2f", -- AN/ARC-201 (FM1) Mode Selector [604] = "%.4f", -- AN/ARC-201 (FM1) Volume [605] = "%.4f", -- AN/ARC-201 (FM1) Btn 1 [606] = "%.4f", -- AN/ARC-201 (FM1) Btn 2 [607] = "%.4f", -- AN/ARC-201 (FM1) Btn 3 [608] = "%.4f", -- AN/ARC-201 (FM1) Btn 4 [609] = "%.4f", -- AN/ARC-201 (FM1) Btn 5 [610] = "%.4f", -- AN/ARC-201 (FM1) Btn 6 [611] = "%.4f", -- AN/ARC-201 (FM1) Btn 7 [612] = "%.4f", -- AN/ARC-201 (FM1) Btn 8 [613] = "%.4f", -- AN/ARC-201 (FM1) Btn 9 [614] = "%.4f", -- AN/ARC-201 (FM1) Btn 0 [615] = "%.4f", -- AN/ARC-201 (FM1) Btn CLR [616] = "%.4f", -- AN/ARC-201 (FM1) Btn ENT [617] = "%.4f", -- AN/ARC-201 (FM1) Btn FREQ [618] = "%.4f", -- AN/ARC-201 (FM1) Btn ERF/OFST [619] = "%.4f", -- AN/ARC-201 (FM1) Btn TIME -- AN/ARN-149 ADF [620] = "%0.4f", -- AN/ARN-149 PRESET Selector [621] = "%.4f", -- AN/ARN-149 TONE/OFF/TEST [622] = "%.4f", -- AN/ARN-149 Volume [623] = "%.4f", -- AN/ARN-149 TAKE CMD (Inop.) [624] = "%0.1f", -- AN/ARN-149 POWER Selector [625] = "%.4f", -- AN/ARN-149 1000s KHz Selector [626] = "%.4f", -- AN/ARN-149 100s KHz Selector [627] = "%.4f", -- AN/ARN-149 10s KHz Selector [628] = "%.4f", -- AN/ARN-149 10s KHz Selector [629] = "%.4f", -- AN/ARN-149 .1s KHz Selector [631] = "%.4f", -- ??? -- AN/ARN-147 [650] = "%0.1f", -- AN/ARN-147 MHz Selector [651] = "%0.1f", -- AN/ARN-147 KHz Selector [652] = "%.4f", -- AN/ARN-147 Marker Beacon HI/LO Switch (Inop.) [653] = "%.4f", -- AN/ARN-147 Power Selector OFF/ON/TEST [654] = "%.4f", -- AN/ARN-147 Display 100s [655] = "%.4f", -- AN/ARN-147 Display 10s [656] = "%.4f", -- AN/ARN-147 Display 1s [657] = "%.4f", -- AN/ARN-147 Display .1s [658] = "%.4f", -- AN/ARN-147 Display .01s [659] = "%.4f", -- AN/ARN-147 Display .001s -- AN/ARC-201 (FM2) CPLT [700] = "%0.2f", -- AN/ARC-201 (FM2) Preset Selector [701] = "%0.2f", -- AN/ARC-201 (FM2) Function Selector [702] = "%0.2f", -- AN/ARC-201 (FM2) Power Selector [703] = "%0.2f", -- AN/ARC-201 (FM2) Mode Selector [704] = "%.4f", -- AN/ARC-201 (FM2) Volume [705] = "%.4f", -- AN/ARC-201 (FM2) Btn 1 [706] = "%.4f", -- AN/ARC-201 (FM2) Btn 2 [707] = "%.4f", -- AN/ARC-201 (FM2) Btn 3 [708] = "%.4f", -- AN/ARC-201 (FM2) Btn 4 [709] = "%.4f", -- AN/ARC-201 (FM2) Btn 5 [710] = "%.4f", -- AN/ARC-201 (FM2) Btn 6 [711] = "%.4f", -- AN/ARC-201 (FM2) Btn 7 [712] = "%.4f", -- AN/ARC-201 (FM2) Btn 8 [713] = "%.4f", -- AN/ARC-201 (FM2) Btn 9 [714] = "%.4f", -- AN/ARC-201 (FM2) Btn 0 [715] = "%.4f", -- AN/ARC-201 (FM2) Btn CLR [716] = "%.4f", -- AN/ARC-201 (FM2) Btn ENT [717] = "%.4f", -- AN/ARC-201 (FM2) Btn FREQ [718] = "%.4f", -- AN/ARC-201 (FM2) Btn ERF/OFST [719] = "%.4f", -- AN/ARC-201 (FM2) Btn TIME [930] = "%.4f", -- CIS Heading Mode ON/OFF [931] = "%.4f", -- CIS Nav Mode ON/OFF [932] = "%.4f", -- CIS Altitude Hold Mode ON/OFF -- Vertical Situation Indicator (VSI) [980] = "%.4f", -- Vertical Situation Indicator (VSI) GA Indication Light Pilot [981] = "%.4f", -- Vertical Situation Indicator (VSI) Decision Height (DH) Light Pilot [982] = "%.4f", -- Vertical Situation Indicator (VSI) MB Indication Light Pilot 3 [983] = "%.4f", -- Vertical Situation Indicator (VSI) GA Indication Light CPilot 1 [984] = "%.4f", -- Vertical Situation Indicator (VSI) Decision Height (DH) Light CPilot [985] = "%.4f", -- Vertical Situation Indicator (VSI) MB Indication Light CPilot 3 -- AN/AVS-7 HUD Heads Up Display [1100] = "%.4f", -- AN/AVS-7 Power Switch OFF/ON/ADJUDST [1106] = "%.4f", -- Pilot Dim Bright [1201] = "%.4f", -- ??? [1202] = "%.4f", -- ??? [1203] = "%.4f", -- ??? [1204] = "%.4f", -- ??? [1205] = "%.4f", -- ??? [1206] = "%.4f", -- ??? [3406] = "%.4f", -- Stab Position Needle [3407] = "%.4f", -- Stab Position Flag } --you should put switches in here. ExportScript.ConfigArguments = { } function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) end function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) ExportScript.Radios(mainPanelDevice) ExportScript.FlightInstruments(mainPanelDevice) ExportScript.NavInstruments(mainPanelDevice) ExportScript.NavModes(mainPanelDevice) ExportScript.VrsCalculator(mainPanelDevice) ExportScript.PlayWithFire2(mainPanelDevice) ExportScript.UhfSuperFromListIndication(mainPanelDevice) --ExportScript.HiLowCalculator(mainPanelDevice)--Not implemented end function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) end -- -- -- -- -- -- -- -- -- -- -- -- Custom Functions -- -- -- -- -- -- -- -- -- -- -- -- function ExportScript.Radios(mainPanelDevice) -- ADF Radio local ADF_digit1 = round(mainPanelDevice:get_argument_value(625)*2,0) local ADF_digit2 = round(mainPanelDevice:get_argument_value(626)*10,0) local ADF_digit3 = round(mainPanelDevice:get_argument_value(627)*10,0) local ADF_digit4 = round(mainPanelDevice:get_argument_value(628)*10,0) local ADF_digit5 = round(mainPanelDevice:get_argument_value(629)*10,0) local ADF_freq = string.format("%4.1f", ADF_digit1 .. ADF_digit2 .. ADF_digit3 .. ADF_digit4 .. "." .. ADF_digit5) ADF_freq = trim(ADF_freq) if #ADF_freq == 3 then --1.0 to 0001.0 ADF_freq = "000" .. ADF_freq elseif #ADF_freq == 4 then --10.0 to 0010.0 ADF_freq = "00" .. ADF_freq elseif #ADF_freq == 5 then --100.0 to 0100.0 ADF_freq = "0" .. ADF_freq end ExportScript.Tools.SendData(4000, "ADF KHz\n" .. ADF_freq) -- Uhf new method local UHF_freq = string.format("%3.3f", GetDevice(5):get_frequency()/1000000) ExportScript.Tools.SendData(4001,"UHF MHz\n" .. UHF_freq) -- FM1 local FM1_freq = string.format("%3.2f", GetDevice(6):get_frequency()/100000) ExportScript.Tools.SendData(4002, "FM1 MHz\n" .. FM1_freq) -- FM2 local FM2_freq = string.format("%3.2f", GetDevice(10):get_frequency()/100000) ExportScript.Tools.SendData(4003, "FM2 MHz\n" .. FM2_freq) -- VHF local VHF_freq = string.format("%3.3f", GetDevice(8):get_frequency()/1000000) ExportScript.Tools.SendData(4004, "VHF MHz\n" .. VHF_freq) -- VOR/ILS Nav Radio local NAV_digit1 = round(mainPanelDevice:get_argument_value(654) * 10,0) local NAV_digit2 = round(mainPanelDevice:get_argument_value(655) * 10,0) local NAV_digit3 = round(mainPanelDevice:get_argument_value(656) * 10,0) local NAV_digit4 = round(mainPanelDevice:get_argument_value(657) * 10,0) local NAV_digit5 = round(mainPanelDevice:get_argument_value(658) * 10,0) local NAV_digit6 = round(mainPanelDevice:get_argument_value(659) * 10,0) local NAV_freq = string.format("%3.3f", NAV_digit1 .. NAV_digit2 .. NAV_digit3 .. "." .. NAV_digit4 .. NAV_digit5 ..NAV_digit6) ExportScript.Tools.SendData(4005, "NAV MHz\n" .. NAV_freq) --https://emojipedia.org/black-circle/ --🟒 green circle. trust me --βšͺ white circle --⚫ black circle --πŸ”΅ blue circle --πŸ”˜ radio button circle --πŸ”΄ red circle --🟑 yellow circle --❌ red X --ExportScript.Tools.SendData(xxxx, "🟒βšͺ⚫") --ExportScript.Tools.SendData(xxxx, "πŸ”΅πŸ”˜πŸ”΄") --if a radio is off then red --if radio on then yellow --if radio on and selected then green --if radio off and selected then red X local radio1_FmPlt_status local radio2_uhf_status local radio3_vhf_status local radio4_FmCPlt_status local radio5_hf_status --not implemented local radio0_ics_Status --=========================new logi==================================== --logic for ics radio0_ics_Status = "πŸ”˜"--radio circle if round(mainPanelDevice:get_argument_value(400)*10,0) == 0 then radio0_ics_Status = "🟒"--green circle end --logic for radio 1 FM radio1_FmPlt_status = "πŸ”΄"--red if round(mainPanelDevice:get_argument_value(400)*10,0) == 2 and round(mainPanelDevice:get_argument_value(601)*100,0) == 2 then --if selected and on radio1_FmPlt_status = "🟒"--green circle elseif round(mainPanelDevice:get_argument_value(400)*10,0) == 2 and round(mainPanelDevice:get_argument_value(601)*100,0) ~= 2 then --selected and off radio1_FmPlt_status = "❌"--green circle elseif round(mainPanelDevice:get_argument_value(400)*10,0) ~= 2 and round(mainPanelDevice:get_argument_value(601)*100,0) == 2 then --not selected and on radio1_FmPlt_status = "🟑"--yellow end --logic for radio 2 uhf radio2_uhf_status = "πŸ”΄"--red if round(mainPanelDevice:get_argument_value(400)*10,0) == 4 and round(mainPanelDevice:get_argument_value(50)*100,0) == 1 then --if selected and on radio2_uhf_status = "🟒"--green circle elseif round(mainPanelDevice:get_argument_value(400)*10,0) == 4 and round(mainPanelDevice:get_argument_value(50)*100,0) ~= 1 then --selected and off radio2_uhf_status = "❌"--red X elseif round(mainPanelDevice:get_argument_value(400)*10,0) ~= 4 and round(mainPanelDevice:get_argument_value(50)*100,0) == 1 then --not selected and on radio2_uhf_status = "🟑"--yellow --[[ elseif round(mainPanelDevice:get_argument_value(400)*10,0) ~= 4 and round(mainPanelDevice:get_argument_value(50)*100,0) ~= 1 --not selected and off radio2_uhf_status = "πŸ”΄"--red ]] --this last one causes an error, but because i set the condition to red at the start, it actually handles the condition. yay! end --logic for radio 3 vhf radio3_vhf_status = "πŸ”΄"--red if round(mainPanelDevice:get_argument_value(400)*10,0) == 6 and mainPanelDevice:get_argument_value(419) == 0.5 then --if selected and on radio3_vhf_status = "🟒"--green circle elseif round(mainPanelDevice:get_argument_value(400)*10,0) == 6 and mainPanelDevice:get_argument_value(419) ~= 0.5 then --selected and off radio3_vhf_status = "❌"--red X elseif round(mainPanelDevice:get_argument_value(400)*10,0) ~= 6 and mainPanelDevice:get_argument_value(419) == 0.5 then --not selected and on radio3_vhf_status = "🟑"--yellow end --logic for radio 4 FmCPlt radio4_FmCPlt_status = "πŸ”΄"--red if round(mainPanelDevice:get_argument_value(400)*10,0) == 8 and round(mainPanelDevice:get_argument_value(701)*100,0) == 2 then --if selected and on radio4_FmCPlt_status = "🟒"--green circle elseif round(mainPanelDevice:get_argument_value(400)*10,0) == 8 and round(mainPanelDevice:get_argument_value(701)*100,0) ~= 2 then --selected and off radio4_FmCPlt_status = "❌"--red X elseif round(mainPanelDevice:get_argument_value(400)*10,0) ~= 8 and round(mainPanelDevice:get_argument_value(701)*100,0) == 2 then --not selected and on radio4_FmCPlt_status = "🟑"--yellow end --logic for radio 5 radio5_hf_status radio5_hf_status = "πŸ”΄"--red --whenever this is implemented, change the "get_argument_value(xxx) == 5" part to whatever the number is --[[ if round(mainPanelDevice:get_argument_value(400)*10,0) == 10 and mainPanelDevice:get_argument_value(419) == 0.5 then --if selected and on radio5_hf_status = "🟒"--green circle elseif round(mainPanelDevice:get_argument_value(400)*10,0) == 10 and mainPanelDevice:get_argument_value(419) ~= 0.5 then --selected and off radio5_hf_status = "❌"--red X elseif round(mainPanelDevice:get_argument_value(400)*10,0) ~= 10 and mainPanelDevice:get_argument_value(419) == 0.5 then --not selected and on radio5_hf_status = "🟑"--yellow end ]] if round(mainPanelDevice:get_argument_value(400)*10,0) == 10 then --selected and off radio5_hf_status = "❌"--red X end ExportScript.Tools.SendData(4007, radio0_ics_Status .. "ICS \n" .. radio1_FmPlt_status .. "FM 1 \n" .. radio2_uhf_status .. "UHF ") ExportScript.Tools.SendData(4008, radio3_vhf_status .. "VHF \n" .. radio4_FmCPlt_status .. "FM 2\n" .. radio5_hf_status .. "HF ") end function ExportScript.FlightInstruments(mainPanelDevice) -- TODO: this will need to be adjusted later because the arg is not linear local airspeedIndicator = round(mainPanelDevice:get_argument_value(100)*250,0) ExportScript.Tools.SendData(4009, "Kts\n" .. airspeedIndicator) -- TODO: this will need to be adjusted later because the arg is not linear local verticalSpeedIndicator = round(mainPanelDevice:get_argument_value(103)*4000,0) verticalSpeedIndicator = format_int(verticalSpeedIndicator) --puts a comma in it ExportScript.Tools.SendData(4010, "VS\n" .. verticalSpeedIndicator) local compassDegrees_PLT = round(mainPanelDevice:get_argument_value(132)*360,0) local compassDegrees_CPLT = round(mainPanelDevice:get_argument_value(152)*360,0) -- logic for keeping the compass readouts as three digits local compassDegrees_PLT_string = addZeros3(compassDegrees_PLT) local compassDegrees_CPLT_string = addZeros3(compassDegrees_CPLT) local radarAltimeterDisplay local radarAltimeterDisplay_1000s = round(mainPanelDevice:get_argument_value(174)*10,0) local radarAltimeterDisplay_100s = round(mainPanelDevice:get_argument_value(175)*10,0) local radarAltimeterDisplay_10s = round(mainPanelDevice:get_argument_value(176)*10,0) local radarAltimeterDisplay_1s = round(mainPanelDevice:get_argument_value(177)*10,0) -- logic for the top end of the arg if radarAltimeterDisplay_1000s == 10 then radarAltimeterDisplay_1000s = 0 end if radarAltimeterDisplay_100s == 10 then radarAltimeterDisplay_100s = 0 end if radarAltimeterDisplay_10s == 10 then radarAltimeterDisplay_10s = 0 end if radarAltimeterDisplay_1s == 10 then radarAltimeterDisplay_1s = 0 end --there is a slight bug with the animation with the math.floor code -- the 9 does not actually reach 0.9, so the code things it is still 8k ft for 1000s -- TODO: create a solution for altitudes between 9,000ft and about 9,800 ft local baroAltimeterDisplay local baroAltimeterDisplay_100s = round(mainPanelDevice:get_argument_value(60)*1000,0) local baroAltimeterDisplay_1000s = math.floor(mainPanelDevice:get_argument_value(61)*10) * 1000 local baroAltimeterDisplay_10000s = math.floor(mainPanelDevice:get_argument_value(62)*10) * 10000 baroAltimeterDisplay = baroAltimeterDisplay_100s + baroAltimeterDisplay_1000s + baroAltimeterDisplay_10000s -- put it all together radarAltimeterDisplay = string.format("%.1d" , radarAltimeterDisplay_1000s .. radarAltimeterDisplay_100s .. radarAltimeterDisplay_10s .. radarAltimeterDisplay_1s) local radarAltimeterDisplay_withComma = format_int(radarAltimeterDisplay) --put a comma local altitudeToDisplay = radarAltimeterDisplay_withComma local altitudeSign = "R" -- Determines which sign the use for the altitude if radarAltimeterDisplay == "1500" or mainPanelDevice:get_argument_value(182) < 0.5 then -- this is the max limit of the radalt and the radalt flag off, so use baro. altitudeToDisplay = format_int(baroAltimeterDisplay) altitudeSign = "B" end ExportScript.Tools.SendData(4011, "ALT\n" .. altitudeToDisplay .. " " .. altitudeSign) -- Pilot Tile ExportScript.Tools.SendData(4034, "HDG " .. compassDegrees_PLT_string .. "\nKts " .. airspeedIndicator .. "\nALT " .. altitudeToDisplay .. "\nVSI " .. verticalSpeedIndicator) -- Copilot Tile ExportScript.Tools.SendData(4035, "HDG " .. compassDegrees_CPLT_string .. "\nKts " .. airspeedIndicator .. "\nALT " .. altitudeToDisplay .. "\nVSI " .. verticalSpeedIndicator) end function ExportScript.NavInstruments(mainPanelDevice) -- Pilot Side local compassDegrees_PLT = round(mainPanelDevice:get_argument_value(132)*360,0) local compassDegrees_PLT_string = addZeros3(compassDegrees_PLT) --bug readings --all bugs are to the compass itself local hsiHeadingBug_PLT = round(mainPanelDevice:get_argument_value(133)*360,0) hsiHeadingBug_PLT = addZeros3(hsiHeadingBug_PLT) --ExportScript.Tools.SendData(5002, hsiHeadingBug_PLT) local hsiBearingNeedle_1_PLT = round(mainPanelDevice:get_argument_value(134)*360,0) hsiBearingNeedle_1_PLT = addZeros3(hsiBearingNeedle_1_PLT) --ExportScript.Tools.SendData(5003, hsiBearingNeedle_1_PLT) local hsiBearingNeedle_2_PLT = round(mainPanelDevice:get_argument_value(135)*360,0) hsiBearingNeedle_2_PLT = addZeros3(hsiBearingNeedle_2_PLT) --ExportScript.Tools.SendData(5004, hsiBearingNeedle_2_PLT) local courseWindow_PLT_100s = round((mainPanelDevice:get_argument_value(143)*10),0) local courseWindow_PLT_10s = round((mainPanelDevice:get_argument_value(144)*10),0) local courseWindow_PLT_1s = round((mainPanelDevice:get_argument_value(145)*10),0) local courseWindow_PLT = string.format("%.1d" , courseWindow_PLT_100s .. courseWindow_PLT_10s .. courseWindow_PLT_1s) courseWindow_PLT = addZeros3(courseWindow_PLT) local distanceWindow_100s = round((mainPanelDevice:get_argument_value(139)*10),0) local distanceWindow_10s = round((mainPanelDevice:get_argument_value(140)*10),0) local distanceWindow_1s = round((mainPanelDevice:get_argument_value(141)*10),0) local distanceWindow_01s = round((mainPanelDevice:get_argument_value(142)*10),0) local distanceWindow if mainPanelDevice:get_argument_value(148) > 0.5 then --this is the dme flag, distanceWindow = "XXXX.X" distanceWindow = string.format("%s" , distanceWindow_100s .. "ΜΆ" .. distanceWindow_10s .. "ΜΆ" .. distanceWindow_1s .. "ΜΆ.ΜΆ" .. distanceWindow_01s .. "ΜΆ") else distanceWindow = string.format("%s" , distanceWindow_100s .. distanceWindow_10s .. distanceWindow_1s .. "." .. distanceWindow_01s) end ExportScript.Tools.SendData(4054, distanceWindow .. "\nKM") -- Copilot Side local compassDegrees_CPLT = round(mainPanelDevice:get_argument_value(152)*360,0) local compassDegrees_CPLT_string = addZeros3(compassDegrees_CPLT) local hsiHeadingBug_CPLT = round(mainPanelDevice:get_argument_value(153)*360,0) hsiHeadingBug_CPLT = addZeros3(hsiHeadingBug_CPLT) --ExportScript.Tools.SendData(5002, hsiHeadingBug_CPLT) local hsiBearingNeedle_1_CPLT = round(mainPanelDevice:get_argument_value(154)*360,0) hsiBearingNeedle_1_CPLT = addZeros3(hsiBearingNeedle_1_CPLT) --ExportScript.Tools.SendData(5003, hsiBearingNeedle_1_CPLT) local hsiBearingNeedle_2_CPLT = round(mainPanelDevice:get_argument_value(155)*360,0) hsiBearingNeedle_2_CPLT = addZeros3(hsiBearingNeedle_2_CPLT) --ExportScript.Tools.SendData(5004, hsiBearingNeedle_2_CPLT) local courseWindow_CPLT_100s = round((mainPanelDevice:get_argument_value(163)*10),0) local courseWindow_CPLT_10s = round((mainPanelDevice:get_argument_value(164)*10),0) local courseWindow_CPLT_1s = round((mainPanelDevice:get_argument_value(165)*10),0) local courseWindow_CPLT = string.format("%.1d" , courseWindow_CPLT_100s .. courseWindow_CPLT_10s .. courseWindow_CPLT_1s) courseWindow_CPLT = addZeros3(courseWindow_CPLT) ExportScript.Tools.SendData(4044, "CRS\n" .. courseWindow_PLT .. "Β°") ExportScript.Tools.SendData(4045, "CRS\n" .. courseWindow_CPLT .. "Β°") ExportScript.Tools.SendData(4046, "HDG\n" .. compassDegrees_PLT_string .. "Β°") ExportScript.Tools.SendData(4047, "HDG\n" .. compassDegrees_CPLT_string .. "Β°") ExportScript.Tools.SendData(4048, "BUG\n" .. hsiHeadingBug_PLT .. "Β°") ExportScript.Tools.SendData(4049, "BUG\n" .. hsiHeadingBug_CPLT .. "Β°") ExportScript.Tools.SendData(4050, "N1\n" .. hsiBearingNeedle_1_PLT .. "Β°") ExportScript.Tools.SendData(4051, "N1\n" .. hsiBearingNeedle_1_CPLT .. "Β°") ExportScript.Tools.SendData(4052, "N2\n" .. hsiBearingNeedle_2_PLT .. "Β°") ExportScript.Tools.SendData(4053, "N2\n" .. hsiBearingNeedle_2_CPLT .. "Β°") -- Pilot Tile Nav ExportScript.Tools.SendData(4036, "HDG " .. compassDegrees_PLT_string .. "\nBUG " .. hsiHeadingBug_PLT .. "\nN1 " .. hsiBearingNeedle_1_PLT .. "\nN2 " .. hsiBearingNeedle_2_PLT) -- Copilot Tile Nav ExportScript.Tools.SendData(4037, "HDG " .. compassDegrees_CPLT_string .. "\nBUG " .. hsiHeadingBug_CPLT .. "\nN1 " .. hsiBearingNeedle_1_CPLT .. "\nN2 " .. hsiBearingNeedle_2_CPLT) -- Pilot Tile GPS Nav ExportScript.Tools.SendData(4038, "HDG " .. compassDegrees_PLT_string .. "\nBUG " .. hsiHeadingBug_PLT .. "\nCRS " .. courseWindow_PLT .. "\nN1 " .. hsiBearingNeedle_1_PLT) -- Copilot Tile GPS Nav ExportScript.Tools.SendData(4039, "HDG " .. compassDegrees_CPLT_string .. "\nBUG " .. hsiHeadingBug_CPLT .. "\nCRS " .. courseWindow_CPLT .. "\nN1 " .. hsiBearingNeedle_1_CPLT) -- Pilot Tile VOR/NDB NAV ExportScript.Tools.SendData(4040, "HDG " .. compassDegrees_PLT_string .. "\nBUG " .. hsiHeadingBug_PLT .. "\nCRS " .. courseWindow_PLT .. "\nN2 " .. hsiBearingNeedle_2_PLT) -- Copilot Tile VOR/NDB NAV ExportScript.Tools.SendData(4041, "HDG " .. compassDegrees_CPLT_string .. "\nBUG " .. hsiHeadingBug_CPLT .. "\nCRS " .. courseWindow_CPLT .. "\nN2 " .. hsiBearingNeedle_2_CPLT) end function ExportScript.NavModes(mainPanelDevice) --this function will serve to blank out any modes that are not "on" local blockingText_hdg = "" local blockingText_nav = "" local blockingText_alt = "" local blockingText_dplrGps = "" local blockingText_vorIls = "" local blockingText_backCrs = "" local blockingText_FmHome = "" local blockingText = "β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ" .. "\nβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ" .."\nβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ" .."\nβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ" local isHdgOn if mainPanelDevice:get_argument_value(206) < 0.5 then isHdgOn = 0 blockingText_hdg = blockingText else isHdgOn = 1 end local isNavOn if mainPanelDevice:get_argument_value(206) < 0.5 then isNavOn = 0 blockingText_nav = blockingText else isNavOn = 1 end local isAltOn if mainPanelDevice:get_argument_value(206) < 0.5 then isAltOn = 0 blockingText_alt = blockingText else isAltOn = 1 end local isDplrGpsOn if mainPanelDevice:get_argument_value(215) < 0.5 or mainPanelDevice:get_argument_value(206) < 0.5 then isDplrGpsOn = 0 blockingText_dplrGps = blockingText else isDplrGpsOn = 1 end local isVorIlsOn if mainPanelDevice:get_argument_value(216) > 0.5 or mainPanelDevice:get_argument_value(206) > 0.5 and mainPanelDevice:get_argument_value(217) > 0.5 then isVorIlsOn = 1 else isVorIlsOn = 0 blockingText_vorIls = blockingText end local isBackCrsOn if mainPanelDevice:get_argument_value(218) < 0.5 or mainPanelDevice:get_argument_value(206) < 0.5 then isBackCrsOn = 0 blockingText_backCrs = blockingText else isBackCrsOn = 1 end local isFmHomeOn -- Devs said this isnt implemented in the sim yet if mainPanelDevice:get_argument_value(219) < 0.5 or mainPanelDevice:get_argument_value(206) < 0.5 then isFmHomeOn = 0 blockingText_FmHome = blockingText else isFmHomeOn = 1 end local blockingText_turnRate = "" local blockingText_crsHdg = "" local blockingText_vertGyro = "" local blockingText_brg2 = "" local isTurnRateOn if mainPanelDevice:get_argument_value(206) < 0.5 then isTurnRateOn = 0 blockingText_turnRate = blockingText else isTurnRateOn = 1 end local isCrsHdgOn if mainPanelDevice:get_argument_value(206) < 0.5 then isCrsHdgOn = 0 blockingText_crsHdg = blockingText else isCrsHdgOn = 1 end local isVertGyroOn if mainPanelDevice:get_argument_value(206) < 0.5 then isVertGyroOn = 0 blockingText_vertGyro = blockingText else isVertGyroOn = 1 end local isBrg2On if mainPanelDevice:get_argument_value(206) < 0.5 then isBrg2On = 0 blockingText_brg2 = blockingText else isBrg2On = 1 end ExportScript.Tools.SendData(4026, isTurnRateOn) ExportScript.Tools.SendData(4027, blockingText_turnRate) ExportScript.Tools.SendData(4028, isCrsHdgOn) ExportScript.Tools.SendData(4029, blockingText_crsHdg) ExportScript.Tools.SendData(4030, isVertGyroOn) ExportScript.Tools.SendData(4031, blockingText_vertGyro) ExportScript.Tools.SendData(4032, isBrg2On) ExportScript.Tools.SendData(4033, blockingText_brg2) ExportScript.Tools.SendData(4020, isHdgOn) ExportScript.Tools.SendData(4021, blockingText_hdg) ExportScript.Tools.SendData(4022, isNavOn) ExportScript.Tools.SendData(4023, blockingText_nav) ExportScript.Tools.SendData(4024, isAltOn) ExportScript.Tools.SendData(4025, blockingText_alt) ExportScript.Tools.SendData(4012, isDplrGpsOn) ExportScript.Tools.SendData(4013, blockingText_dplrGps) ExportScript.Tools.SendData(4014, isVorIlsOn) ExportScript.Tools.SendData(4015, blockingText_vorIls) ExportScript.Tools.SendData(4016, isBackCrsOn) ExportScript.Tools.SendData(4017, blockingText_backCrs) ExportScript.Tools.SendData(4018, isFmHomeOn) ExportScript.Tools.SendData(4019, blockingText_FmHome) end function ExportScript.VrsCalculator(mainPanelDevice) --this is a VRS calculator --Conditions for vrs are Out of ground effect (30meters high), less than 30 kts, and more than 500fpm decent --this translates to 90 radalt, 30kts, 500 fpm --we can add a buffer so that its 50ft, 50kts, 300fpm local limit_altitude = 100 local limit_airspeed = 0.155 -- arg [100] -- 0.155 is about 50 -- 0.390 is about 100 -- 0.081 is about 30 local limit_fpm = -0.130 --[103] = "%.4f", -- Vertical Speed Indicator (VSI) -- 2000 is about -0.500 -- 1000 is about -0.242 -- 500 is about -0.130 -- 300 is about -0.082 local isAltitudeTriggered = 0 local isAirspeedTriggered = 0 local isVsiTriggered = 0 local isInVrs = 0 local radarAltimeterDisplay local radarAltimeterDisplay_1000s = round(mainPanelDevice:get_argument_value(174)*10,0) local radarAltimeterDisplay_100s = round(mainPanelDevice:get_argument_value(175)*10,0) local radarAltimeterDisplay_10s = round(mainPanelDevice:get_argument_value(176)*10,0) local radarAltimeterDisplay_1s = round(mainPanelDevice:get_argument_value(177)*10,0) -- logic for the top end of the arg if radarAltimeterDisplay_1000s == 10 then radarAltimeterDisplay_1000s = 0 end if radarAltimeterDisplay_100s == 10 then radarAltimeterDisplay_100s = 0 end if radarAltimeterDisplay_10s == 10 then radarAltimeterDisplay_10s = 0 end if radarAltimeterDisplay_1s == 10 then radarAltimeterDisplay_1s = 0 end radarAltimeterDisplay = string.format("%.1d" , radarAltimeterDisplay_1000s .. radarAltimeterDisplay_100s .. radarAltimeterDisplay_10s .. radarAltimeterDisplay_1s) ExportScript.Tools.SendData(4042, "RADALT\n" .. radarAltimeterDisplay .. " ft") if tonumber(radarAltimeterDisplay) < limit_altitude then isAltitudeTriggered = 1 end if mainPanelDevice:get_argument_value(100) < limit_airspeed then isAirspeedTriggered = 1 end -- TODO: this will need to be adjusted later because the arg is not linear if mainPanelDevice:get_argument_value(103) < limit_fpm then -- sign is flipped becase its a neg number isVsiTriggered = 1 end if isAltitudeTriggered == 1 and isAirspeedTriggered == 1 and isVsiTriggered == 1 then isInVrs = 1 end ExportScript.Tools.SendData(4043, isInVrs) end function ExportScript.HiLowCalculator(mainPanelDevice) --TODO: maybe --[[ -- Radar Altimeter PLT β–ˆ [173] = "%.4f", -- Radar Altimeter Indicator Needle PLT [178] = "%.4f", -- Radar Altimeter Low Bug PLT [179] = "%.4f", -- Radar Altimeter High Bug PLT [180] = "%.4f", -- Radar Altimeter Low Flag PLT [181] = "%.4f", -- Radar Altimeter High Flag PLT [182] = "%.4f", -- Radar Altimeter Off Flag PLT ]] local isFlagHi = 0 if mainPanelDevice:get_argument_value(181) > 0.5 then isFlagHi = 1 end local isFlagLo = 0 if mainPanelDevice:get_argument_value(180) > 0.5 then isFlagLo = 1 end end function ExportScript.PlayWithFire2(mainPanelDevice) -- Container for all of the cockpit parameters -- local cockpitParamContainer = getCockpitParam() -- temp ExportScript.Tools.SendData(9997, string.format (".2f",cockpitParamContainer.SND_ALWS_COCKPIT_RATTLE)) ExportScript.Tools.SendData(9998, string.format (".2f",cockpitParamContainer.SND_ALWS_COCKPIT_RATTLE/100)) ExportScript.Tools.SendData(9999,string.format( "%.2f~%.2f~%.2f", cockpitParamContainer.SND_ALWS_COCKPIT_RATTLE/100, cockpitParamContainer.SND_ALWS_COCKPIT_RATTLE/100, cockpitParamContainer.SND_ALWS_COCKPIT_RATTLE/100 )) ---------------- -- Engine TRQ -- ---------------- local PDU_PLT_E1_TRQ = string.format("%.0f", cockpitParamContainer.PDU_PLT_E1_TRQ) local PDU_PLT_E2_TRQ = string.format("%.0f", cockpitParamContainer.PDU_PLT_E2_TRQ) ExportScript.Tools.SendData(4200, "TRQ 1\n" .. PDU_PLT_E1_TRQ .. "%") ExportScript.Tools.SendData(4201, "TRQ 2\n" .. PDU_PLT_E2_TRQ .. "%") ExportScript.Tools.SendData(4202, "TRQ" .. "\n1-" .. PDU_PLT_E1_TRQ .. "%" .. "\n2-" .. PDU_PLT_E2_TRQ .. "%") local is_E1_TRQ_emer = 0 local is_E2_TRQ_emer = 0 local is_TRQ_emer = 0 local TRQ_caut_limit = 100 local TRQ_warn_limit = 135 if tonumber(PDU_PLT_E1_TRQ) > TRQ_caut_limit then is_E1_TRQ_emer = 1 end if tonumber(PDU_PLT_E2_TRQ) > TRQ_caut_limit then is_E2_TRQ_emer = 1 end if is_E1_TRQ_emer == 1 or is_E2_TRQ_emer == 1 then is_TRQ_emer = 1 end ExportScript.Tools.SendData(4300, is_E1_TRQ_emer) ExportScript.Tools.SendData(4301, is_E2_TRQ_emer) ExportScript.Tools.SendData(4302, is_TRQ_emer) ------------------- -- Engine TRQ END-- ------------------- ---------------- -- Engine RPM -- ---------------- local PDU_PLT_E1NP_HI = string.format("%.0f", cockpitParamContainer.PDU_PLT_E1NP_HI) local PDU_PLT_RRPM_HI = string.format("%.0f", cockpitParamContainer.PDU_PLT_RRPM_HI) local PDU_PLT_E2NP_HI = string.format("%.0f", cockpitParamContainer.PDU_PLT_E2NP_HI) ExportScript.Tools.SendData(4203, "RPM 1\n" .. PDU_PLT_E1NP_HI .. "%") ExportScript.Tools.SendData(4204, "RRPM\n" .. PDU_PLT_RRPM_HI .. "%") ExportScript.Tools.SendData(4205, "RPM 2\n" .. PDU_PLT_E2NP_HI .. "%") ExportScript.Tools.SendData(4206, "RPM\n" .. "1-" .. PDU_PLT_E1NP_HI .. "%" .. "\nR-" .. PDU_PLT_RRPM_HI .. "%" .. "\n2-" .. PDU_PLT_E2NP_HI .. "%") local is_E1_NP_emer = 0 local is_RRPM_emer = 0 local is_E2_NP_emer = 0 local is_RPM_emer = 0 local RPM_caut_limitLo = 94 local RPM_caut_limitHi = 102 local RRPM_caut_limitLo = 94 local RRPM_caut_limitHi = 102 if tonumber(PDU_PLT_E1NP_HI) > RPM_caut_limitHi or tonumber(PDU_PLT_E1NP_HI) < RPM_caut_limitLo then is_E1_NP_emer = 1 end if tonumber(PDU_PLT_E2NP_HI) > RPM_caut_limitHi or tonumber(PDU_PLT_E2NP_HI) < RPM_caut_limitLo then is_E2_NP_emer = 1 end if tonumber(PDU_PLT_RRPM_HI) > RRPM_caut_limitHi or tonumber(PDU_PLT_RRPM_HI) < RRPM_caut_limitLo then is_RRPM_emer = 1 end --conditions to catch the off status --this prevents shut-down engines as "emergency" status if tonumber(PDU_PLT_E1NP_HI) == 0 then is_E1_NP_emer = 0 end if tonumber(PDU_PLT_RRPM_HI) == 0 then is_RRPM_emer = 0 end if tonumber(PDU_PLT_E2NP_HI) == 0 then is_E2_NP_emer = 0 end if is_E1_NP_emer == 1 or is_E2_NP_emer == 1 or is_RRPM_emer == 1 then is_RPM_emer = 1 end ExportScript.Tools.SendData(4303, is_E1_NP_emer) ExportScript.Tools.SendData(4304, is_RRPM_emer) ExportScript.Tools.SendData(4305, is_E2_NP_emer) ExportScript.Tools.SendData(4306, is_RPM_emer) -------------------- -- Engine RPM END-- -------------------- --------------- -- Engine Ng -- --------------- local CDU_NG1_DIGITS = string.format("%.1f", cockpitParamContainer.CDU_NG1_DIGITS/10) local CDU_NG2_DIGITS = string.format("%.1f", cockpitParamContainer.CDU_NG2_DIGITS/10) ExportScript.Tools.SendData(4207, "Ng 1\n" .. CDU_NG1_DIGITS .. "%") ExportScript.Tools.SendData(4208, "Ng 2\n" .. CDU_NG2_DIGITS .. "%") ExportScript.Tools.SendData(4209, "Ng\n1-" .. CDU_NG1_DIGITS .. "%\n2-" .. CDU_NG2_DIGITS .. "%") local is_NG1_emer = 0 local is_NG2_emer = 0 local is_NG_emer = 0 local TRQ_caut_limit = 99 local TRQ_warn_limit = 105 if tonumber(CDU_NG1_DIGITS) > TRQ_caut_limit then is_NG1_emer = 1 end if tonumber(CDU_NG2_DIGITS) > TRQ_caut_limit then is_NG2_emer = 1 end --this isnt actually needed for this because the limit is only high end if tonumber(CDU_NG1_DIGITS) == 0 then is_NG1_emer = 0 end if tonumber(CDU_NG2_DIGITS) == 0 then is_NG2_emer = 0 end if is_NG1_emer == 1 or is_NG2_emer == 1 then is_NG_emer = 1 end ExportScript.Tools.SendData(4307, is_NG1_emer) ExportScript.Tools.SendData(4308, is_NG2_emer) ExportScript.Tools.SendData(4309, is_NG_emer) ------------------- -- Engine Ng END -- ------------------- ---------------- -- Engine TGT -- ---------------- local CDU_TGT1_DIGITS = string.format("%.0f", cockpitParamContainer.CDU_TGT1_DIGITS) local CDU_TGT2_DIGITS = string.format("%.0f", cockpitParamContainer.CDU_TGT2_DIGITS) ExportScript.Tools.SendData(4210, "TGT 1\n" .. CDU_TGT1_DIGITS .. "Β°") ExportScript.Tools.SendData(4211, "TGT 2\n" .. CDU_TGT2_DIGITS .. "Β°") ExportScript.Tools.SendData(4212, "TGT\n1-" .. CDU_TGT1_DIGITS .. "Β°\n2-" .. CDU_TGT2_DIGITS .. "Β°") local is_TGT1_emer = 0 local is_TGT2_emer = 0 local is_TGT_emer = 0 local TRQ_caut_limit = 810 local TRQ_warn_limit = 878 if tonumber(CDU_TGT1_DIGITS) > TRQ_caut_limit then is_TGT1_emer = 1 end if tonumber(CDU_TGT2_DIGITS) > TRQ_caut_limit then is_TGT2_emer = 1 end if is_TGT1_emer == 1 or is_TGT2_emer == 1 then is_TGT_emer = 1 end ExportScript.Tools.SendData(4310, is_TGT1_emer) ExportScript.Tools.SendData(4311, is_TGT2_emer) ExportScript.Tools.SendData(4312, is_TGT_emer) ------------------- -- Engine TGT END-- ------------------- ---------------------- -- Engine OIL Press -- ---------------------- local CDU_E1OILPRESS_HI = string.format("%.0f", cockpitParamContainer.CDU_E1OILPRESS_HI) local CDU_E2OILPRESS_HI = string.format("%.0f", cockpitParamContainer.CDU_E2OILPRESS_HI) ExportScript.Tools.SendData(4213, "OIL P1\n" .. CDU_E1OILPRESS_HI) ExportScript.Tools.SendData(4214, "OIL P2\n" .. CDU_E2OILPRESS_HI) ExportScript.Tools.SendData(4215, "OIL P\n1-" .. CDU_E1OILPRESS_HI .. "\n2-" .. CDU_E2OILPRESS_HI) local is_E1_OILPRESS_emer = 0 local is_E2_OILPRESS_emer = 0 local is_OILPRESS_emer = 0 local OILPRESS_caut_limitLo = 45 local OILPRESS_warn_limitLo = 20 local OILPRESS_caut_limitHi = 100 local OILPRESS_warn_limitHi = 100 if tonumber(CDU_E1OILPRESS_HI) < OILPRESS_caut_limitLo or tonumber(CDU_E1OILPRESS_HI) > OILPRESS_caut_limitHi then is_E1_OILPRESS_emer = 1 end if tonumber(CDU_E2OILPRESS_HI) < OILPRESS_caut_limitLo or tonumber(CDU_E2OILPRESS_HI) > OILPRESS_caut_limitHi then is_E2_OILPRESS_emer = 1 end if tonumber(CDU_E1OILPRESS_HI) == 0 then is_E1_OILPRESS_emer = 0 end if tonumber(CDU_E2OILPRESS_HI) == 0 then is_E2_OILPRESS_emer = 0 end if is_E1_OILPRESS_emer == 1 or is_E2_OILPRESS_emer == 1 then is_OILPRESS_emer = 1 end ExportScript.Tools.SendData(4313, is_E1_OILPRESS_emer) ExportScript.Tools.SendData(4314, is_E2_OILPRESS_emer) ExportScript.Tools.SendData(4315, is_OILPRESS_emer) -------------------------- -- Engine OIL Press END -- -------------------------- --------------------- -- Engine OIL Temp -- --------------------- local CDU_E1OILTEMP_HI = string.format("%.0f", cockpitParamContainer.CDU_E1OILTEMP_HI) local CDU_E2OILTEMP_HI = string.format("%.0f", cockpitParamContainer.CDU_E2OILTEMP_HI) ExportScript.Tools.SendData(4216, "OIL T1\n".. CDU_E1OILTEMP_HI .. "Β°") ExportScript.Tools.SendData(4217, "OIL T2\n".. CDU_E2OILTEMP_HI .. "Β°") ExportScript.Tools.SendData(4218, "OIL T\n1-" .. CDU_E1OILTEMP_HI .. "Β°\n2-" .. CDU_E2OILTEMP_HI .. "Β°") local is_E1_OILTEMP_emer = 0 local is_E2_OILTEMP_emer = 0 local is_OILTEMP_emer = 0 local OILTEMP_caut_limit = 135 local OILPRESS_warn_limit = 150 if tonumber(CDU_E1OILTEMP_HI) > OILTEMP_caut_limit then is_E1_OILTEMP_emer = 1 end if tonumber(CDU_E2OILTEMP_HI) > OILTEMP_caut_limit then is_E2_OILTEMP_emer = 1 end if is_E1_OILTEMP_emer == 1 or is_E2_OILTEMP_emer == 1 then is_OILTEMP_emer = 1 end ExportScript.Tools.SendData(4316, is_E1_OILTEMP_emer) ExportScript.Tools.SendData(4317, is_E2_OILTEMP_emer) ExportScript.Tools.SendData(4318, is_OILTEMP_emer) ------------------------- -- Engine OIL Temp END -- ------------------------- ------------------------------------------- -- Engine XMSN Transmission and Pressure -- ------------------------------------------- local CDU_XMSNTEMP_HI = string.format("%2.1f", cockpitParamContainer.CDU_XMSNTEMP_HI) local CDU_XMSNPRESS_HI = string.format("%2.1f", cockpitParamContainer.CDU_XMSNPRESS_HI) ExportScript.Tools.SendData(4219, "XMSN T\n" .. CDU_XMSNTEMP_HI .. "Β°") ExportScript.Tools.SendData(4220, "XMSN P\n" .. CDU_XMSNPRESS_HI) ExportScript.Tools.SendData(4221, "XMSN" .. "\nT " .. CDU_XMSNTEMP_HI .. "Β°" .. "\nP " .. CDU_XMSNPRESS_HI) local is_XMSN_TEMP_emer = 0 local is_XMSN_PRESS_emer = 0 local is_XMSN_emer = 0 local XMSN_TEMP_caut_limit = 105 local XMSN_TEMP_warn_limit = 140 local XMSN_PRESS_caut_limitHi = 65 local XMSN_PRESS_warn_limitHi = 130 local XMSN_PRESS_caut_limitLo = 30 local XMSN_PRESS_warn_limitLo = 20 if tonumber(CDU_XMSNTEMP_HI) > XMSN_TEMP_caut_limit then is_XMSN_TEMP_emer = 1 end if tonumber(CDU_XMSNPRESS_HI) > XMSN_PRESS_caut_limitHi or tonumber(CDU_XMSNPRESS_HI) < XMSN_PRESS_caut_limitLo then is_XMSN_PRESS_emer = 1 end if tonumber(CDU_XMSNTEMP_HI) == 0 then is_XMSN_TEMP_emer = 0 end if tonumber(CDU_XMSNPRESS_HI) == 0 then is_XMSN_PRESS_emer = 0 end if is_XMSN_TEMP_emer == 1 or is_XMSN_PRESS_emer == 1 then is_XMSN_emer = 1 end ExportScript.Tools.SendData(4319, is_XMSN_TEMP_emer) ExportScript.Tools.SendData(4320, is_XMSN_PRESS_emer) ExportScript.Tools.SendData(4321, is_XMSN_emer) ----------------------------------------------- -- Engine XMSN Transmission and Pressure END -- ----------------------------------------------- ---------------------------- -- Fuel Dashboard readout -- ---------------------------- local CDU_FUEL_DIGITS = string.format("%.0f", cockpitParamContainer.CDU_FUEL_DIGITS) local CDU_FUEL_L_HI = string.format("%.0f", cockpitParamContainer.CDU_FUEL_L_HI) local CDU_FUEL_R_HI = string.format("%.0f", cockpitParamContainer.CDU_FUEL_R_HI) ExportScript.Tools.SendData(4222, "TOT FUEL\n" .. CDU_FUEL_DIGITS) ExportScript.Tools.SendData(4223, "FUEL L\n" .. CDU_FUEL_L_HI) ExportScript.Tools.SendData(4224, "FUEL R\n" .. CDU_FUEL_R_HI) ExportScript.Tools.SendData(4225, "FUEL " .. CDU_FUEL_DIGITS .. "\nL " .. CDU_FUEL_L_HI .. "\nR " .. CDU_FUEL_R_HI) local is_FUEL_L_emer = 0 local is_FUEL_R_emer = 0 local is_FUEL_emer = 0 local FUEL_caut_limit = 200 if tonumber(CDU_FUEL_L_HI) < FUEL_caut_limit then is_FUEL_L_emer = 1 end if tonumber(CDU_FUEL_R_HI) < FUEL_caut_limit then is_FUEL_R_emer = 1 end if tonumber(CDU_FUEL_L_HI) == 0 then is_FUEL_L_emer = 0 end if tonumber(CDU_FUEL_R_HI) == 0 then is_FUEL_R_emer = 0 end if is_FUEL_L_emer == 1 or is_FUEL_R_emer == 1 then is_FUEL_emer = 1 end ExportScript.Tools.SendData(4322, is_FUEL_emer) ExportScript.Tools.SendData(4323, is_FUEL_L_emer) ExportScript.Tools.SendData(4324, is_FUEL_R_emer) ExportScript.Tools.SendData(4325, is_FUEL_emer) local fuel_OUTBD_L = cockpitParamContainer.AFMS_DISPLAY_OUTBD_L local fuel_INBD_L = cockpitParamContainer.AFMS_DISPLAY_INBD_L local fuel_INBD_R = cockpitParamContainer.AFMS_DISPLAY_INBD_R local fuel_OUTBD_R = cockpitParamContainer.AFMS_DISPLAY_OUTBD_R local emptyFuelString = "cccc" if string.find(fuel_OUTBD_L, "cccc") then fuel_OUTBD_L = emptyFuelString else fuel_OUTBD_L = format_int(fuel_OUTBD_L) end if string.find(fuel_INBD_L, "cccc") then fuel_INBD_L = emptyFuelString else fuel_INBD_L = format_int(fuel_INBD_L) end if string.find(fuel_INBD_R, "cccc") then fuel_INBD_R = emptyFuelString else fuel_INBD_R = format_int(fuel_INBD_R) end if string.find(fuel_OUTBD_R, "cccc") then fuel_OUTBD_R = emptyFuelString else fuel_OUTBD_R = format_int(fuel_OUTBD_R) end ExportScript.Tools.SendData(4226, "FUEL OL\n" .. fuel_OUTBD_L) ExportScript.Tools.SendData(4227, "FUEL IL\n" .. fuel_INBD_L) ExportScript.Tools.SendData(4228, "FUEL IR\n" .. fuel_INBD_R) ExportScript.Tools.SendData(4229, "FUEL OR\n" .. fuel_OUTBD_R) ExportScript.Tools.SendData(4230, "AUX FUEL " .. "\nOL " .. fuel_OUTBD_L .. "\nIL " .. fuel_INBD_L .. "\nIR " .. fuel_INBD_R .. "\nOR " .. fuel_OUTBD_R) ExportScript.Tools.SendData(4231, "AUX FUEL " .. "\nOL " .. fuel_OUTBD_L .. "\nIL " .. fuel_INBD_L ) ExportScript.Tools.SendData(4232, "AUX FUEL " .. "\nIR " .. fuel_INBD_R .. "\nOR " .. fuel_OUTBD_R) -- Fuel Tile ExportScript.Tools.SendData(4233, "FUEL " .. CDU_FUEL_DIGITS .. "\nOL " .. fuel_OUTBD_L .. "\nIL " .. fuel_INBD_L .. "\nIR " .. fuel_INBD_R .. "\nOR " .. fuel_OUTBD_R) ---------------------------- -- Fuel Dashboard readout -- ---------------------------- ------------ -- unused -- ------------ local UHF_FREQ = cockpitParamContainer.UHF_FREQ local VHF_AM_FREQ = cockpitParamContainer.VHF_AM_FREQ --ExportScript.Tools.SendData(4205, --ExportScript.Tools.SendData(4205, --ExportScript.Tools.SendData(4205, ------------ -- unused -- ------------ --seems to be 1 or 0. I have never seen the lights lit local PDU_PLT_OVERSPEED1 = cockpitParamContainer.PDU_PLT_OVERSPEED1 local PDU_PLT_OVERSPEED2 = cockpitParamContainer.PDU_PLT_OVERSPEED2 local PDU_PLT_OVERSPEED3 = cockpitParamContainer.PDU_PLT_OVERSPEED3 --ExportScript.Tools.SendData(4222,PDU_PLT_OVERSPEED1) --@127% --ExportScript.Tools.SendData(4223,PDU_PLT_OVERSPEED2) --@137% --ExportScript.Tools.SendData(4224,PDU_PLT_OVERSPEED3) --@142% end function ExportScript.UhfSuperFromListIndication(mainPanelDevice) local listIndicationList_8 = ExportScript.Tools.split(list_indication(8), "%c") local uhf_currentFreq = listIndicationList_8[7] local uhf_currentChannel = listIndicationList_8[10] local uhf_preset_1 = listIndicationList_8[13] local uhf_preset_2 = listIndicationList_8[16] local uhf_preset_3 = listIndicationList_8[19] local uhf_preset_4 = listIndicationList_8[22] local uhf_preset_5 = listIndicationList_8[25] local uhf_preset_6 = listIndicationList_8[28] local uhf_preset_7 = listIndicationList_8[31] local uhf_preset_8 = listIndicationList_8[34] local uhf_preset_9 = listIndicationList_8[37] local uhf_preset_10 = listIndicationList_8[40] local uhf_preset_11 = listIndicationList_8[43] local uhf_preset_12 = listIndicationList_8[46] local uhf_preset_13 = listIndicationList_8[49] local uhf_preset_14 = listIndicationList_8[52] local uhf_preset_15 = listIndicationList_8[55] local uhf_preset_16 = listIndicationList_8[58] local uhf_preset_17 = listIndicationList_8[61] local uhf_preset_18 = listIndicationList_8[64] local uhf_preset_19 = listIndicationList_8[67] local uhf_preset_20 = listIndicationList_8[70] ExportScript.Tools.SendData(5000, "1-" .. uhf_preset_1 .. "\n2-" .. uhf_preset_2 .. "\n3-" .. uhf_preset_3 .. "\n4-" .. uhf_preset_4) ExportScript.Tools.SendData(5001, "5-" .. uhf_preset_5 .. "\n6-" .. uhf_preset_6 .. "\n7-" .. uhf_preset_7 .. "\n8-" .. uhf_preset_8) ExportScript.Tools.SendData(5002, "9-" .. uhf_preset_9 .. "\n10-" .. uhf_preset_10 .. "\n11-" .. uhf_preset_11 .. "\n12-" .. uhf_preset_12) ExportScript.Tools.SendData(5003, "13-" .. uhf_preset_13 .. "\n14-" .. uhf_preset_14 .. "\n15-" .. uhf_preset_15 .. "\n16-" .. uhf_preset_16) ExportScript.Tools.SendData(5004, "17-" .. uhf_preset_17 .. "\n18-" .. uhf_preset_18 .. "\n19-" .. uhf_preset_19 .. "\n20-" .. uhf_preset_20) end --[[ Ideas: - set qfe readout list_indication(5) is the gps screen {E3271375-F014-4a53-BC1A-DB32275BB728}\ 01:MIZ 1 030MG90\ -----------------------------------------\ {6A4A4765-A8C2-4f16-A356-99FC13FB4E0E}\ PP:\ -----------------------------------------\ {F93262D8-81DA-4404-9D23-63EAD41CA4ED}\ 38T KM\ -----------------------------------------\ {BC0570F9-8CAA-4edb-A614-F18303135535}\ 5721 8068\ -----------------------------------------\ list_indication(5) is the pilot chronometer {7A2B92CA-D6CB-4880-82CA-F3D6C44EC5B4}\ 8\ -----------------------------------------\ {E196B5C4-2AB1-4175-A201-2723C514CD98}\ :\ -----------------------------------------\ {CE961280-F5C1-4208-9265-D93473D3F8A8}\ 02\ -----------------------------------------\ {F5351414-608F-4cda-A80D-64F28B90658A}\ 29\ -----------------------------------------\ {656D59C0-10AC-4790-92E8-88763557DF19}\ LT\ list_indication(5) is the copilot chronometer {B04EA839-7FD0-4d67-9474-C78F56DBA2CD}\ 5\ -----------------------------------------\ {7D7AEF15-B21F-489c-90C7-C4BA1A430732}\ :\ -----------------------------------------\ {45CB9AC2-AA0F-417f-9C65-BED507883579}\ 03\ -----------------------------------------\ {044E12A5-931D-4f41-8740-D1D50420CF61}\ 29\ -----------------------------------------\ {100D742E-380B-4a0d-BEC1-5973BC3E2305}\ UTC\ 8 has UHF Freq and presets "-----------------------------------------\ base\ \ children are {\ -----------------------------------------\ {92E00554-EBD9-474d-866F-3E7D4A09CE19}\ 225000\ -----------------------------------------\ {BFF7732B-06B0-41aa-8D73-037D2A01374B}\ 01\ -----------------------------------------\ {E1B2F571-3E48-4947-BF22-74AE5602598C}\ 264\ -----------------------------------------\ {E4D33090-B35F-4245-82B2-90DE3786D2D1}\ 265\ -----------------------------------------\ {6111C94E-87DB-4001-8E93-749C83D46B80}\ 256\ -----------------------------------------\ {631649A5-F1FA-451f-AEF5-F44ADF9E881D}\ 254\ -----------------------------------------\ {2F232224-B053-4915-9F00-C776FCEC8EC3}\ 250\ -----------------------------------------\ {CC83A116-5298-4e19-A1AF-8EBCF3DCD099}\ 270\ -----------------------------------------\ {09B58A29-A292-475a-B209-EBCDA35B5235}\ 257\ -----------------------------------------\ {19CC337D-FCE1-486b-BB1D-8AE46A937A1F}\ 258\ -----------------------------------------\ {DBE2AE0B-C05C-4bcd-904D-E106DBCF91EE}\ 262\ -----------------------------------------\ {55126454-C40C-4351-BF6D-2019B2A38165}\ 259\ -----------------------------------------\ {A2E899EC-1FBE-4cec-9712-DF3DEC3A6CC1}\ 268\ -----------------------------------------\ {BDD67E9C-D9A1-4c07-B9DD-2823B1E88C6A}\ 269\ -----------------------------------------\ {FD9F2D5E-176E-4cf0-A457-A5B15C6AAE55}\ 260\ -----------------------------------------\ {80D85F17-3F0C-48b1-A9D4-E688652C781F}\ 263\ -----------------------------------------\ {BD3DD1BD-A7D0-486f-9949-012FA15A0ABC}\ 261\ -----------------------------------------\ {96F5513D-D646-4550-8AAF-8EEDFEBF7D74}\ 267\ -----------------------------------------\ {90BB2B26-6A5F-446c-96FF-3938350DAE94}\ 251\ -----------------------------------------\ {CF7F80D2-9619-42a2-87E0-167ED0CCF240}\ 253\ -----------------------------------------\ {88AB6311-53AC-4bd5-BEFF-B483B32C7CF8}\ 266\ -----------------------------------------\ {62BAE925-BDB9-4917-8D36-51E7A82C175E}\ 252\ }\ 9 is pilot FM radio display {4DFD518A-44F7-4ec9-B20F-AE3A3AEFD167}\ 33333@\ }\ 10 is copilot FM radio display {4DFD518A-44F7-4ec9-B20F-AE3A3AEFD167}\ 33333@\ }\ 11 is alighment unit -,,,,,,|,,,,,,,+\ }\ 12 is fuel screen info {29108B03-8C8F-48e9-BB98-2396877B8009}\ cccc%\ -----------------------------------------\ {B5290D11-022B-4956-8D17-0D1360DB35DA}\ cccc%\ -----------------------------------------\ {9F38BD3B-49F5-4337-854E-51F2115E89B4}\ cccc%\ -----------------------------------------\ {6AAB8051-E6B0-4e36-9A2D-A823A7A0422F}\ cccc%\ return GetDevice(5):get_frequency() resut is 225000000 return GetDevice(6):get_frequency() results 30000000 return GetDevice(8):get_frequency() results 124000000 return GetDevice(10):get_frequency() results 30000000 ]] ------------------------------ -- General Helper Functions -- ------------------------------ function percentSignFromFuel(s) return s:gsub("%\%", "") end 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 function round(num, numDecimalPlaces) --http://lua-users.org/wiki/SimpleRound local mult = 10^(numDecimalPlaces or 0) return math.floor(num * mult + 0.5) / mult end function format_int(number) --https://stackoverflow.com/questions/10989788/format-integer-in-lua local i, j, minus, int, fraction = tostring(number):find('([-]?)(%d+)([.]?%d*)') -- reverse the int-string and append a comma to all blocks of 3 digits int = int:reverse():gsub("(%d%d%d)", "%1,") -- reverse the int-string back remove an optional comma and put the -- optional minus and fractional part back return minus .. int:reverse():gsub("^,", "") .. fraction end function trim(s) --http://lua-users.org/wiki/CommonFunctions -- from PiL2 20.4 return (s:gsub("^%s*(.-)%s*$", "%1")) end function addZeros3(number) number = string.format("%.1d" , number) if #number == 2 then number = "0" .. number elseif #number == 1 then number = "00" .. number end return number end -- inspired by https://github.com/ciribob/DCS-SimpleRadioStandalone/blob/a3021661a084e8dca285ffad7cf640b3c1dbccb2/Scripts/DCS-SRS/Scripts/DCS-SRS-Export.lua#L4195 function getCockpitParam() local ListIindicator = list_cockpit_params() --list_indication(IndicatorID) local TmpReturn = {} --if ListIindicator == "" then -- return nil --end local ListindicatorMatch = ListIindicator:gmatch("([^\n]+):([^\n]+)") while true do local Key, Value = ListindicatorMatch() if not Key then break end TmpReturn[Key] = Value end return TmpReturn end