diff --git a/.gitignore b/.gitignore index 9ee7d04d..4008f5e1 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,6 @@ luac.out # swap file *.*~ + +# Working Files +# *.psd diff --git a/README.md b/README.md index 8298a801..ee8ac631 100644 --- a/README.md +++ b/README.md @@ -1,70 +1,52 @@ -# Deutsch +# Community DCS-ExportScripts Library --- -Dies ist ein universell einsetzbares Export Script für DCS. -Es wird der gleichzeitige Export von Daten an Virtual Cockpit Software und I/O Hardware ermöglicht. -Zur Zeit werden folgende Export-Formate unterstützt. -- DAC (DCS Arcaze Connector) von [H-J-P](https://github.com/H-J-P/DAC/) um die Arcaze USB Controller anzusprechen (http://wiki.simple-solutions.de/en/products/Arcaze/Arcaze-USB) -- Ikarus von [H-J-P](https://github.com/H-J-P/Ikarus), unsere Virtual Cockpit Software - -Der Export von Daten wird für folgende Module unterstützt: -- A-10C +See forums post here: https://forums.eagle.ru/topic/283178-dcs-exportscripts-for-stream-deck-community-github-library/ +Read the wiki for export IDs: https://github.com/asherao/DCS-ExportScripts/wiki + +This is based off of DCS-ExportScripts (https://github.com/s-d-a/DCS-ExportScripts/wiki). The main purpose is to make customized exports for DCS-Interface (https://github.com/charlestytler/streamdeck-dcs-interface) for use with an Elgato Stream Deck. + +Following module export luas have been modified. Applicable DCS-ExportScripts ID is in parentheses. Due to the scope of the project, this is not the full list: +- UH-60L Mod + - Added a lot of stuff. See Wiki for details: https://github.com/asherao/DCS-ExportScripts/wiki/MH-60L + - Added Streamdeck Profile: https://github.com/asherao/DCS-ExportScripts/blob/master/docu/StreamDeck%20Examples/MH-60L%20Mod%20by%20Bailey%20Release.streamDeckProfile +- F-16C + - Added Flare and Chaff Count Readouts (3000 - 3006) + - Added SENPAI (Streamdeck Elevation Navigation Pressure Altimeter Instrument) (WIP) (44224 - 44231) + - Added Jammer pannel Tiles and example profile. See wiki. https://github.com/asherao/DCS-ExportScripts/wiki/F-16C + - Added UFC presets +- F-86F Sabre + - Added UHF channel and freq export + - Added ADF freq export +- JF-17 + - Added JF-17 +- Mi-24P (Stream Deck profile released: https://www.digitalcombatsimulator.com/en/files/3317284/) + - Added DISS Info (3000 - 3002) + - Added Ammo Counter Readouts (3011 - 3015) + - Added Arc-15 Readouts (3020 - 3021) + - Added Flare and Chaff Count Readouts (3022 - 3025) + - Added SENPAI (Streamdeck Elevation Navigation Pressure Altimeter Instrument) (44224 - 44231) + - Added VRS Detection (3030) + - Added all radio exports (3031-3034) +- Mosquito FB MkVI + - Added Mosquito FB MkVI + - Removed duplicate exports + - Read Wiki for Export IDs (https://github.com/asherao/DCS-ExportScripts/wiki/MosquitoFBMkVI) +- Spitfire LF MkIX + - Read Wiki for Export IDs (https://github.com/asherao/DCS-ExportScripts/wiki/Spitfire-LF-MkIX) - AJS37 -- AV-8B N/A -- Bf-109K-4 + - corrected afterburner export - F/A-18C Hornet -- F-5E-3 -- F-86F -- FW-190D9 -- Ka-50 -- L-39C/ZA -- Mi-8MT -- MiG-15bis -- MiG-21Bis -- Mirage 2000 -- P-51D 25/30-NA -- SA342L/M/Mistral -- SpitfireLFMkIX/CW -- Su-25T -- TF-51D -- UH-1H -- alle Flaming Cliffs Flugzeuge + J-11A - -Kompatibel zur DCS World 2.5.4 und BETA Version - -# English ---- -This is an universally insertable export script for DCS. It allows for the simultaneous export of data at virtual cockpit software and I/O hardware. + - removed a duplicate export +- F-14B + - Added radio freq text output (60000 - 60007) -At present the following export formats are supported: -- DAC (DCS Arcaze Connector) by [H-J-P](https://github.com/H-J-P/DAC/) to address the Arcaze USB Controller (http://wiki.simple-solutions.de/en/products/Arcaze/Arcaze-USB) -- Ikarus by [H-J-P](https://github.com/H-J-P/Ikarus), our virtual cockpit software +More info about SENPAI (https://forums.eagle.ru/topic/273399-stream-deck-altimeter-setting-in-inhg-and-hpa/?tab=comments#comment-4724094) -Following moduls are supported: -- A-10C -- AJS37 -- AV-8B N/A -- Bf-109K-4 -- F/A-18C Hornet -- F-5E-3 -- F-86F -- FW-190D9 -- Ka-50 -- L-39C/ZA -- Mi-8MT -- MiG-15bis -- MiG-21Bis -- Mirage 2000 -- P-51D 25/30-NA -- SA342L/M/Mistral -- SpitfireLFMkIX/CW -- Su-25T -- TF-51D -- UH-1H -- all Flaming Cliffs aircrafts + J-11A - -Compatible with DCS World 2.5.4 and BETA version +Compatible with DCS World 2.9.5.55300 # Wiki --- -[DCS-ExportScript Wiki and Docu](https://github.com/s-d-a/DCS-ExportScripts/wiki) (in Deutsch and English) +- https://github.com/asherao/DCS-ExportScripts/wiki +- [DCS-ExportScript Wiki and Docu](https://github.com/s-d-a/DCS-ExportScripts/wiki) (in Deutsch and English) + diff --git a/Scripts/DCS-ExportScript/Config.lua b/Scripts/DCS-ExportScript/Config.lua index aef26989..6755a339 100644 --- a/Scripts/DCS-ExportScript/Config.lua +++ b/Scripts/DCS-ExportScript/Config.lua @@ -1,43 +1,43 @@ --- Ikarus and D.A.C. Export Script --- --- Config File --- --- Copyright by Michael aka McMicha 2014 --- Contact dcs2arcaze.micha@farbpigmente.org - -ExportScript.Config = {} -ExportScript.Version.Config = "1.2.1" - --- Ikarus a Glass Cockpit Software -ExportScript.Config.IkarusExport = true -- false for not use -ExportScript.Config.IkarusHost = "127.0.0.1" -- IP for Ikarus -ExportScript.Config.IkarusPort = 1625 -- Port Ikarus (1625) -ExportScript.Config.IkarusSeparator = ":" - --- D.A.C. (DCS Arcaze Connector) -ExportScript.Config.DACExport = false -- true for use -ExportScript.Config.DAC = {} --- first hardware -ExportScript.Config.DAC[1] = {} -ExportScript.Config.DAC[1].Host = "127.0.0.1" -- IP for hardware 1 -ExportScript.Config.DAC[1].SendPort = 26026 -- Port for hardware 1 -ExportScript.Config.DAC[1].Separator = ":" --- secound to n hardware ---ExportScript.Config.DAC[2] = {} ---ExportScript.Config.DAC[2].Host = "127.0.0.1" -- IP for hardware 2 ---ExportScript.Config.DAC[2].SendPort = 9092 -- Port for hardware 2 ---ExportScript.Config.DAC[2].Separator = ":" - --- Ikarus and D.A.C. can data send -ExportScript.Config.Listener = true -- false for not use -ExportScript.Config.ListenerPort = 26027 -- Listener Port for D.A.C. - --- Other -ExportScript.Config.ExportInterval = 0.05 -- export evry 0.05 secounds -ExportScript.Config.ExportLowTickInterval = 0.5 -- export evry 0.5 secounds -ExportScript.Config.LogPath = lfs.writedir()..[[Logs\Export.log]] -ExportScript.Config.ExportModulePath = lfs.writedir()..[[Scripts\DCS-ExportScript\ExportsModules\]] -ExportScript.Config.Debug = false -ExportScript.Config.SocketDebug = false -ExportScript.Config.FirstNewDataSend = true +-- Ikarus and D.A.C. Export Script +-- +-- Config File +-- +-- Copyright by Michael aka McMicha 2014 +-- Contact dcs2arcaze.micha@farbpigmente.org + +ExportScript.Config = {} +ExportScript.Version.Config = "1.2.1" + +-- Ikarus a Glass Cockpit Software +ExportScript.Config.IkarusExport = true -- false for not use +ExportScript.Config.IkarusHost = "127.0.0.1" -- IP for Ikarus +ExportScript.Config.IkarusPort = 1725 -- Port Ikarus (1625) +ExportScript.Config.IkarusSeparator = ":" + +-- D.A.C. (DCS Arcaze Connector) +ExportScript.Config.DACExport = false -- true for use +ExportScript.Config.DAC = {} +-- first hardware +ExportScript.Config.DAC[1] = {} +ExportScript.Config.DAC[1].Host = "127.0.0.1" -- IP for hardware 1 +ExportScript.Config.DAC[1].SendPort = 26026 -- Port for hardware 1 +ExportScript.Config.DAC[1].Separator = ":" +-- secound to n hardware +--ExportScript.Config.DAC[2] = {} +--ExportScript.Config.DAC[2].Host = "127.0.0.1" -- IP for hardware 2 +--ExportScript.Config.DAC[2].SendPort = 9092 -- Port for hardware 2 +--ExportScript.Config.DAC[2].Separator = ":" + +-- Ikarus and D.A.C. can data send +ExportScript.Config.Listener = true -- false for not use +ExportScript.Config.ListenerPort = 26027 -- Listener Port for D.A.C. + +-- Other +ExportScript.Config.ExportInterval = 0.05 -- export evry 0.05 secounds +ExportScript.Config.ExportLowTickInterval = 0.1 -- export evry 0.5 secounds +ExportScript.Config.LogPath = lfs.writedir()..[[Logs\Export.log]] +ExportScript.Config.ExportModulePath = lfs.writedir()..[[Scripts\DCS-ExportScript\ExportsModules\]] +ExportScript.Config.Debug = false +ExportScript.Config.SocketDebug = false +ExportScript.Config.FirstNewDataSend = true ExportScript.Config.FirstNewDataSendCount = 100 \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportScript.lua b/Scripts/DCS-ExportScript/ExportScript.lua index 8db0f891..650929ea 100644 --- a/Scripts/DCS-ExportScript/ExportScript.lua +++ b/Scripts/DCS-ExportScript/ExportScript.lua @@ -30,6 +30,8 @@ PrevExport.LuaExportStart = LuaExportStart PrevExport.LuaExportStop = LuaExportStop PrevExport.LuaExportBeforeNextFrame = LuaExportBeforeNextFrame PrevExport.LuaExportAfterNextFrame = LuaExportAfterNextFrame +--fix wwt +PrevExport.LuaExportActivityNextEvent = LuaExportActivityNextEvent dofile(lfs.writedir()..[[Scripts\DCS-ExportScript\Config.lua]]) ExportScript.utf8 = dofile(lfs.writedir()..[[Scripts\DCS-ExportScript\lib\utf8.lua]]) @@ -133,7 +135,11 @@ function LuaExportActivityNextEvent(t) end tNext = tNext + ExportScript.Config.ExportInterval - + + if PrevExport.LuaExportActivityNextEvent then + tNext=PrevExport.LuaExportActivityNextEvent(t) + end + return tNext end @@ -170,4 +176,4 @@ function LuaExportStop() if PrevExport.LuaExportStop then PrevExport.LuaExportStop() end -end \ No newline at end of file +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/A-10A.lua b/Scripts/DCS-ExportScript/ExportsModules/A-10A.lua index bdb06cbb..270d7e8e 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/A-10A.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/A-10A.lua @@ -781,6 +781,8 @@ function ExportScript.AF.MechanicalDevicesIndicator(FunctionTyp) ExportScript.Tools.SendData(502, (lMechInfo.gear.value > 0.95 and 1 or 0) ) -- left gear ExportScript.Tools.SendData(503, (lMechInfo.gear.value == 1 and 1 or 0) ) -- right gear + ExportScript.Tools.SendData(510, (lMechInfo.speedbrakes.value > 0.1 and 1 or 0) ) -- speedbreakes on > 0.1 (0 - 1) + local lFlapsValue = lMechInfo.flaps.value lFlapsValue = lFlapsValue / 1.6 lFlapsValue = (lFlapsValue > 1.0 and 1.0 or lFlapsValue) -- the result is limited to 1.0 diff --git a/Scripts/DCS-ExportScript/ExportsModules/A-10C.lua b/Scripts/DCS-ExportScript/ExportsModules/A-10C.lua index 10d9e1a2..ae0eae60 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/A-10C.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/A-10C.lua @@ -1,22000 +1,22012 @@ --- A-10C - -ExportScript.FoundDCSModule = true -ExportScript.Version.A10C = "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 - ]] - -- AOA Gauges - [4] = "%.4f", -- AOA - [55] = "%0.1f", -- AOA Power Flag - -- VVI - [12] = "%.4f", -- Variometer (VVI) {-1.0, -0.5, -0.29, 0.29, 0.5, 1.0} {-6000, -2000, -1000, 1000, 2000, 6000} - -- APU - [13] = "%.4f", -- APU RPM - [14] = "%.4f", -- APU Temperature - [15] = "%.4f", -- Accelerometer_main - -- ADI - [17] = "%.4f", -- ADI Pitch - [18] = "%.4f", -- ADI Bank - [19] = "%0.1f", -- ADI Course Warning Flag - [20] = "%.4f", -- ADI Bank Steering Bar - [21] = "%.4f", -- ADI Pitch Steering Bar - [23] = "%.4f", -- ADI Turn Needle - [24] = "%.4f", -- ADI Slip Ball - [25] = "%0.1f", -- ADI Attitude Warning Flag - [26] = "%0.1f", -- ADI Glide-Slope Warning Flag - [27] = "%.4f", -- ADI Glide-Slope Indicator - -- HSI - [28] = "%0.4f", -- HSI_range_counter_1000 - [29] = "%0.4f", -- HSI_range_counter_100 - [30] = "%0.4f", -- HSI_range_counter_10 - [31] = "%0.4f", -- HSI_range_counter_1 - [32] = "%0.1f", -- HSI Range Flag - [33] = "%.4f", -- HSI Bearing #1 - [34] = "%.4f", -- HSI Heading - [35] = "%.4f", -- HSI Bearing #2 - [36] = "%.4f", -- HSI Heading Marker - [40] = "%0.1f", -- HSI Power Flag - [41] = "%.4f", -- HSI Deviation - [46] = "%0.1f", -- HSI Bearing Flag - [47] = "%.4f", -- HSI Course Arrow - -- Airspeed - [48] = "%.4f", -- Airspeed Needle - [49] = "%.4f", -- Airspeed Dial - -- Altimeter - [51] = "%.4f", -- Altimeter_100_footPtr - [52] = "%.4f", -- Altimeter_10000_footCount - [53] = "%.4f", -- Altimeter_1000_footCount - [54] = "%.4f", -- Altimeter_100_footCount - [59] = "%.4f", -- pressure_setting_0 - [58] = "%.4f", -- pressure_setting_1 - [57] = "%.4f", -- pressure_setting_2 - [56] = "%.4f", -- pressure_setting_3 - [61] = "%.1f", -- AAU34_PNEU_flag - -- Stby Attitude Indicator - [63] = "%.4f", -- Standby Attitude Indicator pitch - [64] = "%.4f", -- Standby Attitude Indicator bank - [65] = "%0.1f", -- Standby Attitude Indicator warning flag - [715] = "%.4f", -- Standby Attitude Indicator manual pitch adjustment - [717] = "%.4f", -- Standby Attitude Indicator knob arrow - -- Engine Gauges - [70] = "%.4f", -- Left Engine Temperature - [71] = "%.4f", -- Left Engine TemperatureUnits - [73] = "%.4f", -- Right Engine Temperature - [74] = "%.4f", -- Right Engine TemperatureUnits - [76] = "%.4f", -- EngineLeftFanSpeed - [77] = "%.4f", -- EngineRightFanSpeed - [78] = "%.4f", -- EngineLeftCoreSpeedTenth - [79] = "%.4f", -- EngineLeftCoreSpeedUnits - [80] = "%.4f", -- EngineRightCoreSpeedTenth - [81] = "%.4f", -- EngineRightCoreSpeedUnits - [82] = "%.4f", -- Left Engine Oil Pressure - [83] = "%.4f", -- Right Engine Oil Pressure - [84] = "%.4f", -- EngineLeftFuelFlow - [85] = "%.4f", -- EngineRightFuelFlow - -- Fuel Gauges - [88] = "%.4f", -- Fuel Indicator, FuelQuantityLeft - [89] = "%.4f", -- Fuel Indicator, FuelQuantityRight - [90] = "%.4f", -- FuelQuantityCounterTenthOfThous - [91] = "%.4f", -- FuelQuantityCounterThousands - [92] = "%.4f", -- FuelQuantityCounterHundreds - [129] = "%1d", -- PTR-LCP-EAC (EAC On/Off) - -- Misc lamps - [178] = "%.f", -- L_AILERON_EMER_DISENGAGE - [179] = "%.f", -- R_AILERON_EMER_DISENGAGE - [181] = "%.f", -- L_ELEVATOR_EMER_DISENGAGE - [182] = "%.f", -- R_ELEVATOR_EMER_DISENGAGE - -- STABILITY AUGMENTATION SYSTEM PANEL - [185] = "%1d", -- PTR-SASP-YAW-SASENGAGE-L (Yaw SAS Engage left) - [186] = "%1d", -- PTR-SASP-YAW-SASENGAGE-R (Yaw SAS Engage right) - [187] = "%1d", -- PTR-SASP-PITCH-SASENGAGE-L (Pitch SAS Engage left) - [188] = "%1d", -- PTR-SASP-PITCH-SASENGAGE-R (Pitch SAS Engage right) - -- Misc lamps - [191] = "%.f", -- TAKE_OFF_TRIM - [215] = "%.f", -- L_ENG_FIRE - [216] = "%.f", -- APU_FIRE - [217] = "%.f", -- R_ENG_FIRE - [260] = "%.f", -- TACAN_test_light {0.0, 1.0} - -- - [269] = "%.4f", -- HARS_sync {-1.0, 1.0} - [274] = "%.4f", -- OxygenVolume {0.0, 1.0} - [281] = "%.4f", -- CabinPressAlt {0.0, 1.0} - -- Light System Control Panel - [289] = "%1d", -- PTR-LGHTCP-ANTICOLLISION (Anticollision Lights) - -- CMSC lamps - [372] = "%.f", -- CMSC_MissileLaunchIndicator {0.0, 1.0} - [373] = "%.f", -- CMSC_PriorityStatusIndicator {0.0, 1.0} - [374] = "%.f", -- CMSC_UnknownStatusIndicator {0.0, 1.0} - -- Master Warning Lamp UFCP - [404] = "%.f", -- MASTER_WARNING_STUB MASTER WARNING - -- Caution Panel LAMPS - [480] = "%.f", -- ENG_START_CYCLE - [481] = "%.f", -- L_HYD_PRESS - [482] = "%.f", -- R_HYD_PRESS - [483] = "%.f", -- GUN_UNSAFE - [484] = "%.f", -- ANTISKID - [485] = "%.f", -- L_HYD_RES - [486] = "%.f", -- R_HYD_RES - [487] = "%.f", -- OXY_LOW - [488] = "%.f", -- ELEV_DISENG - [489] = "%.f", -- VOID1 - [490] = "%.f", -- SEAT_NOT_ARMED - [491] = "%.f", -- BLEED_AIR_LEAK - [492] = "%.f", -- AIL_DISENG - [493] = "%.f", -- L_AIL_TAB - [494] = "%.f", -- R_AIL_TAB - [495] = "%.f", -- SERVICE_AIR_HOT - [496] = "%.f", -- PITCH_SAS - [497] = "%.f", -- L_ENG_HOT - [498] = "%.f", -- R_ENG_HOT - [499] = "%.f", -- WINDSHIELD_HOT - [500] = "%.f", -- YAW_SAS - [501] = "%.f", -- L_ENG_OIL_PRESS - [502] = "%.f", -- R_ENG_OIL_PRESS - [503] = "%.f", -- CICU - [504] = "%.f", -- GCAS - [505] = "%.f", -- L_MAIN_PUMP - [506] = "%.f", -- R_MAIN_PUMP - [507] = "%.f", -- VOID2 - [508] = "%.f", -- LASTE - [509] = "%.f", -- L_WING_PUMP - [510] = "%.f", -- R_WING_PUMP - [511] = "%.f", -- HARS - [512] = "%.f", -- IFF_MODE_4 - [513] = "%.f", -- L_MAIN_FUEL_LOW - [514] = "%.f", -- R_MAIN_FUEL_LOW - [515] = "%.f", -- L_R_TKS_UNEQUAL - [516] = "%.f", -- EAC - [517] = "%.f", -- L_FUEL_PRESS - [518] = "%.f", -- R_FUEL_PRESS - [519] = "%.f", -- NAV - [520] = "%.f", -- STALL_SYS - [521] = "%.f", -- L_CONV - [522] = "%.f", -- R_CONV - [523] = "%.f", -- CADC - [524] = "%.f", -- APU_GEN - [525] = "%.f", -- L_GEN - [526] = "%.f", -- R_GEN - [527] = "%.f", -- INST_INV - -- Angle of attack indicator - [540] = "%0.1f", -- AOA_INDEXER_HIGH - [541] = "%0.4f", -- AOA_INDEXER_NORM - [542] = "%0.1f", -- AOA_INDEXER_LOW - -- Misc Data - [600] = "%0.1f", -- BreathFlow {0.0, 1.0} - [604] = "%.4f", -- OxygenPress {0.0, 0.5, 1.0} - -- NMSP Panel lamps - [606] = "%.f", -- HARS - [608] = "%.f", -- EGI - [610] = "%.f", -- TISL - [612] = "%.f", -- STRPT - [614] = "%.f", -- ANCHR - [616] = "%.f", -- TCN - [618] = "%.f", -- ILS - [619] = "%.f", -- UHF - [620] = "%.f", -- FM - -- Hydraulic Pressure - [647] = "%.4f", -- HydraulicPressureLeft {0.0,1.0} - [648] = "%.4f", -- HydraulicPressureRight {0.0,1.0} - -- Flap Indicator - [653] = "%.4f", -- FlapPositionIndicator {0,20} {0,2/3,1} - -- Landing Gear Lamps - [659] = "%.f", -- GEAR_N_SAFE - [660] = "%.f", -- GEAR_L_SAFE - [661] = "%.f", -- GEAR_R_SAFE - -- Misc lamps - [662] = "%.f", -- GUN_READY - [663] = "%.f", -- NOSEWHEEL_STEERING - [664] = "%.f", -- MARKER_BEACON - [665] = "%.f", -- CANOPY_UNLOCKED - [730] = "%.f", -- AIR_REFUEL_READY - [731] = "%.f", -- AIR_REFUEL_LATCHED - [732] = "%.f", -- AIR_REFUEL_DISCONNECT - [737] = "%.f", -- HANDLE_GEAR_WARNING - -- IFF Panel lamps - [798] = "%.f", -- IFF_reply_lamp {0, 1} - [799] = "%.f", -- IFF_test_lamp {0, 1} - -- - [902] = "%.4f", -- Accelerometer_min - [903] = "%.4f", -- Accelerometer_max - -- Standby Compass - [6] = "%.4f", -- heading - [720] = "%.4f", -- pitch - [721] = "%.4f", -- bank -} -ExportScript.ConfigArguments = -{ - --[[ - arguments for export in low tick interval - based on "clickabledata.lua" - ]] - --Attitude Direction Indicator - [22] = "%.4f", -- ADI Pitch Trim Knob {-.05,0.5} in 01. steps - --Horizontal Situation Indicator - [45] = "%.4f", -- HSI Heading Set Knob - [44] = "%.4f", -- HSI Course Set Knob - --Standby Attitude Indicator - [67] = "%1df", -- SAI Cage Standby Attitude Indicator. Hold Right Mouse Button and rotate Scroll Wheel to uncage - [66] = "%.4f", -- SAI Cage Standby Attitude Indicator. Hold Right Mouse Button and rotate Scroll Wheel to uncage - -- Digital Clock - [68] = "%1d", -- Clock Toggle Clock and Elapsed Time Modes - [69] = "%1d", -- Clock Start, Stop and Reset Elapsed Timer - -- Emergency Jettison Button - [101] = "%.1f", -- PTR-EXT-STORES-JETT (mergency Jettison External Stores) - -- Fire Extinguishers Panel - [102] = "%1d", -- PTR-FIRE-LENG-PULL (Left Engine Fire T-Handle) - [103] = "%1d", -- PTR-FIRE-APU-PULL (APU Fire T-Handle) - [104] = "%1d", -- PTR-FIRE-RENG-PULL (Right Engine Fire T-Handle) - [105] = "%1d", -- PTR-FIRE-EXTING-DISCH (Fire Extinguishing Agent Discharge) - -- Fuel System Control Panel - [106] = "%1d", -- PTR-FSCP-EXT-TANKS-WING (External Wing Tanks Boost Pumps) - [107] = "%1d", -- PTR-FSCP-EXT-TANKS-FUS (External Fuselage Tank Boost Pump) - [108] = "%1d", -- PTR-FSCP-TK-GATE (Tank Gate) - [109] = "%1d", -- PTR-FSCP-CROSS-FEED (Cross Feed) - [110] = "%1d", -- PTR-FSCP-BOOST-PUMPS-WING-L (Boost Pumps Left Wing) - [111] = "%1d", -- PTR-FSCP-BOOST-PUMPS-WING-R (Boost Pumps Right Wing) - [112] = "%1d", -- PTR-FSCP-BOOST-PUMPS-MAIN-L (Boost Pumps Main Fuselage Left) - [113] = "%1d", -- PTR-FSCP-BOOST-PUMPS-MAIN-R (Boost Pumps Main Fuselage Right) - [114] = "%1d", -- PTR-FSCP-SIG-AMPL (Signal Amplifier Norm/Override) - [115] = "%.1f", -- PTR-FSCP-LINE-CHECK (Line Check) - [116] = "%.3f", -- PTR-FSCP-RCVR-LT (Refueling Lighting Dial) - [117] = "%1d", -- PTR-FSCP-FILLDISABLE-WING-L (Fill Disable Wing Left) - [118] = "%1d", -- PTR-FSCP-FILLDISABLE-WING-R (Fill Disable Wing Right) - [119] = "%1d", -- PTR-FSCP-FILLDISABLE-MAIN-L (Fill Disable Main Left) - [120] = "%1d", -- PTR-FSCP-FILLDISABLE-MAIN-R (Fill Disable Main Right) - [121] = "%1d", -- PTR-FSCP-RCVR-LEVER (Aerial Refueling Slipway Control Lever) - -- Engine System and Throttle panel - [122] = "%1d", -- PTR-FUEL-FLOW-L (Left Engine Fuel Flow Control) - [123] = "%1d", -- PTR-FUEL-FLOW-R (Right Engine Fuel Flow Control) - [124] = "%1d", -- PTR-ENGINE-OPER-L (Engine Operate Left) - [125] = "%1d", -- PTR-ENGINE-OPER-R (Engine Operate Right) - [126] = "%1d", -- PTR-APU-START (APU On/Off) - [128] = "%.1f", -- PTR-THROTTLE-FRICTION (Throttle Friction Control) - [652] = "%1d", -- PTR-TEMS-DATA (TEMS DATA) - -- LASTE Control Panel - [130] = "%1d", -- PTR-LCP-RDRALTM (Radar Altimeter Normal/Disabled) - [131] = "%.1f", -- PTR-LCP-AUTOPILOT-ENGAGE (Autopilot Engage/Disengage) - [132] = "%1d", -- PTR-LCP-AUTOPILOT-PATH-ALT (Autopilot Mode Select Switch) - -- ANARC186-VHF_AM - -- AM Radio - [133] = "%.3f", -- PTR-ANARC186-VHFAM-VOLUME (Volume) - [134] = "%1d", -- PTR-ANARC186-VHFAM-SQUELCH (Squelch / TONE) - [135] = "%0.1f", -- PTR-ANARC186-VHFAM-FREQEMER-CONTROL (Frequency Selection Dial) - [136] = "%.1f", -- PTR-ANARC186-VHFAM-LOAD (Load) - [137] = "%0.3f", -- PTR-ANARC186-VHFAM-PRESET (Preset Channel Selector) - [138] = "%0.1f", -- PTR-ANARC186-VHFAM-MODE (Frequency Mode Dial) - [139] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-1 (Frequency Selector the 1nd) - [140] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-2 (Frequency Selector the 2nd) - [141] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-3 (Frequency Selector the 3nd) - [142] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-4 (Frequency Selector the 4nd) - -- FM Radio - [147] = "%.3f", -- PTR-ANARC186-VHFFM-VOLUME (Volume) - [148] = "%1d", -- PTR-ANARC186-VHFFM-SQUELCH (Squelch / TONE) - [149] = "%0.1f", -- PTR-ANARC186-VHFFM-FREQEMER-CONTROL (Frequency Selection Dial) - [150] = "%.1f", -- PTR-ANARC186-VHFFM-LOAD (Load) - [151] = "%0.3f", -- PTR-ANARC186-VHFFM-PRESET (Preset Channel Selector) - [152] = "%0.1f", -- PTR-ANARC186-VHFFM-MODE (Frequency Mode Dial) - [153] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-1 (Frequency Selector the 1nd) - [154] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-2 (Frequency Selector the 2nd) - [155] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-3 (Frequency Selector the 3nd) - [156] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-4 (Frequency Selector the 4nd) - -- ANARC164 - -- UHF Raido - [161] = "%0.2f", -- PTR-ANARC164-CHANNEL-SELECTOR (Preset Channel Selector) - [162] = "%0.1f", -- PTR-ANARC164-100MHZ-SELECTOR (100 MHz Selector) - [163] = "%0.2f", -- PTR-ANARC164-10MHZ-SELECTOR (10 MHz Selector) - [164] = "%0.2f", -- PTR-ANARC164-1MHZ-SELECTOR (1 MHz Selector) - [165] = "%0.2f", -- PTR-ANARC164-0.1MHZ-SELECTOR (0.1 MHz Selector) - [166] = "%0.2f", -- PTR-ANARC164-0.025MHZ-SELECTOR (0.025 MHz Selector) - [167] = "%0.1f", -- PTR-ANARC164-FREQMODE (Frequency Mode Dial) - [168] = "%0.1f", -- PTR-ANARC164-FUNCTION (Function Dial) - [169] = "%1d", -- PTR-ANARC164-T-TONE (T-Tone) - [170] = "%1d", -- PTR-ANARC164-SQUELCH (Squelch) - [171] = "%.3f", -- PTR-ANARC164-VOLUME (Volume) - [172] = "%.1f", -- PTR-ANARC164-TEST-DISPLAY (Test Display) - [173] = "%.1f", -- PTR-ANARC164-STATUS (Status) - [734] = "%1d", -- PTR-ANARC164-COVER - [735] = "%.1f", -- PTR-ANARC164-LOAD (Load button) - -- Emergency Flight Control Panel - [174] = "%1d", -- PTR-EFCP-SPDBK-EMER-RETR (Speed Brake Emergency Retract) - [175] = "%1d", -- Speed Brake Emergency Retract (Pitch/Roll Trim Norm/Emergency Override) - [176] = "%0.1f", -- PTR-EFCP-TRIM (Trim Emergency ...) - [177] = "%1d", -- PTR-EFCP-AILERON-EMER-DISENGAGE (Aileron Emergency Disengage) - [180] = "%1d", -- PTR-EFCP-ELEVATOR-EMER-DISENGAGE (Elevator Emergency Disengage) - [183] = "%1d", -- PTR-EFCP-FLAP-EMER-RETR (Flaps Emergency Retract) - [184] = "%1d", -- PTR-EFCP-MRFCS (Manual Reversion Flight Control System (MRFCS)) - -- STABILITY AUGMENTATION SYSTEM PANEL - [189] = "%1d", -- PTR-SASP-MONITOR-TEST (Monitor Test Left/Right) - [190] = "%.1f", -- PTR-SASP-TO-TRIM (Set Takeoff Trim) - [192] = "%.3f", -- PTR-SASP-YAW-TRIM (Yaw Trim) - -- Light System Control Panel - [193] = "%.3f", -- PTR-ALCP-RSIL (Refuel Status Indexer Lights) - [194] = "%0.1f", -- PTR-ALCP-NVIS-LTS (Nightvision Lights) - [195] = "%.3f", -- PTR-ALCP-WPNSTA (Weapon Station Lights. No function) - [196] = "%1d", -- PTR-ALCP-HARSSAS (HARS-SAS Override/NORM) - -- ALCP - [197] = "%.1f", -- "PTR-ALCP-SIGLIGHTS-LAMP-TEST (Test Cockpit Indication Lights) - -- Light System Control Panel - [198] = "%.1f", -- PTR-ALCP-FDBAL-TEST (Fire Detect Bleed Air Test) - -- IFF - [199] = "%0.1f", -- PTR-IFFCP-CODE (Code) - [200] = "%0.1f", -- PTR-IFFCP-MASTER (Master) - [201] = "%1d", -- PTR-IFFCP-OUT-AUDIO-LIGHT (Audio/light) - [202] = "%1d", -- PTR-IFFCP-TEST-M-1 (Test M-1) - [203] = "%1d", -- PTR-IFFCP-TEST-M-2 (Test M-2) - [204] = "%1d", -- PTR-IFFCP-TEST-M-3A (Test M-3A) - [205] = "%1d", -- PTR-IFFCP-TEST-M-C (Test M-C) - [206] = "%1d", -- PTR-IFFCP-RADTEST (RAD Test/Mon) - [207] = "%1d", -- PTR-IFFCP-MIC-IDENT (Ident/Mic) - [208] = "%1d", -- PTR-IFFCP-ON-OUT (IFF On/Out) - [209] = "%0.2f", -- PTR-IFFCP-MODE1-WHEEL1 (MODE1-WHEEL1) - [210] = "%0.2f", -- PTR-IFFCP-MODE1-WHEEL2 (MODE1-WHEEL2) - [211] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL1 (MODE3A-WHEEL1) - [212] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL2 (MODE3A-WHEEL2) - [213] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL3 (MODE3A-WHEEL3) - [214] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL4 (MODE3A-WHEEL4) - -- Inercom Panel - [221] = "%.3f", -- PTR-INTERCOM-INT (INT Switch) - [222] = "%1d", -- PTR-INTERCOM-INT (INT Switch) - [223] = "%.3f", -- PTR-INTERCOM-FM (FM Switch) - [224] = "%1d", -- PTR-INTERCOM-FM (FM Switch) - [225] = "%.3f", -- PTR-INTERCOM-VHF (VHF Switch) - [226] = "%1d", -- PTR-INTERCOM-VHF (VHF Switch) - [227] = "%.3f", -- PTR-INTERCOM-UHF (UHF Switch) - [228] = "%1d", -- PTR-INTERCOM-UHF (UHF Switch) - [229] = "%.3f", -- PTR-INTERCOM-AIM (AIM Switch) - [230] = "%1d", -- PTR-INTERCOM-AIM (AIM Switch) - [231] = "%.3f", -- PTR-INTERCOM-IFF (IFF Switch) - [232] = "%1d", -- PTR-INTERCOM-IFF (IFF Switch) - [233] = "%.3f", -- PTR-INTERCOM-ILS (ILS Switch) - [234] = "%1d", -- PTR-INTERCOM-ILS (ILS Switch) - [235] = "%.3f", -- PTR-INTERCOM-TCN (TCN Switch) - [236] = "%1d", -- PTR-INTERCOM-TCN (TCN Switch) - [237] = "%1d", -- PTR-INTERCOM-HM (HM Switch) - [238] = "%.3f", -- PTR-INTERCOM-VOL (Intercom volume) - [239] = "%0.1f", -- PTR-INTERCOM-MODE (Selector switch) - [240] = "%.1f", -- PTR-INTERCOM-CALL (Call button) - -- Electrical Power Panel - [241] = "%1d", -- PTR-EPP-APU-GEN-PWR (APU Generator On/Off) - [242] = "%1d", -- PTR-EPP-INVERTER (Inverter Switch) - [243] = "%1d", -- PTR-EPP-EMER-FLOOD (Emergency Flood Light) - [244] = "%1d", -- PTR-EPP-AC-GEN-PWR-L (Left AC Generator Power) - [245] = "%1d", -- PTR-EPP-AC-GEN-PWR-R (Right AC Generator Power) - [246] = "%1d", -- PTR-EPP-BATTERY-PWR (Battery Power) - -- ILS - [247] = "%1d", -- PTR-ILSCP-PWR Power - [248] = "%0.1f", -- PTR-ILSCP-PWR ILS Frequency MHz - [249] = "%.3f", -- PTR-ILSCP-VOL ILS Frequency kHz - [250] = "%0.1f", -- PTR-ILSCP-VOL Volume - [251] = "%0.1f", -- ILS_window_wheel_MHz - [252] = "%0.1f", -- ILS_window_wheel_KHz - -- TACAN - [256] = "%.1f", -- Channel Selector (Tens). Rotate mouse wheel to select (Axis) {0.0,1.0} in 0.1 steps - [257] = "%0.2f", -- Channel Selector (Ones) / X/Y Mode. Rotate mouse wheel to make channel selection (Axis) {0.0,1.0} in 0.1 steps - [258] = "%1d", -- Channel Selector (Ones) / X/Y Mode. Right mouse click to select X/Y. - [259] = "%.1f", -- PTR-TACAN-TEST (Test TACAN Signal on HSI) - [261] = "%.3f", -- PTR-TACAN-VOL (Signal Volume) (Axis) {0.0,1.0} in 0.1 steps - [262] = "%0.1f", -- PTR-TACAN-MODE (Mode Dial) {0.0,0.1,0.2,0.3,0.4} - [263] = "%.1f", -- TACAN_digit_pos.hundreds - [264] = "%.1f", -- TACAN_digit_pos.tens - [265] = "%.1f", -- TACAN_digit_pos.ones - --[266] = "%1d", -- XYwheel - -- HARS - [267] = "%.1f", -- PTR-HARS-CP-PUSH-TO-SYNC (HARS Push-To-Sync) - [268] = "%.3f", -- PTR-HARS-CP-PUSH-TO-SYNC (HARS Push-To-Sync) - [270] = "%1d", -- PTR-HARS-CP-SLAVE (HARS SLAVE-DG mode) - [271] = "%.3f", -- PTR-HARS-CP-LATITUDE (HARS Latitude Dial) - [272] = "%1d", -- PTR-HARS-CP-MAG-VAR (HARS MAG VAR) - [273] = "%1d", -- PTR-HARS-CP-N-S (HARS N/S toggle switch) - [711] = "%.1f", -- PTR-HARS-FAST-ERECT (HARS Fast Erect) - -- Environment Control Panel - [275] = "%.1f", -- PTR-ENVCP-OXY-TEST (Oxygen Indicator Test) - [276] = "%1d", -- PTR-ENVCP-WINDSHIELD-DEFOG (Windshield Defog/Deice) - [277] = "%.3f", -- PTR-ENVCP-CANOPY-DEFOG (Canopy Defog) - [278] = "%1d", -- PTR-ENVCP-WINDSHIELD-RREMOVE-WASH (Windshield Rain Removal/Wash) - [279] = "%1d", -- PTR-ENVCP-PITOT-HEAT (Pitot Heater) - [280] = "%1d", -- PTR-ENVCP-BLEED-AIR (Bleed Air) - [282] = "%1d", -- PTR-ENVCP-TEMP-PRESS (Temperature/Pressure Control) - [283] = "%1d", -- PTR-ENVCP-MAIN-AIR-SUPPLY (Main Air Supply) - [284] = "%.3f", -- PTR-ENVCP-FLOW-LEVEL (Flow Level Control) - -- Light System Control Panel - [287] = "%1d", -- PTR-LGHTCP-POSITION (Position Lights, FLASH/OFF/STEADY) - [288] = "%.3f", -- PTR-LGHTCP-FORMATION (Formation Lights) - [290] = "%.3f", -- PTR-LGHTCP-ENG-INST (Engine Instruments Lights) - [291] = "%1d", -- PTR-LGHTCP-NOSE-ILLUM (Nose Illumination) - [292] = "%.3f", -- PTR-LGHTCP-FLIGHT-INST (Flight Instruments Lights) - [293] = "%.3f", -- PTR-LGHTCP-AUX-INST (Auxiliary Instruments Lights) - [294] = "%1d", -- PTR-LGHTCP-SIGNAL-LTS (Signal Lights) - [295] = "%1d", -- PTR-LGHTCP-ACCEL-COMP (Accelerometer & Compass Lights) - [296] = "%.3f", -- PTR-LGHTCP-FLOOD (Flood Light) - [297] = "%.3f", -- PTR-LGHTCP-CONSOLE (Console Light) - -- Left MFCDI - [300] = "%.1f", -- PNT-BTN-MFD-L-01 (OSB 1) - [301] = "%.1f", -- PNT-BTN-MFD-L-02 (OSB 2) - [302] = "%.1f", -- PNT-BTN-MFD-L-03 (OSB 3) - [303] = "%.1f", -- PNT-BTN-MFD-L-04 (OSB 4) - [304] = "%.1f", -- PNT-BTN-MFD-L-05 (OSB 5) - [305] = "%.1f", -- PNT-BTN-MFD-L-06 (OSB 6) - [306] = "%.1f", -- PNT-BTN-MFD-L-07 (OSB 7) - [307] = "%.1f", -- PNT-BTN-MFD-L-08 (OSB 8) - [308] = "%.1f", -- PNT-BTN-MFD-L-09 (OSB 9) - [309] = "%.1f", -- PNT-BTN-MFD-L-10 (OSB 10) - [310] = "%.1f", -- PNT-BTN-MFD-L-11 (OSB 11) - [311] = "%.1f", -- PNT-BTN-MFD-L-12 (OSB 12) - [312] = "%.1f", -- PNT-BTN-MFD-L-13 (OSB 13) - [313] = "%.1f", -- PNT-BTN-MFD-L-14 (OSB 14) - [314] = "%.1f", -- PNT-BTN-MFD-L-15 (OSB 15) - [315] = "%.1f", -- PNT-BTN-MFD-L-16 (OSB 16) - [316] = "%.1f", -- PNT-BTN-MFD-L-17 (OSB 17) - [317] = "%.1f", -- PNT-BTN-MFD-L-18 (OSB 18) - [318] = "%.1f", -- PNT-BTN-MFD-L-19 (OSB 19) - [319] = "%.1f", -- PNT-BTN-MFD-L-20 (OSB 20) - [320] = "%1d", -- PNT-MFCD-L-ADJ-UP/DN (Moving Map Scale Adjust Increase/Decrease) - [321] = "%1d", -- PNT-MFCD-L-DSP-UP/DN (Decrease/Increase Backlight Brightness) - [322] = "%1d", -- PNT-MFD-L-BRT-UP/DN (Decrease/Increase Brightness) - [323] = "%1d", -- PNT-MFD-L-CON-UP/DN (Decrease/Increase Contrast) - [324] = "%1d", -- PNT-MFD-L-SYM-UP/DN (Decrease/Increase Symbol Levels) - [325] = "%0.1f", -- PNT-LVR-MFD-L (DAY/NIGHT/OFF) - -- Right MFCDI - [326] = "%.1f", -- PNT-BTN-MFD-R-01 (OSB 1) - [327] = "%.1f", -- PNT-BTN-MFD-R-02 (OSB 2) - [328] = "%.1f", -- PNT-BTN-MFD-R-03 (OSB 3) - [329] = "%.1f", -- PNT-BTN-MFD-R-04 (OSB 4) - [330] = "%.1f", -- PNT-BTN-MFD-R-05 (OSB 5) - [331] = "%.1f", -- PNT-BTN-MFD-R-06 (OSB 6) - [332] = "%.1f", -- PNT-BTN-MFD-R-07 (OSB 7) - [333] = "%.1f", -- PNT-BTN-MFD-R-08 (OSB 8) - [334] = "%.1f", -- PNT-BTN-MFD-R-09 (OSB 9) - [335] = "%.1f", -- PNT-BTN-MFD-R-10 (OSB 10) - [336] = "%.1f", -- PNT-BTN-MFD-R-11 (OSB 11) - [337] = "%.1f", -- PNT-BTN-MFD-R-12 (OSB 12) - [338] = "%.1f", -- PNT-BTN-MFD-R-13 (OSB 13) - [339] = "%.1f", -- PNT-BTN-MFD-R-14 (OSB 14) - [340] = "%.1f", -- PNT-BTN-MFD-R-15 (OSB 15) - [341] = "%.1f", -- PNT-BTN-MFD-R-16 (OSB 16) - [342] = "%.1f", -- PNT-BTN-MFD-R-17 (OSB 17) - [343] = "%.1f", -- PNT-BTN-MFD-R-18 (OSB 18) - [344] = "%.1f", -- PNT-BTN-MFD-R-19 (OSB 19) - [345] = "%.1f", -- PNT-BTN-MFD-R-20 (OSB 20) - [346] = "%1d", -- PNT-MFCD-R-ADJ-UP/DN (Moving Map Scale Adjust Increase/Decrease) - [347] = "%1d", -- PNT-MFCD-R-DSP-UP/DN (Decrease/Increase Backlight Brightness) - [348] = "%1d", -- PNT-MFD-R-BRT-UP/DN (Decrease/Increase Brightness) - [349] = "%1d", -- PNT-MFD-R-CON-UP/DN (Decrease/Increase Contrast) - [350] = "%1d", -- PNT-MFD-R-SYM-UP/DN (Decrease/Increase Symbol Levels) - [351] = "%0.1f", -- PNT-LVR-MFD-R (DAY/NIGHT/OFF) - -- CMSP - [352] = "%.1f", -- PNT-BTN-CMSP-ARW1 (Edit Program Value) - [353] = "%.1f", -- PNT-BTN-CMSP-ARW2 (Edit Program Value) - [354] = "%.1f", -- PNT-BTN-CMSP-ARW3 (Edit Program Value) - [355] = "%.1f", -- PNT-BTN-CMSP-ARW4 (Edit Program Value) - [356] = "%1d", -- PNT-BTN-CMSP-BRT-UP/DN (Cycle Program or Value Up/Down) - [357] = "%.1f", -- PNT-BTN-CMSP-RTN (Save and Return Program) - [358] = "%1d", -- PNT-TMB-CMSP-JTSN (Jettison Countermeasures) - [359] = "%.3f", -- PNT-LEV-CMSP-BRT (Adjust Display Brightness) - [360] = "%0.1f", -- PNT-TMB-CMSP-MWS (Missile Warning System (MWS). Left mouse - ON/OFF, Right mouse - MENU (No Function)) - [361] = "%0.1f", -- PNT-TMB-CMSP-JMR (Electronic Countermeasure Jammer (JMR). Left mouse - ON/OFF, Right mouse - MENU (No Function)) - [362] = "%0.1f", -- PNT-TMB-CMSP-RWR (Radar Warning Receiver (RWR). Left mouse - ON/OFF, Right mouse - MENU) - [363] = "%0.1f", -- PNT-TMB-CMSP-DISP (Countermeasure Dispenser (DISP). Left mouse - ON/OFF, Right mouse - MENU) - [364] = "%0.1f", -- PNT-LEV-CMSP-MODE (Master CMS Mode Select) - -- CMSC - [365] = "%.1f", -- PNT-BTN-RWR-JMR (Select Jammer Program) - [366] = "%.1f", -- PNT-BTN-RWR-MWS (Cycle Missile Warning System Programs. No function) - [367] = "%.3f", -- PNT-LEV-RWR-BRT (Adjust Display Brightness) - [368] = "%.3f", -- PNT-LEV-RWR-AUD (Adjust RWR Volume) - [369] = "%.1f", -- PNT-BTN-RWR-PRI (Toggle between 5 and 16 Priority Threats Displayed) - [370] = "%.1f", -- PNT-BTN-RWR-SEP (Separate RWR Symbols) - [371] = "%.1f", -- PNT-BTN-RWR-UNK (Display Unknown Threats) - -- AHCP - [375] = "%0.1f", -- PNT-TMB-AHCP-MARM (Master Arm) - [376] = "%0.1f", -- PNT-TMB-AHCP-GUNPAC (Gun Arm Mode) - [377] = "%0.1f", -- PNT-TMB-AHCP-LARM (Laser Arm) - [378] = "%1d", -- PNT-TMB-AHCP-TGP (Targeting Pod Power On/Off) - [379] = "%0.1f", -- PNT-TMB-AHCP-ALT (Altimeter Source) - [380] = "%1d", -- PNT-TMB-AHCP-TIME (Day/Night HUD Mode) - [381] = "%1d", -- PNT-TMB-AHCP-NORM (NORM/Standby HUD Mode) - [382] = "%1d", -- PNT-TMB-AHCP-CICU (Turn On/Off CICU) - [383] = "%1d", -- PNT-TMB-AHCP-JTRS (JTRS Datalink On/Off) - [384] = "%0.1f", -- PNT-TMB-AHCP-IFFCC (Turn On/Off/Test IFFCC) - -- UFC - [385] = "%.1f", -- PNT-BTN-UFC-1 - [386] = "%.1f", -- PNT-BTN-UFC-2 - [387] = "%.1f", -- PNT-BTN-UFC-3 - [388] = "%.1f", -- PNT-BTN-UFC-4 - [389] = "%.1f", -- PNT-BTN-UFC-5 - [390] = "%.1f", -- PNT-BTN-UFC-6 - [391] = "%.1f", -- PNT-BTN-UFC-7 - [392] = "%.1f", -- PNT-BTN-UFC-8 - [393] = "%.1f", -- PNT-BTN-UFC-9 - [394] = "%.1f", -- PNT-BTN-UFC-HACK (Display Hack Time) - [395] = "%.1f", -- PNT-BTN-UFC-0 - [396] = "%.1f", -- PNT-BTN-UFC-SPC (Space) - [397] = "%.1f", -- PNT-BTN-UFC-FUNC (Select Function Mode) - [398] = "%.1f", -- PNT-BTN-UFC-LTR (Select Letter Mode) - [399] = "%.1f", -- PNT-BTN-UFC-CLR (Clear) - [400] = "%.1f", -- PNT-BTN-UFC-ENT (Enter) - [401] = "%.1f", -- PNT-BTN-UFC-MK (Create Overhead Mark Point) - [402] = "%.1f", -- PNT-BTN-UFC-ALT (Display and Adjust Altitude Alert Values) - [405] = "%1d", -- PNT-BTN-UFC-STEER-UP/DN (Cycle Steerpoint/Waypoint) - [406] = "%1d", -- PNT-BTN-UFC-DATA-UP/DN - [407] = "%1d", -- PNT-BTN-UFC-SEL-UP/DN - [408] = "%1d", -- PNT-BTN-UFC-DEPR-UP/DN (Adjust Depressible Pipper) - [409] = "%1d", -- PNT-BTN-UFC-INTEN-RGT/LFT (Adjust HUD Brightness (Hold rocker)) - -- SYS_CONTROLLER - [403] = "%.1f", -- PNT-BTN-UFC-MASTWARN (Master Caution Light) - -- CDU - [410] = "%.1f", -- PNT-BTN-CDU-ARW-L1 (LSK 3L) - [411] = "%.1f", -- PNT-BTN-CDU-ARW-L2 (LSK 5L) - [412] = "%.1f", -- PNT-BTN-CDU-ARW-L3 (LSK 7L) - [413] = "%.1f", -- PNT-BTN-CDU-ARW-L4 (LSK 9L) - [414] = "%.1f", -- PNT-BTN-CDU-ARW-R1 (LSK 3R) - [415] = "%.1f", -- PNT-BTN-CDU-ARW-R2 (LSK 5R) - [416] = "%.1f", -- PNT-BTN-CDU-ARW-R3 (LSK 7R) - [417] = "%.1f", -- PNT-BTN-CDU-ARW-R4 (LSK 9R) - [418] = "%.1f", -- PNT-BTN-CDU-SYS (Display System (SYS) Page) - [419] = "%.1f", -- PNT-BTN-CDU-NAV (Display Navigation (NAV) Page) - [420] = "%.1f", -- PNT-BTN-CDU-WP (Display Waypoint Menu (WP MENU) Page) - [421] = "%.1f", -- PNT-BTN-CDU-OSET (Display Offset (OFFSET) Page) - [422] = "%.1f", -- PNT-BTN-CDU-FPM (Display Flight Plan Menu (FPMENU) Page) - [423] = "%.1f", -- PNT-BTN-CDU-PREV (Go to previous page) - [424] = "%1d", -- PNT-BTN-CDU-DIMBRT-L/R (Display Brightness Adjustment (Not Functional)) - [425] = "%.1f", -- PNT-BTN-CDU-1 - [426] = "%.1f", -- PNT-BTN-CDU-2 - [427] = "%.1f", -- PNT-BTN-CDU-3 - [428] = "%.1f", -- PNT-BTN-CDU-4 - [429] = "%.1f", -- PNT-BTN-CDU-5 - [430] = "%.1f", -- PNT-BTN-CDU-6 - [431] = "%.1f", -- PNT-BTN-CDU-7 - [432] = "%.1f", -- PNT-BTN-CDU-8 - [433] = "%.1f", -- PNT-BTN-CDU-9 - [434] = "%.1f", -- PNT-BTN-CDU-0 - [435] = "%.1f", -- PNT-BTN-CDU-PNT - [436] = "%.1f", -- PNT-BTN-CDU-SLASH - [437] = "%.1f", -- PNT-BTN-CDU-A - [438] = "%.1f", -- PNT-BTN-CDU-B - [439] = "%.1f", -- PNT-BTN-CDU-C - [440] = "%.1f", -- PNT-BTN-CDU-D - [441] = "%.1f", -- PNT-BTN-CDU-E - [442] = "%.1f", -- PNT-BTN-CDU-F - [443] = "%.1f", -- PNT-BTN-CDU-G - [444] = "%.1f", -- PNT-BTN-CDU-H - [445] = "%.1f", -- PNT-BTN-CDU-I - [446] = "%.1f", -- PNT-BTN-CDU-J - [447] = "%.1f", -- PNT-BTN-CDU-K - [448] = "%.1f", -- PNT-BTN-CDU-L - [449] = "%.1f", -- PNT-BTN-CDU-M - [450] = "%.1f", -- PNT-BTN-CDU-N - [451] = "%.1f", -- PNT-BTN-CDU-O - [452] = "%.1f", -- PNT-BTN-CDU-P - [453] = "%.1f", -- PNT-BTN-CDU-Q - [454] = "%.1f", -- PNT-BTN-CDU-R - [455] = "%.1f", -- PNT-BTN-CDU-S - [456] = "%.1f", -- PNT-BTN-CDU-T - [457] = "%.1f", -- PNT-BTN-CDU-U - [458] = "%.1f", -- PNT-BTN-CDU-V - [459] = "%.1f", -- PNT-BTN-CDU-W - [460] = "%.1f", -- PNT-BTN-CDU-X - [461] = "%.1f", -- PNT-BTN-CDU-Y - [462] = "%.1f", -- PNT-BTN-CDU-Z - [463] = "%1d", -- PNT-BTN-CDU-PG-UP/DN (Page Up/Down To Additional Pages When Available) - [466] = "%.1f", -- PNT-BTN-CDU-MK (Create Overhead Mark Point) - [467] = "%.1f", -- PNT-BTN-CDU-BCK (Erase Single Character. Hold for repeated erase) - [468] = "%.1f", -- PNT-BTN-CDU-SPC (Insert Space Into Scratchpad) - [469] = "%1d", -- PNT-BTN-CDU-BLANC-L/R (Scroll Waypoint Names During Search) - [470] = "%.1f", -- PNT-BTN-CDU-CLR (Erase Entire Scratchpad) - [471] = "%.1f", -- PNT-BTN-CDU-FA (Fault Acknowledge/Clear Fault Display) - [472] = "%1d", -- PNT-BTN-CDU-PLUS (Increment/Decrement Data Indicated With +/- Symbol) - -- AAP - [473] = "%0.1f", -- PNT-LVR-STEER-PT-SEL-SWITCH (Use Steerpoint From Active Flight Plan) - [474] = "%1d", -- PNT-TMB-STEER-SPRING-LD-SWITCH (Toggle Steerpoint) - [475] = "%0.1f", -- PNT-LEV-PAGE-SEL-SWITCH (CDU Page Select) - [476] = "%1d", -- PTR-TMB-CDU-SWITCH (CDU Power On/Off) - [477] = "%1d", -- PTR-TMB-EGI-SWITCH (EGI Power On/Off) - -- UFC - [531] = "%.1f", -- PNT-BTN-UFC-FWD - [532] = "%.1f", -- PNT-BTN-UFC-MID - [533] = "%.1f", -- PNT-BTN-UFC-AFT - -- Oxygen System Control Panel - [601] = "%1d", -- PTR-OXYGENCP-EMERGENCY (Oxygen Flow Emergency/Normal/Test Mask) - [602] = "%1d", -- PTR-OXYGENCP-OXYGEN-DILUTER (Oxygen Normal/100%) - [603] = "%1d", -- PTR-OXYGENCP-SUPPLY (Oxygen Supply On/Off) - -- Navigation Mode Select Panel - [605] = "%.1f", -- PTR-NMSP-HARS (HARS Backup Navigation Mode) - [607] = "%.1f", -- PTR-NMSP-EGI (EGI Navigation Mode) - [609] = "%.1f", -- PTR-NMSP-TISL (TISL No Function) - [611] = "%.1f", -- PTR-NMSP-STARTPT (STEERPT Mode) - [613] = "%.1f", -- PTR-NMSP-ANCHR (ANCHR Mode) - [615] = "%.1f", -- PTR-NMSP-TCN (TCN Mode) - [617] = "%.1f", -- PTR-NMSP-ILS (ILS Mode) - [621] = "%1d", -- PTR-NMSP-ABLE-STOW (ABLE-STOW ADI Localizer Bar) - -- TISL Control Panel - [622] = "%0.1f", -- PTR-TISLCP-MODE (TISL Mode) - [623] = "%1d", -- PTR-TISLCP-SLANT-RNG (Slant range) - [624] = "%.3f", -- PTR-TISLCP-ALT-ABV-TGT-WH1 (Altitude above target tens of thousands of feet) - [626] = "%.3f", -- PTR-TISLCP-ALT-ABV-TGT-WH2 (Altitude above target Units of thousands of feet) - [628] = "%.1f", -- PTR-TISLCP-ENTER (ENTER) - [630] = "%.1f", -- - [632] = "%.1f", -- PTR-TISLCP-BITE (BITE) - [634] = "%.1f", -- - [636] = "%0.2f", -- PTR-TISLCP-CODE-WH1 (TISL Code wheel 1) - [638] = "%0.2f", -- PTR-TISLCP-CODE-WH2 (TISL Code wheel 2) - [640] = "%0.2f", -- PTR-TISLCP-CODE-WH3 (TISL Code wheel 3) - [642] = "%0.2f", -- PTR-TISLCP-CODE-WH4 (TISL Code wheel 4) - [644] = "%1d", -- PTR-TISLCP-TISL-AUX (TISL AUX) - -- Fuel System Control Panel - -- Fuel Quantity Indicator and Selector - [645] = "%0.1f", -- PTR-FQIS-SELECT (Fuel display selector) - [646] = "%.1f", -- PTR-FQIS-TEST (Fuel Gauge Test) - -- CPT MECH - [651] = "%.1f", -- PTR-DOWNLOCK-OVERRIDE (Downlock Override) - [716] = "%1d", -- PNT-LNDGEAR (Landing Gear Lever) - [773] = "%1d", -- PTR-FLAPS (Flap Setting) - [654] = "%1d", -- PTR-ANTI-SKID (Anti Skid) - -- Light System Control Panel - [655] = "%0.1f", -- PTR-LIGHTS-LAND (Land Taxi Lights) - -- STALL - [704] = "%.1f", -- PTR-STALLWCP-STALL (Stall Volume) (Axis) {0.0,1.0} in 0.1 steps - [705] = "%.1f", -- PTR-STALLWCP-PEAK (Peak Volume) (Axis) {0.0,1.0} in 0.1 steps - -- Canopy - [712] = "%0.2f", -- PTR-CANOPY-OPEN (Canopy Open/Hold/Close) - -- Auxiliary Landing Gear Handle - [718] = "%1d", -- PTR-ARM-DWNC-L (Auxiliary Landing Gear Handle) - [722] = "%.1f", -- PTR-BTN-ARM-DWNC-L (Auxiliary Landing Gear Handle Lock button) - -- Arm Seat Handle - [733] = "%1d", -- PTR-ARM-SEAT-HANDLE (Seat Arm Handle) - -- - [772] = "%1d", -- PTR-EMER-BRKARM (Emergency Brake) - -- Secure Voice Comms Panel - [778] = "%1d", -- PTR-ZEROIZE-COVER (Zeroise Cover) - [779] = "%1d", -- PTR-ZEROIZE-SWITCH (Zeroise Switch) - [780] = "%1d", -- PTR-DELAY-SWITCH (Delay Switch) - [781] = "%0.1f", -- PTR-LVR-PANKY58-PLAIN (C/RAD switch) - [782] = "%0.1f", -- PTR-LVR-PANKY58-1TO5 (Full switch) - [783] = "%0.1f", -- PTR-LVR-PANKY58-MODE (Mode switch) - [784] = "%1d", -- PTR-TMB-PANKY58-POWER (Power switch) - -- Armament Ground Safety Override Switch - [709] = "%1d", -- PTR-ARMGS-COVER (Arm Ground Safety Override Cover) - [710] = "%1d", -- PTR-ARMGS-OVERRIDE-SWITCH (Arm Ground Safety Override Switch) - --Circuit Breaker Panel CBP - [666] = "%1d", -- PTR-CBP-AILERON-DISC-L (AILERON DISC L) - [667] = "%1d", -- PTR-CBP-AILERON-DISC-R (AILERON DISC R) - [668] = "%1d", -- PTR-CBP-SPS-RUDDER-AUTH-LIM (SPS & RUDDER AUTH LIMIT) - [669] = "%1d", -- PTR-CBP-ELEVATION-DISC-L (ELEVATION DISC L) - [670] = "%1d", -- PTR-CBP-ELEVATION-DISC-R (ELEVATION DISC R) - [671] = "%1d", -- PTR-CBP-AILERON-TAB-L (AILERON TAB L) - [672] = "%1d", -- PTR-CBP-AILERON-TAB-R (AILERON TAB R) - [673] = "%1d", -- PTR-CBP-EMER-FLAP (EMER FLAP) - [674] = "%1d", -- PTR-CBP-EMER-TRIM (EMER TRIM) - [675] = "%1d", -- PTR-CBP-LAND-GEAR (LAND GEAR) - [676] = "%1d", -- PTR-CBP-ENGINE-START-L (ENGINE START L) - [677] = "%1d", -- PTR-CBP-ENGINE-START-R (ENGINE START R) - [678] = "%1d", -- PTR-CBP-APU-CONT (APU CONT) - [679] = "%1d", -- PTR-CBP-ANG-IGNITOR-1 (ENG IGNITOR L/R-1) - [680] = "%1d", -- PTR-CBP-ANG-IGNITOR-2 (ENG IGNITOR L/R-2) - [681] = "%1d", -- PTR-CBP-EMER-FUEL-SHUTOFF-ENG-L (EMER FUEL SHUTOFF ENG L) - [682] = "%1d", -- PTR-CBP-EMER-FUEL-SHUTOFF-ENG-R (EMER FUEL SHUTOFF ENG R) - [683] = "%1d", -- PTR-CBP-DC-FUEL-PUMP (DC FUEL PUMP) - [684] = "%1d", -- PTR-CBP-BLEED-AIR-CONT-L (BLEED AIR CONT L) - [685] = "%1d", -- PTR-CBP-BLEED-AIR-CONT-R (BLEED AIR CONT R) - [686] = "%1d", -- PTR-CBP-EXT-STORES-JETT-1 (EXT STORES JETT 1) - [687] = "%1d", -- PTR-CBP-EXT-STORES-JETT-2 (EXT STORES JETT 2) - [688] = "%1d", -- PTR-CBP-STBY-ATT-IND (STBY ATT IND) - [689] = "%1d", -- PTR-CBP-MASTER-CAUT (MASTER CAUT) - [690] = "%1d", -- PTR-CBP-PITOT-HEAT-AC (PITOT HEAT AC) - [691] = "%1d", -- PTR-CBP-IFF (IFF) - [692] = "%1d", -- PTR-CBP-UHF-COMM (UHF COMM) - [693] = "%1d", -- PTR-CBP-INTER-COMM (INTER COMM) - [694] = "%1d", -- PTR-CBP-GENERATOR-CONT-L (GENERATOR CONT L) - [695] = "%1d", -- PTR-CBP-GENERATOR-CONT-R (GENERATOR CONT R) - [696] = "%1d", -- PTR-CBP-CONVERTER-L (CONVERTER L) - [697] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0A (AUX ESS BUS 0A) - [698] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0B (AUX ESS BUS 0B) - [699] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0C (AUX ESS BUS 0C) - [700] = "%1d", -- PTR-CBP-BATTERY-BUS-TRANS (BATTERY BUS TRANS) - [701] = "%1d", -- PTR-CBP-INVERTER-PWR (INVERTER PWR) - [702] = "%1d", -- PTR-CBP-INVERTER-CONT (INVERTER CONT) - [703] = "%1d", -- PTR-CBP-AUX-ESS-BUS-TIE (AUX ESS BUS TIE) - --AAU-34/A - [62] = "%1d", -- PNT-ALT-LEVR-L (Set Pressure) - [60] = "%1d", -- PNT-ALT-LEVR-R (ELECT/PNEU) - -- Seat Adjustment Button - [770] = "%1d", -- Seat Height Adjustment up/down - -- Arm Seat Handle - [787] = "%1d", -- Extend boarding ladder cover - [788] = "%1d", -- Extend boarding ladder button - -- Accelerometer - [904] = "%1d", -- Accelerometer Push to set - -- DVADR Remote Control Panel - [789] = "%1d", -- DVADR - Function control toggle switch - -- Anti-G suit valve test button - [776] = "%1d", -- Anti-G suit valve test button - -- Internal canopy actuator disengage lever - [777] = "%1d", -- Internal canopy actuator disengage lever - -- Canopy jettison lever - [785] = "%1d", -- Canopy jettison lever - [786] = "%1d", -- Canopy Jettison Lever Unlock Button - -- Antenna Select Panel - [706] = "%1d", -- IFF - antenna switch - [707] = "%1d", -- UHF - antenna switch - [708] = "%1d", -- EGI HQ TOD - -- RWR - [16] = "%.4f", -- RWR Adjust Display Brightness {0.15, 0.85} in 0.1 steps -} - ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ - --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - -- Digital Clock - ------------------------------------------------- - local lDigitalClock = ExportScript.Tools.getListIndicatorValue(4) - - if lDigitalClock ~= nil and lDigitalClock.txtHours ~= nil then - local lCET = "" - if lDigitalClock.txtET ~= nil then - lCET = ";"..lDigitalClock.txtET - else - lCET = "; "..lDigitalClock.txtC - end - - ExportScript.Tools.SendData(2010, string.format("%s%s%s%s", lDigitalClock.txtHours, lDigitalClock.txtMinutes, lDigitalClock.txtSeconds, lCET)) - end -end - -function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - -- Digital Clock - ------------------------------------------------- - local lDigitalClock = ExportScript.Tools.getListIndicatorValue(4) - - if lDigitalClock ~= nil and lDigitalClock.txtHours ~= nil then - ExportScript.Tools.SendDataDAC("2010", string.format("%s%s%s", lDigitalClock.txtHours, lDigitalClock.txtMinutes, lDigitalClock.txtSeconds)) - end -end - ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance -function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - -- AN/ARC-164 UHF and UHF Preset Channel - --------------------------------------------------- - local lUHF_RADIO = GetDevice(54) - if lUHF_RADIO:is_on() then - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((lUHF_RADIO:get_frequency()/1000000))) - - local lPresetChannel = ExportScript.Tools.getListIndicatorValue(10) - - ExportScript.Tools.SendData(2001, string.format("%s", lPresetChannel.txtPresetChannel)) - else - ExportScript.Tools.SendData(2000, " ") - ExportScript.Tools.SendData(2001, " ") - end - - -- AN/ARC-186(V) VHF AM and Preset Channel - --------------------------------------------------- - local lVHF_AM_RADIO = GetDevice(55) - ExportScript.Tools.SendData(2002, ExportScript.Tools.RoundFreqeuncy((lVHF_AM_RADIO:get_frequency()/1000000))) - - local lVHF_AM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} - ExportScript.Tools.SendData(2003, lVHF_AM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(137), 2)]) - - -- AN/ARC-186(V) VHF FM and Preset Channel - ------------------------------------------------- - local lVHF_FM_RADIO = GetDevice(56) - ExportScript.Tools.SendData(2004, ExportScript.Tools.RoundFreqeuncy((lVHF_FM_RADIO:get_frequency()/1000000))) - - -- Preset is buggy - local lVHF_FM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} - ExportScript.Tools.SendData(2005, lVHF_FM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(151), 2, "ceil")]) - - -- TACAN Channel - ------------------------------------------------- - ExportScript.Tools.SendData(2008, (mainPanelDevice:get_argument_value(263) == 0 and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(mainPanelDevice:get_argument_value(266) == 0 and "X" or "Y")) - ExportScript.Tools.SendData(266, (mainPanelDevice:get_argument_value(266) == 0 and "0" or "1")) - - -- ILS Channel - ------------------------------------------------- - local lILSFrequencyMHz = {[0]="108",[0.1]="109",[0.2]="110",[0.3]="111"} - local lILSFrequencyKHz = {[0]="10",[0.1]="15",[0.2]="30",[0.3]="35",[0.4]="50",[0.5]="55",[0.6]="70",[0.7]="75",[0.8]="90",[0.9]="95"} - - ExportScript.Tools.SendData(2009, lILSFrequencyMHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(251), 1)].."."..lILSFrequencyKHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(252), 1)]) - - -- CMSC 2020 (Text only) - ------------------------------------------------- - if mainPanelDevice:get_argument_value(364) > 0 then - local lCMSCTable = ExportScript.Tools.getListIndicatorValue(8) - - if lCMSCTable ~= nil and lCMSCTable.txt_JMR ~= nil then - ExportScript.Tools.SendData(2011, string.format("%s", lCMSCTable.txt_CHAFF_FLARE)) -- txt_CHAFF_FLARE - ExportScript.Tools.SendData(2012, string.format("%s", lCMSCTable.txt_JMR)) -- txt_JMR - ExportScript.Tools.SendData(2013, string.format("%s", lCMSCTable.txt_MWS)) -- txt_MWS - end - else - ExportScript.Tools.SendData(2011, " ") -- txt_CHAFF_FLARE - ExportScript.Tools.SendData(2012, " ") -- txt_JMR - ExportScript.Tools.SendData(2013, " ") -- txt_MWS - end - - -- CMSP - ------------------------------------------------- - if mainPanelDevice:get_argument_value(364) > 0 then - local lCMSP = ExportScript.Tools.getListIndicatorValue(7) - - local lCMSPTable = {"","","",""} - - if lCMSP ~= nil and lCMSP.txt_UP ~= nil then - lCMSP.txt_UP = lCMSP.txt_UP:gsub(" ", " ") - lCMSP.txt_UP = lCMSP.txt_UP.." " - lCMSPTable = ExportScript.Tools.split(lCMSP.txt_UP, "%s") - end - - --ExportScript.Tools.WriteToLog('lCMSP: '..ExportScript.Tools.dump(lCMSP)) - --ExportScript.Tools.WriteToLog('lCMSPTable: '..ExportScript.Tools.dump(lCMSPTable)) - - ExportScript.Tools.SendData(2014, string.format("%s", lCMSPTable[1])) - ExportScript.Tools.SendData(2015, string.format("%s", lCMSPTable[2])) - ExportScript.Tools.SendData(2016, string.format("%s", lCMSPTable[3])) - ExportScript.Tools.SendData(2017, string.format("%s", lCMSPTable[4])) - ExportScript.Tools.SendData(2018, string.format("%s", lCMSP.txt_DOWN1)) - ExportScript.Tools.SendData(2019, string.format("%s", lCMSP.txt_DOWN2)) - ExportScript.Tools.SendData(2020, string.format("%s", lCMSP.txt_DOWN3)) - ExportScript.Tools.SendData(2021, string.format("%s", lCMSP.txt_DOWN4)) - else - ExportScript.Tools.SendData(2014, " ") - ExportScript.Tools.SendData(2015, " ") - ExportScript.Tools.SendData(2016, " ") - ExportScript.Tools.SendData(2017, " ") - ExportScript.Tools.SendData(2018, " ") - ExportScript.Tools.SendData(2019, " ") - ExportScript.Tools.SendData(2020, " ") - ExportScript.Tools.SendData(2021, " ") - end - - -- Cockpit Light - ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {290,292,293}) - -- Engine Instruments Lights, Flight Instruments Lights, Auxiliary Instruments Lights - - -- CDU Data - ExportScript.AF.exportCDU() -end - -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - -- AN/ARC-164 UHF and UHF Preset Channel - --------------------------------------------------- - local lUHF_RADIO = GetDevice(54) - if lUHF_RADIO:is_on() then - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((lUHF_RADIO:get_frequency()/1000000))) - - local lPresetChannel = ExportScript.Tools.getListIndicatorValue(10) - - ExportScript.Tools.SendDataDAC("2001", string.format("%s", lPresetChannel.txtPresetChannel)) - else - ExportScript.Tools.SendDataDAC("2000", "-") - ExportScript.Tools.SendDataDAC("2001", "-") - end - - -- AN/ARC-186(V) VHF AM and Preset Channel - --------------------------------------------------- - local lVHF_AM_RADIO = GetDevice(55) - ExportScript.Tools.SendDataDAC("2002", ExportScript.Tools.RoundFreqeuncy((lVHF_AM_RADIO:get_frequency()/1000000))) - - local lVHF_AM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} - ExportScript.Tools.SendDataDAC("2003", lVHF_AM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(137), 2)]) - - -- AN/ARC-186(V) VHF FM and Preset Channel - ------------------------------------------------- - local lVHF_FM_RADIO = GetDevice(56) - ExportScript.Tools.SendDataDAC("2004", ExportScript.Tools.RoundFreqeuncy((lVHF_FM_RADIO:get_frequency()/1000000))) - - -- Preset is buggy - local lVHF_FM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} - ExportScript.Tools.SendDataDAC("2005", lVHF_FM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(151), 2, "ceil")]) - - -- Pressure setting - -------------------------------------------------------- - local pressure_setting_3 = mainPanelDevice:get_argument_value(56) * 10000 -- {0.0, 10.0} {0.0, 1.0} - local pressure_setting_2 = mainPanelDevice:get_argument_value(57) * 1000 -- {0.0, 10.0} {0.0, 1.0} - local pressure_setting_1 = mainPanelDevice:get_argument_value(58) * 100 -- {0.0, 10.0} {0.0, 1.0} - local pressure_setting_0 = mainPanelDevice:get_argument_value(59) * 10 -- {0.0, 10.0} {0.0, 1.0} - local pressure_setting = ((pressure_setting_3 + pressure_setting_2 + pressure_setting_1 + pressure_setting_0) / 100) - ExportScript.Tools.SendDataDAC("2006", string.format("%5.2f", pressure_setting)) - - -- Calculate Total Fuel - -------------------------------------------------------- - local lFuelQuantityCounterTenthOfThous = mainPanelDevice:get_argument_value(90) * 10000 -- {0.0, 10.0} {0.0, 1.0} - local lFuelQuantityCounterThousands = mainPanelDevice:get_argument_value(91) * 1000 -- {0.0, 10.0} {0.0, 1.0} - local lFuelQuantityCounterHundreds = mainPanelDevice:get_argument_value(92) * 100 -- {0.0, 10.0} {0.0, 1.0} - -- orginal - local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds) / 10) - ExportScript.Tools.SendDataDAC("2007", string.format("%0.0f", lFuelQuantityCounter).."00") - -- exact - --local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds)) - --ExportScript.Tools.SendDataDAC("2007", string.format("%1d", lFuelQuantityCounter).."0") - - -- TACAN Channel - ------------------------------------------------- - ExportScript.Tools.SendDataDAC("2008", (mainPanelDevice:get_argument_value(263) == 0 and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)) - - -- ILS Channel - ------------------------------------------------- - local lILSFrequencyMHz = {[0]="108",[0.1]="109",[0.2]="110",[0.3]="111"} - local lILSFrequencyKHz = {[0]="10",[0.1]="15",[0.2]="30",[0.3]="35",[0.4]="50",[0.5]="55",[0.6]="70",[0.7]="75",[0.8]="90",[0.9]="95"} - - ExportScript.Tools.SendDataDAC("2009", lILSFrequencyMHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(251), 1)].."."..lILSFrequencyKHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(252), 1)]) - - -- generic Radio display and frequency rotarys - ------------------------------------------------- - -- genericRadioConf - ExportScript.genericRadioConf = {} - ExportScript.genericRadioConf['maxRadios'] = 3 -- numbers of aviables/supported radios - ExportScript.genericRadioConf[1] = {} -- first radio - ExportScript.genericRadioConf[1]['Name'] = "AN/ARC-164 UHF" -- name of radio - ExportScript.genericRadioConf[1]['DeviceID'] = 54 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[1]['minFrequency'] = 220.000 -- lowest frequency - ExportScript.genericRadioConf[1]['maxFrequency'] = 314.450 -- highest frequency - ExportScript.genericRadioConf[1]['Power'] = {} -- power button active - ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3008 -- power button id from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active - ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} - ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change - ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active - ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset - ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active - ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[2] = {} -- secound radio - ExportScript.genericRadioConf[2]['Name'] = "AN/ARC-186(V) VHF FM" -- name of radio - ExportScript.genericRadioConf[2]['DeviceID'] = 55 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[2]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[2]['minFrequency'] = 116.000 -- lowest frequency - ExportScript.genericRadioConf[2]['maxFrequency'] = 151.975 -- highest frequency - ExportScript.genericRadioConf[2]['Power'] = {} -- power button active - ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active - ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 137 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} - ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.01 -- minimal step for preset change - ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active - ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua - ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset - ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3006 -- load button id from cklickable.lua - ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active - ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua - ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua - ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[3] = {} -- secound radio - ExportScript.genericRadioConf[3]['Name'] = "AN/ARC-186(V) VHF AM" -- name of radio - ExportScript.genericRadioConf[3]['DeviceID'] = 56 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[3]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[3]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[3]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[3]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[3]['minFrequency'] = 30.000 -- lowest frequency - ExportScript.genericRadioConf[3]['maxFrequency'] = 76.000 -- highest frequency - ExportScript.genericRadioConf[3]['Power'] = {} -- power button active - ExportScript.genericRadioConf[3]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua - ExportScript.genericRadioConf[3]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua - ExportScript.genericRadioConf[3]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - ExportScript.genericRadioConf[3]['Volume'] = {} -- volume knob active - ExportScript.genericRadioConf[3]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[3]['Preset']['ArgumentID'] = 151 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset']['ButtonID2'] = 3002 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - ExportScript.genericRadioConf[3]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} - ExportScript.genericRadioConf[3]['Preset']['Step'] = 0.01 -- minimal step for preset change - ExportScript.genericRadioConf[3]['Preset']['Step2'] = -0.01 -- minimal step for preset change - ExportScript.genericRadioConf[3]['Squelch'] = {} -- squelch switch active - ExportScript.genericRadioConf[3]['Squelch']['ArgumentID'] = 148 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[3]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua - ExportScript.genericRadioConf[3]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - ExportScript.genericRadioConf[3]['Squelch']['ValueOff'] = -1.0 -- squelch off value from cklickable.lua - ExportScript.genericRadioConf[3]['Load'] = {} -- load button preset - ExportScript.genericRadioConf[3]['Load']['ButtonID'] = 3004 -- load button id from cklickable.lua - ExportScript.genericRadioConf[3]['ManualPreset'] = {} -- switch manual or preset active - ExportScript.genericRadioConf[3]['ManualPreset']['ArgumentID'] = 149 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[3]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua - ExportScript.genericRadioConf[3]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua - ExportScript.genericRadioConf[3]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadio(nil, nil) - - -- NOT FOR ARCAZE - ------------------------------------------------- - --[[ - -- CMSC - ------------------------------------------------- - local lCMSC = list_indication(8) - lCMSC = lCMSC:gsub("-----------------------------------------", "") - lCMSC = lCMSC:gsub("txt_CHAFF_FLARE", "") - lCMSC = lCMSC:gsub("txt_JMR", "") - lCMSC = lCMSC:gsub("txt_MWS", "") - lCMSC = lCMSC:gsub("%c%c(%C)", "%1") - lCMSC = lCMSC.."\n" - - local lCMSCTable = {} - lCMSCTable = ExportScript.Tools.split(lCMSC, "%c") - - if lCMSCTable[2] ~= nil then - ExportScript.Tools.SendDataDAC("2011", lCMSCTable[1]) -- txt_CHAFF_FLARE - ExportScript.Tools.SendDataDAC("2012", lCMSCTable[2]) -- txt_JMR - ExportScript.Tools.SendDataDAC("2013", lCMSCTable[3]) -- txt_MWS - else - ExportScript.Tools.SendDataDAC("2011", "") -- txt_CHAFF_FLARE - ExportScript.Tools.SendDataDAC("2012", "") -- txt_JMR - ExportScript.Tools.SendDataDAC("2013", "") -- txt_MWS - end - - -- CMSP - ------------------------------------------------- - local lCMSP = list_indication(7) - lCMSP = lCMSP:gsub("-----------------------------------------", "") - lCMSP = lCMSP:gsub("txt_UP", "") - lCMSP = lCMSP:gsub("txt_DOWN1", "") - lCMSP = lCMSP:gsub("txt_DOWN2", "") - lCMSP = lCMSP:gsub("txt_DOWN3", "") - lCMSP = lCMSP:gsub("txt_DOWN4", "") - lCMSP = lCMSP:gsub("%c%c(%C)", "%1") - lCMSP = lCMSP.."\n" - - local lCMSPTable = {} - lCMSPTable = ExportScript.Tools.split(lCMSP, "%c") - - lCMSP = lCMSPTable[1].."\n"..table.concat(lCMSPTable, " ", 2) - ExportScript.Tools.SendDataDAC("2014", lCMSP) - ]] - - - --===================================================================================== - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) - - local ltmp1 = 0 - for ltmp2 = 0, 13, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - --ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end - ]] ---[[ - -- LITENING_INTERFACE - local lLITENING_INTERFACE = GetDevice(11) - ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:get_station '..ExportScript.Tools.dump(lLITENING_INTERFACE:get_station())) - --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:add_masked_region '..ExportScript.Tools.dump(lLITENING_INTERFACE:add_masked_region())) -- test the parameters - --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:set_laser_designation_code '..ExportScript.Tools.dump(lLITENING_INTERFACE:set_laser_designation_code())) -- test the parameters - --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:set_laser_spot_search_code '..ExportScript.Tools.dump(lLITENING_INTERFACE:set_laser_spot_search_code())) -- test the parameters - - -- ADI - local lADI = GetDevice(47) - ExportScript.Tools.WriteToLog('lADI:get_sideslip '..ExportScript.Tools.dump(lADI:get_sideslip())) - ExportScript.Tools.WriteToLog('lADI:get_bank '..ExportScript.Tools.dump(lADI:get_bank())) - ExportScript.Tools.WriteToLog('lADI:get_pitch '..ExportScript.Tools.dump(lADI:get_pitch())) - - -- SAI - local lSAI = GetDevice(48) - ExportScript.Tools.WriteToLog('lSAI:get_sideslip '..ExportScript.Tools.dump(lSAI:get_sideslip())) - ExportScript.Tools.WriteToLog('lSAI:get_bank '..ExportScript.Tools.dump(lSAI:get_bank())) - ExportScript.Tools.WriteToLog('lSAI:get_pitch '..ExportScript.Tools.dump(lSAI:get_pitch())) - - -- UHF_RADIO - local lUHF_RADIO = GetDevice(54) - ExportScript.Tools.WriteToLog('lUHF_RADIO:is_on '..ExportScript.Tools.dump(lUHF_RADIO:is_on())) - ExportScript.Tools.WriteToLog('lUHF_RADIO:get_frequency '..ExportScript.Tools.dump(lUHF_RADIO:get_frequency())) - --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_frequency '..ExportScript.Tools.dump(lUHF_RADIO:set_frequency())) -- test the parameters - --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_modulation '..ExportScript.Tools.dump(lUHF_RADIO:set_modulation())) -- test the parameters - --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_channel '..ExportScript.Tools.dump(lUHF_RADIO:set_channel())) -- test the parameters - - -- VHF_AM_RADIO - local lVHF_AM_RADIO = GetDevice(55) - ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:is_on '..ExportScript.Tools.dump(lVHF_AM_RADIO:is_on())) - ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:get_frequency '..ExportScript.Tools.dump(lVHF_AM_RADIO:get_frequency())) - --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_frequency '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_frequency())) -- test the parameters - --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_modulation '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_modulation())) -- test the parameters - --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_channel '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_channel())) -- test the parameters - - -- VHF_FM_RADIO - local lVHF_FM_RADIO = GetDevice(56) - ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:is_on '..ExportScript.Tools.dump(lVHF_FM_RADIO:is_on())) - ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:get_frequency '..ExportScript.Tools.dump(lVHF_FM_RADIO:get_frequency())) - --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_frequency '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_frequency())) -- test the parameters - --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_modulation '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_modulation())) -- test the parameters - --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_channel '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_channel())) -- test the parameters - - -- INTERCOM - local lINTERCOM = GetDevice(58) - ExportScript.Tools.WriteToLog('lINTERCOM:is_communicator_available '..ExportScript.Tools.dump(lINTERCOM:is_communicator_available())) - ExportScript.Tools.WriteToLog('lINTERCOM:get_noise_level '..ExportScript.Tools.dump(lINTERCOM:get_noise_level())) - ExportScript.Tools.WriteToLog('lINTERCOM:get_signal_level '..ExportScript.Tools.dump(lINTERCOM:get_signal_level())) - --ExportScript.Tools.WriteToLog('lINTERCOM:set_communicator '..ExportScript.Tools.dump(lINTERCOM:set_communicator())) -- test the parameters - --ExportScript.Tools.WriteToLog('lINTERCOM:set_voip_mode '..ExportScript.Tools.dump(lINTERCOM:set_voip_mode())) -- test the parameters -]] ---[[ - local ltmp1 = 0 - for ltmp2 = 1, 73, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end -]] - ---getIndicatorData(3) - -end - ------------------------------ --- Custom functions -- ------------------------------ - ------------------------------ --- CDU Export based on Jan Boeckers DCS BIOS --- https://github.com/dcs-bios/dcs-bios ------------------------------ - -ExportScript.AF.CDUIndicatorData={ - ACCEPT={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="ACCEPT", - index=0, - statictext=true, - x=1, - y=5 - } - }, - ADI_ATT={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ADI_ATT", - index=0, - statictext=true, - x=10, - y=4 - } - }, - ADI_ATT0={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ADI_ATT0", - index=0, - statictext=false, - x=23, - y=4 - } - }, - ADI_ATT1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ADI_ATT1", - index=0, - statictext=false, - x=23, - y=4 - } - }, - ALIGN={ - { - alignment="LFT", - cdu_pages={ - "NAV", - "INS" - }, - id="ALIGN", - index=0, - statictext=true, - x=1, - y=3 - } - }, - ALL={ - { - alignment="LFT", - cdu_pages={ - "DTSUPLD" - }, - id="ALL", - index=0, - statictext=true, - x=1, - y=3 - } - }, - ALL1={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="ALL1", - index=0, - statictext=false, - x=1, - y=3 - } - }, - ALL2={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="ALL2", - index=0, - statictext=true, - x=2, - y=3 - } - }, - ALM_REQ={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="ALM_REQ", - index=0, - statictext=true, - x=2, - y=8 - } - }, - ALM_REQs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="ALM_REQs", - index=0, - statictext=false, - x=11, - y=8 - } - }, - ALM_REQs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="ALM_REQs1", - index=0, - statictext=false, - x=11, - y=8 - } - }, - ALTITUDE={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ALTITUDE", - index=0, - statictext=true, - x=10, - y=8 - } - }, - ALT_ALIGN={ - { - alignment="LFT", - cdu_pages={ - "INS" - }, - id="ALT_ALIGN", - index=0, - statictext=true, - x=1, - y=5 - } - }, - ALT_ST1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ALT_ST1", - index=0, - statictext=false, - x=23, - y=8 - } - }, - ALT_ST2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ALT_ST2", - index=0, - statictext=false, - x=23, - y=8 - } - }, - ALT_WIND_TEMP={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="ALT_WIND_TEMP", - index=0, - statictext=true, - x=2, - y=4 - } - }, - ANCHORDIS1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORDIS1", - index=0, - statictext=false, - x=20, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORDIS1", - index=1, - statictext=false, - x=9, - y=8 - } - }, - ANCHORDIS2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORDIS2", - index=0, - statictext=false, - x=20, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORDIS2", - index=1, - statictext=false, - x=9, - y=8 - } - }, - ANCHORDISMH={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORDISMH", - index=0, - statictext=true, - x=19, - y=9 - } - }, - ANCHORDMH1={ - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORDMH1", - index=0, - statictext=false, - x=8, - y=7 - } - }, - ANCHORDMH2={ - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORDMH2", - index=0, - statictext=false, - x=8, - y=7 - } - }, - ANCHORIdent1={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORIdent1", - index=0, - statictext=false, - x=2, - y=5 - } - }, - ANCHORIdent2={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORIdent2", - index=0, - statictext=false, - x=2, - y=5 - } - }, - ANCHORIdentEntry={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORIdentEntry", - index=0, - statictext=true, - x=1, - y=5 - } - }, - ANCHORMH1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORMH1", - index=0, - statictext=false, - x=16, - y=9 - } - }, - ANCHORMH2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORMH2", - index=0, - statictext=false, - x=16, - y=9 - } - }, - ANCHORMH3={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORMH3", - index=0, - statictext=false, - x=16, - y=9 - } - }, - ANCHORNumber1={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORNumber1", - index=0, - statictext=false, - x=2, - y=3 - } - }, - ANCHORNumber2={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORNumber2", - index=0, - statictext=false, - x=2, - y=3 - } - }, - ANCHORNumberEntry={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORNumberEntry", - index=0, - statictext=true, - x=1, - y=3 - } - }, - ANCHORTOFRMode1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORTOFRMode1", - index=0, - statictext=false, - x=13, - y=9 - } - }, - ANCHORTOFRMode2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORTOFRMode2", - index=0, - statictext=false, - x=13, - y=9 - } - }, - ANCHORTOFRRotary={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORTOFRRotary", - index=0, - statictext=true, - x=24, - y=9 - } - }, - ANCHORTTG1={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORTTG1", - index=0, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORTTG1", - index=1, - statictext=false, - x=6, - y=6 - } - }, - ANCHORTTG2={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORTTG2", - index=0, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORTTG2", - index=1, - statictext=false, - x=6, - y=6 - } - }, - ANCHORTTG3={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="ANCHORTTG3", - index=0, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="ANCHORTTG3", - index=1, - statictext=false, - x=6, - y=6 - } - }, - ANCHOR_PT={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="ANCHOR_PT", - index=0, - statictext=true, - x=24, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WPMENU" - }, - id="ANCHOR_PT", - index=1, - statictext=true, - x=1, - y=5 - } - }, - ANN1={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN1", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN10={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN10", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN11={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN11", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN12={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN12", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN13={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN13", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN14={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN14", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN15={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN15", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN16={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN16", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN17={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN17", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN18={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN18", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN19={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN19", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN2={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN2", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN20={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN20", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN21={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN21", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN22={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN22", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN23={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN23", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN24={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN24", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN25={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN25", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN26={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN26", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN26a={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN26a", - index=0, - statictext=false, - x=7, - y=2 - } - }, - ANN27={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN27", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN28={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN28", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN29={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN29", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN3={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN3", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN30={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN30", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN31={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN31", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN32={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN32", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN33={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN33", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN34={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN34", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN35={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN35", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN36={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN36", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN37={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN37", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN38={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN38", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN39={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN39", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN4={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN4", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN40={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN40", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN41={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN41", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN42={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN42", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN43={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN43", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN5={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN5", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN6={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN6", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN7={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN7", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN8={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN8", - index=0, - statictext=false, - x=2, - y=2 - } - }, - ANN9={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="ANN9", - index=0, - statictext=false, - x=2, - y=2 - } - }, - APP={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="APP", - index=0, - statictext=true, - x=2, - y=9 - } - }, - AS={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="AS", - index=0, - statictext=true, - x=1, - y=3 - } - }, - AS_FLAG={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="AS_FLAG", - index=0, - statictext=false, - x=8, - y=4 - } - }, - AS_FLAG1={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="AS_FLAG1", - index=0, - statictext=false, - x=8, - y=4 - } - }, - AS_FLAG2={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="AS_FLAG2", - index=0, - statictext=false, - x=8, - y=4 - } - }, - ATT={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="ATT", - index=0, - statictext=true, - x=1, - y=5 - } - }, - ATTRIBCRS0={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS0", - index=0, - statictext=false, - x=13, - y=8 - } - }, - ATTRIBCRS1={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS1", - index=0, - statictext=false, - x=13, - y=8 - } - }, - ATTRIBCRS2={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS2", - index=0, - statictext=false, - x=13, - y=8 - } - }, - ATTRIBCRS3={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS3", - index=0, - statictext=false, - x=13, - y=8 - } - }, - ATTRIBCRS4={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS4", - index=0, - statictext=false, - x=14, - y=9 - } - }, - ATTRIBCRS5={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS5", - index=0, - statictext=false, - x=14, - y=9 - } - }, - ATTRIBCRS6={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBCRS6", - index=0, - statictext=false, - x=14, - y=9 - } - }, - ATTRIBSCS0={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBSCS0", - index=0, - statictext=false, - x=6, - y=9 - } - }, - ATTRIBSCS1={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBSCS1", - index=0, - statictext=false, - x=6, - y=9 - } - }, - ATTRIBScale={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBScale", - index=0, - statictext=false, - x=2, - y=6 - } - }, - ATTRIBScale1={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBScale1", - index=0, - statictext=false, - x=2, - y=6 - } - }, - ATTRIBScale2={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBScale2", - index=0, - statictext=false, - x=2, - y=6 - } - }, - ATTRIBScale3={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBScale3", - index=0, - statictext=false, - x=2, - y=6 - } - }, - ATTRIBSteer={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBSteer", - index=0, - statictext=false, - x=2, - y=8 - } - }, - ATTRIBSteer1={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBSteer1", - index=0, - statictext=false, - x=2, - y=8 - } - }, - ATTRIBSteer2={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBSteer2", - index=0, - statictext=false, - x=2, - y=8 - } - }, - ATTRIBUTES={ - { - alignment="RGHT", - cdu_pages={ - "NAV" - }, - id="ATTRIBUTES", - index=0, - statictext=true, - x=24, - y=5 - } - }, - ATTRIBVNavMode={ - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBVNavMode", - index=0, - statictext=false, - x=23, - y=3 - } - }, - ATTRIBVNavMode1={ - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIBVNavMode1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - ATTRIB_CRS_VAL={ - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="ATTRIB_CRS_VAL", - index=0, - statictext=false, - x=23, - y=9 - } - }, - ActiveFP={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="ActiveFP", - index=0, - statictext=false, - x=1, - y=3 - } - }, - ActiveFP1={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="ActiveFP1", - index=0, - statictext=false, - x=22, - y=3 - } - }, - ActiveFP2={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="ActiveFP2", - index=0, - statictext=false, - x=1, - y=5 - } - }, - ActiveFP3={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="ActiveFP3", - index=0, - statictext=false, - x=22, - y=5 - } - }, - ActiveFP4={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="ActiveFP4", - index=0, - statictext=false, - x=1, - y=7 - } - }, - ActiveFP5={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="ActiveFP5", - index=0, - statictext=false, - x=22, - y=7 - } - }, - AlignMode_BATH={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignMode_BATH", - index=0, - statictext=false, - x=11, - y=4 - } - }, - AlignMode_Ground={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignMode_Ground", - index=0, - statictext=false, - x=11, - y=4 - } - }, - AlignMode_InFlt={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignMode_InFlt", - index=0, - statictext=false, - x=11, - y=4 - } - }, - AlignMode_SH={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignMode_SH", - index=0, - statictext=false, - x=11, - y=4 - } - }, - AlignModes={ - { - alignment="RGHT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignModes", - index=0, - statictext=false, - x=24, - y=3 - } - }, - AlignStatus={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignStatus", - index=0, - statictext=false, - x=13, - y=8 - } - }, - AlignStatus1={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignStatus1", - index=0, - statictext=false, - x=13, - y=8 - } - }, - AlignStatus2={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignStatus2", - index=0, - statictext=false, - x=13, - y=8 - } - }, - AlignStatusAsterisk={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignStatusAsterisk", - index=0, - statictext=false, - x=13, - y=8 - } - }, - AlignTime={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignTime", - index=0, - statictext=false, - x=7, - y=8 - } - }, - AlignTimeAsterisk={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="AlignTimeAsterisk", - index=0, - statictext=false, - x=7, - y=8 - } - }, - Asterisk={ - { - alignment="LFT", - cdu_pages={ - "1ST_LINE", - "1ST_LINE" - }, - id="Asterisk", - index=0, - statictext=false, - x=1, - y=1 - } - }, - BATTERY={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="BATTERY", - index=0, - statictext=true, - x=2, - y=3 - } - }, - BATTERYs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="BATTERYs", - index=0, - statictext=false, - x=11, - y=3 - } - }, - BATTERYs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="BATTERYs1", - index=0, - statictext=false, - x=11, - y=3 - } - }, - BBCTL={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="BBCTL", - index=0, - statictext=true, - x=1, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="BBCTL", - index=1, - statictext=true, - x=1, - y=3 - } - }, - BIT_INPR={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="BIT_INPR", - index=0, - statictext=true, - x=2, - y=5 - } - }, - BIT_INPRs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="BIT_INPRs", - index=0, - statictext=false, - x=11, - y=5 - } - }, - BIT_INPRs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="BIT_INPRs1", - index=0, - statictext=false, - x=11, - y=5 - } - }, - BIT_TST={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="BIT_TST", - index=0, - statictext=true, - x=2, - y=8 - } - }, - BLOCK_NUM1={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM1", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM2={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM2", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM3={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM3", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM4={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM4", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM5={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM5", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM6={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM6", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM7={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM7", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BLOCK_NUM8={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="BLOCK_NUM8", - index=0, - statictext=false, - x=13, - y=9 - } - }, - BRACKETS={ - { - alignment="LFT", - cdu_pages={ - "WPMENU" - }, - id="BRACKETS", - index=0, - statictext=true, - x=24, - y=9 - } - }, - BRACKETS_EL={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="BRACKETS_EL", - index=0, - statictext=false, - x=1, - y=5 - } - }, - BRACKETS_FIRSTCOORD={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="BRACKETS_FIRSTCOORD", - index=0, - statictext=true, - x=1, - y=7 - } - }, - BRACKETS_INIT_WP_ID={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="BRACKETS_INIT_WP_ID", - index=0, - statictext=true, - x=1, - y=5 - } - }, - BRACKETS_ITEM1={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="BRACKETS_ITEM1", - index=0, - statictext=true, - x=1, - y=3 - } - }, - BRACKETS_ITEM2={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="BRACKETS_ITEM2", - index=0, - statictext=true, - x=1, - y=5 - } - }, - BRACKETS_ITEM3={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="BRACKETS_ITEM3", - index=0, - statictext=true, - x=1, - y=7 - } - }, - BRACKETS_ITEM4={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="BRACKETS_ITEM4", - index=0, - statictext=true, - x=1, - y=9 - } - }, - BRACKETS_MH_DIS={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="BRACKETS_MH_DIS", - index=0, - statictext=true, - x=24, - y=5 - } - }, - BRACKETS_MISC_DATA={ - { - alignment="RGHT", - cdu_pages={ - "INS" - }, - id="BRACKETS_MISC_DATA", - index=0, - statictext=true, - x=24, - y=9 - } - }, - BRACKETS_SECONDCOORD={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="BRACKETS_SECONDCOORD", - index=0, - statictext=true, - x=1, - y=9 - } - }, - BRACKETS_WPNUM_LTR={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="BRACKETS_WPNUM_LTR", - index=0, - statictext=true, - x=24, - y=9 - } - }, - BRACKETS_WPT_NAME={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO", - "WAYPT1" - }, - id="BRACKETS_WPT_NAME", - index=0, - statictext=true, - x=24, - y=3 - } - }, - BRANCH1={ - { - alignment="LFT", - cdu_pages={ - "BBCTL" - }, - id="BRANCH1", - index=0, - statictext=false, - x=1, - y=3 - } - }, - BVL={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="BVL", - index=0, - statictext=true, - x=2, - y=7 - } - }, - BVL_VAL={ - { - alignment="RGHT", - cdu_pages={ - "GPSBIT1" - }, - id="BVL_VAL", - index=0, - statictext=true, - x=24, - y=7 - } - }, - BVU={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="BVU", - index=0, - statictext=true, - x=2, - y=6 - } - }, - BVU_VAL={ - { - alignment="RGHT", - cdu_pages={ - "GPSBIT1" - }, - id="BVU_VAL", - index=0, - statictext=true, - x=24, - y=6 - } - }, - B_ALT={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="B_ALT", - index=0, - statictext=true, - x=2, - y=5 - } - }, - B_ALT_ST={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="B_ALT_ST", - index=0, - statictext=false, - x=21, - y=5 - } - }, - B_ALT_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="B_ALT_ST1", - index=0, - statictext=false, - x=21, - y=5 - } - }, - B_ALT_VAL={ - { - alignment="RGHT", - cdu_pages={ - "CADC" - }, - id="B_ALT_VAL", - index=0, - statictext=false, - x=13, - y=5 - } - }, - C={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="C", - index=0, - statictext=false, - x=23, - y=9 - } - }, - CADC={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="CADC", - index=0, - statictext=true, - x=16, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CADC", - index=1, - statictext=true, - x=2, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="CADC", - index=2, - statictext=true, - x=18, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "SYS2" - }, - id="CADC", - index=3, - statictext=true, - x=24, - y=3 - } - }, - CADC_SA={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CADC_SA", - index=0, - statictext=false, - x=1, - y=5 - } - }, - CADC_ST0={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="CADC_ST0", - index=0, - statictext=false, - x=21, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT", - "RESET" - }, - id="CADC_ST0", - index=1, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CADC_ST0", - index=2, - statictext=false, - x=11, - y=6 - } - }, - CADC_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="CADC_ST1", - index=0, - statictext=false, - x=21, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CADC_ST1", - index=1, - statictext=false, - x=11, - y=6 - } - }, - CADC_ST2={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="CADC_ST2", - index=0, - statictext=false, - x=21, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT", - "RESET" - }, - id="CADC_ST2", - index=1, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CADC_ST2", - index=2, - statictext=false, - x=11, - y=6 - } - }, - CADC_ST3={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="CADC_ST3", - index=0, - statictext=false, - x=21, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT", - "RESET" - }, - id="CADC_ST3", - index=1, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CADC_ST3", - index=2, - statictext=false, - x=11, - y=6 - } - }, - CADC_ST4={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="CADC_ST4", - index=0, - statictext=false, - x=21, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT", - "RESET" - }, - id="CADC_ST4", - index=1, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CADC_ST4", - index=2, - statictext=false, - x=11, - y=6 - } - }, - CADC_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CADC_STATUS0", - index=0, - statictext=false, - x=7, - y=5 - } - }, - CADC_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CADC_STATUS1", - index=0, - statictext=false, - x=7, - y=5 - } - }, - CADC_STATUS2={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CADC_STATUS2", - index=0, - statictext=false, - x=7, - y=5 - } - }, - CADC_STATUS3={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CADC_STATUS3", - index=0, - statictext=false, - x=7, - y=5 - } - }, - CBIT1={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT1", - index=0, - statictext=true, - x=2, - y=3 - } - }, - CBIT10={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT10", - index=0, - statictext=true, - x=14, - y=5 - } - }, - CBIT11={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT11", - index=0, - statictext=true, - x=14, - y=6 - } - }, - CBIT2={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT2", - index=0, - statictext=true, - x=2, - y=4 - } - }, - CBIT3={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT3", - index=0, - statictext=true, - x=2, - y=5 - } - }, - CBIT4={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT4", - index=0, - statictext=true, - x=2, - y=6 - } - }, - CBIT5={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT5", - index=0, - statictext=true, - x=2, - y=7 - } - }, - CBIT6={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT6", - index=0, - statictext=true, - x=2, - y=8 - } - }, - CBIT7={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT7", - index=0, - statictext=true, - x=2, - y=9 - } - }, - CBIT8={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT8", - index=0, - statictext=true, - x=14, - y=3 - } - }, - CBIT9={ - { - alignment="LFT", - cdu_pages={ - "EGI4" - }, - id="CBIT9", - index=0, - statictext=true, - x=14, - y=4 - } - }, - CDU={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CDU", - index=0, - statictext=true, - x=2, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="CDU", - index=1, - statictext=true, - x=18, - y=6 - } - }, - CDUTEST={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST", - index=0, - statictext=false, - x=9, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "SYS2" - }, - id="CDUTEST", - index=1, - statictext=true, - x=24, - y=5 - } - }, - CDUTEST1={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST1", - index=0, - statictext=false, - x=9, - y=3 - } - }, - CDUTEST10={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST10", - index=0, - statictext=false, - x=9, - y=6 - } - }, - CDUTEST11={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST11", - index=0, - statictext=false, - x=9, - y=6 - } - }, - CDUTEST12={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST12", - index=0, - statictext=false, - x=23, - y=3 - } - }, - CDUTEST13={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST13", - index=0, - statictext=false, - x=23, - y=3 - } - }, - CDUTEST14={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST14", - index=0, - statictext=false, - x=23, - y=3 - } - }, - CDUTEST15={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST15", - index=0, - statictext=false, - x=23, - y=4 - } - }, - CDUTEST16={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST16", - index=0, - statictext=false, - x=23, - y=4 - } - }, - CDUTEST17={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST17", - index=0, - statictext=false, - x=23, - y=4 - } - }, - CDUTEST2={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST2", - index=0, - statictext=false, - x=9, - y=4 - } - }, - CDUTEST3={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST3", - index=0, - statictext=false, - x=9, - y=4 - } - }, - CDUTEST4={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST4", - index=0, - statictext=false, - x=9, - y=4 - } - }, - CDUTEST5={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST5", - index=0, - statictext=false, - x=9, - y=4 - } - }, - CDUTEST6={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST6", - index=0, - statictext=false, - x=9, - y=5 - } - }, - CDUTEST7={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST7", - index=0, - statictext=false, - x=9, - y=5 - } - }, - CDUTEST8={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST8", - index=0, - statictext=false, - x=9, - y=5 - } - }, - CDUTEST9={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="CDUTEST9", - index=0, - statictext=false, - x=9, - y=6 - } - }, - CDU_LASTE={ - { - alignment="RGHT", - cdu_pages={ - "DTSUPLD" - }, - id="CDU_LASTE", - index=0, - statictext=true, - x=24, - y=3 - } - }, - CDU_ST0={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CDU_ST0", - index=0, - statictext=false, - x=17, - y=3 - } - }, - CDU_ST1={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="CDU_ST1", - index=0, - statictext=false, - x=23, - y=6 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CDU_ST1", - index=1, - statictext=false, - x=17, - y=3 - } - }, - CDU_ST3={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="CDU_ST3", - index=0, - statictext=false, - x=23, - y=6 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CDU_ST3", - index=1, - statictext=false, - x=17, - y=3 - } - }, - CDU_ST4={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="CDU_ST4", - index=0, - statictext=false, - x=23, - y=6 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="CDU_ST4", - index=1, - statictext=false, - x=17, - y=3 - } - }, - CDU_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CDU_STATUS0", - index=0, - statictext=false, - x=6, - y=7 - } - }, - CDU_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CDU_STATUS1", - index=0, - statictext=false, - x=6, - y=7 - } - }, - CDU_STATUS2={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CDU_STATUS2", - index=0, - statictext=false, - x=6, - y=7 - } - }, - CDU_STATUS3={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CDU_STATUS3", - index=0, - statictext=false, - x=6, - y=7 - } - }, - CDU_SYS_ACTION={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="CDU_SYS_ACTION", - index=0, - statictext=false, - x=1, - y=7 - } - }, - CHASSIS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="CHASSIS", - index=0, - statictext=true, - x=2, - y=6 - } - }, - CHASSIS_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="CHASSIS_STATUS", - index=0, - statictext=true, - x=10, - y=6 - } - }, - CLEAR={ - { - alignment="RGHT", - cdu_pages={ - "BBCTL" - }, - id="CLEAR", - index=0, - statictext=true, - x=23, - y=7 - } - }, - CLEAR_SA={ - { - alignment="RGHT", - cdu_pages={ - "BBCTL" - }, - id="CLEAR_SA", - index=0, - statictext=false, - x=24, - y=7 - } - }, - CODE={ - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="CODE", - index=0, - statictext=true, - x=2, - y=4 - } - }, - CR_ON_OFF={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="CR_ON_OFF", - index=0, - statictext=false, - x=5, - y=5 - } - }, - CR_ON_OFF1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="CR_ON_OFF1", - index=0, - statictext=false, - x=5, - y=5 - } - }, - CR_SYMB={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="CR_SYMB", - index=0, - statictext=false, - x=1, - y=5 - } - }, - CR_TXT={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="CR_TXT", - index=0, - statictext=true, - x=2, - y=5 - } - }, - CSCI={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="CSCI", - index=0, - statictext=false, - x=4, - y=10 - } - }, - CTD={ - { - alignment="LFT", - cdu_pages={ - "POS" - }, - id="CTD", - index=0, - statictext=true, - x=2, - y=8 - } - }, - CTD_VAL={ - { - alignment="LFT", - cdu_pages={ - "POS" - }, - id="CTD_VAL", - index=0, - statictext=false, - x=16, - y=8 - } - }, - CoordFormat0={ - { - alignment="RGHT", - cdu_pages={ - "ACCREJ", - "UPDATE" - }, - id="CoordFormat0", - index=0, - statictext=false, - x=23, - y=3 - } - }, - CoordFormat1={ - { - alignment="RGHT", - cdu_pages={ - "ACCREJ", - "UPDATE" - }, - id="CoordFormat1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - CurrFlightPlanLetter0={ - { - alignment="LFT", - cdu_pages={ - "1ST_LINE" - }, - id="CurrFlightPlanLetter0", - index=0, - statictext=false, - x=10, - y=1 - } - }, - CurrFlightPlanLetter1={ - { - alignment="LFT", - cdu_pages={ - "1ST_LINE" - }, - id="CurrFlightPlanLetter1", - index=0, - statictext=false, - x=10, - y=1 - } - }, - CurrFlightPlanNumber={ - { - alignment="LFT", - cdu_pages={ - "1ST_LINE" - }, - id="CurrFlightPlanNumber", - index=0, - statictext=false, - x=11, - y=1 - } - }, - CurrSteerPointAsterisk={ - { - alignment="LFT", - cdu_pages={ - "1ST_LINE" - }, - id="CurrSteerPointAsterisk", - index=0, - statictext=false, - x=14, - y=1 - } - }, - CurrSteerPointNumber={ - { - alignment="LFT", - cdu_pages={ - "1ST_LINE" - }, - id="CurrSteerPointNumber", - index=0, - statictext=false, - x=14, - y=1 - } - }, - DATA={ - { - alignment="LFT", - cdu_pages={ - "DTSUPLD" - }, - id="DATA", - index=0, - statictext=true, - x=2, - y=4 - } - }, - DATA2={ - { - alignment="LFT", - cdu_pages={ - "DTSUPLD" - }, - id="DATA2", - index=0, - statictext=true, - x=2, - y=6 - } - }, - DATA_OFF={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="DATA_OFF", - index=0, - statictext=false, - x=21, - y=7 - } - }, - DATA_OFF1={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="DATA_OFF1", - index=0, - statictext=false, - x=21, - y=7 - } - }, - DATA_PUMP={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="DATA_PUMP", - index=0, - statictext=true, - x=11, - y=7 - } - }, - DAY={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="DAY", - index=0, - statictext=true, - x=16, - y=7 - } - }, - DAY_DE={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="DAY_DE", - index=0, - statictext=false, - x=24, - y=7 - } - }, - DAY_TXT={ - { - alignment="RGHT", - cdu_pages={ - "TIME" - }, - id="DAY_TXT", - index=0, - statictext=false, - x=23, - y=7 - } - }, - DECR={ - { - alignment="RGHT", - cdu_pages={ - "MXLOG" - }, - id="DECR", - index=0, - statictext=true, - x=23, - y=3 - } - }, - DEF_ATT={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="DEF_ATT", - index=0, - statictext=true, - x=2, - y=3 - } - }, - DEGREE1={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="DEGREE1", - index=0, - statictext=true, - x=17, - y=5 - } - }, - DEGREE2={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="DEGREE2", - index=0, - statictext=true, - x=17, - y=7 - } - }, - DEGREE3={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="DEGREE3", - index=0, - statictext=true, - x=17, - y=9 - } - }, - DIS={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="DIS", - index=0, - statictext=true, - x=16, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="DIS", - index=1, - statictext=true, - x=7, - y=4 - }, - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="DIS", - index=2, - statictext=true, - x=2, - y=8 - } - }, - DISPLAY_TEST={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST2" - }, - id="DISPLAY_TEST", - index=0, - statictext=true, - x=1, - y=3 - } - }, - DISPLAY_TEST1={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST2" - }, - id="DISPLAY_TEST1", - index=0, - statictext=true, - x=2, - y=5 - } - }, - DISPLAY_TEST_VALUES={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST2" - }, - id="DISPLAY_TEST_VALUES", - index=0, - statictext=true, - x=2, - y=6 - } - }, - DIVERT={ - { - alignment="RGHT", - cdu_pages={ - "NAV" - }, - id="DIVERT", - index=0, - statictext=true, - x=24, - y=9 - } - }, - DIVERTDIV={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDIV", - index=0, - statictext=false, - x=5, - y=4 - } - }, - DIVERTDIV1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDIV1", - index=0, - statictext=false, - x=5, - y=6 - } - }, - DIVERTDIV2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDIV2", - index=0, - statictext=false, - x=5, - y=8 - } - }, - DIVERTDIV3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDIV3", - index=0, - statictext=false, - x=5, - y=10 - } - }, - DIVERTDistance={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDistance", - index=0, - statictext=false, - x=6, - y=4 - } - }, - DIVERTDistance1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDistance1", - index=0, - statictext=false, - x=6, - y=6 - } - }, - DIVERTDistance2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDistance2", - index=0, - statictext=false, - x=6, - y=8 - } - }, - DIVERTDistance3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTDistance3", - index=0, - statictext=false, - x=6, - y=10 - } - }, - DIVERTMH={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTMH", - index=0, - statictext=false, - x=2, - y=4 - } - }, - DIVERTMH1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTMH1", - index=0, - statictext=false, - x=2, - y=6 - } - }, - DIVERTMH2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTMH2", - index=0, - statictext=false, - x=2, - y=8 - } - }, - DIVERTMH3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTMH3", - index=0, - statictext=false, - x=2, - y=10 - } - }, - DIVERTName={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTName", - index=0, - statictext=false, - x=7, - y=3 - } - }, - DIVERTName1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTName1", - index=0, - statictext=false, - x=7, - y=5 - } - }, - DIVERTName2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTName2", - index=0, - statictext=false, - x=7, - y=7 - } - }, - DIVERTName3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTName3", - index=0, - statictext=false, - x=7, - y=9 - } - }, - DIVERTNumber={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTNumber", - index=0, - statictext=false, - x=2, - y=3 - } - }, - DIVERTNumber1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTNumber1", - index=0, - statictext=false, - x=2, - y=5 - } - }, - DIVERTNumber2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTNumber2", - index=0, - statictext=false, - x=2, - y=7 - } - }, - DIVERTNumber3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTNumber3", - index=0, - statictext=false, - x=2, - y=9 - } - }, - DIVERTSteer={ - { - alignment="RGHT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteer", - index=0, - statictext=false, - x=23, - y=3 - } - }, - DIVERTSteer1={ - { - alignment="RGHT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteer1", - index=0, - statictext=false, - x=23, - y=5 - } - }, - DIVERTSteer2={ - { - alignment="RGHT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteer2", - index=0, - statictext=false, - x=23, - y=7 - } - }, - DIVERTSteer3={ - { - alignment="RGHT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteer3", - index=0, - statictext=false, - x=23, - y=9 - } - }, - DIVERTSteerNOT={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteerNOT", - index=0, - statictext=false, - x=1, - y=3 - } - }, - DIVERTSteerNOT1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteerNOT1", - index=0, - statictext=false, - x=1, - y=5 - } - }, - DIVERTSteerNOT2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteerNOT2", - index=0, - statictext=false, - x=1, - y=7 - } - }, - DIVERTSteerNOT3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTSteerNOT3", - index=0, - statictext=false, - x=1, - y=9 - } - }, - DIVERTTTG={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG", - index=0, - statictext=false, - x=17, - y=4 - } - }, - DIVERTTTG1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG1", - index=0, - statictext=false, - x=17, - y=4 - } - }, - DIVERTTTG2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG2", - index=0, - statictext=false, - x=17, - y=6 - } - }, - DIVERTTTG3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG3", - index=0, - statictext=false, - x=17, - y=6 - } - }, - DIVERTTTG4={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG4", - index=0, - statictext=false, - x=17, - y=8 - } - }, - DIVERTTTG5={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG5", - index=0, - statictext=false, - x=17, - y=8 - } - }, - DIVERTTTG6={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG6", - index=0, - statictext=false, - x=17, - y=10 - } - }, - DIVERTTTG7={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTG7", - index=0, - statictext=false, - x=17, - y=10 - } - }, - DIVERTTTGText={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTGText", - index=0, - statictext=false, - x=12, - y=4 - } - }, - DIVERTTTGText1={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTGText1", - index=0, - statictext=false, - x=12, - y=6 - } - }, - DIVERTTTGText2={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTGText2", - index=0, - statictext=false, - x=12, - y=8 - } - }, - DIVERTTTGText3={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="DIVERTTTGText3", - index=0, - statictext=false, - x=12, - y=10 - } - }, - DKI={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="DKI", - index=0, - statictext=false, - x=1, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="DKI", - index=1, - statictext=true, - x=1, - y=3 - } - }, - DMH={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="DMH", - index=0, - statictext=true, - x=2, - y=7 - } - }, - DP_RTR={ - { - alignment="RGHT", - cdu_pages={ - "CDUTEST1" - }, - id="DP_RTR", - index=0, - statictext=true, - x=24, - y=7 - } - }, - DSW1={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="DSW1", - index=0, - statictext=true, - x=2, - y=4 - } - }, - DSW1_VAL={ - { - alignment="RGHT", - cdu_pages={ - "GPSBIT1" - }, - id="DSW1_VAL", - index=0, - statictext=true, - x=24, - y=4 - } - }, - DSW2={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="DSW2", - index=0, - statictext=true, - x=2, - y=5 - } - }, - DSW2_VAL={ - { - alignment="RGHT", - cdu_pages={ - "GPSBIT1" - }, - id="DSW2_VAL", - index=0, - statictext=true, - x=24, - y=5 - } - }, - DTCID={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="DTCID", - index=0, - statictext=true, - x=2, - y=3 - } - }, - DTOT={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="DTOT", - index=0, - statictext=true, - x=24, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="DTOT", - index=1, - statictext=true, - x=1, - y=9 - } - }, - DTOT_ADJUST={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="DTOT_ADJUST", - index=0, - statictext=true, - x=1, - y=3 - } - }, - DTOT_ADJUST_TXT={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="DTOT_ADJUST_TXT", - index=0, - statictext=false, - x=2, - y=4 - } - }, - DTS={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="DTS", - index=0, - statictext=true, - x=2, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTS", - index=1, - statictext=true, - x=18, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS2" - }, - id="DTS", - index=2, - statictext=true, - x=1, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "DTSDNLD", - "DTSSTAT", - "DTSUPLD" - }, - id="DTS", - index=3, - statictext=true, - x=24, - y=9 - } - }, - DTSAS={ - { - alignment="RGHT", - cdu_pages={ - "SYS1" - }, - id="DTSAS", - index=0, - statictext=true, - x=24, - y=7 - } - }, - DTSAS_EGI_STATUS={ - { - alignment="RGHT", - cdu_pages={ - "1ST_LINE" - }, - id="DTSAS_EGI_STATUS", - index=0, - statictext=false, - x=23, - y=1 - } - }, - DTSAS_HPU1={ - { - alignment="RGHT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_HPU1", - index=0, - statictext=false, - x=10, - y=7 - } - }, - DTSAS_ON_OFF={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_ON_OFF", - index=0, - statictext=false, - x=8, - y=3 - } - }, - DTSAS_ON_OFF1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_ON_OFF1", - index=0, - statictext=false, - x=8, - y=3 - } - }, - DTSAS_OWC={ - { - alignment="RGHT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_OWC", - index=0, - statictext=false, - x=20, - y=9 - } - }, - DTSAS_OWC1={ - { - alignment="RGHT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_OWC1", - index=0, - statictext=false, - x=20, - y=9 - } - }, - DTSAS_ST0={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTSAS_ST0", - index=0, - statictext=false, - x=15, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTSAS_ST0", - index=1, - statictext=false, - x=19, - y=6 - } - }, - DTSAS_ST2={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTSAS_ST2", - index=0, - statictext=false, - x=15, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTSAS_ST2", - index=1, - statictext=false, - x=19, - y=6 - } - }, - DTSAS_ST3={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTSAS_ST3", - index=0, - statictext=false, - x=15, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTSAS_ST3", - index=1, - statictext=false, - x=19, - y=6 - } - }, - DTSAS_SYMB={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_SYMB", - index=0, - statictext=false, - x=1, - y=3 - } - }, - DTSAS_TXT={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_TXT", - index=0, - statictext=true, - x=2, - y=3 - } - }, - DTSAS_VPU1={ - { - alignment="RGHT", - cdu_pages={ - "DTSAS" - }, - id="DTSAS_VPU1", - index=0, - statictext=false, - x=9, - y=8 - } - }, - DTSDNLD={ - { - alignment="RGHT", - cdu_pages={ - "DTS" - }, - id="DTSDNLD", - index=0, - statictext=true, - x=24, - y=5 - } - }, - DTSSTAT={ - { - alignment="RGHT", - cdu_pages={ - "DTS" - }, - id="DTSSTAT", - index=0, - statictext=true, - x=24, - y=7 - } - }, - DTSUPLD={ - { - alignment="RGHT", - cdu_pages={ - "DTS" - }, - id="DTSUPLD", - index=0, - statictext=true, - x=24, - y=3 - } - }, - DTSUPLOAD={ - { - alignment="LFT", - cdu_pages={ - "NAV" - }, - id="DTSUPLOAD", - index=0, - statictext=true, - x=1, - y=9 - } - }, - DTS_LB={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="DTS_LB", - index=0, - statictext=true, - x=18, - y=3 - } - }, - DTS_SA={ - { - alignment="RGHT", - cdu_pages={ - "LRUTEST" - }, - id="DTS_SA", - index=0, - statictext=false, - x=24, - y=3 - } - }, - DTS_ST0={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="DTS_ST0", - index=0, - statictext=false, - x=9, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTS_ST0", - index=1, - statictext=false, - x=23, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="DTS_ST0", - index=2, - statictext=false, - x=23, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTS_ST0", - index=3, - statictext=false, - x=17, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="DTS_ST0", - index=4, - statictext=false, - x=23, - y=4 - } - }, - DTS_ST1={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="DTS_ST1", - index=0, - statictext=false, - x=9, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTS_ST1", - index=1, - statictext=false, - x=23, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="DTS_ST1", - index=2, - statictext=false, - x=23, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTS_ST1", - index=3, - statictext=false, - x=17, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="DTS_ST1", - index=4, - statictext=false, - x=23, - y=4 - } - }, - DTS_ST2={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="DTS_ST2", - index=0, - statictext=false, - x=9, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTS_ST2", - index=1, - statictext=false, - x=23, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="DTS_ST2", - index=2, - statictext=false, - x=23, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTS_ST2", - index=3, - statictext=false, - x=17, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="DTS_ST2", - index=4, - statictext=false, - x=23, - y=4 - } - }, - DTS_ST3={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="DTS_ST3", - index=0, - statictext=false, - x=9, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="DTS_ST3", - index=1, - statictext=false, - x=23, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="DTS_ST3", - index=2, - statictext=false, - x=23, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTS_ST3", - index=3, - statictext=false, - x=17, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="DTS_ST3", - index=4, - statictext=false, - x=23, - y=4 - } - }, - DTS_ST4={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="DTS_ST4", - index=0, - statictext=false, - x=9, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="DTS_ST4", - index=1, - statictext=false, - x=17, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="DTS_ST4", - index=2, - statictext=false, - x=23, - y=4 - } - }, - DTS_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="DTS_STATUS0", - index=0, - statictext=false, - x=22, - y=3 - } - }, - DTS_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="DTS_STATUS1", - index=0, - statictext=false, - x=22, - y=3 - } - }, - DTS_STATUS2={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="DTS_STATUS2", - index=0, - statictext=false, - x=22, - y=3 - } - }, - DTS_STATUS3={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="DTS_STATUS3", - index=0, - statictext=false, - x=22, - y=3 - } - }, - DTTG={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="DTTG", - index=0, - statictext=true, - x=1, - y=7 - } - }, - DUR={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="DUR", - index=0, - statictext=true, - x=1, - y=7 - } - }, - DUR_VALS={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="DUR_VALS", - index=0, - statictext=true, - x=9, - y=7 - } - }, - EEPROM={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="EEPROM", - index=0, - statictext=false, - x=1, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="EEPROM", - index=1, - statictext=true, - x=1, - y=5 - } - }, - EGI={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGI", - index=0, - statictext=true, - x=1, - y=3 - } - }, - EGIAvailableMode={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="EGIAvailableMode", - index=0, - statictext=false, - x=24, - y=3 - } - }, - EGIAvailableMode1={ - { - alignment="LFT", - cdu_pages={ - "ALIGN" - }, - id="EGIAvailableMode1", - index=0, - statictext=false, - x=24, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "ALTALGN" - }, - id="EGIAvailableMode1", - index=1, - statictext=false, - x=24, - y=7 - } - }, - EGIAvailableMode2={ - { - alignment="LFT", - cdu_pages={ - "ALIGN" - }, - id="EGIAvailableMode2", - index=0, - statictext=false, - x=24, - y=7 - } - }, - EGICurrentMode={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="EGICurrentMode", - index=0, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "ALIGN" - }, - id="EGICurrentMode", - index=1, - statictext=false, - x=17, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "ALTALGN" - }, - id="EGICurrentMode", - index=2, - statictext=false, - x=19, - y=3 - } - }, - EGICurrentMode1={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="EGICurrentMode1", - index=0, - statictext=false, - x=5, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "ALIGN" - }, - id="EGICurrentMode1", - index=1, - statictext=false, - x=18, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "ALTALGN" - }, - id="EGICurrentMode1", - index=2, - statictext=false, - x=20, - y=7 - } - }, - EGICurrentMode2={ - { - alignment="LFT", - cdu_pages={ - "ALIGN" - }, - id="EGICurrentMode2", - index=0, - statictext=false, - x=20, - y=7 - } - }, - EGIStatus={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus", - index=0, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGIStatus", - index=1, - statictext=false, - x=20, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus", - index=2, - statictext=false, - x=15, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="EGIStatus", - index=3, - statictext=false, - x=8, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus", - index=4, - statictext=false, - x=11, - y=3 - } - }, - EGIStatus1={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus1", - index=0, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGIStatus1", - index=1, - statictext=false, - x=20, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus1", - index=2, - statictext=false, - x=15, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="EGIStatus1", - index=3, - statictext=false, - x=8, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus1", - index=4, - statictext=false, - x=11, - y=3 - } - }, - EGIStatus10={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus10", - index=0, - statictext=false, - x=22, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus10", - index=1, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus10", - index=2, - statictext=false, - x=11, - y=5 - } - }, - EGIStatus11={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus11", - index=0, - statictext=false, - x=22, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus11", - index=1, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus11", - index=2, - statictext=false, - x=11, - y=5 - } - }, - EGIStatus12={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus12", - index=0, - statictext=false, - x=22, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus12", - index=1, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus12", - index=2, - statictext=false, - x=11, - y=5 - } - }, - EGIStatus13={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus13", - index=0, - statictext=false, - x=22, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus13", - index=1, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus13", - index=2, - statictext=false, - x=11, - y=5 - } - }, - EGIStatus14={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus14", - index=0, - statictext=false, - x=22, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus14", - index=1, - statictext=false, - x=23, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus14", - index=2, - statictext=false, - x=11, - y=5 - } - }, - EGIStatus15={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus15", - index=0, - statictext=false, - x=17, - y=5 - } - }, - EGIStatus16={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus16", - index=0, - statictext=false, - x=17, - y=5 - } - }, - EGIStatus2={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus2", - index=0, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGIStatus2", - index=1, - statictext=false, - x=20, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus2", - index=2, - statictext=false, - x=15, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="EGIStatus2", - index=3, - statictext=false, - x=8, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus2", - index=4, - statictext=false, - x=11, - y=3 - } - }, - EGIStatus3={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus3", - index=0, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGIStatus3", - index=1, - statictext=false, - x=20, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus3", - index=2, - statictext=false, - x=15, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="EGIStatus3", - index=3, - statictext=false, - x=8, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus3", - index=4, - statictext=false, - x=11, - y=3 - } - }, - EGIStatus4={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus4", - index=0, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGIStatus4", - index=1, - statictext=false, - x=20, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus4", - index=2, - statictext=false, - x=15, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="EGIStatus4", - index=3, - statictext=false, - x=8, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus4", - index=4, - statictext=false, - x=11, - y=3 - } - }, - EGIStatus5={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus5", - index=0, - statictext=false, - x=14, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus5", - index=1, - statictext=false, - x=15, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus5", - index=2, - statictext=false, - x=11, - y=4 - } - }, - EGIStatus6={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus6", - index=0, - statictext=false, - x=14, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus6", - index=1, - statictext=false, - x=15, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus6", - index=2, - statictext=false, - x=11, - y=4 - } - }, - EGIStatus7={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus7", - index=0, - statictext=false, - x=14, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus7", - index=1, - statictext=false, - x=15, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus7", - index=2, - statictext=false, - x=11, - y=4 - } - }, - EGIStatus8={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus8", - index=0, - statictext=false, - x=14, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus8", - index=1, - statictext=false, - x=15, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus8", - index=2, - statictext=false, - x=11, - y=4 - } - }, - EGIStatus9={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGIStatus9", - index=0, - statictext=false, - x=14, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="EGIStatus9", - index=1, - statictext=false, - x=15, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="EGIStatus9", - index=2, - statictext=false, - x=11, - y=4 - } - }, - EGITEST={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="EGITEST", - index=0, - statictext=true, - x=1, - y=3 - } - }, - EGI_BLD_FOM={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM1={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM1", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM2={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM2", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM3={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM3", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM4={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM4", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM5={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM5", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM6={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM6", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM7={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM7", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM8={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM8", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_BLD_FOM9={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_BLD_FOM9", - index=0, - statictext=false, - x=22, - y=8 - } - }, - EGI_GPS_EHE={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_EHE", - index=0, - statictext=false, - x=15, - y=4 - } - }, - EGI_GPS_EHE1={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_EHE1", - index=0, - statictext=false, - x=15, - y=4 - } - }, - EGI_GPS_EVE={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_EVE", - index=0, - statictext=false, - x=15, - y=5 - } - }, - EGI_GPS_EVE1={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_EVE1", - index=0, - statictext=false, - x=15, - y=5 - } - }, - EGI_GPS_FOM={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM1={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM1", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM1", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM2={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM2", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM2", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM3={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM3", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM3", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM4={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM4", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM4", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM5={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM5", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM5", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM6={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM6", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM6", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM7={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM7", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM7", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM8={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM8", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM8", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_FOM9={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_GPS_FOM9", - index=0, - statictext=false, - x=14, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_FOM9", - index=1, - statictext=false, - x=15, - y=3 - } - }, - EGI_GPS_ST3={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_ST3", - index=0, - statictext=false, - x=15, - y=7 - } - }, - EGI_GPS_ST31={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_ST31", - index=0, - statictext=false, - x=15, - y=7 - } - }, - EGI_GPS_ST5={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_ST5", - index=0, - statictext=false, - x=15, - y=6 - } - }, - EGI_GPS_ST51={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="EGI_GPS_ST51", - index=0, - statictext=false, - x=15, - y=6 - } - }, - EGI_INS_FOM={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM1={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM1", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM2={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM2", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM3={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM3", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM4={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM4", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM5={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM5", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM6={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM6", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM7={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM7", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM8={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM8", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_INS_FOM9={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="EGI_INS_FOM9", - index=0, - statictext=false, - x=6, - y=8 - } - }, - EGI_OFP={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGI_OFP", - index=0, - statictext=true, - x=2, - y=7 - } - }, - EGI_SA={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="EGI_SA", - index=0, - statictext=false, - x=1, - y=7 - } - }, - EHE={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="EHE", - index=0, - statictext=true, - x=8, - y=4 - } - }, - EL={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="EL", - index=0, - statictext=true, - x=2, - y=5 - } - }, - ELEVATION={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="ELEVATION", - index=0, - statictext=true, - x=16, - y=4 - } - }, - EMPTY={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="EMPTY", - index=0, - statictext=true, - x=3, - y=5 - } - }, - ERASE={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="ERASE", - index=0, - statictext=true, - x=2, - y=7 - } - }, - ERASEFL={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="ERASEFL", - index=0, - statictext=true, - x=13, - y=4 - } - }, - ERASEFs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="ERASEFs", - index=0, - statictext=false, - x=23, - y=4 - } - }, - ERASEFs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="ERASEFs1", - index=0, - statictext=false, - x=23, - y=4 - } - }, - ERASE_SA={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="ERASE_SA", - index=0, - statictext=false, - x=1, - y=7 - } - }, - EVE={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="EVE", - index=0, - statictext=true, - x=8, - y=5 - } - }, - EX={ - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="EX", - index=0, - statictext=true, - x=2, - y=7 - } - }, - EstimatedDrift={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="EstimatedDrift", - index=0, - statictext=false, - x=13, - y=8 - } - }, - F={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="F", - index=0, - statictext=false, - x=23, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="F", - index=1, - statictext=true, - x=5, - y=4 - } - }, - FAST={ - { - alignment="RGHT", - cdu_pages={ - "ALTALGN" - }, - id="FAST", - index=0, - statictext=true, - x=23, - y=3 - } - }, - FAULT={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="FAULT", - index=0, - statictext=true, - x=2, - y=3 - } - }, - FAUL_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="FAUL_STATUS0", - index=0, - statictext=false, - x=8, - y=3 - } - }, - FAUL_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="FAUL_STATUS1", - index=0, - statictext=false, - x=8, - y=3 - } - }, - FLDINFO={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT2" - }, - id="FLDINFO", - index=0, - statictext=false, - x=23, - y=3 - } - }, - FLDINFO_APP_UHF={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_APP_UHF", - index=0, - statictext=false, - x=7, - y=9 - } - }, - FLDINFO_APP_VHF={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_APP_VHF", - index=0, - statictext=false, - x=15, - y=9 - } - }, - FLDINFO_BR={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT2" - }, - id="FLDINFO_BR", - index=0, - statictext=false, - x=24, - y=3 - } - }, - FLDINFO_ELEV={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_ELEV", - index=0, - statictext=false, - x=21, - y=4 - } - }, - FLDINFO_ID={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_ID", - index=0, - statictext=false, - x=2, - y=3 - } - }, - FLDINFO_ILS1={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_ILS1", - index=0, - statictext=false, - x=7, - y=7 - } - }, - FLDINFO_ILS2={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_ILS2", - index=0, - statictext=false, - x=15, - y=7 - } - }, - FLDINFO_NUM={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_NUM", - index=0, - statictext=false, - x=16, - y=3 - } - }, - FLDINFO_Name={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_Name", - index=0, - statictext=false, - x=2, - y=4 - } - }, - FLDINFO_RWY_HD={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_RWY_HD", - index=0, - statictext=false, - x=7, - y=6 - } - }, - FLDINFO_RWY_HD2={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_RWY_HD2", - index=0, - statictext=false, - x=15, - y=6 - } - }, - FLDINFO_RWY_LNG={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_RWY_LNG", - index=0, - statictext=false, - x=19, - y=6 - } - }, - FLDINFO_TAC_CHAN={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_TAC_CHAN", - index=0, - statictext=false, - x=7, - y=8 - } - }, - FLDINFO_TAC_OFF={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_TAC_OFF", - index=0, - statictext=false, - x=11, - y=8 - } - }, - FLDINFO_TWR_UHF={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_TWR_UHF", - index=0, - statictext=false, - x=7, - y=10 - } - }, - FLDINFO_TWR_VHF={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="FLDINFO_TWR_VHF", - index=0, - statictext=false, - x=15, - y=10 - } - }, - ["FLIGHT DRIVER"]={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FLIGHT DRIVER", - index=0, - statictext=true, - x=5, - y=4 - } - }, - FLIGHT_DRIVER={ - { - alignment="RGHT", - cdu_pages={ - "NAV", - "POS" - }, - id="FLIGHT_DRIVER", - index=0, - statictext=false, - x=23, - y=3 - } - }, - FLIGHT_DRIVER1={ - { - alignment="RGHT", - cdu_pages={ - "NAV", - "POS" - }, - id="FLIGHT_DRIVER1", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FLIGHT_DRIVER1", - index=1, - statictext=false, - x=6, - y=5 - } - }, - FLIGHT_DRIVER2={ - { - alignment="RGHT", - cdu_pages={ - "NAV", - "POS" - }, - id="FLIGHT_DRIVER2", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FLIGHT_DRIVER2", - index=1, - statictext=false, - x=6, - y=5 - } - }, - FLIGHT_DRIVER3={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FLIGHT_DRIVER3", - index=0, - statictext=false, - x=6, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "POS" - }, - id="FLIGHT_DRIVER3", - index=1, - statictext=false, - x=23, - y=3 - } - }, - FLIGHT_DRIVER4={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FLIGHT_DRIVER4", - index=0, - statictext=false, - x=6, - y=5 - } - }, - FLTR_INS={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="FLTR_INS", - index=0, - statictext=true, - x=2, - y=9 - } - }, - FLTR_INSs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="FLTR_INSs", - index=0, - statictext=false, - x=11, - y=9 - } - }, - FLTR_INSs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="FLTR_INSs1", - index=0, - statictext=false, - x=11, - y=9 - } - }, - FOM={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FOM", - index=0, - statictext=true, - x=11, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="FOM", - index=1, - statictext=true, - x=8, - y=3 - } - }, - FOM_LINE={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="FOM_LINE", - index=0, - statictext=true, - x=2, - y=8 - } - }, - FPAction={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPAction", - index=0, - statictext=false, - x=1, - y=3 - } - }, - FPAction1={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPAction1", - index=0, - statictext=false, - x=1, - y=5 - } - }, - FPAction2={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPAction2", - index=0, - statictext=false, - x=1, - y=7 - } - }, - FPBUILDBranch={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPBUILDBranch", - index=0, - statictext=false, - x=24, - y=3 - } - }, - FPBUILDBranch1={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPBUILDBranch1", - index=0, - statictext=false, - x=24, - y=5 - } - }, - FPBUILDBranch2={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPBUILDBranch2", - index=0, - statictext=false, - x=24, - y=7 - } - }, - FPMENUPageNumber={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="FPMENUPageNumber", - index=0, - statictext=false, - x=20, - y=10 - } - }, - FPBUILDPageNumber={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="FPMENUPageNumber", - index=0, - statictext=false, - x=20, - y=10 - } - }, - FPBUILDPlanName={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="FPBUILDPlanName", - index=0, - statictext=false, - x=5, - y=3 - } - }, - FPBUILDPlanNumber={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="FPBUILDPlanNumber", - index=0, - statictext=false, - x=6, - y=4 - } - }, - FPMode={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPMode", - index=0, - statictext=false, - x=5, - y=3 - } - }, - FPMode1={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPMode1", - index=0, - statictext=false, - x=5, - y=3 - } - }, - FPMode2={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPMode2", - index=0, - statictext=false, - x=5, - y=5 - } - }, - FPMode3={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPMode3", - index=0, - statictext=false, - x=5, - y=5 - } - }, - FPMode4={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPMode4", - index=0, - statictext=false, - x=5, - y=7 - } - }, - FPMode5={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPMode5", - index=0, - statictext=false, - x=5, - y=7 - } - }, - FPName={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPName", - index=0, - statictext=false, - x=11, - y=3 - } - }, - FPName1={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPName1", - index=0, - statictext=false, - x=11, - y=5 - } - }, - FPName2={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPName2", - index=0, - statictext=false, - x=11, - y=7 - } - }, - FPNameInput={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPNameInput", - index=0, - statictext=false, - x=1, - y=9 - } - }, - FPNumber={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPNumber", - index=0, - statictext=false, - x=2, - y=3 - } - }, - FPNumber1={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPNumber1", - index=0, - statictext=false, - x=2, - y=5 - } - }, - FPNumber2={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FPNumber2", - index=0, - statictext=false, - x=2, - y=7 - } - }, - FPP={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="FPP", - index=0, - statictext=false, - x=1, - y=6 - }, - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="FPP", - index=1, - statictext=true, - x=1, - y=6 - } - }, - FROM_CF_RTRY={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_CF_RTRY", - index=0, - statictext=true, - x=24, - y=3 - } - }, - FROM_CoordFormat0={ - { - alignment="RGHT", - cdu_pages={ - "FROM" - }, - id="FROM_CoordFormat0", - index=0, - statictext=false, - x=23, - y=3 - } - }, - FROM_CoordFormat1={ - { - alignment="RGHT", - cdu_pages={ - "FROM" - }, - id="FROM_CoordFormat1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - FROM_DataEntry0={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_DataEntry0", - index=0, - statictext=false, - x=1, - y=3 - } - }, - FROM_DataEntry1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_DataEntry1", - index=0, - statictext=false, - x=1, - y=5 - } - }, - FROM_Lat={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_Lat", - index=0, - statictext=false, - x=2, - y=7 - } - }, - FROM_Lat1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_Lat1", - index=0, - statictext=false, - x=2, - y=7 - } - }, - FROM_Long={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_Long", - index=0, - statictext=false, - x=2, - y=9 - } - }, - FROM_Long1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_Long1", - index=0, - statictext=false, - x=2, - y=9 - } - }, - FROM_NUMBER={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="FROM_NUMBER", - index=0, - statictext=false, - x=20, - y=2 - } - }, - FROM_PT={ - { - alignment="RGHT", - cdu_pages={ - "WPMENU" - }, - id="FROM_PT", - index=0, - statictext=true, - x=24, - y=5 - } - }, - FROM_PointArea={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_PointArea", - index=0, - statictext=false, - x=2, - y=9 - } - }, - FROM_PointArea1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_PointArea1", - index=0, - statictext=false, - x=2, - y=9 - } - }, - FROM_PointGrid={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_PointGrid", - index=0, - statictext=false, - x=2, - y=7 - } - }, - FROM_PointGrid1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_PointGrid1", - index=0, - statictext=false, - x=2, - y=7 - } - }, - FROM_TITLE={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="FROM_TITLE", - index=0, - statictext=false, - x=15, - y=2 - } - }, - FROM_WptIdent={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_WptIdent", - index=0, - statictext=false, - x=2, - y=5 - } - }, - FROM_WptIdent1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_WptIdent1", - index=0, - statictext=false, - x=2, - y=5 - } - }, - FROM_WptNumber={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_WptNumber", - index=0, - statictext=false, - x=2, - y=3 - } - }, - FROM_WptNumber1={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="FROM_WptNumber1", - index=0, - statictext=false, - x=2, - y=3 - } - }, - FT_BRACKETS={ - { - alignment="RGHT", - cdu_pages={ - "DTSAS" - }, - id="FT_BRACKETS", - index=0, - statictext=false, - x=24, - y=9 - } - }, - FT_TXT={ - { - alignment="RGHT", - cdu_pages={ - "DTSAS" - }, - id="FT_TXT", - index=0, - statictext=true, - x=23, - y=9 - } - }, - FULLText={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="FULLText", - index=0, - statictext=false, - x=10, - y=9 - } - }, - FWI={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT2", - "GPSBIT3", - "GPSBIT4" - }, - id="FWI", - index=0, - statictext=true, - x=2, - y=3 - } - }, - GC={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="GC", - index=0, - statictext=true, - x=2, - y=8 - } - }, - GC1={ - { - alignment="RGHT", - cdu_pages={ - "GPSBIT1" - }, - id="GC1", - index=0, - statictext=true, - x=24, - y=8 - } - }, - GCAS_LAST_SOURCE={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="GCAS_LAST_SOURCE", - index=0, - statictext=false, - x=2, - y=9 - } - }, - GCAS_MSGS={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="GCAS_MSGS", - index=0, - statictext=true, - x=2, - y=9 - } - }, - GCAS_MSGS1={ - { - alignment="RGHT", - cdu_pages={ - "LASTE" - }, - id="GCAS_MSGS1", - index=0, - statictext=false, - x=16, - y=9 - } - }, - GEM_OFP={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GEM_OFP", - index=0, - statictext=true, - x=2, - y=9 - } - }, - GEM_SA={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GEM_SA", - index=0, - statictext=false, - x=1, - y=9 - } - }, - GMT_DE={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="GMT_DE", - index=0, - statictext=false, - x=24, - y=9 - } - }, - GMT_LCL1={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="GMT_LCL1", - index=0, - statictext=false, - x=12, - y=9 - } - }, - GMT_LCL2={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="GMT_LCL2", - index=0, - statictext=false, - x=12, - y=9 - } - }, - GMT_LCL_Time={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="GMT_LCL_Time", - index=0, - statictext=false, - x=16, - y=9 - } - }, - GPS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPS", - index=0, - statictext=true, - x=15, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="GPS", - index=1, - statictext=true, - x=1, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "GPSBIT1", - "GPSBIT2", - "GPSBIT3", - "GPSKEYS", - "GPSSTAT2" - }, - id="GPS", - index=2, - statictext=true, - x=24, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5" - }, - id="GPS", - index=3, - statictext=true, - x=1, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GPS", - index=4, - statictext=true, - x=14, - y=3 - } - }, - GPS1={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="GPS1", - index=0, - statictext=false, - x=1, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "GPSBIT4", - "GPSBIT5", - "GPSSTAT1" - }, - id="GPS1", - index=1, - statictext=true, - x=24, - y=9 - } - }, - GPS2={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="GPS2", - index=0, - statictext=true, - x=2, - y=5 - } - }, - GPSAltitude={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="GPSAltitude", - index=0, - statictext=false, - x=8, - y=9 - } - }, - GPSAltitude1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="GPSAltitude1", - index=0, - statictext=false, - x=8, - y=9 - } - }, - GPSAltitude2={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="GPSAltitude2", - index=0, - statictext=false, - x=8, - y=9 - } - }, - GPSAltitude3={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="GPSAltitude3", - index=0, - statictext=false, - x=8, - y=9 - } - }, - GPSAltitude4={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="GPSAltitude4", - index=0, - statictext=false, - x=8, - y=9 - } - }, - GPSBIT={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="GPSBIT", - index=0, - statictext=true, - x=24, - y=5 - } - }, - GPSKEYS={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="GPSKEYS", - index=0, - statictext=true, - x=24, - y=9 - } - }, - GPSSTAT={ - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="GPSSTAT", - index=0, - statictext=true, - x=24, - y=3 - } - }, - GPSStatus={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPSStatus", - index=0, - statictext=false, - x=20, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GPSStatus", - index=1, - statictext=false, - x=23, - y=3 - } - }, - GPSStatus1={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPSStatus1", - index=0, - statictext=false, - x=20, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GPSStatus1", - index=1, - statictext=false, - x=23, - y=3 - } - }, - GPSStatus2={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPSStatus2", - index=0, - statictext=false, - x=20, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GPSStatus2", - index=1, - statictext=false, - x=23, - y=3 - } - }, - GPSStatus3={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPSStatus3", - index=0, - statictext=false, - x=20, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GPSStatus3", - index=1, - statictext=false, - x=23, - y=3 - } - }, - GPSStatus4={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPSStatus4", - index=0, - statictext=false, - x=20, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GPSStatus4", - index=1, - statictext=false, - x=23, - y=3 - } - }, - GPS_SA={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="GPS_SA", - index=0, - statictext=true, - x=2, - y=3 - } - }, - GPS_SA1={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="GPS_SA1", - index=0, - statictext=false, - x=1, - y=3 - } - }, - GPS_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="GPS_STATUS", - index=0, - statictext=true, - x=20, - y=3 - } - }, - GPS_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="GPS_STATUS0", - index=0, - statictext=false, - x=6, - y=3 - } - }, - GPS_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="GPS_STATUS1", - index=0, - statictext=false, - x=6, - y=3 - } - }, - GPS_STATUS2={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="GPS_STATUS2", - index=0, - statictext=false, - x=6, - y=3 - } - }, - GPS_STATUS3={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="GPS_STATUS3", - index=0, - statictext=false, - x=6, - y=3 - } - }, - GROUND={ - { - alignment="RGHT", - cdu_pages={ - "ALIGN" - }, - id="GROUND", - index=0, - statictext=true, - x=23, - y=3 - } - }, - GUK_USER={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GUK_USER", - index=0, - statictext=true, - x=14, - y=6 - } - }, - GUK_USERs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GUK_USERs", - index=0, - statictext=false, - x=23, - y=6 - } - }, - GUK_USERs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="GUK_USERs1", - index=0, - statictext=false, - x=23, - y=6 - } - }, - G_ALT={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="G_ALT", - index=0, - statictext=true, - x=2, - y=9 - } - }, - HARS={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="HARS", - index=0, - statictext=true, - x=18, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="HARS", - index=1, - statictext=true, - x=18, - y=4 - }, - { - alignment="RGHT", - cdu_pages={ - "SYS1" - }, - id="HARS", - index=2, - statictext=true, - x=24, - y=5 - } - }, - HARS_I_F={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="HARS_I_F", - index=0, - statictext=false, - x=13, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="HARS_I_F", - index=1, - statictext=true, - x=13, - y=3 - } - }, - HARS_ST2={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="HARS_ST2", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="HARS_ST2", - index=1, - statictext=false, - x=23, - y=4 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="HARS_ST2", - index=2, - statictext=false, - x=23, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="HARS_ST2", - index=3, - statictext=false, - x=11, - y=7 - } - }, - HARS_ST3={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="HARS_ST3", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="HARS_ST3", - index=1, - statictext=false, - x=23, - y=4 - }, - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="HARS_ST3", - index=2, - statictext=false, - x=23, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="HARS_ST3", - index=3, - statictext=false, - x=11, - y=7 - } - }, - HAS_KEYS={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="HAS_KEYS", - index=0, - statictext=true, - x=13, - y=5 - } - }, - HAS_KEYSs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="HAS_KEYSs", - index=0, - statictext=false, - x=23, - y=5 - } - }, - HAS_KEYSs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="HAS_KEYSs1", - index=0, - statictext=false, - x=23, - y=5 - } - }, - HPU={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="HPU", - index=0, - statictext=true, - x=2, - y=7 - } - }, - HUD_ATT={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="HUD_ATT", - index=0, - statictext=true, - x=10, - y=5 - } - }, - HUD_ATT1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="HUD_ATT1", - index=0, - statictext=false, - x=23, - y=5 - } - }, - HUD_ATT2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="HUD_ATT2", - index=0, - statictext=false, - x=23, - y=5 - } - }, - HUD_IND={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="HUD_IND", - index=0, - statictext=true, - x=1, - y=9 - } - }, - HUD_OFF={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="HUD_OFF", - index=0, - statictext=false, - x=6, - y=9 - } - }, - HUD_ON={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="HUD_ON", - index=0, - statictext=false, - x=6, - y=9 - } - }, - IAS={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="IAS", - index=0, - statictext=true, - x=2, - y=8 - } - }, - IAS_ST={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="IAS_ST", - index=0, - statictext=false, - x=21, - y=8 - } - }, - IAS_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="IAS_ST1", - index=0, - statictext=false, - x=21, - y=8 - } - }, - IAS_VAL={ - { - alignment="RGHT", - cdu_pages={ - "CADC" - }, - id="IAS_VAL", - index=0, - statictext=false, - x=16, - y=8 - } - }, - IE={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="IE", - index=0, - statictext=true, - x=15, - y=4 - } - }, - IE_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="IE_STATUS", - index=0, - statictext=true, - x=20, - y=4 - } - }, - IIW={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT5" - }, - id="IIW", - index=0, - statictext=true, - x=2, - y=3 - } - }, - ILS={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="ILS", - index=0, - statictext=true, - x=2, - y=7 - } - }, - ILS1={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="ILS1", - index=0, - statictext=true, - x=2, - y=10 - } - }, - INCR={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="INCR", - index=0, - statictext=true, - x=2, - y=3 - } - }, - INFLT={ - { - alignment="RGHT", - cdu_pages={ - "ALIGN" - }, - id="INFLT", - index=0, - statictext=true, - x=23, - y=5 - } - }, - INIT={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="INIT", - index=0, - statictext=true, - x=1, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="INIT", - index=1, - statictext=true, - x=2, - y=6 - } - }, - INITWAYPTIdent1={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="INITWAYPTIdent1", - index=0, - statictext=false, - x=2, - y=5 - } - }, - INITWAYPTIdent2={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="INITWAYPTIdent2", - index=0, - statictext=false, - x=2, - y=5 - } - }, - INITWAYPTNumber1={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="INITWAYPTNumber1", - index=0, - statictext=false, - x=2, - y=3 - } - }, - INITWAYPTNumber2={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="INITWAYPTNumber2", - index=0, - statictext=false, - x=2, - y=3 - } - }, - INITWAYPT_INCR_DECR={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="INITWAYPT_INCR_DECR", - index=0, - statictext=true, - x=1, - y=3 - } - }, - INIT_REQ={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="INIT_REQ", - index=0, - statictext=true, - x=2, - y=6 - } - }, - INIT_REQs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="INIT_REQs", - index=0, - statictext=false, - x=11, - y=6 - } - }, - INIT_REQs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="INIT_REQs1", - index=0, - statictext=false, - x=11, - y=6 - } - }, - INS={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="INS", - index=0, - statictext=true, - x=1, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="INS", - index=1, - statictext=true, - x=24, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS", - index=2, - statictext=true, - x=1, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="INS", - index=3, - statictext=false, - x=24, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="INS", - index=4, - statictext=true, - x=2, - y=5 - } - }, - INS1={ - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="INS1", - index=0, - statictext=false, - x=24, - y=7 - } - }, - INS2={ - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="INS2", - index=0, - statictext=false, - x=24, - y=7 - } - }, - INSERT={ - { - alignment="RGHT", - cdu_pages={ - "FPBUILD" - }, - id="INSERT", - index=0, - statictext=true, - x=23, - y=3 - } - }, - INSERTDisplay={ - { - alignment="RGHT", - cdu_pages={ - "FPBUILD" - }, - id="INSERTDisplay", - index=0, - statictext=false, - x=24, - y=3 - } - }, - INSSTAT={ - { - alignment="RGHT", - cdu_pages={ - "INS" - }, - id="INSSTAT", - index=0, - statictext=true, - x=24, - y=3 - } - }, - INS_SA={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="INS_SA", - index=0, - statictext=false, - x=1, - y=5 - } - }, - INS_ST={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS_ST", - index=0, - statictext=true, - x=19, - y=3 - } - }, - INS_ST1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS_ST1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - INS_ST2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS_ST2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - INS_ST3={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS_ST3", - index=0, - statictext=false, - x=23, - y=3 - } - }, - INS_ST4={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS_ST4", - index=0, - statictext=false, - x=23, - y=3 - } - }, - INS_ST5={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="INS_ST5", - index=0, - statictext=false, - x=23, - y=3 - } - }, - INS_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="INS_STATUS0", - index=0, - statictext=false, - x=6, - y=5 - } - }, - INS_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="INS_STATUS1", - index=0, - statictext=false, - x=6, - y=5 - } - }, - INS_STATUS2={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="INS_STATUS2", - index=0, - statictext=false, - x=6, - y=5 - } - }, - INS_STATUS3={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="INS_STATUS3", - index=0, - statictext=false, - x=6, - y=5 - } - }, - INVALID={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="INVALID", - index=0, - statictext=true, - x=2, - y=3 - } - }, - INVALID_ST0={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="INVALID_ST0", - index=0, - statictext=false, - x=10, - y=3 - } - }, - INVALID_ST1={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="INVALID_ST1", - index=0, - statictext=false, - x=10, - y=3 - } - }, - IN_FP={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="IN_FP", - index=0, - statictext=true, - x=19, - y=3 - } - }, - ISA={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="ISA", - index=0, - statictext=true, - x=2, - y=4 - } - }, - ISA_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="ISA_STATUS", - index=0, - statictext=true, - x=10, - y=4 - } - }, - I_F_1553={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="I_F_1553", - index=0, - statictext=false, - x=13, - y=5 - } - }, - InitInputLatUTM={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitInputLatUTM", - index=0, - statictext=false, - x=1, - y=7 - } - }, - InitInputLongMGRS={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitInputLongMGRS", - index=0, - statictext=false, - x=1, - y=9 - } - }, - InitPosCoordFormat_LL={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPosCoordFormat_LL", - index=0, - statictext=false, - x=1, - y=5 - } - }, - InitPosCoordFormat_UTM={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPosCoordFormat_UTM", - index=0, - statictext=false, - x=1, - y=5 - } - }, - InitPositLat={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPositLat", - index=0, - statictext=false, - x=2, - y=7 - } - }, - InitPositLong={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPositLong", - index=0, - statictext=false, - x=2, - y=9 - } - }, - InitPositMGRS={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPositMGRS", - index=0, - statictext=false, - x=2, - y=9 - } - }, - InitPositText={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPositText", - index=0, - statictext=false, - x=2, - y=6 - } - }, - InitPositUTM={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="InitPositUTM", - index=0, - statictext=false, - x=2, - y=7 - } - }, - KEYLOAD={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="KEYLOAD", - index=0, - statictext=true, - x=2, - y=8 - } - }, - KEY_2HR={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_2HR", - index=0, - statictext=true, - x=14, - y=8 - } - }, - KEY_DUR={ - { - alignment="RGHT", - cdu_pages={ - "GPSKEYS" - }, - id="KEY_DUR", - index=0, - statictext=false, - x=8, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "GPSSTAT2" - }, - id="KEY_DUR", - index=1, - statictext=false, - x=12, - y=7 - } - }, - KEY_PAR={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_PAR", - index=0, - statictext=true, - x=14, - y=7 - } - }, - KEY_PARs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_PARs", - index=0, - statictext=false, - x=23, - y=7 - } - }, - KEY_PARs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_PARs1", - index=0, - statictext=false, - x=23, - y=7 - } - }, - KEY_PARs2={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_PARs2", - index=0, - statictext=false, - x=23, - y=8 - } - }, - KEY_PARs3={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_PARs3", - index=0, - statictext=false, - x=23, - y=8 - } - }, - KEY_REM={ - { - alignment="RGHT", - cdu_pages={ - "GPSKEYS" - }, - id="KEY_REM", - index=0, - statictext=false, - x=11, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "GPSSTAT2" - }, - id="KEY_REM", - index=1, - statictext=false, - x=16, - y=7 - } - }, - KEY_USED={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_USED", - index=0, - statictext=true, - x=14, - y=5 - } - }, - KEY_USEDs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_USEDs", - index=0, - statictext=false, - x=23, - y=5 - } - }, - KEY_USEDs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_USEDs1", - index=0, - statictext=false, - x=23, - y=5 - } - }, - KEY_USEDs2={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_USEDs2", - index=0, - statictext=false, - x=23, - y=5 - } - }, - KEY_USEDs3={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="KEY_USEDs3", - index=0, - statictext=false, - x=23, - y=5 - } - }, - KLDs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="KLDs", - index=0, - statictext=false, - x=17, - y=8 - } - }, - KLDs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="KLDs1", - index=0, - statictext=false, - x=17, - y=8 - } - }, - KYK={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="KYK", - index=0, - statictext=true, - x=2, - y=3 - } - }, - L4={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT2", - "GPSBIT3" - }, - id="L4", - index=0, - statictext=true, - x=2, - y=4 - } - }, - L5={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT2", - "GPSBIT3" - }, - id="L5", - index=0, - statictext=true, - x=2, - y=5 - } - }, - LAR={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="LAR", - index=0, - statictext=true, - x=17, - y=6 - } - }, - LAR_VALUE={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="LAR_VALUE", - index=0, - statictext=false, - x=23, - y=6 - } - }, - LAR_VALUE1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="LAR_VALUE1", - index=0, - statictext=false, - x=23, - y=6 - } - }, - LAR_VALUE2={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="LAR_VALUE2", - index=0, - statictext=false, - x=23, - y=6 - } - }, - LASTE={ - { - alignment="RGHT", - cdu_pages={ - "SYS1" - }, - id="LASTE", - index=0, - statictext=true, - x=24, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="LASTE", - index=1, - statictext=true, - x=24, - y=9 - } - }, - LASTE_ST0={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="LASTE_ST0", - index=0, - statictext=false, - x=15, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LASTE_ST0", - index=1, - statictext=false, - x=11, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="LASTE_ST0", - index=2, - statictext=false, - x=23, - y=3 - } - }, - LASTE_ST1={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="LASTE_ST1", - index=0, - statictext=false, - x=15, - y=7 - } - }, - LASTE_ST2={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LASTE_ST2", - index=0, - statictext=false, - x=11, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="LASTE_ST2", - index=1, - statictext=false, - x=23, - y=3 - } - }, - LASTE_V={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="LASTE_V", - index=0, - statictext=true, - x=17, - y=3 - } - }, - LCL_ADJUST={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="LCL_ADJUST", - index=0, - statictext=true, - x=1, - y=7 - } - }, - LCL_ADJUST_TXT={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="LCL_ADJUST_TXT", - index=0, - statictext=false, - x=2, - y=8 - } - }, - LINE7={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="LINE7", - index=0, - statictext=true, - x=2, - y=7 - } - }, - LINE9={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="LINE9", - index=0, - statictext=true, - x=2, - y=9 - } - }, - LOAD_PASS={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="LOAD_PASS", - index=0, - statictext=true, - x=11, - y=7 - } - }, - LRU1={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="LRU1", - index=0, - statictext=false, - x=1, - y=7 - } - }, - LRU2={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="LRU2", - index=0, - statictext=true, - x=2, - y=7 - } - }, - LRUTEST={ - { - alignment="RGHT", - cdu_pages={ - "CDUTEST1", - "EGITEST" - }, - id="LRUTEST", - index=0, - statictext=true, - x=24, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "SYS2" - }, - id="LRUTEST", - index=1, - statictext=true, - x=1, - y=5 - } - }, - LRU_CADC={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_CADC", - index=0, - statictext=false, - x=6, - y=6 - } - }, - LRU_CDU={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_CDU", - index=0, - statictext=false, - x=13, - y=3 - } - }, - LRU_DTS={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_DTS", - index=0, - statictext=false, - x=13, - y=5 - } - }, - LRU_DTSAS={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_DTSAS", - index=0, - statictext=false, - x=13, - y=6 - } - }, - LRU_GPS={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_GPS", - index=0, - statictext=false, - x=7, - y=4 - } - }, - LRU_HARS={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_HARS", - index=0, - statictext=false, - x=6, - y=7 - } - }, - LRU_INS={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_INS", - index=0, - statictext=false, - x=7, - y=3 - } - }, - LRU_LASTE={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_LASTE", - index=0, - statictext=false, - x=5, - y=8 - } - }, - LRU_MBC={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_MBC", - index=0, - statictext=false, - x=13, - y=4 - } - }, - LRU_MSN={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="LRU_MSN", - index=0, - statictext=false, - x=7, - y=5 - } - }, - MACH={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MACH", - index=0, - statictext=true, - x=18, - y=4 - }, - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="MACH", - index=1, - statictext=true, - x=2, - y=7 - } - }, - MACH_ST={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="MACH_ST", - index=0, - statictext=false, - x=21, - y=7 - } - }, - MACH_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="MACH_ST1", - index=0, - statictext=false, - x=21, - y=7 - } - }, - MACH_VAL={ - { - alignment="RGHT", - cdu_pages={ - "CADC" - }, - id="MACH_VAL", - index=0, - statictext=false, - x=16, - y=7 - } - }, - MAGH_ST2={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="MAGH_ST2", - index=0, - statictext=false, - x=19, - y=9 - } - }, - MAGH_ST3={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="MAGH_ST3", - index=0, - statictext=false, - x=19, - y=9 - } - }, - MAGH_VAL={ - { - alignment="RGHT", - cdu_pages={ - "HARS" - }, - id="MAGH_VAL", - index=0, - statictext=false, - x=16, - y=9 - } - }, - MAG_HEAD={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="MAG_HEAD", - index=0, - statictext=true, - x=2, - y=9 - } - }, - MBC={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="MBC", - index=0, - statictext=true, - x=18, - y=7 - } - }, - MBC1={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="MBC1", - index=0, - statictext=true, - x=23, - y=7 - } - }, - MBIT1={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT1", - index=0, - statictext=true, - x=2, - y=3 - } - }, - MBIT10={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT10", - index=0, - statictext=true, - x=14, - y=5 - } - }, - MBIT11={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT11", - index=0, - statictext=true, - x=14, - y=6 - } - }, - MBIT2={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT2", - index=0, - statictext=true, - x=2, - y=4 - } - }, - MBIT3={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT3", - index=0, - statictext=true, - x=2, - y=5 - } - }, - MBIT4={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT4", - index=0, - statictext=true, - x=2, - y=6 - } - }, - MBIT5={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT5", - index=0, - statictext=true, - x=2, - y=7 - } - }, - MBIT6={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT6", - index=0, - statictext=true, - x=2, - y=8 - } - }, - MBIT7={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT7", - index=0, - statictext=true, - x=2, - y=9 - } - }, - MBIT8={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT8", - index=0, - statictext=true, - x=14, - y=3 - } - }, - MBIT9={ - { - alignment="LFT", - cdu_pages={ - "EGI3" - }, - id="MBIT9", - index=0, - statictext=true, - x=14, - y=4 - } - }, - MH={ - { - alignment="RGHT", - cdu_pages={ - "ALTALGN" - }, - id="MH", - index=0, - statictext=true, - x=16, - y=5 - } - }, - MH1={ - { - alignment="RGHT", - cdu_pages={ - "ALTALGN" - }, - id="MH1", - index=0, - statictext=false, - x=23, - y=5 - } - }, - MHD={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="MHD", - index=0, - statictext=true, - x=18, - y=7 - } - }, - MHD_ERR={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="MHD_ERR", - index=0, - statictext=false, - x=21, - y=7 - } - }, - MH_DE={ - { - alignment="LFT", - cdu_pages={ - "ALTALGN" - }, - id="MH_DE", - index=0, - statictext=false, - x=24, - y=5 - } - }, - MISC_ADDR={ - { - alignment="LFT", - cdu_pages={ - "INS" - }, - id="MISC_ADDR", - index=0, - statictext=true, - x=1, - y=9 - } - }, - MISSION={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="MISSION", - index=0, - statictext=true, - x=2, - y=4 - } - }, - MODE={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="MODE", - index=0, - statictext=true, - x=2, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE", - index=1, - statictext=true, - x=2, - y=3 - } - }, - MODE0={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE0", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE1", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE2", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE3={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE3", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE4={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE4", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE5={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE5", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE6={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE6", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE7={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE7", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE8={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE8", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MODE9={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="MODE9", - index=0, - statictext=false, - x=8, - y=3 - } - }, - MONTH={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="MONTH", - index=0, - statictext=true, - x=16, - y=5 - } - }, - MONTH_DE={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="MONTH_DE", - index=0, - statictext=false, - x=24, - y=5 - } - }, - MONTH_TXT={ - { - alignment="RGHT", - cdu_pages={ - "TIME" - }, - id="MONTH_TXT", - index=0, - statictext=false, - x=23, - y=5 - } - }, - MSN={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="MSN", - index=0, - statictext=true, - x=15, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="MSN", - index=1, - statictext=true, - x=18, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="MSN", - index=2, - statictext=false, - x=1, - y=7 - } - }, - MSN_DUR={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="MSN_DUR", - index=0, - statictext=true, - x=2, - y=7 - } - }, - MSN_SA={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="MSN_SA", - index=0, - statictext=true, - x=2, - y=7 - } - }, - MSN_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="MSN_STATUS", - index=0, - statictext=true, - x=20, - y=5 - } - }, - MSN_STATUS0={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="MSN_STATUS0", - index=0, - statictext=false, - x=6, - y=7 - } - }, - MSN_STATUS1={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="MSN_STATUS1", - index=0, - statictext=false, - x=6, - y=7 - } - }, - MSN_STATUS2={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="MSN_STATUS2", - index=0, - statictext=false, - x=6, - y=7 - } - }, - MSN_STATUS3={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="MSN_STATUS3", - index=0, - statictext=false, - x=6, - y=7 - } - }, - MV={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="MV", - index=0, - statictext=false, - x=16, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="MV", - index=1, - statictext=false, - x=23, - y=5 - } - }, - MV1={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MV1", - index=0, - statictext=false, - x=17, - y=5 - } - }, - MV2={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MV2", - index=0, - statictext=false, - x=23, - y=5 - } - }, - MV3={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MV3", - index=0, - statictext=false, - x=17, - y=5 - } - }, - MV4={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MV4", - index=0, - statictext=false, - x=23, - y=5 - } - }, - MV5={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MV5", - index=0, - statictext=false, - x=17, - y=5 - } - }, - MV6={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="MV6", - index=0, - statictext=false, - x=23, - y=5 - } - }, - MV_EQ={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="MV_EQ", - index=0, - statictext=false, - x=18, - y=5 - } - }, - MV_EQ1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="MV_EQ1", - index=0, - statictext=false, - x=18, - y=5 - } - }, - MV_EQ2={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="MV_EQ2", - index=0, - statictext=false, - x=18, - y=5 - } - }, - MXLOG={ - { - alignment="RGHT", - cdu_pages={ - "SYS2" - }, - id="MXLOG", - index=0, - statictext=true, - x=24, - y=9 - } - }, - MXOPT={ - { - alignment="RGHT", - cdu_pages={ - "MXLOG" - }, - id="MXOPT", - index=0, - statictext=true, - x=23, - y=7 - } - }, - Mach={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="Mach", - index=0, - statictext=false, - x=23, - y=4 - } - }, - NAV={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="NAV", - index=0, - statictext=true, - x=1, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="NAV", - index=1, - statictext=true, - x=23, - y=7 - } - }, - NAVMODEROTARY={ - { - alignment="RGHT", - cdu_pages={ - "NAV", - "POS" - }, - id="NAVMODEROTARY", - index=0, - statictext=true, - x=24, - y=3 - } - }, - NAV_DAT={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_DAT", - index=0, - statictext=true, - x=10, - y=6 - } - }, - NAV_DAT1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_DAT1", - index=0, - statictext=false, - x=23, - y=6 - } - }, - NAV_DAT2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_DAT2", - index=0, - statictext=false, - x=23, - y=6 - } - }, - NAV_DATA={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="NAV_DATA", - index=0, - statictext=true, - x=2, - y=4 - } - }, - NAV_DATAs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="NAV_DATAs", - index=0, - statictext=false, - x=11, - y=4 - } - }, - NAV_DATAs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="NAV_DATAs1", - index=0, - statictext=false, - x=11, - y=4 - } - }, - NAV_RDY={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_RDY", - index=0, - statictext=true, - x=10, - y=7 - } - }, - NAV_RDY1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_RDY1", - index=0, - statictext=false, - x=23, - y=7 - } - }, - NAV_RDY2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_RDY2", - index=0, - statictext=false, - x=23, - y=7 - } - }, - NAV_RDY3={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="NAV_RDY3", - index=0, - statictext=false, - x=23, - y=7 - } - }, - NEWFPNumber={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="NEWFPNumber", - index=0, - statictext=false, - x=2, - y=9 - } - }, - NEWFPText={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="NEWFPText", - index=0, - statictext=false, - x=10, - y=9 - } - }, - NEW_WAYPT_NUM={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET", - "WAYPT1" - }, - id="NEW_WAYPT_NUM", - index=0, - statictext=false, - x=23, - y=7 - } - }, - NM={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="NM", - index=0, - statictext=true, - x=2, - y=3 - } - }, - NMDisplay={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="NMDisplay", - index=0, - statictext=false, - x=1, - y=3 - } - }, - NMINPUT={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="NMINPUT", - index=0, - statictext=false, - x=1, - y=3 - } - }, - NOT_ATTEMPTED={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="NOT_ATTEMPTED", - index=0, - statictext=true, - x=11, - y=5 - } - }, - NS={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="NS", - index=0, - statictext=true, - x=2, - y=6 - } - }, - NS_ERR={ - { - alignment="RGHT", - cdu_pages={ - "ACCREJ" - }, - id="NS_ERR", - index=0, - statictext=false, - x=7, - y=6 - } - }, - NUM={ - { - alignment="LFT", - cdu_pages={ - "ANNUNCIATIONS" - }, - id="NUM", - index=0, - statictext=false, - x=1, - y=2 - } - }, - OAT={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="OAT", - index=0, - statictext=true, - x=15, - y=9 - } - }, - OF={ - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="OF", - index=0, - statictext=true, - x=2, - y=6 - } - }, - OFFSETDIV={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETDIV", - index=0, - statictext=true, - x=19, - y=6 - } - }, - OFFSETWAYPTCoordFormat1={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTCoordFormat1", - index=0, - statictext=false, - x=24, - y=3 - } - }, - OFFSETWAYPTCoordFormat2={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTCoordFormat2", - index=0, - statictext=false, - x=24, - y=3 - } - }, - OFFSETWAYPTDIS1={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTDIS1", - index=0, - statictext=false, - x=20, - y=6 - } - }, - OFFSETWAYPTDIS2={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTDIS2", - index=0, - statictext=false, - x=20, - y=6 - } - }, - OFFSETWAYPTLat={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTLat", - index=0, - statictext=false, - x=2, - y=7 - } - }, - OFFSETWAYPTLatUTM={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTLatUTM", - index=0, - statictext=false, - x=2, - y=7 - } - }, - OFFSETWAYPTLong={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTLong", - index=0, - statictext=false, - x=2, - y=9 - } - }, - OFFSETWAYPTLongMGRS={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTLongMGRS", - index=0, - statictext=false, - x=2, - y=9 - } - }, - OFFSETWAYPTMGRS={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTMGRS", - index=0, - statictext=false, - x=2, - y=9 - } - }, - OFFSETWAYPTMH1={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTMH1", - index=0, - statictext=false, - x=16, - y=6 - } - }, - OFFSETWAYPTMH2={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTMH2", - index=0, - statictext=false, - x=16, - y=6 - } - }, - OFFSETWAYPTNumber1={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTNumber1", - index=0, - statictext=false, - x=23, - y=9 - } - }, - OFFSETWAYPTNumber2={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTNumber2", - index=0, - statictext=false, - x=23, - y=9 - } - }, - OFFSETWAYPTUTM={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="OFFSETWAYPTUTM", - index=0, - statictext=false, - x=2, - y=7 - } - }, - OFP={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="OFP", - index=0, - statictext=true, - x=2, - y=5 - } - }, - OFPID={ - { - alignment="LFT", - cdu_pages={ - "SYS2" - }, - id="OFPID", - index=0, - statictext=true, - x=1, - y=9 - } - }, - OFPID1_LINE3={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE3", - index=0, - statictext=true, - x=2, - y=3 - } - }, - OFPID1_LINE4_1={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE4_1", - index=0, - statictext=true, - x=2, - y=4 - } - }, - OFPID1_LINE4_2={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE4_2", - index=0, - statictext=true, - x=13, - y=4 - } - }, - OFPID1_LINE5={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE5", - index=0, - statictext=true, - x=2, - y=5 - } - }, - OFPID1_LINE6_1={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE6_1", - index=0, - statictext=true, - x=2, - y=6 - } - }, - OFPID1_LINE6_2={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE6_2", - index=0, - statictext=true, - x=13, - y=6 - } - }, - OFPID1_LINE7={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE7", - index=0, - statictext=true, - x=2, - y=7 - } - }, - OFPID1_LINE8={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="OFPID1_LINE8", - index=0, - statictext=true, - x=2, - y=8 - } - }, - OFPID2_LINE3={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE3", - index=0, - statictext=true, - x=2, - y=3 - } - }, - OFPID2_LINE4_1={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE4_1", - index=0, - statictext=true, - x=2, - y=4 - } - }, - OFPID2_LINE4_2={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE4_2", - index=0, - statictext=true, - x=16, - y=4 - } - }, - OFPID2_LINE5={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE5", - index=0, - statictext=true, - x=2, - y=5 - } - }, - OFPID2_LINE6_1={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE6_1", - index=0, - statictext=true, - x=2, - y=6 - } - }, - OFPID2_LINE6_2={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE6_2", - index=0, - statictext=true, - x=16, - y=6 - } - }, - OFPID2_LINE7={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE7", - index=0, - statictext=true, - x=2, - y=7 - } - }, - OFPID2_LINE8={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="OFPID2_LINE8", - index=0, - statictext=true, - x=2, - y=8 - } - }, - OFP_SA={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="OFP_SA", - index=0, - statictext=false, - x=1, - y=5 - } - }, - OPTIOMS_MAGHEAD={ - { - alignment="RGHT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIOMS_MAGHEAD", - index=0, - statictext=false, - x=9, - y=4 - } - }, - OPTIONS={ - { - alignment="RGHT", - cdu_pages={ - "NAV" - }, - id="OPTIONS", - index=0, - statictext=true, - x=24, - y=7 - } - }, - OPTIONS_CF={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_CF", - index=0, - statictext=false, - x=4, - y=5 - } - }, - OPTIONS_DE={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_DE", - index=0, - statictext=true, - x=1, - y=5 - } - }, - OPTIONS_EQUAL={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_EQUAL", - index=0, - statictext=false, - x=4, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="OPTIONS_EQUAL", - index=1, - statictext=false, - x=18, - y=5 - } - }, - OPTIONS_EQUAL1={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_EQUAL1", - index=0, - statictext=false, - x=3, - y=5 - } - }, - OPTIONS_HD0={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_HD0", - index=0, - statictext=false, - x=2, - y=4 - } - }, - OPTIONS_HD1={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_HD1", - index=0, - statictext=false, - x=2, - y=4 - } - }, - OPTIONS_HF0={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_HF0", - index=0, - statictext=false, - x=2, - y=3 - } - }, - OPTIONS_HF1={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_HF1", - index=0, - statictext=false, - x=2, - y=3 - } - }, - OPTIONS_HS0={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_HS0", - index=0, - statictext=false, - x=2, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="OPTIONS_HS0", - index=1, - statictext=true, - x=16, - y=5 - } - }, - OPTIONS_HS1={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_HS1", - index=0, - statictext=false, - x=2, - y=5 - } - }, - OPTIONS_MV={ - { - alignment="RGHT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_MV", - index=0, - statictext=false, - x=9, - y=5 - } - }, - OPTIONS_RTRY={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="OPTIONS_RTRY", - index=0, - statictext=true, - x=1, - y=3 - } - }, - ORIG_NAV={ - { - alignment="LFT", - cdu_pages={ - "DTSUPLD" - }, - id="ORIG_NAV", - index=0, - statictext=true, - x=1, - y=5 - } - }, - OWC={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="OWC", - index=0, - statictext=true, - x=17, - y=4 - } - }, - OWC1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="OWC1", - index=0, - statictext=true, - x=21, - y=8 - } - }, - OWC_VALUE={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="OWC_VALUE", - index=0, - statictext=false, - x=23, - y=4 - } - }, - OWC_VALUE1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="OWC_VALUE1", - index=0, - statictext=false, - x=23, - y=4 - } - }, - OWC_VALUE2={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="OWC_VALUE2", - index=0, - statictext=false, - x=23, - y=4 - } - }, - Overload={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="Overload", - index=0, - statictext=false, - x=20, - y=7 - } - }, - Overload1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="Overload1", - index=0, - statictext=false, - x=20, - y=7 - } - }, - Overload2={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="Overload2", - index=0, - statictext=false, - x=20, - y=7 - } - }, - Overload3={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="Overload3", - index=0, - statictext=false, - x=23, - y=7 - } - }, - Overload4={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="Overload4", - index=0, - statictext=false, - x=22, - y=7 - } - }, - P={ - { - alignment="LFT", - cdu_pages={ - "FPMENU"}, - id="P", - index=0, - statictext=true, - x=19, - y=10 - } - }, - PC={ - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="PC", - index=0, - statictext=true, - x=2, - y=5 - } - }, - PGCAS={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PGCAS", - index=0, - statictext=true, - x=17, - y=3 - } - }, - PGCAS_VALUE={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PGCAS_VALUE", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PGCAS_VALUE1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PGCAS_VALUE1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PGCAS_VALUE2={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PGCAS_VALUE2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PITCH={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="PITCH", - index=0, - statictext=true, - x=2, - y=7 - } - }, - PITCH_ST2={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="PITCH_ST2", - index=0, - statictext=false, - x=19, - y=7 - } - }, - PITCH_ST3={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="PITCH_ST3", - index=0, - statictext=false, - x=19, - y=7 - } - }, - PITCH_VAL={ - { - alignment="RGHT", - cdu_pages={ - "HARS" - }, - id="PITCH_VAL", - index=0, - statictext=false, - x=16, - y=7 - } - }, - POS={ - { - alignment="LFT", - cdu_pages={ - "INS" - }, - id="POS", - index=0, - statictext=true, - x=1, - y=7 - } - }, - POS_SOURCE={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_SOURCE", - index=0, - statictext=true, - x=2, - y=3 - } - }, - POS_Source_DTS={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_Source_DTS", - index=0, - statictext=false, - x=2, - y=4 - } - }, - POS_Source_GPS={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_Source_GPS", - index=0, - statictext=false, - x=2, - y=4 - } - }, - POS_Source_GPS1={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_Source_GPS1", - index=0, - statictext=false, - x=2, - y=4 - } - }, - POS_Source_Last_Pos={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_Source_Last_Pos", - index=0, - statictext=false, - x=2, - y=4 - } - }, - POS_Source_Man={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_Source_Man", - index=0, - statictext=false, - x=2, - y=4 - } - }, - POS_Source_Standby={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="POS_Source_Standby", - index=0, - statictext=false, - x=2, - y=4 - } - }, - PPOSGroundSpeed={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSGroundSpeed", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PPOSGroundSpeed1={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSGroundSpeed1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PPOSGroundSpeed2={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSGroundSpeed2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PPOSIAS={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSIAS", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PPOSSpeedMode={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedMode", - index=0, - statictext=false, - x=19, - y=3 - } - }, - PPOSSpeedMode1={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedMode1", - index=0, - statictext=false, - x=19, - y=3 - } - }, - PPOSSpeedMode2={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedMode2", - index=0, - statictext=false, - x=17, - y=3 - } - }, - PPOSSpeedMode3={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedMode3", - index=0, - statictext=false, - x=19, - y=3 - } - }, - PPOSSpeedMode4={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedMode4", - index=0, - statictext=false, - x=19, - y=3 - } - }, - PPOSSpeedMode5={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedMode5", - index=0, - statictext=false, - x=19, - y=3 - } - }, - PPOSSpeedRotary={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="PPOSSpeedRotary", - index=0, - statictext=true, - x=24, - y=3 - } - }, - PPOSTAS1={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="PPOSTAS1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - PR={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PR", - index=0, - statictext=true, - x=17, - y=5 - } - }, - PREF={ - { - alignment="RGHT", - cdu_pages={ - "DTSUPLD" - }, - id="PREF", - index=0, - statictext=true, - x=23, - y=4 - } - }, - PR_VALUE={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PR_VALUE", - index=0, - statictext=false, - x=23, - y=5 - } - }, - PR_VALUE1={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PR_VALUE1", - index=0, - statictext=false, - x=23, - y=5 - } - }, - PR_VALUE2={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PR_VALUE2", - index=0, - statictext=false, - x=23, - y=5 - } - }, - PS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="PS", - index=0, - statictext=true, - x=2, - y=5 - } - }, - PS_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="PS_STATUS", - index=0, - statictext=true, - x=10, - y=5 - } - }, - P_ALT={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="P_ALT", - index=0, - statictext=true, - x=2, - y=4 - } - }, - P_ALT_ST={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="P_ALT_ST", - index=0, - statictext=false, - x=21, - y=4 - } - }, - P_ALT_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="P_ALT_ST1", - index=0, - statictext=false, - x=21, - y=4 - } - }, - P_ALT_VAL={ - { - alignment="RGHT", - cdu_pages={ - "CADC" - }, - id="P_ALT_VAL", - index=0, - statictext=false, - x=13, - y=4 - } - }, - PageFPBUILD={ - { - alignment="RGHT", - cdu_pages={ - "FPMENU" - }, - id="PageFPBUILD", - index=0, - statictext=false, - x=24, - y=2 - } - }, - PageNameACCREJ={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="PageNameACCREJ", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameALIGN={ - { - alignment="LFT", - cdu_pages={ - "ALIGN" - }, - id="PageNameALIGN", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameALTALGN={ - { - alignment="LFT", - cdu_pages={ - "ALTALGN" - }, - id="PageNameALTALGN", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameANCHOR={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="PageNameANCHOR", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameATTRIB={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="PageNameATTRIB", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameBBCTL={ - { - alignment="LFT", - cdu_pages={ - "BBCTL" - }, - id="PageNameBBCTL", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameBITBALL={ - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="PageNameBITBALL", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameCADC={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="PageNameCADC", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameCDUTEST1={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="PageNameCDUTEST1", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameCDUTEST2={ - { - alignment="LFT", - cdu_pages={ - "CDUTEST2" - }, - id="PageNameCDUTEST2", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameDIVERT={ - { - alignment="LFT", - cdu_pages={ - "DIVERT" - }, - id="PageNameDIVERT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameDTS={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="PageNameDTS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameDTSAS={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="PageNameDTSAS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameDTSDNLD={ - { - alignment="LFT", - cdu_pages={ - "DTSDNLD" - }, - id="PageNameDTSDNLD", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameDTSSTAT={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="PageNameDTSSTAT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameDTSUPLD={ - { - alignment="LFT", - cdu_pages={ - "DTSUPLD" - }, - id="PageNameDTSUPLD", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameEGI={ - { - alignment="LFT", - cdu_pages={ - "EGI1", - "EGI2", - "EGI3", - "EGI4" - }, - id="PageNameEGI", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameEGITEST={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="PageNameEGITEST", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameFLDINFO={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="PageNameFLDINFO", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameFPBUILD={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="PageNameFPBUILD", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameFPMENU={ - { - alignment="LFT", - cdu_pages={ - "FPMENU" - }, - id="PageNameFPMENU", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameFROM={ - { - alignment="LFT", - cdu_pages={ - "FROM" - }, - id="PageNameFROM", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPS={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="PageNameGPS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSBIT1={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT1" - }, - id="PageNameGPSBIT1", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSBIT2={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT2" - }, - id="PageNameGPSBIT2", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSBIT3={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT3" - }, - id="PageNameGPSBIT3", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSBIT4={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT4" - }, - id="PageNameGPSBIT4", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSBIT5={ - { - alignment="LFT", - cdu_pages={ - "GPSBIT5" - }, - id="PageNameGPSBIT5", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSKEYS={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="PageNameGPSKEYS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameGPSSTAT1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="PageNameGPSSTAT1", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameHARS={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="PageNameHARS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameINS={ - { - alignment="LFT", - cdu_pages={ - "INS" - }, - id="PageNameINS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameINSSTAT={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="PageNameINSSTAT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameLASTE={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="PageNameLASTE", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameLRUTEST={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="PageNameLRUTEST", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameMXLOG={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="PageNameMXLOG", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameNAV={ - { - alignment="LFT", - cdu_pages={ - "NAV" - }, - id="PageNameNAV", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameOFFSET={ - { - alignment="LFT", - cdu_pages={ - "OFFSET" - }, - id="PageNameOFFSET", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameOFPID1={ - { - alignment="LFT", - cdu_pages={ - "OFPID1" - }, - id="PageNameOFPID1", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameOFPID2={ - { - alignment="LFT", - cdu_pages={ - "OFPID2" - }, - id="PageNameOFPID2", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameOPTIONS={ - { - alignment="LFT", - cdu_pages={ - "OPTIONS" - }, - id="PageNameOPTIONS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNamePOS={ - { - alignment="LFT", - cdu_pages={ - "POS" - }, - id="PageNamePOS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNamePOSINFO={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="PageNamePOSINFO", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameREINIT={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="PageNameREINIT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameRESET={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="PageNameRESET", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameSTARTUPBIT={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="PageNameSTARTUPBIT", - index=0, - statictext=false, - x=3, - y=1 - } - }, - PageNameSTRINFO={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="PageNameSTRINFO", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameSYS={ - { - alignment="LFT", - cdu_pages={ - "SYS" - }, - id="PageNameSYS", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameTIME={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="PageNameTIME", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameUPDATE={ - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="PageNameUPDATE", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameWAYPT={ - { - alignment="LFT", - cdu_pages={ - "WAYPT" - }, - id="PageNameWAYPT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameWIND={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="PageNameWIND", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameWNDEDIT={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT" - }, - id="PageNameWNDEDIT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameWPINFO={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="PageNameWPINFO", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameWPMENU={ - { - alignment="LFT", - cdu_pages={ - "WPMENU" - }, - id="PageNameWPMENU", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PageNameWPTATT={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="PageNameWPTATT", - index=0, - statictext=true, - x=2, - y=1 - } - }, - PresPositLat={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositLat", - index=0, - statictext=false, - x=2, - y=3 - } - }, - PresPositLat1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositLat1", - index=0, - statictext=false, - x=2, - y=3 - } - }, - PresPositLong={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositLong", - index=0, - statictext=false, - x=2, - y=4 - } - }, - PresPositLong1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositLong1", - index=0, - statictext=false, - x=2, - y=4 - } - }, - PresPositMGRS={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositMGRS", - index=0, - statictext=false, - x=2, - y=7 - } - }, - PresPositMGRS1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositMGRS1", - index=0, - statictext=false, - x=2, - y=7 - } - }, - PresPositUTM={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositUTM", - index=0, - statictext=false, - x=2, - y=6 - } - }, - PresPositUTM1={ - { - alignment="LFT", - cdu_pages={ - "POSINFO", - "POS" - }, - id="PresPositUTM1", - index=0, - statictext=false, - x=2, - y=6 - } - }, - RAM={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="RAM", - index=0, - statictext=false, - x=1, - y=4 - }, - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="RAM", - index=1, - statictext=true, - x=1, - y=4 - } - }, - RAM_1553={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="RAM_1553", - index=0, - statictext=false, - x=13, - y=4 - }, - { - alignment="LFT", - cdu_pages={ - "CDUTEST1" - }, - id="RAM_1553", - index=1, - statictext=true, - x=13, - y=4 - } - }, - READY={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="READY", - index=0, - statictext=true, - x=2, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="READY", - index=1, - statictext=true, - x=2, - y=3 - } - }, - READY_ST0={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="READY_ST0", - index=0, - statictext=false, - x=8, - y=5 - } - }, - READY_ST1={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="READY_ST1", - index=0, - statictext=false, - x=8, - y=5 - } - }, - READY_ST2={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="READY_ST2", - index=0, - statictext=false, - x=8, - y=5 - } - }, - READY_ST3={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="READY_ST3", - index=0, - statictext=false, - x=8, - y=5 - } - }, - READY_ST4={ - { - alignment="LFT", - cdu_pages={ - "DTS" - }, - id="READY_ST4", - index=0, - statictext=false, - x=8, - y=5 - } - }, - RECENT_NAV={ - { - alignment="LFT", - cdu_pages={ - "DTSUPLD" - }, - id="RECENT_NAV", - index=0, - statictext=true, - x=1, - y=9 - } - }, - RECORD={ - { - alignment="RGHT", - cdu_pages={ - "LRUTEST" - }, - id="RECORD", - index=0, - statictext=true, - x=24, - y=7 - } - }, - REINIT={ - { - alignment="LFT", - cdu_pages={ - "SYS1" - }, - id="REINIT", - index=0, - statictext=true, - x=1, - y=9 - } - }, - REINIT_DTSAS={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="REINIT_DTSAS", - index=0, - statictext=true, - x=1, - y=9 - } - }, - REINIT_GPS={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="REINIT_GPS", - index=0, - statictext=true, - x=1, - y=5 - } - }, - REINIT_INS={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="REINIT_INS", - index=0, - statictext=true, - x=1, - y=3 - } - }, - REINIT_LASTE={ - { - alignment="LFT", - cdu_pages={ - "REINIT" - }, - id="REINIT_LASTE", - index=0, - statictext=true, - x=1, - y=7 - } - }, - REJECT={ - { - alignment="RGHT", - cdu_pages={ - "ACCREJ" - }, - id="REJECT", - index=0, - statictext=true, - x=24, - y=5 - } - }, - RESET={ - { - alignment="RGHT", - cdu_pages={ - "SYS1", - "BBCTL" - }, - id="RESET", - index=0, - statictext=true, - x=24, - y=9 - } - }, - RESET_CADC={ - { - alignment="RGHT", - cdu_pages={ - "RESET" - }, - id="RESET_CADC", - index=0, - statictext=true, - x=24, - y=3 - } - }, - RESET_CICU={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_CICU", - index=0, - statictext=true, - x=1, - y=7 - } - }, - RESET_CICU0={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_CICU0", - index=0, - statictext=false, - x=8, - y=7 - } - }, - RESET_CICU1={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_CICU1", - index=0, - statictext=false, - x=8, - y=7 - } - }, - RESET_DTS={ - { - alignment="RGHT", - cdu_pages={ - "RESET" - }, - id="RESET_DTS", - index=0, - statictext=true, - x=24, - y=7 - } - }, - RESET_EGI={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_EGI", - index=0, - statictext=true, - x=1, - y=3 - } - }, - RESET_HARS={ - { - alignment="RGHT", - cdu_pages={ - "RESET" - }, - id="RESET_HARS", - index=0, - statictext=true, - x=24, - y=5 - } - }, - RESET_LASTE={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_LASTE", - index=0, - statictext=true, - x=1, - y=5 - } - }, - RESET_LASTE1={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_LASTE1", - index=0, - statictext=true, - x=8, - y=7 - } - }, - RESET_ST0={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_ST0", - index=0, - statictext=false, - x=8, - y=5 - } - }, - RESET_ST1={ - { - alignment="LFT", - cdu_pages={ - "RESET" - }, - id="RESET_ST1", - index=0, - statictext=false, - x=8, - y=5 - } - }, - ROLL={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="ROLL", - index=0, - statictext=true, - x=2, - y=5 - } - }, - ROLL_ST2={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="ROLL_ST2", - index=0, - statictext=false, - x=19, - y=5 - } - }, - ROLL_ST3={ - { - alignment="LFT", - cdu_pages={ - "HARS" - }, - id="ROLL_ST3", - index=0, - statictext=false, - x=19, - y=5 - } - }, - ROLL_VAL={ - { - alignment="RGHT", - cdu_pages={ - "HARS" - }, - id="ROLL_VAL", - index=0, - statictext=false, - x=16, - y=5 - } - }, - RPU={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="RPU", - index=0, - statictext=true, - x=2, - y=5 - } - }, - RPU4s={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="RPU4s", - index=0, - statictext=false, - x=11, - y=5 - } - }, - RPU4s1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="RPU4s1", - index=0, - statictext=false, - x=11, - y=5 - } - }, - RTR={ - { - alignment="RGHT", - cdu_pages={ - "ACCREJ", - "UPDATE" - }, - id="RTR", - index=0, - statictext=true, - x=24, - y=3 - } - }, - RT_ADDR={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="RT_ADDR", - index=0, - statictext=false, - x=13, - y=6 - } - }, - RWY={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="RWY", - index=0, - statictext=true, - x=2, - y=6 - } - }, - RWY_L_FEET={ - { - alignment="RGHT", - cdu_pages={ - "FLDINFO" - }, - id="RWY_L_FEET", - index=0, - statictext=true, - x=24, - y=6 - } - }, - SAT4={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SAT4", - index=0, - statictext=true, - x=2, - y=4 - } - }, - SAT4s={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SAT4s", - index=0, - statictext=false, - x=11, - y=4 - } - }, - SAT4s1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SAT4s1", - index=0, - statictext=false, - x=11, - y=4 - } - }, - SCALE={ - { - alignment="LFT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="SCALE", - index=0, - statictext=true, - x=1, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="SCALE", - index=1, - statictext=true, - x=1, - y=5 - } - }, - SCS={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="SCS", - index=0, - statictext=true, - x=2, - y=9 - } - }, - SCS_ROTARY={ - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="SCS_ROTARY", - index=0, - statictext=false, - x=1, - y=9 - } - }, - SENSORS={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="SENSORS", - index=0, - statictext=true, - x=10, - y=9 - } - }, - SEN_ST1={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="SEN_ST1", - index=0, - statictext=false, - x=23, - y=9 - } - }, - SEN_ST2={ - { - alignment="LFT", - cdu_pages={ - "INSSTAT" - }, - id="SEN_ST2", - index=0, - statictext=false, - x=23, - y=9 - } - }, - SERVICE={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="SERVICE", - index=0, - statictext=true, - x=2, - y=7 - } - }, - SFKEYSs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SFKEYSs", - index=0, - statictext=false, - x=23, - y=3 - } - }, - SFKEYSs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SFKEYSs1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - SFKEYSs2={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SFKEYSs2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - SLASH1={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="SLASH1", - index=0, - statictext=true, - x=14, - y=9 - } - }, - SLASH2={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="SLASH2", - index=0, - statictext=true, - x=14, - y=10 - } - }, - SPHEROID={ - { - alignment="RGHT", - cdu_pages={ - "WPMENU" - }, - id="SPHEROID", - index=0, - statictext=false, - x=23, - y=9 - } - }, - SPU={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="SPU", - index=0, - statictext=true, - x=2, - y=3 - } - }, - SPU_STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="SPU_STATUS", - index=0, - statictext=true, - x=10, - y=3 - } - }, - ST3={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="ST3", - index=0, - statictext=true, - x=8, - y=7 - } - }, - ST5={ - { - alignment="LFT", - cdu_pages={ - "GPS" - }, - id="ST5", - index=0, - statictext=true, - x=8, - y=6 - } - }, - START={ - { - alignment="RGHT", - cdu_pages={ - "CDUTEST1" - }, - id="START", - index=0, - statictext=true, - x=23, - y=5 - } - }, - STARTUPBIT={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT", - index=0, - statictext=false, - x=9, - y=3 - } - }, - STARTUPBIT1={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT1", - index=0, - statictext=false, - x=9, - y=3 - } - }, - STARTUPBIT10={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT10", - index=0, - statictext=false, - x=9, - y=6 - } - }, - STARTUPBIT11={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT11", - index=0, - statictext=false, - x=9, - y=6 - } - }, - STARTUPBIT12={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT12", - index=0, - statictext=false, - x=23, - y=3 - } - }, - STARTUPBIT13={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT13", - index=0, - statictext=false, - x=23, - y=3 - } - }, - STARTUPBIT14={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT14", - index=0, - statictext=false, - x=23, - y=3 - } - }, - STARTUPBIT15={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT15", - index=0, - statictext=false, - x=23, - y=4 - } - }, - STARTUPBIT16={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT16", - index=0, - statictext=false, - x=23, - y=4 - } - }, - STARTUPBIT17={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT17", - index=0, - statictext=false, - x=23, - y=4 - } - }, - STARTUPBIT18={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT18", - index=0, - statictext=false, - x=23, - y=5 - } - }, - STARTUPBIT19={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT19", - index=0, - statictext=false, - x=23, - y=5 - } - }, - STARTUPBIT2={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT2", - index=0, - statictext=false, - x=9, - y=4 - } - }, - STARTUPBIT20={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT20", - index=0, - statictext=false, - x=23, - y=5 - } - }, - STARTUPBIT21={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT21", - index=0, - statictext=false, - x=23, - y=6 - } - }, - STARTUPBIT22={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT22", - index=0, - statictext=false, - x=23, - y=6 - } - }, - STARTUPBIT23={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT23", - index=0, - statictext=false, - x=23, - y=6 - } - }, - STARTUPBIT24={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT24", - index=0, - statictext=false, - x=9, - y=10 - } - }, - STARTUPBIT3={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT3", - index=0, - statictext=false, - x=9, - y=4 - } - }, - STARTUPBIT4={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT4", - index=0, - statictext=false, - x=9, - y=4 - } - }, - STARTUPBIT5={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT5", - index=0, - statictext=false, - x=9, - y=4 - } - }, - STARTUPBIT6={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT6", - index=0, - statictext=false, - x=9, - y=5 - } - }, - STARTUPBIT7={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT7", - index=0, - statictext=false, - x=9, - y=5 - } - }, - STARTUPBIT8={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT8", - index=0, - statictext=false, - x=9, - y=5 - } - }, - STARTUPBIT9={ - { - alignment="LFT", - cdu_pages={ - "STARTUP_BIT" - }, - id="STARTUPBIT9", - index=0, - statictext=false, - x=9, - y=6 - } - }, - START_SA={ - { - alignment="RGHT", - cdu_pages={ - "CDUTEST1" - }, - id="START_SA", - index=0, - statictext=false, - x=24, - y=5 - } - }, - STATUS={ - { - alignment="LFT", - cdu_pages={ - "EGI2" - }, - id="STATUS", - index=0, - statictext=true, - x=2, - y=8 - } - }, - STATUS_LINE={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="STATUS_LINE", - index=0, - statictext=true, - x=2, - y=3 - } - }, - STATUS_LINE1={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="STATUS_LINE1", - index=0, - statictext=true, - x=10, - y=3 - } - }, - STATUS_LINE2={ - { - alignment="LFT", - cdu_pages={ - "EGI1" - }, - id="STATUS_LINE2", - index=0, - statictext=true, - x=18, - y=3 - } - }, - STEER={ - { - alignment="LFT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="STEER", - index=0, - statictext=true, - x=1, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "ATTRIB" - }, - id="STEER", - index=1, - statictext=true, - x=1, - y=7 - } - }, - STEERPOINT={ - { - alignment="LFT", - cdu_pages={ - "WPMENU" - }, - id="STEERPOINT", - index=0, - statictext=true, - x=1, - y=3 - } - }, - STEERPTIndicator={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="STEERPTIndicator", - index=0, - statictext=false, - x=7, - y=3 - } - }, - STEER_PT={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STEER_PT", - index=0, - statictext=true, - x=2, - y=7 - } - }, - STOP_MSN={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="STOP_MSN", - index=0, - statictext=true, - x=2, - y=9 - } - }, - STOP_SA={ - { - alignment="LFT", - cdu_pages={ - "EGITEST" - }, - id="STOP_SA", - index=0, - statictext=false, - x=1, - y=9 - } - }, - STRBRGRAD={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRAD", - index=0, - statictext=false, - x=8, - y=7 - } - }, - STRBRGRAD1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRAD1", - index=0, - statictext=false, - x=8, - y=7 - } - }, - STRBRGRAD2={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRAD2", - index=0, - statictext=false, - x=8, - y=7 - } - }, - STRBRGRAD3={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRAD3", - index=0, - statictext=false, - x=8, - y=7 - } - }, - STRBRGRAD4={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRAD4", - index=0, - statictext=false, - x=8, - y=7 - } - }, - STRBRGRADMode={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRADMode", - index=0, - statictext=false, - x=2, - y=7 - } - }, - STRBRGRADMode1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRADMode1", - index=0, - statictext=false, - x=2, - y=7 - } - }, - STRBRGRADRotary={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRBRGRADRotary", - index=0, - statictext=true, - x=1, - y=7 - } - }, - STRDIS={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRDIS", - index=0, - statictext=true, - x=2, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ACCREJ" - }, - id="STRDIS", - index=1, - statictext=false, - x=23, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="STRDIS", - index=2, - statictext=false, - x=17, - y=4 - } - }, - STRDIS1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRDIS1", - index=0, - statictext=false, - x=10, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRDIS1", - index=1, - statictext=false, - x=6, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="STRDIS1", - index=2, - statictext=false, - x=17, - y=4 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRDIS1", - index=3, - statictext=false, - x=23, - y=8 - } - }, - STRDIS2={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRDIS2", - index=0, - statictext=false, - x=10, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRDIS2", - index=1, - statictext=false, - x=6, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRDIS2", - index=2, - statictext=false, - x=23, - y=8 - } - }, - STRDIS3={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRDIS3", - index=0, - statictext=false, - x=10, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRDIS3", - index=1, - statictext=false, - x=23, - y=8 - } - }, - STRDISMH={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRDISMH", - index=0, - statictext=true, - x=5, - y=9 - } - }, - STRDMH={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRDMH", - index=0, - statictext=true, - x=2, - y=4 - } - }, - STRDMH1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRDMH1", - index=0, - statictext=false, - x=10, - y=4 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRDMH1", - index=1, - statictext=false, - x=23, - y=7 - } - }, - STRDMH2={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRDMH2", - index=0, - statictext=false, - x=10, - y=4 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRDMH2", - index=1, - statictext=false, - x=23, - y=7 - } - }, - STRDMH3={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRDMH3", - index=0, - statictext=false, - x=10, - y=4 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRDMH3", - index=1, - statictext=false, - x=23, - y=7 - } - }, - STREL={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STREL", - index=0, - statictext=true, - x=2, - y=6 - }, - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE" - }, - id="STREL", - index=1, - statictext=true, - x=17, - y=9 - } - }, - STREL1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STREL1", - index=0, - statictext=false, - x=10, - y=6 - }, - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="STREL1", - index=1, - statictext=false, - x=23, - y=9 - } - }, - STREL2={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STREL2", - index=0, - statictext=false, - x=10, - y=6 - }, - { - alignment="RGHT", - cdu_pages={ - "UPDATE" - }, - id="STREL2", - index=1, - statictext=false, - x=23, - y=9 - } - }, - STREL3={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STREL3", - index=0, - statictext=false, - x=10, - y=6 - }, - { - alignment="RGHT", - cdu_pages={ - "ACCREJ", - "UPDATE" - }, - id="STREL3", - index=1, - statictext=false, - x=23, - y=9 - } - }, - STREL4={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STREL4", - index=0, - statictext=false, - x=10, - y=6 - } - }, - STRGroundSpeed1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRGroundSpeed1", - index=0, - statictext=false, - x=23, - y=9 - } - }, - STRIAS1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRIAS1", - index=0, - statictext=false, - x=23, - y=9 - } - }, - STRIdent={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRIdent", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="STRIdent", - index=1, - statictext=false, - x=2, - y=5 - } - }, - STRIdent1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO", - "ANCHOR" - }, - id="STRIdent1", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="STRIdent1", - index=1, - statictext=false, - x=2, - y=5 - } - }, - STRIdent2={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO", - "ANCHOR" - }, - id="STRIdent2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - STRIdent3={ - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRIdent3", - index=0, - statictext=false, - x=23, - y=3 - } - }, - STRIdentEntry={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO", - "ANCHOR" - }, - id="STRIdentEntry", - index=0, - statictext=false, - x=24, - y=3 - } - }, - STRMH1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRMH1", - index=0, - statictext=false, - x=2, - y=9 - } - }, - STRMH2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRMH2", - index=0, - statictext=false, - x=2, - y=9 - } - }, - STRNumber={ - { - alignment="LFT", - cdu_pages={ - "STRINFO", - "UPDATE" - }, - id="STRNumber", - index=0, - statictext=false, - x=2, - y=3 - } - }, - STRNumber1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO", - "UPDATE" - }, - id="STRNumber1", - index=0, - statictext=false, - x=2, - y=3 - } - }, - STRNumber2={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRNumber2", - index=0, - statictext=false, - x=2, - y=3 - } - }, - STRNumber3={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRNumber3", - index=0, - statictext=false, - x=3, - y=3 - } - }, - STRNumberIncDec={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRNumberIncDec", - index=0, - statictext=false, - x=1, - y=3 - } - }, - STRReqGroundSpeed={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRReqGroundSpeed", - index=0, - statictext=false, - x=23, - y=7 - } - }, - STRReqIAS={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRReqIAS", - index=0, - statictext=false, - x=23, - y=7 - } - }, - STRReqSpeedMode={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRReqSpeedMode", - index=0, - statictext=false, - x=19, - y=7 - } - }, - STRReqSpeedMode1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRReqSpeedMode1", - index=0, - statictext=false, - x=19, - y=7 - } - }, - STRReqSpeedMode2={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRReqSpeedMode2", - index=0, - statictext=false, - x=19, - y=7 - } - }, - STRReqSpeedRotary={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRReqSpeedRotary", - index=0, - statictext=false, - x=24, - y=7 - } - }, - STRReqTAS={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRReqTAS", - index=0, - statictext=false, - x=23, - y=7 - } - }, - STRSpeedMode3={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRSpeedMode3", - index=0, - statictext=false, - x=17, - y=9 - } - }, - STRSpeedMode4={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRSpeedMode4", - index=0, - statictext=false, - x=19, - y=9 - } - }, - STRSpeedMode5={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRSpeedMode5", - index=0, - statictext=false, - x=19, - y=9 - } - }, - STRSpeedMode6={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRSpeedMode6", - index=0, - statictext=false, - x=19, - y=9 - } - }, - STRSpeedRotary1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRSpeedRotary1", - index=0, - statictext=true, - x=24, - y=9 - } - }, - STRTAS1={ - { - alignment="RGHT", - cdu_pages={ - "STRINFO" - }, - id="STRTAS1", - index=0, - statictext=false, - x=23, - y=9 - } - }, - STRTOT={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTOT", - index=0, - statictext=false, - x=16, - y=6 - } - }, - STRTOT1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTOT1", - index=0, - statictext=false, - x=16, - y=6 - } - }, - STRTOT2={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTOT2", - index=0, - statictext=false, - x=16, - y=6 - } - }, - STRTOT3={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTOT3", - index=0, - statictext=false, - x=16, - y=6 - } - }, - STRTOT4={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTOT4", - index=0, - statictext=false, - x=16, - y=6 - } - }, - STRTTG={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTTG", - index=0, - statictext=true, - x=12, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="STRTTG", - index=1, - statictext=true, - x=7, - y=6 - } - }, - STRTTG1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTTG1", - index=0, - statictext=false, - x=16, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRTTG1", - index=1, - statictext=false, - x=2, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="STRTTG1", - index=2, - statictext=false, - x=11, - y=6 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRTTG1", - index=3, - statictext=false, - x=23, - y=6 - } - }, - STRTTG2={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTTG2", - index=0, - statictext=false, - x=16, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRTTG2", - index=1, - statictext=false, - x=2, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="STRTTG2", - index=2, - statictext=false, - x=11, - y=6 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRTTG2", - index=3, - statictext=false, - x=23, - y=6 - } - }, - STRTTG3={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTTG3", - index=0, - statictext=false, - x=16, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="STRTTG3", - index=1, - statictext=false, - x=2, - y=8 - }, - { - alignment="LFT", - cdu_pages={ - "UPDATE" - }, - id="STRTTG3", - index=2, - statictext=false, - x=11, - y=6 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRTTG3", - index=3, - statictext=false, - x=23, - y=6 - } - }, - STRTTG4={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTTG4", - index=0, - statictext=false, - x=16, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRTTG4", - index=1, - statictext=false, - x=23, - y=6 - } - }, - STRTTG5={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRTTG5", - index=0, - statictext=false, - x=16, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ANCHOR" - }, - id="STRTTG5", - index=1, - statictext=false, - x=23, - y=6 - } - }, - STRWindDirection1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRWindDirection1", - index=0, - statictext=false, - x=17, - y=8 - } - }, - STRWindDirection2={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRWindDirection2", - index=0, - statictext=false, - x=17, - y=8 - } - }, - STRWindSpeed1={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRWindSpeed1", - index=0, - statictext=false, - x=21, - y=8 - } - }, - STRWindSpeed2={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="STRWindSpeed2", - index=0, - statictext=false, - x=21, - y=8 - } - }, - ST_ST={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="ST_ST", - index=0, - statictext=true, - x=2, - y=6 - } - }, - SUCCESSFUL={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="SUCCESSFUL", - index=0, - statictext=true, - x=11, - y=6 - } - }, - SUFKEYS={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="SUFKEYS", - index=0, - statictext=true, - x=13, - y=3 - } - }, - T={ - { - alignment="LFT", - cdu_pages={ - "ALIGN", - "ALTALGN" - }, - id="T", - index=0, - statictext=true, - x=4, - y=8 - } - }, - TAC={ - { - alignment="LFT", - cdu_pages={ - "FLDINFO" - }, - id="TAC", - index=0, - statictext=true, - x=2, - y=8 - } - }, - TARGET_MARK={ - { - alignment="RGHT", - cdu_pages={ - "OFFSET" - }, - id="TARGET_MARK", - index=0, - statictext=true, - x=24, - y=7 - } - }, - TAS={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="TAS", - index=0, - statictext=true, - x=2, - y=6 - } - }, - TAS_ST={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="TAS_ST", - index=0, - statictext=false, - x=21, - y=6 - } - }, - TAS_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="TAS_ST1", - index=0, - statictext=false, - x=21, - y=6 - } - }, - TAS_VAL={ - { - alignment="RGHT", - cdu_pages={ - "CADC" - }, - id="TAS_VAL", - index=0, - statictext=false, - x=15, - y=6 - } - }, - TEMP={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="TEMP", - index=0, - statictext=true, - x=2, - y=9 - } - }, - TEMP_ST={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="TEMP_ST", - index=0, - statictext=false, - x=21, - y=9 - } - }, - TEMP_ST1={ - { - alignment="LFT", - cdu_pages={ - "CADC" - }, - id="TEMP_ST1", - index=0, - statictext=false, - x=21, - y=9 - } - }, - TEMP_VAL={ - { - alignment="RGHT", - cdu_pages={ - "CADC" - }, - id="TEMP_VAL", - index=0, - statictext=false, - x=14, - y=9 - } - }, - TEST_MODE0={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_MODE0", - index=0, - statictext=false, - x=2, - y=9 - } - }, - TEST_MODE1={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_MODE1", - index=0, - statictext=false, - x=2, - y=9 - } - }, - TEST_MODE2={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_MODE2", - index=0, - statictext=false, - x=2, - y=9 - } - }, - TEST_MODE4={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_MODE4", - index=0, - statictext=false, - x=2, - y=9 - } - }, - TEST_SA={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_SA", - index=0, - statictext=false, - x=1, - y=9 - } - }, - TEST_SA1={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_SA1", - index=0, - statictext=false, - x=1, - y=9 - } - }, - TEST_SA2={ - { - alignment="LFT", - cdu_pages={ - "LRUTEST" - }, - id="TEST_SA2", - index=0, - statictext=false, - x=1, - y=9 - } - }, - TGTSYM_NEW_WPT={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="TGTSYM_NEW_WPT", - index=0, - statictext=true, - x=24, - y=7 - } - }, - TIME={ - { - alignment="LFT", - cdu_pages={ - "NAV" - }, - id="TIME", - index=0, - statictext=true, - x=1, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "BITBALL" - }, - id="TIME", - index=1, - statictext=true, - x=2, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "GPS" - }, - id="TIME", - index=2, - statictext=true, - x=24, - y=7 - } - }, - TOT={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="TOT", - index=0, - statictext=true, - x=12, - y=6 - } - }, - TTG={ - { - alignment="LFT", - cdu_pages={ - "ANCHOR" - }, - id="TTG", - index=0, - statictext=true, - x=2, - y=6 - } - }, - TempC={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="TempC", - index=0, - statictext=false, - x=21, - y=9 - } - }, - TempF={ - { - alignment="RGHT", - cdu_pages={ - "POSINFO" - }, - id="TempF", - index=0, - statictext=false, - x=21, - y=9 - } - }, - TempRotary={ - { - alignment="LFT", - cdu_pages={ - "POSINFO" - }, - id="TempRotary", - index=0, - statictext=true, - x=24, - y=9 - } - }, - UPDATE={ - { - alignment="LFT", - cdu_pages={ - "NAV" - }, - id="UPDATE", - index=0, - statictext=true, - x=1, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "INS" - }, - id="UPDATE", - index=1, - statictext=true, - x=24, - y=5 - } - }, - UTC={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="UTC", - index=0, - statictext=true, - x=2, - y=7 - } - }, - UTCs={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="UTCs", - index=0, - statictext=false, - x=11, - y=7 - } - }, - UTCs1={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT1" - }, - id="UTCs1", - index=0, - statictext=false, - x=11, - y=7 - } - }, - VANGLE={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="VANGLE", - index=0, - statictext=false, - x=24, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="VANGLE", - index=1, - statictext=false, - x=24, - y=5 - } - }, - VANGLEEntry={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="VANGLEEntry", - index=0, - statictext=false, - x=24, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="VANGLEEntry", - index=1, - statictext=false, - x=24, - y=7 - } - }, - VANGLEMode={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="VANGLEMode", - index=0, - statictext=false, - x=23, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="VANGLEMode", - index=1, - statictext=false, - x=23, - y=6 - } - }, - VANGLEMode1={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="VANGLEMode1", - index=0, - statictext=false, - x=23, - y=8 - }, - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="VANGLEMode1", - index=1, - statictext=false, - x=23, - y=6 - } - }, - VANGLEValue={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="VANGLEValue", - index=0, - statictext=false, - x=23, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="VANGLEValue", - index=1, - statictext=false, - x=23, - y=7 - } - }, - VIEW1={ - { - alignment="LFT", - cdu_pages={ - "BBCTL" - }, - id="VIEW1", - index=0, - statictext=true, - x=2, - y=3 - } - }, - VIEW2={ - { - alignment="LFT", - cdu_pages={ - "BBCTL" - }, - id="VIEW2", - index=0, - statictext=true, - x=2, - y=5 - } - }, - VIEW3={ - { - alignment="LFT", - cdu_pages={ - "BBCTL" - }, - id="VIEW3", - index=0, - statictext=true, - x=2, - y=7 - } - }, - VIEW4={ - { - alignment="LFT", - cdu_pages={ - "BBCTL" - }, - id="VIEW4", - index=0, - statictext=true, - x=2, - y=9 - } - }, - VIEW5={ - { - alignment="RGHT", - cdu_pages={ - "BBCTL" - }, - id="VIEW5", - index=0, - statictext=true, - x=23, - y=3 - } - }, - VNAV_MODE={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="VNAV_MODE", - index=0, - statictext=true, - x=24, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "ATTRIB" - }, - id="VNAV_MODE", - index=1, - statictext=true, - x=24, - y=3 - } - }, - VPU={ - { - alignment="LFT", - cdu_pages={ - "DTSAS" - }, - id="VPU", - index=0, - statictext=true, - x=2, - y=8 - } - }, - VRSN={ - { - alignment="LFT", - cdu_pages={ - "DTSSTAT" - }, - id="VRSN", - index=0, - statictext=true, - x=2, - y=4 - } - }, - WARCODE={ - { - alignment="LFT", - cdu_pages={ - "EGI3", - "EGI4" - }, - id="WARCODE", - index=0, - statictext=true, - x=17, - y=8 - } - }, - WARNING={ - { - alignment="LFT", - cdu_pages={ - "EGI3", - "EGI4" - }, - id="WARNING", - index=0, - statictext=true, - x=14, - y=7 - } - }, - WAYPOINT={ - { - alignment="LFT", - cdu_pages={ - "STRINFO" - }, - id="WAYPOINT", - index=0, - statictext=true, - x=1, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WAYPOINT", - index=1, - statictext=true, - x=1, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WPMENU" - }, - id="WAYPOINT", - index=2, - statictext=true, - x=24, - y=3 - } - }, - WAYPTClass={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass1={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass1", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass10={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass10", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass11={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass11", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass12={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass12", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass13={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass13", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass14={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass14", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass15={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass15", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass16={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass16", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass17={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass17", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass18={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass18", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass19={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass19", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass2={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass2", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass20={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass20", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass21={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass21", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass3={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass3", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass4={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass4", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass5={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass5", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass6={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass6", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass7={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass7", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass8={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass8", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTClass9={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTClass9", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WAYPTCoordFormat={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTCoordFormat", - index=0, - statictext=false, - x=24, - y=9 - } - }, - WAYPTCoordFormat1={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTCoordFormat1", - index=0, - statictext=false, - x=24, - y=9 - } - }, - WAYPTDATA_ENTRY={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTDATA_ENTRY", - index=0, - statictext=false, - x=1, - y=7 - } - }, - WAYPTDATA_ENTRY1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTDATA_ENTRY1", - index=0, - statictext=false, - x=1, - y=9 - } - }, - WAYPTIdent={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTIdent", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTIdent", - index=1, - statictext=false, - x=12, - y=2 - } - }, - WAYPTIdent1={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO", - "WAYPT1" - }, - id="WAYPTIdent1", - index=0, - statictext=false, - x=23, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTIdent1", - index=1, - statictext=false, - x=12, - y=2 - } - }, - WAYPTIdent2={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="WAYPTIdent2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - WAYPTLat={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE", - "WAYPT1" - }, - id="WAYPTLat", - index=0, - statictext=false, - x=2, - y=7 - } - }, - WAYPTLatUTM={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE", - "WAYPT1" - }, - id="WAYPTLatUTM", - index=0, - statictext=false, - x=2, - y=7 - } - }, - WAYPTLong={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE", - "WAYPT1" - }, - id="WAYPTLong", - index=0, - statictext=false, - x=2, - y=9 - } - }, - WAYPTLongMGRS={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE", - "WAYPT1" - }, - id="WAYPTLongMGRS", - index=0, - statictext=false, - x=2, - y=9 - } - }, - WAYPTMGRS={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE", - "WAYPT1" - }, - id="WAYPTMGRS", - index=0, - statictext=false, - x=2, - y=9 - } - }, - WAYPTNumber={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTNumber", - index=0, - statictext=false, - x=2, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTNumber", - index=1, - statictext=false, - x=6, - y=2 - } - }, - WAYPTNumber1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO", - "WAYPT1" - }, - id="WAYPTNumber1", - index=0, - statictext=false, - x=2, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTNumber1", - index=1, - statictext=false, - x=6, - y=2 - } - }, - WAYPTNumber2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WAYPTNumber2", - index=0, - statictext=false, - x=2, - y=3 - } - }, - WAYPTScale={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTScale", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WAYPTScale1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTScale1", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WAYPTScale2={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTScale2", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WAYPTScale3={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTScale3", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WAYPTScale4={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTScale4", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WAYPTSteer={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTSteer", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WAYPTSteer1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTSteer1", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WAYPTSteer2={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTSteer2", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WAYPTSteer4={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTSteer4", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WAYPTUTM={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ", - "UPDATE", - "WAYPT1" - }, - id="WAYPTUTM", - index=0, - statictext=false, - x=2, - y=7 - } - }, - WAYPTVNavMode={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTVNavMode", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WAYPTVNavMode1={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTVNavMode1", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WAYPTVNavMode2={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPTVNavMode2", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WAYPTWindDirection1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTWindDirection1", - index=0, - statictext=false, - x=17, - y=8 - } - }, - WAYPTWindDirection2={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTWindDirection2", - index=0, - statictext=false, - x=17, - y=8 - } - }, - WAYPTWindSpeed1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTWindSpeed1", - index=0, - statictext=false, - x=21, - y=8 - } - }, - WAYPTWindSpeed2={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPTWindSpeed2", - index=0, - statictext=false, - x=21, - y=8 - } - }, - WAYPT_CR_FLAG={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_CR_FLAG", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WAYPT_CR_FLAG1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_CR_FLAG1", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WAYPT_DTOT={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_DTOT", - index=0, - statictext=false, - x=18, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPT_DTOT", - index=1, - statictext=false, - x=8, - y=9 - } - }, - WAYPT_DTOT1={ - { - alignment="RGHT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_DTOT1", - index=0, - statictext=false, - x=18, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPT_DTOT1", - index=1, - statictext=false, - x=8, - y=9 - } - }, - WAYPT_DTTG={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPT_DTTG", - index=0, - statictext=false, - x=8, - y=7 - } - }, - WAYPT_DTTG1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT2" - }, - id="WAYPT_DTTG1", - index=0, - statictext=false, - x=7, - y=7 - } - }, - WAYPT_EL1={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_EL1", - index=0, - statictext=false, - x=5, - y=5 - } - }, - WAYPT_EL2={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_EL2", - index=0, - statictext=false, - x=5, - y=5 - } - }, - WAYPT_EL3={ - { - alignment="LFT", - cdu_pages={ - "WAYPT1" - }, - id="WAYPT_EL3", - index=0, - statictext=false, - x=5, - y=5 - } - }, - WAYPT_INCR_DECR={ - { - alignment="LFT", - cdu_pages={ - "WPINFO", - "WAYPT1" - }, - id="WAYPT_INCR_DECR", - index=0, - statictext=true, - x=1, - y=3 - } - }, - WE={ - { - alignment="LFT", - cdu_pages={ - "ACCREJ" - }, - id="WE", - index=0, - statictext=true, - x=18, - y=6 - } - }, - WE_ERR={ - { - alignment="RGHT", - cdu_pages={ - "ACCREJ" - }, - id="WE_ERR", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WIND={ - { - alignment="RGHT", - cdu_pages={ - "LASTE" - }, - id="WIND", - index=0, - statictext=true, - x=24, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WIND", - index=1, - statictext=true, - x=24, - y=3 - } - }, - WINDALT={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDALT", - index=0, - statictext=false, - x=3, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDALT", - index=1, - statictext=false, - x=3, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDALT", - index=2, - statictext=false, - x=12, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDALT", - index=3, - statictext=false, - x=12, - y=3 - } - }, - WINDALT1={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDALT1", - index=0, - statictext=false, - x=3, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDALT1", - index=1, - statictext=false, - x=3, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDALT1", - index=2, - statictext=false, - x=12, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDALT1", - index=3, - statictext=false, - x=12, - y=5 - } - }, - WINDALT2={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDALT2", - index=0, - statictext=false, - x=3, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDALT2", - index=1, - statictext=false, - x=3, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDALT2", - index=2, - statictext=false, - x=12, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDALT2", - index=3, - statictext=false, - x=12, - y=7 - } - }, - WINDALT3={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDALT3", - index=0, - statictext=false, - x=3, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDALT3", - index=1, - statictext=false, - x=12, - y=9 - } - }, - WINDCLRMODE={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDCLRMODE", - index=0, - statictext=false, - x=24, - y=7 - } - }, - WINDCLRMODE1={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDCLRMODE1", - index=0, - statictext=false, - x=24, - y=7 - } - }, - WINDCLRMODE2={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDCLRMODE2", - index=0, - statictext=false, - x=24, - y=7 - } - }, - WINDDATA_ENTRY={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDATA_ENTRY", - index=0, - statictext=false, - x=1, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY", - index=1, - statictext=false, - x=1, - y=3 - } - }, - WINDDATA_ENTRY1={ - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDATA_ENTRY1", - index=0, - statictext=false, - x=24, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY1", - index=1, - statictext=false, - x=24, - y=3 - } - }, - WINDDATA_ENTRY2={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDATA_ENTRY2", - index=0, - statictext=false, - x=1, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY2", - index=1, - statictext=false, - x=1, - y=5 - } - }, - WINDDATA_ENTRY3={ - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDATA_ENTRY3", - index=0, - statictext=false, - x=24, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY3", - index=1, - statictext=false, - x=24, - y=5 - } - }, - WINDDATA_ENTRY4={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDATA_ENTRY4", - index=0, - statictext=false, - x=1, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY4", - index=1, - statictext=false, - x=1, - y=7 - } - }, - WINDDATA_ENTRY5={ - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDATA_ENTRY5", - index=0, - statictext=false, - x=24, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY5", - index=1, - statictext=false, - x=24, - y=7 - } - }, - WINDDATA_ENTRY6={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY6", - index=0, - statictext=false, - x=1, - y=9 - } - }, - WINDDATA_ENTRY7={ - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDATA_ENTRY7", - index=0, - statictext=false, - x=24, - y=9 - } - }, - WINDDIV={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDIV", - index=0, - statictext=false, - x=9, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDIV", - index=1, - statictext=false, - x=9, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDIV", - index=2, - statictext=false, - x=5, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDIV", - index=3, - statictext=false, - x=5, - y=3 - } - }, - WINDDIV1={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDIV1", - index=0, - statictext=false, - x=9, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDIV1", - index=1, - statictext=false, - x=9, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDIV1", - index=2, - statictext=false, - x=5, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDIV1", - index=3, - statictext=false, - x=5, - y=5 - } - }, - WINDDIV2={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDIV2", - index=0, - statictext=false, - x=9, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDIV2", - index=1, - statictext=false, - x=9, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDIV2", - index=2, - statictext=false, - x=5, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDIV2", - index=3, - statictext=false, - x=5, - y=7 - } - }, - WINDDIV3={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDIV3", - index=0, - statictext=false, - x=9, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDIV3", - index=1, - statictext=false, - x=5, - y=9 - } - }, - WINDDir={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDir", - index=0, - statictext=false, - x=6, - y=5 - } - }, - WINDDir1={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDir1", - index=0, - statictext=false, - x=6, - y=5 - } - }, - WINDDirSpeed={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDirSpeed", - index=0, - statictext=false, - x=6, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed", - index=1, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDirSpeed", - index=2, - statictext=false, - x=2, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed", - index=3, - statictext=false, - x=2, - y=3 - } - }, - WINDDirSpeed1={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDirSpeed1", - index=0, - statictext=false, - x=6, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed1", - index=1, - statictext=false, - x=6, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDirSpeed1", - index=2, - statictext=false, - x=2, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed1", - index=3, - statictext=false, - x=2, - y=3 - } - }, - WINDDirSpeed2={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDirSpeed2", - index=0, - statictext=false, - x=6, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed2", - index=1, - statictext=false, - x=6, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDirSpeed2", - index=2, - statictext=false, - x=2, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed2", - index=3, - statictext=false, - x=2, - y=5 - } - }, - WINDDirSpeed3={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDDirSpeed3", - index=0, - statictext=false, - x=6, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed3", - index=1, - statictext=false, - x=6, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDirSpeed3", - index=2, - statictext=false, - x=2, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed3", - index=3, - statictext=false, - x=2, - y=5 - } - }, - WINDDirSpeed4={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed4", - index=0, - statictext=false, - x=6, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDirSpeed4", - index=1, - statictext=false, - x=2, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed4", - index=2, - statictext=false, - x=2, - y=7 - } - }, - WINDDirSpeed5={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed5", - index=0, - statictext=false, - x=6, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDDirSpeed5", - index=1, - statictext=false, - x=2, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed5", - index=2, - statictext=false, - x=2, - y=7 - } - }, - WINDDirSpeed6={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed6", - index=0, - statictext=false, - x=6, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed6", - index=1, - statictext=false, - x=2, - y=9 - } - }, - WINDDirSpeed7={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDDirSpeed7", - index=0, - statictext=false, - x=6, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDDirSpeed7", - index=1, - statictext=false, - x=2, - y=9 - } - }, - WINDMODE={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDMODE", - index=0, - statictext=true, - x=24, - y=3 - } - }, - WINDMODE1={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDMODE1", - index=0, - statictext=false, - x=23, - y=3 - } - }, - WINDMODE2={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDMODE2", - index=0, - statictext=false, - x=23, - y=3 - } - }, - WINDMODE3={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDMODE3", - index=0, - statictext=false, - x=23, - y=3 - } - }, - WINDMODE4={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WINDMODE4", - index=0, - statictext=false, - x=23, - y=3 - } - }, - WINDSpeed={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDSpeed", - index=0, - statictext=false, - x=10, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed", - index=1, - statictext=false, - x=10, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDSpeed", - index=2, - statictext=false, - x=6, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed", - index=3, - statictext=false, - x=6, - y=3 - } - }, - WINDSpeed1={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDSpeed1", - index=0, - statictext=false, - x=10, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed1", - index=1, - statictext=false, - x=10, - y=3 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDSpeed1", - index=2, - statictext=false, - x=6, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed1", - index=3, - statictext=false, - x=6, - y=3 - } - }, - WINDSpeed2={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDSpeed2", - index=0, - statictext=false, - x=10, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed2", - index=1, - statictext=false, - x=10, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDSpeed2", - index=2, - statictext=false, - x=6, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed2", - index=3, - statictext=false, - x=6, - y=5 - } - }, - WINDSpeed3={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDSpeed3", - index=0, - statictext=false, - x=10, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed3", - index=1, - statictext=false, - x=10, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDSpeed3", - index=2, - statictext=false, - x=6, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed3", - index=3, - statictext=false, - x=6, - y=5 - } - }, - WINDSpeed4={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDSpeed4", - index=0, - statictext=false, - x=10, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed4", - index=1, - statictext=false, - x=10, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDSpeed4", - index=2, - statictext=false, - x=6, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed4", - index=3, - statictext=false, - x=6, - y=7 - } - }, - WINDSpeed5={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDSpeed5", - index=0, - statictext=false, - x=10, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed5", - index=1, - statictext=false, - x=10, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDSpeed5", - index=2, - statictext=false, - x=6, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed5", - index=3, - statictext=false, - x=6, - y=7 - } - }, - WINDSpeed6={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed6", - index=0, - statictext=false, - x=10, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed6", - index=1, - statictext=false, - x=6, - y=9 - } - }, - WINDSpeed7={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDSpeed7", - index=0, - statictext=false, - x=10, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDSpeed7", - index=1, - statictext=false, - x=6, - y=9 - } - }, - WINDTemp={ - { - alignment="RGHT", - cdu_pages={ - "WIND", - "WNDEDIT" - }, - id="WINDTemp", - index=0, - statictext=false, - x=24, - y=2 - }, - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp", - index=1, - statictext=false, - x=13, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp", - index=2, - statictext=false, - x=13, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp", - index=3, - statictext=false, - x=23, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp", - index=4, - statictext=false, - x=23, - y=3 - } - }, - WINDTemp1={ - { - alignment="RGHT", - cdu_pages={ - "WIND", - "WNDEDIT" - }, - id="WINDTemp1", - index=0, - statictext=false, - x=24, - y=2 - }, - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp1", - index=1, - statictext=false, - x=13, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp1", - index=2, - statictext=false, - x=13, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp1", - index=3, - statictext=false, - x=23, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp1", - index=4, - statictext=false, - x=23, - y=3 - } - }, - WINDTemp10={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp10", - index=0, - statictext=false, - x=13, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp10", - index=1, - statictext=false, - x=23, - y=9 - } - }, - WINDTemp11={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp11", - index=0, - statictext=false, - x=13, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp11", - index=1, - statictext=false, - x=23, - y=9 - } - }, - WINDTemp12={ - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp12", - index=0, - statictext=false, - x=23, - y=9 - } - }, - WINDTemp2={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp2", - index=0, - statictext=false, - x=13, - y=5 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp2", - index=1, - statictext=false, - x=13, - y=3 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp2", - index=2, - statictext=false, - x=23, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp2", - index=3, - statictext=false, - x=23, - y=3 - } - }, - WINDTemp3={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp3", - index=0, - statictext=false, - x=13, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp3", - index=1, - statictext=false, - x=13, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp3", - index=2, - statictext=false, - x=23, - y=7 - } - }, - WINDTemp4={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp4", - index=0, - statictext=false, - x=13, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp4", - index=1, - statictext=false, - x=13, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp4", - index=2, - statictext=false, - x=23, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp4", - index=3, - statictext=false, - x=23, - y=5 - } - }, - WINDTemp5={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp5", - index=0, - statictext=false, - x=13, - y=7 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp5", - index=1, - statictext=false, - x=13, - y=5 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp5", - index=2, - statictext=false, - x=23, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp5", - index=3, - statictext=false, - x=23, - y=5 - } - }, - WINDTemp6={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp6", - index=0, - statictext=false, - x=13, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp6", - index=1, - statictext=false, - x=13, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp6", - index=2, - statictext=false, - x=23, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp6", - index=3, - statictext=false, - x=23, - y=5 - } - }, - WINDTemp7={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp7", - index=0, - statictext=false, - x=13, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp7", - index=1, - statictext=false, - x=13, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp7", - index=2, - statictext=false, - x=23, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp7", - index=3, - statictext=false, - x=23, - y=7 - } - }, - WINDTemp8={ - { - alignment="LFT", - cdu_pages={ - "WIND1" - }, - id="WINDTemp8", - index=0, - statictext=false, - x=13, - y=9 - }, - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp8", - index=1, - statictext=false, - x=13, - y=7 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT1" - }, - id="WINDTemp8", - index=2, - statictext=false, - x=23, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp8", - index=3, - statictext=false, - x=23, - y=7 - } - }, - WINDTemp9={ - { - alignment="LFT", - cdu_pages={ - "WIND2" - }, - id="WINDTemp9", - index=0, - statictext=false, - x=13, - y=9 - }, - { - alignment="RGHT", - cdu_pages={ - "WNDEDIT2" - }, - id="WINDTemp9", - index=1, - statictext=false, - x=23, - y=7 - } - }, - WIND_ALT_TEMP={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT1" - }, - id="WIND_ALT_TEMP", - index=0, - statictext=true, - x=2, - y=4 - } - }, - WND={ - { - alignment="LFT", - cdu_pages={ - "STRINFO", - "WAYPT1" - }, - id="WND", - index=0, - statictext=true, - x=13, - y=8 - } - }, - WNDDIV={ - { - alignment="LFT", - cdu_pages={ - "WIND", - "WNDEDIT" - }, - id="WNDDIV", - index=0, - statictext=false, - x=17, - y=2 - } - }, - WNDEDIT={ - { - alignment="RGHT", - cdu_pages={ - "WIND" - }, - id="WNDEDIT", - index=0, - statictext=true, - x=24, - y=5 - } - }, - WNDEDWindDirection1={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT" - }, - id="WNDEDWindDirection1", - index=0, - statictext=false, - x=14, - y=2 - } - }, - WNDEDWindDirection2={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT" - }, - id="WNDEDWindDirection2", - index=0, - statictext=false, - x=14, - y=2 - } - }, - WNDEDWindSpeed1={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT" - }, - id="WNDEDWindSpeed1", - index=0, - statictext=false, - x=18, - y=2 - } - }, - WNDEDWindSpeed2={ - { - alignment="LFT", - cdu_pages={ - "WNDEDIT" - }, - id="WNDEDWindSpeed2", - index=0, - statictext=false, - x=18, - y=2 - } - }, - WNDWindDirection1={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="WNDWindDirection1", - index=0, - statictext=false, - x=14, - y=2 - } - }, - WNDWindDirection2={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="WNDWindDirection2", - index=0, - statictext=false, - x=14, - y=2 - } - }, - WNDWindSpeed1={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="WNDWindSpeed1", - index=0, - statictext=false, - x=18, - y=2 - } - }, - WNDWindSpeed2={ - { - alignment="LFT", - cdu_pages={ - "WIND" - }, - id="WNDWindSpeed2", - index=0, - statictext=false, - x=18, - y=2 - } - }, - WPActive={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive", - index=0, - statictext=false, - x=9, - y=5 - } - }, - WPActive1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive1", - index=0, - statictext=false, - x=9, - y=5 - } - }, - WPActive2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive2", - index=0, - statictext=false, - x=9, - y=6 - } - }, - WPActive3={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive3", - index=0, - statictext=false, - x=9, - y=7 - } - }, - WPActive4={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive4", - index=0, - statictext=false, - x=9, - y=7 - } - }, - WPActive5={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive5", - index=0, - statictext=false, - x=9, - y=8 - } - }, - WPActive6={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive6", - index=0, - statictext=false, - x=9, - y=9 - } - }, - WPActive7={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPActive7", - index=0, - statictext=false, - x=9, - y=9 - } - }, - WPFPNumber={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPFPNumber", - index=0, - statictext=false, - x=2, - y=5 - } - }, - WPFPNumber1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPFPNumber1", - index=0, - statictext=false, - x=2, - y=7 - } - }, - WPFPNumber2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPFPNumber2", - index=0, - statictext=false, - x=2, - y=9 - } - }, - WPInput={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPInput", - index=0, - statictext=false, - x=1, - y=5 - } - }, - WPInput1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPInput1", - index=0, - statictext=false, - x=1, - y=7 - } - }, - WPInput2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPInput2", - index=0, - statictext=false, - x=1, - y=9 - } - }, - WPN_EVENTS={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="WPN_EVENTS", - index=0, - statictext=true, - x=2, - y=8 - } - }, - WPN_EVENTS1={ - { - alignment="RGHT", - cdu_pages={ - "LASTE" - }, - id="WPN_EVENTS1", - index=0, - statictext=false, - x=16, - y=8 - } - }, - WPName={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName", - index=0, - statictext=false, - x=10, - y=5 - } - }, - WPName1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName1", - index=0, - statictext=false, - x=10, - y=5 - } - }, - WPName2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName2", - index=0, - statictext=false, - x=10, - y=6 - } - }, - WPName3={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName3", - index=0, - statictext=false, - x=10, - y=7 - } - }, - WPName4={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName4", - index=0, - statictext=false, - x=10, - y=7 - } - }, - WPName5={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName5", - index=0, - statictext=false, - x=10, - y=8 - } - }, - WPName6={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName6", - index=0, - statictext=false, - x=10, - y=9 - } - }, - WPName7={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPName7", - index=0, - statictext=false, - x=10, - y=9 - } - }, - WPNewName={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNewName", - index=0, - statictext=false, - x=10, - y=5 - } - }, - WPNewName1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNewName1", - index=0, - statictext=false, - x=10, - y=5 - } - }, - WPNewName2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNewName2", - index=0, - statictext=false, - x=10, - y=7 - } - }, - WPNewName3={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNewName3", - index=0, - statictext=false, - x=10, - y=7 - } - }, - WPNewName4={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNewName4", - index=0, - statictext=false, - x=10, - y=9 - } - }, - WPNewName5={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNewName5", - index=0, - statictext=false, - x=10, - y=9 - } - }, - WPNumber={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber", - index=0, - statictext=false, - x=5, - y=5 - } - }, - WPNumber1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber1", - index=0, - statictext=false, - x=5, - y=5 - } - }, - WPNumber2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber2", - index=0, - statictext=false, - x=5, - y=6 - } - }, - WPNumber3={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber3", - index=0, - statictext=false, - x=5, - y=7 - } - }, - WPNumber4={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber4", - index=0, - statictext=false, - x=5, - y=7 - } - }, - WPNumber5={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber5", - index=0, - statictext=false, - x=5, - y=8 - } - }, - WPNumber6={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber6", - index=0, - statictext=false, - x=5, - y=9 - } - }, - WPNumber7={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPNumber7", - index=0, - statictext=false, - x=5, - y=9 - } - }, - WPT={ - { - alignment="LFT", - cdu_pages={ - "WPTATT", - "WAYPT2" - }, - id="WPT", - index=0, - statictext=false, - x=2, - y=2 - } - }, - WPTATT={ - { - alignment="RGHT", - cdu_pages={ - "FPBUILD" - }, - id="WPTATT", - index=0, - statictext=false, - x=24, - y=4 - } - }, - WPTATTBranch={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPTATTBranch", - index=0, - statictext=false, - x=24, - y=5 - } - }, - WPTATTBranch1={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPTATTBranch1", - index=0, - statictext=false, - x=24, - y=7 - } - }, - WPTATTBranch2={ - { - alignment="LFT", - cdu_pages={ - "FPBUILD" - }, - id="WPTATTBranch2", - index=0, - statictext=false, - x=24, - y=9 - } - }, - WPTATTScale={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTScale", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WPTATTScale1={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTScale1", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WPTATTScale2={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTScale2", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WPTATTScale3={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTScale3", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WPTATTScale4={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTScale4", - index=0, - statictext=false, - x=2, - y=4 - } - }, - WPTATTSteer={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTSteer", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WPTATTSteer1={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTSteer1", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WPTATTSteer2={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTSteer2", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WPTATTSteer4={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTSteer4", - index=0, - statictext=false, - x=2, - y=6 - } - }, - WPTATTVNavMode={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTVNavMode", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WPTATTVNavMode1={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTVNavMode1", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WPTATTVNavMode2={ - { - alignment="RGHT", - cdu_pages={ - "WPTATT" - }, - id="WPTATTVNavMode2", - index=0, - statictext=false, - x=23, - y=6 - } - }, - WPTATT_DTOT={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_DTOT", - index=0, - statictext=false, - x=8, - y=9 - } - }, - WPTATT_DTOT1={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_DTOT1", - index=0, - statictext=false, - x=8, - y=9 - } - }, - WPTATT_DTOT_ST={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_DTOT_ST", - index=0, - statictext=true, - x=1, - y=9 - } - }, - WPTATT_DTTG={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_DTTG", - index=0, - statictext=false, - x=7, - y=7 - } - }, - WPTATT_DTTG1={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_DTTG1", - index=0, - statictext=false, - x=7, - y=7 - } - }, - WPTATT_DTTG_ST={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_DTTG_ST", - index=0, - statictext=true, - x=1, - y=7 - } - }, - WPTATT_FP_Number={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_FP_Number", - index=0, - statictext=false, - x=22, - y=3 - } - }, - WPTATT_WPT_Name={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_WPT_Name", - index=0, - statictext=false, - x=11, - y=2 - } - }, - WPTATT_WPT_Number={ - { - alignment="LFT", - cdu_pages={ - "WPTATT" - }, - id="WPTATT_WPT_Number", - index=0, - statictext=false, - x=6, - y=2 - } - }, - WPTDIS1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WPTDIS1", - index=0, - statictext=false, - x=20, - y=5 - } - }, - WPTDIS2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WPTDIS2", - index=0, - statictext=false, - x=20, - y=5 - } - }, - WPTDISMH={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WPTDISMH", - index=0, - statictext=true, - x=19, - y=5 - } - }, - WPTMH1={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WPTMH1", - index=0, - statictext=false, - x=16, - y=5 - } - }, - WPTMH2={ - { - alignment="LFT", - cdu_pages={ - "WPINFO" - }, - id="WPTMH2", - index=0, - statictext=false, - x=16, - y=5 - } - }, - WPTTTG1={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="WPTTTG1", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WPTTTG2={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="WPTTTG2", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WPTTTG3={ - { - alignment="RGHT", - cdu_pages={ - "WPINFO" - }, - id="WPTTTG3", - index=0, - statictext=false, - x=23, - y=4 - } - }, - WRITE={ - { - alignment="LFT", - cdu_pages={ - "MXLOG" - }, - id="WRITE", - index=0, - statictext=true, - x=2, - y=9 - } - }, - YEAR={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="YEAR", - index=0, - statictext=true, - x=16, - y=3 - } - }, - YEAR_DE={ - { - alignment="LFT", - cdu_pages={ - "TIME" - }, - id="YEAR_DE", - index=0, - statictext=false, - x=24, - y=3 - } - }, - YEAR_TXT={ - { - alignment="RGHT", - cdu_pages={ - "TIME" - }, - id="YEAR_TXT", - index=0, - statictext=false, - x=23, - y=3 - } - }, - YES={ - { - alignment="LFT", - cdu_pages={ - "LASTE" - }, - id="YES", - index=0, - statictext=true, - x=11, - y=3 - } - }, - ZEROES1={ - { - alignment="LFT", - cdu_pages={ - "SYS2" - }, - id="ZEROES1", - index=0, - statictext=true, - x=1, - y=7 - } - }, - ZEROES2={ - { - alignment="RGHT", - cdu_pages={ - "SYS2" - }, - id="ZEROES2", - index=0, - statictext=true, - x=23, - y=7 - } - }, - ZEROIZE={ - { - alignment="LFT", - cdu_pages={ - "GPSKEYS" - }, - id="ZEROIZE", - index=0, - statictext=true, - x=1, - y=9 - } - }, - pName={ - { - alignment="LFT", - cdu_pages={ - "GPSSTAT2" - }, - id="pName", - index=0, - statictext=true, - x=2, - y=1 - } - }, - ScratchBorders={ - { - alignment="LFT", - x=1, - y=10 - } - }, - ScratchString={ - { - alignment="LFT", - x=2, - y=10 - } - }, - PAGE={ - { - alignment="LFT", - x=19, - y=10 - } - }, - PAGE_NUM={ - { - alignment="LFT", - x=20, - y=10 - } - } -} - --- Unicode UTF-16 -function ExportScript.AF.replaceSymbols(s) - s = s:gsub(string.char(0xB0), "0x00B0") --DEGREE "°" - s = s:gsub(string.char(0xB1), "0x00B1") --INC_DEC "±" - s = s:gsub(string.char(0xA9), "0x2299") --INC_DEC (Circle with Dot) - s = s:gsub(string.char(0x3A), "0x003A") --Colon ":" - s = s:gsub(":" , "0x003A") --Colon ":" - s = s:gsub(string.char(0xBB), "0x2192") --Right Arrow "→" - s = s:gsub(string.char(0xAB), "0x2190") --Left Arrow "←" - s = s:gsub(string.char(0xB6), "0x2588") --Cursor "█" - s = s:gsub(string.char(0xA1), "0x2337") --DATA_ENTRY "⌷" - s = s:gsub(string.char(0xAE), "0x2195") --UpDown Arrow "↕" - s = s:gsub("*" , "0x002A") -- Asterisk "*" - return s -end - -function ExportScript.AF.preReplaceSymbols(s) - s = s:gsub(string.char(26), string.char(0xBB)) -- BRANCH_L - s = s:gsub(string.char(27), string.char(0xAB)) -- BRANCH_R - s = s:gsub(string.char(18), string.char(0xAE)) -- ROTARY - s = s:gsub(string.char(20), string.char(0xA1)) -- DATA_ENTRY - s = s:gsub("©" , string.char(0xA9)) -- SYS_ACTION - s = s:gsub("°" , string.char(0xB0)) -- DEGREE - s = s:gsub("ю" , string.char(0xB6)) -- FILLED - s = s:gsub("я" , string.char(0xB1)) -- INC_DEC - return s -end - -function ExportScript.AF.exportCDU() - local cdu = ExportScript.Tools.getListIndicatorValue(3) - - local cdu_lines = {} - local empty_line = " " -- 24 spaces - cdu_lines[1] = empty_line - cdu_lines[2] = empty_line - cdu_lines[3] = empty_line - cdu_lines[4] = empty_line - cdu_lines[5] = empty_line - cdu_lines[6] = empty_line - cdu_lines[7] = empty_line - cdu_lines[8] = empty_line - cdu_lines[9] = empty_line - cdu_lines[10] = empty_line - if not cdu then - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('keine cdu daten') - end - ExportScript.Tools.SendData(2030, cdu_lines[1]) - ExportScript.Tools.SendData(2031, cdu_lines[2]) - ExportScript.Tools.SendData(2032, cdu_lines[3]) - ExportScript.Tools.SendData(2033, cdu_lines[4]) - ExportScript.Tools.SendData(2034, cdu_lines[5]) - ExportScript.Tools.SendData(2035, cdu_lines[6]) - ExportScript.Tools.SendData(2036, cdu_lines[7]) - ExportScript.Tools.SendData(2037, cdu_lines[8]) - ExportScript.Tools.SendData(2038, cdu_lines[9]) - ExportScript.Tools.SendData(2039, cdu_lines[10]) - return - end - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('cdu: '..ExportScript.Tools.dump(cdu)) - end - local cdu_page = list_cockpit_params():match('CDU_PAGE:"([0-9A-Za-z_]+)"') - local cursor_pos = 2 - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('cdu_page: '..ExportScript.Tools.dump(cdu_page)) - end - if cdu.ScratchString then cursor_pos = cdu.ScratchString:len()+2 end - - ExportScript.AF.CDUIndicatorData["Cursor"]={ - [1]={ - alignment="LFT", - x=cursor_pos, - y=10 - } - } - - for k, v in pairs(cdu) do - local candidates = ExportScript.AF.CDUIndicatorData[k] - if candidates then - - v = ExportScript.AF.preReplaceSymbols(v) -- make sure that 1 char == 1 byte - - local render_instructions = nil - if #candidates == 1 then - render_instructions = candidates[1] - else - for _, ri in pairs(candidates) do - for _, page in pairs(ri.cdu_pages) do - if cdu_page == "CDU_"..page then - render_instructions = ri - break - end - end - end - end - if render_instructions then - local i - local ri = render_instructions - local old_line = cdu_lines[ri.y] - local replacements = {} - if ri.alignment == "LFT" then - for i = 1, v:len(), 1 do - local c = v:sub(i,i) - if c ~= " " then replacements[ri.x + i - 1] = c end - end - elseif ri.alignment == "RGHT" then - for i = 1, v:len(), 1 do - local c = v:sub(i,i) - if c ~= " " then replacements[ri.x - (v:len() - i)] = c end - end - end - local new_line = "" - for i = 1, 24, 1 do - new_line = new_line .. (replacements[i] or old_line:sub(i,i)) - end - cdu_lines[ri.y] = new_line - end - end - end - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('cdu_lines 1: '..ExportScript.Tools.dump(cdu_lines)) - end - - cdu_lines[1] = ExportScript.AF.replaceSymbols(cdu_lines[1]) - cdu_lines[2] = ExportScript.AF.replaceSymbols(cdu_lines[2]) - cdu_lines[3] = ExportScript.AF.replaceSymbols(cdu_lines[3]) - cdu_lines[4] = ExportScript.AF.replaceSymbols(cdu_lines[4]) - cdu_lines[5] = ExportScript.AF.replaceSymbols(cdu_lines[5]) - cdu_lines[6] = ExportScript.AF.replaceSymbols(cdu_lines[6]) - cdu_lines[7] = ExportScript.AF.replaceSymbols(cdu_lines[7]) - cdu_lines[8] = ExportScript.AF.replaceSymbols(cdu_lines[8]) - cdu_lines[9] = ExportScript.AF.replaceSymbols(cdu_lines[9]) - cdu_lines[10] = ExportScript.AF.replaceSymbols(cdu_lines[10]) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('cdu_lines 2: '..ExportScript.Tools.dump(cdu_lines)) - end - ExportScript.Tools.SendData(2030, cdu_lines[1]) - ExportScript.Tools.SendData(2031, cdu_lines[2]) - ExportScript.Tools.SendData(2032, cdu_lines[3]) - ExportScript.Tools.SendData(2033, cdu_lines[4]) - ExportScript.Tools.SendData(2034, cdu_lines[5]) - ExportScript.Tools.SendData(2035, cdu_lines[6]) - ExportScript.Tools.SendData(2036, cdu_lines[7]) - ExportScript.Tools.SendData(2037, cdu_lines[8]) - ExportScript.Tools.SendData(2038, cdu_lines[9]) - ExportScript.Tools.SendData(2039, cdu_lines[10]) - +-- A-10C + +ExportScript.FoundDCSModule = true +ExportScript.Version.A10C = "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 + ]] + -- AOA Gauges + [4] = "%.4f", -- AOA + [55] = "%0.1f", -- AOA Power Flag + -- VVI + [12] = "%.4f", -- Variometer (VVI) {-1.0, -0.5, -0.29, 0.29, 0.5, 1.0} {-6000, -2000, -1000, 1000, 2000, 6000} + -- APU + [13] = "%.4f", -- APU RPM + [14] = "%.4f", -- APU Temperature + [15] = "%.4f", -- Accelerometer_main + -- ADI + [17] = "%.4f", -- ADI Pitch + [18] = "%.4f", -- ADI Bank + [19] = "%0.1f", -- ADI Course Warning Flag + [20] = "%.4f", -- ADI Bank Steering Bar + [21] = "%.4f", -- ADI Pitch Steering Bar + [23] = "%.4f", -- ADI Turn Needle + [24] = "%.4f", -- ADI Slip Ball + [25] = "%0.1f", -- ADI Attitude Warning Flag + [26] = "%0.1f", -- ADI Glide-Slope Warning Flag + [27] = "%.4f", -- ADI Glide-Slope Indicator + -- HSI + [28] = "%0.4f", -- HSI_range_counter_1000 + [29] = "%0.4f", -- HSI_range_counter_100 + [30] = "%0.4f", -- HSI_range_counter_10 + [31] = "%0.4f", -- HSI_range_counter_1 + [32] = "%0.1f", -- HSI Range Flag + [33] = "%.4f", -- HSI Bearing #1 + [34] = "%.4f", -- HSI Heading + [35] = "%.4f", -- HSI Bearing #2 + [36] = "%.4f", -- HSI Heading Marker + [40] = "%0.1f", -- HSI Power Flag + [41] = "%.4f", -- HSI Deviation + [46] = "%0.1f", -- HSI Bearing Flag + [47] = "%.4f", -- HSI Course Arrow + -- Airspeed + [48] = "%.4f", -- Airspeed Needle + [49] = "%.4f", -- Airspeed Dial + -- Altimeter + [51] = "%.4f", -- Altimeter_100_footPtr + [52] = "%.4f", -- Altimeter_10000_footCount + [53] = "%.4f", -- Altimeter_1000_footCount + [54] = "%.4f", -- Altimeter_100_footCount + [59] = "%.4f", -- pressure_setting_0 + [58] = "%.4f", -- pressure_setting_1 + [57] = "%.4f", -- pressure_setting_2 + [56] = "%.4f", -- pressure_setting_3 + [61] = "%.1f", -- AAU34_PNEU_flag + -- Stby Attitude Indicator + [63] = "%.4f", -- Standby Attitude Indicator pitch + [64] = "%.4f", -- Standby Attitude Indicator bank + [65] = "%0.1f", -- Standby Attitude Indicator warning flag + [715] = "%.4f", -- Standby Attitude Indicator manual pitch adjustment + [717] = "%.4f", -- Standby Attitude Indicator knob arrow + -- Engine Gauges + [70] = "%.4f", -- Left Engine Temperature + [71] = "%.4f", -- Left Engine TemperatureUnits + [73] = "%.4f", -- Right Engine Temperature + [74] = "%.4f", -- Right Engine TemperatureUnits + [76] = "%.4f", -- EngineLeftFanSpeed + [77] = "%.4f", -- EngineRightFanSpeed + [78] = "%.4f", -- EngineLeftCoreSpeedTenth + [79] = "%.4f", -- EngineLeftCoreSpeedUnits + [80] = "%.4f", -- EngineRightCoreSpeedTenth + [81] = "%.4f", -- EngineRightCoreSpeedUnits + [82] = "%.4f", -- Left Engine Oil Pressure + [83] = "%.4f", -- Right Engine Oil Pressure + [84] = "%.4f", -- EngineLeftFuelFlow + [85] = "%.4f", -- EngineRightFuelFlow + -- Fuel Gauges + [88] = "%.4f", -- Fuel Indicator, FuelQuantityLeft + [89] = "%.4f", -- Fuel Indicator, FuelQuantityRight + [90] = "%.4f", -- FuelQuantityCounterTenthOfThous + [91] = "%.4f", -- FuelQuantityCounterThousands + [92] = "%.4f", -- FuelQuantityCounterHundreds + [129] = "%1d", -- PTR-LCP-EAC (EAC On/Off) + -- Misc lamps + [178] = "%.f", -- L_AILERON_EMER_DISENGAGE + [179] = "%.f", -- R_AILERON_EMER_DISENGAGE + [181] = "%.f", -- L_ELEVATOR_EMER_DISENGAGE + [182] = "%.f", -- R_ELEVATOR_EMER_DISENGAGE + -- STABILITY AUGMENTATION SYSTEM PANEL + [185] = "%1d", -- PTR-SASP-YAW-SASENGAGE-L (Yaw SAS Engage left) + [186] = "%1d", -- PTR-SASP-YAW-SASENGAGE-R (Yaw SAS Engage right) + [187] = "%1d", -- PTR-SASP-PITCH-SASENGAGE-L (Pitch SAS Engage left) + [188] = "%1d", -- PTR-SASP-PITCH-SASENGAGE-R (Pitch SAS Engage right) + -- Misc lamps + [191] = "%.f", -- TAKE_OFF_TRIM + [215] = "%.f", -- L_ENG_FIRE + [216] = "%.f", -- APU_FIRE + [217] = "%.f", -- R_ENG_FIRE + [260] = "%.f", -- TACAN_test_light {0.0, 1.0} + -- + [269] = "%.4f", -- HARS_sync {-1.0, 1.0} + [274] = "%.4f", -- OxygenVolume {0.0, 1.0} + [281] = "%.4f", -- CabinPressAlt {0.0, 1.0} + -- Light System Control Panel + [289] = "%1d", -- PTR-LGHTCP-ANTICOLLISION (Anticollision Lights) + -- CMSC lamps + [372] = "%.f", -- CMSC_MissileLaunchIndicator {0.0, 1.0} + [373] = "%.f", -- CMSC_PriorityStatusIndicator {0.0, 1.0} + [374] = "%.f", -- CMSC_UnknownStatusIndicator {0.0, 1.0} + -- Master Warning Lamp UFCP + [404] = "%.f", -- MASTER_WARNING_STUB MASTER WARNING + -- Caution Panel LAMPS + [480] = "%.f", -- ENG_START_CYCLE + [481] = "%.f", -- L_HYD_PRESS + [482] = "%.f", -- R_HYD_PRESS + [483] = "%.f", -- GUN_UNSAFE + [484] = "%.f", -- ANTISKID + [485] = "%.f", -- L_HYD_RES + [486] = "%.f", -- R_HYD_RES + [487] = "%.f", -- OXY_LOW + [488] = "%.f", -- ELEV_DISENG + [489] = "%.f", -- VOID1 + [490] = "%.f", -- SEAT_NOT_ARMED + [491] = "%.f", -- BLEED_AIR_LEAK + [492] = "%.f", -- AIL_DISENG + [493] = "%.f", -- L_AIL_TAB + [494] = "%.f", -- R_AIL_TAB + [495] = "%.f", -- SERVICE_AIR_HOT + [496] = "%.f", -- PITCH_SAS + [497] = "%.f", -- L_ENG_HOT + [498] = "%.f", -- R_ENG_HOT + [499] = "%.f", -- WINDSHIELD_HOT + [500] = "%.f", -- YAW_SAS + [501] = "%.f", -- L_ENG_OIL_PRESS + [502] = "%.f", -- R_ENG_OIL_PRESS + [503] = "%.f", -- CICU + [504] = "%.f", -- GCAS + [505] = "%.f", -- L_MAIN_PUMP + [506] = "%.f", -- R_MAIN_PUMP + [507] = "%.f", -- VOID2 + [508] = "%.f", -- LASTE + [509] = "%.f", -- L_WING_PUMP + [510] = "%.f", -- R_WING_PUMP + [511] = "%.f", -- HARS + [512] = "%.f", -- IFF_MODE_4 + [513] = "%.f", -- L_MAIN_FUEL_LOW + [514] = "%.f", -- R_MAIN_FUEL_LOW + [515] = "%.f", -- L_R_TKS_UNEQUAL + [516] = "%.f", -- EAC + [517] = "%.f", -- L_FUEL_PRESS + [518] = "%.f", -- R_FUEL_PRESS + [519] = "%.f", -- NAV + [520] = "%.f", -- STALL_SYS + [521] = "%.f", -- L_CONV + [522] = "%.f", -- R_CONV + [523] = "%.f", -- CADC + [524] = "%.f", -- APU_GEN + [525] = "%.f", -- L_GEN + [526] = "%.f", -- R_GEN + [527] = "%.f", -- INST_INV + -- Angle of attack indicator + [540] = "%0.1f", -- AOA_INDEXER_HIGH + [541] = "%0.4f", -- AOA_INDEXER_NORM + [542] = "%0.1f", -- AOA_INDEXER_LOW + -- Misc Data + [600] = "%0.1f", -- BreathFlow {0.0, 1.0} + [604] = "%.4f", -- OxygenPress {0.0, 0.5, 1.0} + -- NMSP Panel lamps + [606] = "%.f", -- HARS + [608] = "%.f", -- EGI + [610] = "%.f", -- TISL + [612] = "%.f", -- STRPT + [614] = "%.f", -- ANCHR + [616] = "%.f", -- TCN + [618] = "%.f", -- ILS + [619] = "%.f", -- UHF + [620] = "%.f", -- FM + -- Hydraulic Pressure + [647] = "%.4f", -- HydraulicPressureLeft {0.0,1.0} + [648] = "%.4f", -- HydraulicPressureRight {0.0,1.0} + -- Flap Indicator + [653] = "%.4f", -- FlapPositionIndicator {0,20} {0,2/3,1} + -- Landing Gear Lamps + [659] = "%.f", -- GEAR_N_SAFE + [660] = "%.f", -- GEAR_L_SAFE + [661] = "%.f", -- GEAR_R_SAFE + -- Misc lamps + [662] = "%.f", -- GUN_READY + [663] = "%.f", -- NOSEWHEEL_STEERING + [664] = "%.f", -- MARKER_BEACON + [665] = "%.f", -- CANOPY_UNLOCKED + [730] = "%.f", -- AIR_REFUEL_READY + [731] = "%.f", -- AIR_REFUEL_LATCHED + [732] = "%.f", -- AIR_REFUEL_DISCONNECT + [737] = "%.f", -- HANDLE_GEAR_WARNING + -- IFF Panel lamps + [798] = "%.f", -- IFF_reply_lamp {0, 1} + [799] = "%.f", -- IFF_test_lamp {0, 1} + -- + [902] = "%.4f", -- Accelerometer_min + [903] = "%.4f", -- Accelerometer_max + -- Standby Compass + [6] = "%.4f", -- heading + [720] = "%.4f", -- pitch + [721] = "%.4f", -- bank +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + --Attitude Direction Indicator + [22] = "%.4f", -- ADI Pitch Trim Knob {-.05,0.5} in 01. steps + --Horizontal Situation Indicator + [45] = "%.4f", -- HSI Heading Set Knob + [44] = "%.4f", -- HSI Course Set Knob + --Standby Attitude Indicator + [67] = "%1df", -- SAI Cage Standby Attitude Indicator. Hold Right Mouse Button and rotate Scroll Wheel to uncage + [66] = "%.4f", -- SAI Cage Standby Attitude Indicator. Hold Right Mouse Button and rotate Scroll Wheel to uncage + -- Digital Clock + [68] = "%1d", -- Clock Toggle Clock and Elapsed Time Modes + [69] = "%1d", -- Clock Start, Stop and Reset Elapsed Timer + -- Emergency Jettison Button + [101] = "%.1f", -- PTR-EXT-STORES-JETT (mergency Jettison External Stores) + -- Fire Extinguishers Panel + [102] = "%1d", -- PTR-FIRE-LENG-PULL (Left Engine Fire T-Handle) + [103] = "%1d", -- PTR-FIRE-APU-PULL (APU Fire T-Handle) + [104] = "%1d", -- PTR-FIRE-RENG-PULL (Right Engine Fire T-Handle) + [105] = "%1d", -- PTR-FIRE-EXTING-DISCH (Fire Extinguishing Agent Discharge) + -- Fuel System Control Panel + [106] = "%1d", -- PTR-FSCP-EXT-TANKS-WING (External Wing Tanks Boost Pumps) + [107] = "%1d", -- PTR-FSCP-EXT-TANKS-FUS (External Fuselage Tank Boost Pump) + [108] = "%1d", -- PTR-FSCP-TK-GATE (Tank Gate) + [109] = "%1d", -- PTR-FSCP-CROSS-FEED (Cross Feed) + [110] = "%1d", -- PTR-FSCP-BOOST-PUMPS-WING-L (Boost Pumps Left Wing) + [111] = "%1d", -- PTR-FSCP-BOOST-PUMPS-WING-R (Boost Pumps Right Wing) + [112] = "%1d", -- PTR-FSCP-BOOST-PUMPS-MAIN-L (Boost Pumps Main Fuselage Left) + [113] = "%1d", -- PTR-FSCP-BOOST-PUMPS-MAIN-R (Boost Pumps Main Fuselage Right) + [114] = "%1d", -- PTR-FSCP-SIG-AMPL (Signal Amplifier Norm/Override) + [115] = "%.1f", -- PTR-FSCP-LINE-CHECK (Line Check) + [116] = "%.3f", -- PTR-FSCP-RCVR-LT (Refueling Lighting Dial) + [117] = "%1d", -- PTR-FSCP-FILLDISABLE-WING-L (Fill Disable Wing Left) + [118] = "%1d", -- PTR-FSCP-FILLDISABLE-WING-R (Fill Disable Wing Right) + [119] = "%1d", -- PTR-FSCP-FILLDISABLE-MAIN-L (Fill Disable Main Left) + [120] = "%1d", -- PTR-FSCP-FILLDISABLE-MAIN-R (Fill Disable Main Right) + [121] = "%1d", -- PTR-FSCP-RCVR-LEVER (Aerial Refueling Slipway Control Lever) + -- Engine System and Throttle panel + [122] = "%1d", -- PTR-FUEL-FLOW-L (Left Engine Fuel Flow Control) + [123] = "%1d", -- PTR-FUEL-FLOW-R (Right Engine Fuel Flow Control) + [124] = "%1d", -- PTR-ENGINE-OPER-L (Engine Operate Left) + [125] = "%1d", -- PTR-ENGINE-OPER-R (Engine Operate Right) + [126] = "%1d", -- PTR-APU-START (APU On/Off) + [128] = "%.1f", -- PTR-THROTTLE-FRICTION (Throttle Friction Control) + [652] = "%1d", -- PTR-TEMS-DATA (TEMS DATA) + -- LASTE Control Panel + [130] = "%1d", -- PTR-LCP-RDRALTM (Radar Altimeter Normal/Disabled) + [131] = "%.1f", -- PTR-LCP-AUTOPILOT-ENGAGE (Autopilot Engage/Disengage) + [132] = "%1d", -- PTR-LCP-AUTOPILOT-PATH-ALT (Autopilot Mode Select Switch) + -- ANARC186-VHF_AM + -- AM Radio + [133] = "%.3f", -- PTR-ANARC186-VHFAM-VOLUME (Volume) + [134] = "%1d", -- PTR-ANARC186-VHFAM-SQUELCH (Squelch / TONE) + [135] = "%0.1f", -- PTR-ANARC186-VHFAM-FREQEMER-CONTROL (Frequency Selection Dial) + [136] = "%.1f", -- PTR-ANARC186-VHFAM-LOAD (Load) + [137] = "%0.3f", -- PTR-ANARC186-VHFAM-PRESET (Preset Channel Selector) + [138] = "%0.1f", -- PTR-ANARC186-VHFAM-MODE (Frequency Mode Dial) + [139] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-1 (Frequency Selector the 1nd) + [140] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-2 (Frequency Selector the 2nd) + [141] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-3 (Frequency Selector the 3nd) + [142] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-4 (Frequency Selector the 4nd) + -- FM Radio + [147] = "%.3f", -- PTR-ANARC186-VHFFM-VOLUME (Volume) + [148] = "%1d", -- PTR-ANARC186-VHFFM-SQUELCH (Squelch / TONE) + [149] = "%0.1f", -- PTR-ANARC186-VHFFM-FREQEMER-CONTROL (Frequency Selection Dial) + [150] = "%.1f", -- PTR-ANARC186-VHFFM-LOAD (Load) + [151] = "%0.3f", -- PTR-ANARC186-VHFFM-PRESET (Preset Channel Selector) + [152] = "%0.1f", -- PTR-ANARC186-VHFFM-MODE (Frequency Mode Dial) + [153] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-1 (Frequency Selector the 1nd) + [154] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-2 (Frequency Selector the 2nd) + [155] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-3 (Frequency Selector the 3nd) + [156] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-4 (Frequency Selector the 4nd) + -- ANARC164 + -- UHF Raido + [161] = "%0.2f", -- PTR-ANARC164-CHANNEL-SELECTOR (Preset Channel Selector) + [162] = "%0.1f", -- PTR-ANARC164-100MHZ-SELECTOR (100 MHz Selector) + [163] = "%0.2f", -- PTR-ANARC164-10MHZ-SELECTOR (10 MHz Selector) + [164] = "%0.2f", -- PTR-ANARC164-1MHZ-SELECTOR (1 MHz Selector) + [165] = "%0.2f", -- PTR-ANARC164-0.1MHZ-SELECTOR (0.1 MHz Selector) + [166] = "%0.2f", -- PTR-ANARC164-0.025MHZ-SELECTOR (0.025 MHz Selector) + [167] = "%0.1f", -- PTR-ANARC164-FREQMODE (Frequency Mode Dial) + [168] = "%0.1f", -- PTR-ANARC164-FUNCTION (Function Dial) + [169] = "%1d", -- PTR-ANARC164-T-TONE (T-Tone) + [170] = "%1d", -- PTR-ANARC164-SQUELCH (Squelch) + [171] = "%.3f", -- PTR-ANARC164-VOLUME (Volume) + [172] = "%.1f", -- PTR-ANARC164-TEST-DISPLAY (Test Display) + [173] = "%.1f", -- PTR-ANARC164-STATUS (Status) + [734] = "%1d", -- PTR-ANARC164-COVER + [735] = "%.1f", -- PTR-ANARC164-LOAD (Load button) + -- Emergency Flight Control Panel + [174] = "%1d", -- PTR-EFCP-SPDBK-EMER-RETR (Speed Brake Emergency Retract) + [175] = "%1d", -- Speed Brake Emergency Retract (Pitch/Roll Trim Norm/Emergency Override) + [176] = "%0.1f", -- PTR-EFCP-TRIM (Trim Emergency ...) + [177] = "%1d", -- PTR-EFCP-AILERON-EMER-DISENGAGE (Aileron Emergency Disengage) + [180] = "%1d", -- PTR-EFCP-ELEVATOR-EMER-DISENGAGE (Elevator Emergency Disengage) + [183] = "%1d", -- PTR-EFCP-FLAP-EMER-RETR (Flaps Emergency Retract) + [184] = "%1d", -- PTR-EFCP-MRFCS (Manual Reversion Flight Control System (MRFCS)) + -- STABILITY AUGMENTATION SYSTEM PANEL + [189] = "%1d", -- PTR-SASP-MONITOR-TEST (Monitor Test Left/Right) + [190] = "%.1f", -- PTR-SASP-TO-TRIM (Set Takeoff Trim) + [192] = "%.3f", -- PTR-SASP-YAW-TRIM (Yaw Trim) + -- Light System Control Panel + [193] = "%.3f", -- PTR-ALCP-RSIL (Refuel Status Indexer Lights) + [194] = "%0.1f", -- PTR-ALCP-NVIS-LTS (Nightvision Lights) + [195] = "%.3f", -- PTR-ALCP-WPNSTA (Weapon Station Lights. No function) + [196] = "%1d", -- PTR-ALCP-HARSSAS (HARS-SAS Override/NORM) + -- ALCP + [197] = "%.1f", -- "PTR-ALCP-SIGLIGHTS-LAMP-TEST (Test Cockpit Indication Lights) + -- Light System Control Panel + [198] = "%.1f", -- PTR-ALCP-FDBAL-TEST (Fire Detect Bleed Air Test) + -- IFF + [199] = "%0.1f", -- PTR-IFFCP-CODE (Code) + [200] = "%0.1f", -- PTR-IFFCP-MASTER (Master) + [201] = "%1d", -- PTR-IFFCP-OUT-AUDIO-LIGHT (Audio/light) + [202] = "%1d", -- PTR-IFFCP-TEST-M-1 (Test M-1) + [203] = "%1d", -- PTR-IFFCP-TEST-M-2 (Test M-2) + [204] = "%1d", -- PTR-IFFCP-TEST-M-3A (Test M-3A) + [205] = "%1d", -- PTR-IFFCP-TEST-M-C (Test M-C) + [206] = "%1d", -- PTR-IFFCP-RADTEST (RAD Test/Mon) + [207] = "%1d", -- PTR-IFFCP-MIC-IDENT (Ident/Mic) + [208] = "%1d", -- PTR-IFFCP-ON-OUT (IFF On/Out) + [209] = "%0.2f", -- PTR-IFFCP-MODE1-WHEEL1 (MODE1-WHEEL1) + [210] = "%0.2f", -- PTR-IFFCP-MODE1-WHEEL2 (MODE1-WHEEL2) + [211] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL1 (MODE3A-WHEEL1) + [212] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL2 (MODE3A-WHEEL2) + [213] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL3 (MODE3A-WHEEL3) + [214] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL4 (MODE3A-WHEEL4) + -- Inercom Panel + [221] = "%.3f", -- PTR-INTERCOM-INT (INT Switch) + [222] = "%1d", -- PTR-INTERCOM-INT (INT Switch) + [223] = "%.3f", -- PTR-INTERCOM-FM (FM Switch) + [224] = "%1d", -- PTR-INTERCOM-FM (FM Switch) + [225] = "%.3f", -- PTR-INTERCOM-VHF (VHF Switch) + [226] = "%1d", -- PTR-INTERCOM-VHF (VHF Switch) + [227] = "%.3f", -- PTR-INTERCOM-UHF (UHF Switch) + [228] = "%1d", -- PTR-INTERCOM-UHF (UHF Switch) + [229] = "%.3f", -- PTR-INTERCOM-AIM (AIM Switch) + [230] = "%1d", -- PTR-INTERCOM-AIM (AIM Switch) + [231] = "%.3f", -- PTR-INTERCOM-IFF (IFF Switch) + [232] = "%1d", -- PTR-INTERCOM-IFF (IFF Switch) + [233] = "%.3f", -- PTR-INTERCOM-ILS (ILS Switch) + [234] = "%1d", -- PTR-INTERCOM-ILS (ILS Switch) + [235] = "%.3f", -- PTR-INTERCOM-TCN (TCN Switch) + [236] = "%1d", -- PTR-INTERCOM-TCN (TCN Switch) + [237] = "%1d", -- PTR-INTERCOM-HM (HM Switch) + [238] = "%.3f", -- PTR-INTERCOM-VOL (Intercom volume) + [239] = "%0.1f", -- PTR-INTERCOM-MODE (Selector switch) + [240] = "%.1f", -- PTR-INTERCOM-CALL (Call button) + -- Electrical Power Panel + [241] = "%1d", -- PTR-EPP-APU-GEN-PWR (APU Generator On/Off) + [242] = "%1d", -- PTR-EPP-INVERTER (Inverter Switch) + [243] = "%1d", -- PTR-EPP-EMER-FLOOD (Emergency Flood Light) + [244] = "%1d", -- PTR-EPP-AC-GEN-PWR-L (Left AC Generator Power) + [245] = "%1d", -- PTR-EPP-AC-GEN-PWR-R (Right AC Generator Power) + [246] = "%1d", -- PTR-EPP-BATTERY-PWR (Battery Power) + -- ILS + [247] = "%1d", -- PTR-ILSCP-PWR Power + [248] = "%0.1f", -- PTR-ILSCP-PWR ILS Frequency MHz + [249] = "%.3f", -- PTR-ILSCP-VOL ILS Frequency kHz + [250] = "%0.1f", -- PTR-ILSCP-VOL Volume + [251] = "%0.1f", -- ILS_window_wheel_MHz + [252] = "%0.1f", -- ILS_window_wheel_KHz + -- TACAN + [256] = "%.1f", -- Channel Selector (Tens). Rotate mouse wheel to select (Axis) {0.0,1.0} in 0.1 steps + [257] = "%0.2f", -- Channel Selector (Ones) / X/Y Mode. Rotate mouse wheel to make channel selection (Axis) {0.0,1.0} in 0.1 steps + [258] = "%1d", -- Channel Selector (Ones) / X/Y Mode. Right mouse click to select X/Y. + [259] = "%.1f", -- PTR-TACAN-TEST (Test TACAN Signal on HSI) + [261] = "%.3f", -- PTR-TACAN-VOL (Signal Volume) (Axis) {0.0,1.0} in 0.1 steps + [262] = "%0.1f", -- PTR-TACAN-MODE (Mode Dial) {0.0,0.1,0.2,0.3,0.4} + [263] = "%.1f", -- TACAN_digit_pos.hundreds + [264] = "%.1f", -- TACAN_digit_pos.tens + [265] = "%.1f", -- TACAN_digit_pos.ones + --[266] = "%1d", -- XYwheel + -- HARS + [267] = "%.1f", -- PTR-HARS-CP-PUSH-TO-SYNC (HARS Push-To-Sync) + [268] = "%.3f", -- PTR-HARS-CP-PUSH-TO-SYNC (HARS Push-To-Sync) + [270] = "%1d", -- PTR-HARS-CP-SLAVE (HARS SLAVE-DG mode) + [271] = "%.3f", -- PTR-HARS-CP-LATITUDE (HARS Latitude Dial) + [272] = "%1d", -- PTR-HARS-CP-MAG-VAR (HARS MAG VAR) + [273] = "%1d", -- PTR-HARS-CP-N-S (HARS N/S toggle switch) + [711] = "%.1f", -- PTR-HARS-FAST-ERECT (HARS Fast Erect) + -- Environment Control Panel + [275] = "%.1f", -- PTR-ENVCP-OXY-TEST (Oxygen Indicator Test) + [276] = "%1d", -- PTR-ENVCP-WINDSHIELD-DEFOG (Windshield Defog/Deice) + [277] = "%.3f", -- PTR-ENVCP-CANOPY-DEFOG (Canopy Defog) + [278] = "%1d", -- PTR-ENVCP-WINDSHIELD-RREMOVE-WASH (Windshield Rain Removal/Wash) + [279] = "%1d", -- PTR-ENVCP-PITOT-HEAT (Pitot Heater) + [280] = "%1d", -- PTR-ENVCP-BLEED-AIR (Bleed Air) + [282] = "%1d", -- PTR-ENVCP-TEMP-PRESS (Temperature/Pressure Control) + [283] = "%1d", -- PTR-ENVCP-MAIN-AIR-SUPPLY (Main Air Supply) + [284] = "%.3f", -- PTR-ENVCP-FLOW-LEVEL (Flow Level Control) + -- Light System Control Panel + [287] = "%1d", -- PTR-LGHTCP-POSITION (Position Lights, FLASH/OFF/STEADY) + [288] = "%.3f", -- PTR-LGHTCP-FORMATION (Formation Lights) + [290] = "%.3f", -- PTR-LGHTCP-ENG-INST (Engine Instruments Lights) + [291] = "%1d", -- PTR-LGHTCP-NOSE-ILLUM (Nose Illumination) + [292] = "%.3f", -- PTR-LGHTCP-FLIGHT-INST (Flight Instruments Lights) + [293] = "%.3f", -- PTR-LGHTCP-AUX-INST (Auxiliary Instruments Lights) + [294] = "%1d", -- PTR-LGHTCP-SIGNAL-LTS (Signal Lights) + [295] = "%1d", -- PTR-LGHTCP-ACCEL-COMP (Accelerometer & Compass Lights) + [296] = "%.3f", -- PTR-LGHTCP-FLOOD (Flood Light) + [297] = "%.3f", -- PTR-LGHTCP-CONSOLE (Console Light) + -- Left MFCDI + [300] = "%.1f", -- PNT-BTN-MFD-L-01 (OSB 1) + [301] = "%.1f", -- PNT-BTN-MFD-L-02 (OSB 2) + [302] = "%.1f", -- PNT-BTN-MFD-L-03 (OSB 3) + [303] = "%.1f", -- PNT-BTN-MFD-L-04 (OSB 4) + [304] = "%.1f", -- PNT-BTN-MFD-L-05 (OSB 5) + [305] = "%.1f", -- PNT-BTN-MFD-L-06 (OSB 6) + [306] = "%.1f", -- PNT-BTN-MFD-L-07 (OSB 7) + [307] = "%.1f", -- PNT-BTN-MFD-L-08 (OSB 8) + [308] = "%.1f", -- PNT-BTN-MFD-L-09 (OSB 9) + [309] = "%.1f", -- PNT-BTN-MFD-L-10 (OSB 10) + [310] = "%.1f", -- PNT-BTN-MFD-L-11 (OSB 11) + [311] = "%.1f", -- PNT-BTN-MFD-L-12 (OSB 12) + [312] = "%.1f", -- PNT-BTN-MFD-L-13 (OSB 13) + [313] = "%.1f", -- PNT-BTN-MFD-L-14 (OSB 14) + [314] = "%.1f", -- PNT-BTN-MFD-L-15 (OSB 15) + [315] = "%.1f", -- PNT-BTN-MFD-L-16 (OSB 16) + [316] = "%.1f", -- PNT-BTN-MFD-L-17 (OSB 17) + [317] = "%.1f", -- PNT-BTN-MFD-L-18 (OSB 18) + [318] = "%.1f", -- PNT-BTN-MFD-L-19 (OSB 19) + [319] = "%.1f", -- PNT-BTN-MFD-L-20 (OSB 20) + [320] = "%1d", -- PNT-MFCD-L-ADJ-UP/DN (Moving Map Scale Adjust Increase/Decrease) + [321] = "%1d", -- PNT-MFCD-L-DSP-UP/DN (Decrease/Increase Backlight Brightness) + [322] = "%1d", -- PNT-MFD-L-BRT-UP/DN (Decrease/Increase Brightness) + [323] = "%1d", -- PNT-MFD-L-CON-UP/DN (Decrease/Increase Contrast) + [324] = "%1d", -- PNT-MFD-L-SYM-UP/DN (Decrease/Increase Symbol Levels) + [325] = "%0.1f", -- PNT-LVR-MFD-L (DAY/NIGHT/OFF) + -- Right MFCDI + [326] = "%.1f", -- PNT-BTN-MFD-R-01 (OSB 1) + [327] = "%.1f", -- PNT-BTN-MFD-R-02 (OSB 2) + [328] = "%.1f", -- PNT-BTN-MFD-R-03 (OSB 3) + [329] = "%.1f", -- PNT-BTN-MFD-R-04 (OSB 4) + [330] = "%.1f", -- PNT-BTN-MFD-R-05 (OSB 5) + [331] = "%.1f", -- PNT-BTN-MFD-R-06 (OSB 6) + [332] = "%.1f", -- PNT-BTN-MFD-R-07 (OSB 7) + [333] = "%.1f", -- PNT-BTN-MFD-R-08 (OSB 8) + [334] = "%.1f", -- PNT-BTN-MFD-R-09 (OSB 9) + [335] = "%.1f", -- PNT-BTN-MFD-R-10 (OSB 10) + [336] = "%.1f", -- PNT-BTN-MFD-R-11 (OSB 11) + [337] = "%.1f", -- PNT-BTN-MFD-R-12 (OSB 12) + [338] = "%.1f", -- PNT-BTN-MFD-R-13 (OSB 13) + [339] = "%.1f", -- PNT-BTN-MFD-R-14 (OSB 14) + [340] = "%.1f", -- PNT-BTN-MFD-R-15 (OSB 15) + [341] = "%.1f", -- PNT-BTN-MFD-R-16 (OSB 16) + [342] = "%.1f", -- PNT-BTN-MFD-R-17 (OSB 17) + [343] = "%.1f", -- PNT-BTN-MFD-R-18 (OSB 18) + [344] = "%.1f", -- PNT-BTN-MFD-R-19 (OSB 19) + [345] = "%.1f", -- PNT-BTN-MFD-R-20 (OSB 20) + [346] = "%1d", -- PNT-MFCD-R-ADJ-UP/DN (Moving Map Scale Adjust Increase/Decrease) + [347] = "%1d", -- PNT-MFCD-R-DSP-UP/DN (Decrease/Increase Backlight Brightness) + [348] = "%1d", -- PNT-MFD-R-BRT-UP/DN (Decrease/Increase Brightness) + [349] = "%1d", -- PNT-MFD-R-CON-UP/DN (Decrease/Increase Contrast) + [350] = "%1d", -- PNT-MFD-R-SYM-UP/DN (Decrease/Increase Symbol Levels) + [351] = "%0.1f", -- PNT-LVR-MFD-R (DAY/NIGHT/OFF) + -- CMSP + [352] = "%.1f", -- PNT-BTN-CMSP-ARW1 (Edit Program Value) + [353] = "%.1f", -- PNT-BTN-CMSP-ARW2 (Edit Program Value) + [354] = "%.1f", -- PNT-BTN-CMSP-ARW3 (Edit Program Value) + [355] = "%.1f", -- PNT-BTN-CMSP-ARW4 (Edit Program Value) + [356] = "%1d", -- PNT-BTN-CMSP-BRT-UP/DN (Cycle Program or Value Up/Down) + [357] = "%.1f", -- PNT-BTN-CMSP-RTN (Save and Return Program) + [358] = "%1d", -- PNT-TMB-CMSP-JTSN (Jettison Countermeasures) + [359] = "%.3f", -- PNT-LEV-CMSP-BRT (Adjust Display Brightness) + [360] = "%0.1f", -- PNT-TMB-CMSP-MWS (Missile Warning System (MWS). Left mouse - ON/OFF, Right mouse - MENU (No Function)) + [361] = "%0.1f", -- PNT-TMB-CMSP-JMR (Electronic Countermeasure Jammer (JMR). Left mouse - ON/OFF, Right mouse - MENU (No Function)) + [362] = "%0.1f", -- PNT-TMB-CMSP-RWR (Radar Warning Receiver (RWR). Left mouse - ON/OFF, Right mouse - MENU) + [363] = "%0.1f", -- PNT-TMB-CMSP-DISP (Countermeasure Dispenser (DISP). Left mouse - ON/OFF, Right mouse - MENU) + [364] = "%0.1f", -- PNT-LEV-CMSP-MODE (Master CMS Mode Select) + -- CMSC + [365] = "%.1f", -- PNT-BTN-RWR-JMR (Select Jammer Program) + [366] = "%.1f", -- PNT-BTN-RWR-MWS (Cycle Missile Warning System Programs. No function) + [367] = "%.3f", -- PNT-LEV-RWR-BRT (Adjust Display Brightness) + [368] = "%.3f", -- PNT-LEV-RWR-AUD (Adjust RWR Volume) + [369] = "%.1f", -- PNT-BTN-RWR-PRI (Toggle between 5 and 16 Priority Threats Displayed) + [370] = "%.1f", -- PNT-BTN-RWR-SEP (Separate RWR Symbols) + [371] = "%.1f", -- PNT-BTN-RWR-UNK (Display Unknown Threats) + -- AHCP + [375] = "%0.1f", -- PNT-TMB-AHCP-MARM (Master Arm) + [376] = "%0.1f", -- PNT-TMB-AHCP-GUNPAC (Gun Arm Mode) + [377] = "%0.1f", -- PNT-TMB-AHCP-LARM (Laser Arm) + [378] = "%1d", -- PNT-TMB-AHCP-TGP (Targeting Pod Power On/Off) + [379] = "%0.1f", -- PNT-TMB-AHCP-ALT (Altimeter Source) + [380] = "%1d", -- PNT-TMB-AHCP-TIME (Day/Night HUD Mode) + [381] = "%1d", -- PNT-TMB-AHCP-NORM (NORM/Standby HUD Mode) + [382] = "%1d", -- PNT-TMB-AHCP-CICU (Turn On/Off CICU) + [383] = "%1d", -- PNT-TMB-AHCP-JTRS (JTRS Datalink On/Off) + [384] = "%0.1f", -- PNT-TMB-AHCP-IFFCC (Turn On/Off/Test IFFCC) + -- UFC + [385] = "%.1f", -- PNT-BTN-UFC-1 + [386] = "%.1f", -- PNT-BTN-UFC-2 + [387] = "%.1f", -- PNT-BTN-UFC-3 + [388] = "%.1f", -- PNT-BTN-UFC-4 + [389] = "%.1f", -- PNT-BTN-UFC-5 + [390] = "%.1f", -- PNT-BTN-UFC-6 + [391] = "%.1f", -- PNT-BTN-UFC-7 + [392] = "%.1f", -- PNT-BTN-UFC-8 + [393] = "%.1f", -- PNT-BTN-UFC-9 + [394] = "%.1f", -- PNT-BTN-UFC-HACK (Display Hack Time) + [395] = "%.1f", -- PNT-BTN-UFC-0 + [396] = "%.1f", -- PNT-BTN-UFC-SPC (Space) + [397] = "%.1f", -- PNT-BTN-UFC-FUNC (Select Function Mode) + [398] = "%.1f", -- PNT-BTN-UFC-LTR (Select Letter Mode) + [399] = "%.1f", -- PNT-BTN-UFC-CLR (Clear) + [400] = "%.1f", -- PNT-BTN-UFC-ENT (Enter) + [401] = "%.1f", -- PNT-BTN-UFC-MK (Create Overhead Mark Point) + [402] = "%.1f", -- PNT-BTN-UFC-ALT (Display and Adjust Altitude Alert Values) + [405] = "%1d", -- PNT-BTN-UFC-STEER-UP/DN (Cycle Steerpoint/Waypoint) + [406] = "%1d", -- PNT-BTN-UFC-DATA-UP/DN + [407] = "%1d", -- PNT-BTN-UFC-SEL-UP/DN + [408] = "%1d", -- PNT-BTN-UFC-DEPR-UP/DN (Adjust Depressible Pipper) + [409] = "%1d", -- PNT-BTN-UFC-INTEN-RGT/LFT (Adjust HUD Brightness (Hold rocker)) + -- SYS_CONTROLLER + [403] = "%.1f", -- PNT-BTN-UFC-MASTWARN (Master Caution Light) + -- CDU + [410] = "%.1f", -- PNT-BTN-CDU-ARW-L1 (LSK 3L) + [411] = "%.1f", -- PNT-BTN-CDU-ARW-L2 (LSK 5L) + [412] = "%.1f", -- PNT-BTN-CDU-ARW-L3 (LSK 7L) + [413] = "%.1f", -- PNT-BTN-CDU-ARW-L4 (LSK 9L) + [414] = "%.1f", -- PNT-BTN-CDU-ARW-R1 (LSK 3R) + [415] = "%.1f", -- PNT-BTN-CDU-ARW-R2 (LSK 5R) + [416] = "%.1f", -- PNT-BTN-CDU-ARW-R3 (LSK 7R) + [417] = "%.1f", -- PNT-BTN-CDU-ARW-R4 (LSK 9R) + [418] = "%.1f", -- PNT-BTN-CDU-SYS (Display System (SYS) Page) + [419] = "%.1f", -- PNT-BTN-CDU-NAV (Display Navigation (NAV) Page) + [420] = "%.1f", -- PNT-BTN-CDU-WP (Display Waypoint Menu (WP MENU) Page) + [421] = "%.1f", -- PNT-BTN-CDU-OSET (Display Offset (OFFSET) Page) + [422] = "%.1f", -- PNT-BTN-CDU-FPM (Display Flight Plan Menu (FPMENU) Page) + [423] = "%.1f", -- PNT-BTN-CDU-PREV (Go to previous page) + [424] = "%1d", -- PNT-BTN-CDU-DIMBRT-L/R (Display Brightness Adjustment (Not Functional)) + [425] = "%.1f", -- PNT-BTN-CDU-1 + [426] = "%.1f", -- PNT-BTN-CDU-2 + [427] = "%.1f", -- PNT-BTN-CDU-3 + [428] = "%.1f", -- PNT-BTN-CDU-4 + [429] = "%.1f", -- PNT-BTN-CDU-5 + [430] = "%.1f", -- PNT-BTN-CDU-6 + [431] = "%.1f", -- PNT-BTN-CDU-7 + [432] = "%.1f", -- PNT-BTN-CDU-8 + [433] = "%.1f", -- PNT-BTN-CDU-9 + [434] = "%.1f", -- PNT-BTN-CDU-0 + [435] = "%.1f", -- PNT-BTN-CDU-PNT + [436] = "%.1f", -- PNT-BTN-CDU-SLASH + [437] = "%.1f", -- PNT-BTN-CDU-A + [438] = "%.1f", -- PNT-BTN-CDU-B + [439] = "%.1f", -- PNT-BTN-CDU-C + [440] = "%.1f", -- PNT-BTN-CDU-D + [441] = "%.1f", -- PNT-BTN-CDU-E + [442] = "%.1f", -- PNT-BTN-CDU-F + [443] = "%.1f", -- PNT-BTN-CDU-G + [444] = "%.1f", -- PNT-BTN-CDU-H + [445] = "%.1f", -- PNT-BTN-CDU-I + [446] = "%.1f", -- PNT-BTN-CDU-J + [447] = "%.1f", -- PNT-BTN-CDU-K + [448] = "%.1f", -- PNT-BTN-CDU-L + [449] = "%.1f", -- PNT-BTN-CDU-M + [450] = "%.1f", -- PNT-BTN-CDU-N + [451] = "%.1f", -- PNT-BTN-CDU-O + [452] = "%.1f", -- PNT-BTN-CDU-P + [453] = "%.1f", -- PNT-BTN-CDU-Q + [454] = "%.1f", -- PNT-BTN-CDU-R + [455] = "%.1f", -- PNT-BTN-CDU-S + [456] = "%.1f", -- PNT-BTN-CDU-T + [457] = "%.1f", -- PNT-BTN-CDU-U + [458] = "%.1f", -- PNT-BTN-CDU-V + [459] = "%.1f", -- PNT-BTN-CDU-W + [460] = "%.1f", -- PNT-BTN-CDU-X + [461] = "%.1f", -- PNT-BTN-CDU-Y + [462] = "%.1f", -- PNT-BTN-CDU-Z + [463] = "%1d", -- PNT-BTN-CDU-PG-UP/DN (Page Up/Down To Additional Pages When Available) + [466] = "%.1f", -- PNT-BTN-CDU-MK (Create Overhead Mark Point) + [467] = "%.1f", -- PNT-BTN-CDU-BCK (Erase Single Character. Hold for repeated erase) + [468] = "%.1f", -- PNT-BTN-CDU-SPC (Insert Space Into Scratchpad) + [469] = "%1d", -- PNT-BTN-CDU-BLANC-L/R (Scroll Waypoint Names During Search) + [470] = "%.1f", -- PNT-BTN-CDU-CLR (Erase Entire Scratchpad) + [471] = "%.1f", -- PNT-BTN-CDU-FA (Fault Acknowledge/Clear Fault Display) + [472] = "%1d", -- PNT-BTN-CDU-PLUS (Increment/Decrement Data Indicated With +/- Symbol) + -- AAP + [473] = "%0.1f", -- PNT-LVR-STEER-PT-SEL-SWITCH (Use Steerpoint From Active Flight Plan) + [474] = "%1d", -- PNT-TMB-STEER-SPRING-LD-SWITCH (Toggle Steerpoint) + [475] = "%0.1f", -- PNT-LEV-PAGE-SEL-SWITCH (CDU Page Select) + [476] = "%1d", -- PTR-TMB-CDU-SWITCH (CDU Power On/Off) + [477] = "%1d", -- PTR-TMB-EGI-SWITCH (EGI Power On/Off) + -- UFC + [531] = "%.1f", -- PNT-BTN-UFC-FWD + [532] = "%.1f", -- PNT-BTN-UFC-MID + [533] = "%.1f", -- PNT-BTN-UFC-AFT + -- Oxygen System Control Panel + [601] = "%1d", -- PTR-OXYGENCP-EMERGENCY (Oxygen Flow Emergency/Normal/Test Mask) + [602] = "%1d", -- PTR-OXYGENCP-OXYGEN-DILUTER (Oxygen Normal/100%) + [603] = "%1d", -- PTR-OXYGENCP-SUPPLY (Oxygen Supply On/Off) + -- Navigation Mode Select Panel + [605] = "%.1f", -- PTR-NMSP-HARS (HARS Backup Navigation Mode) + [607] = "%.1f", -- PTR-NMSP-EGI (EGI Navigation Mode) + [609] = "%.1f", -- PTR-NMSP-TISL (TISL No Function) + [611] = "%.1f", -- PTR-NMSP-STARTPT (STEERPT Mode) + [613] = "%.1f", -- PTR-NMSP-ANCHR (ANCHR Mode) + [615] = "%.1f", -- PTR-NMSP-TCN (TCN Mode) + [617] = "%.1f", -- PTR-NMSP-ILS (ILS Mode) + [621] = "%1d", -- PTR-NMSP-ABLE-STOW (ABLE-STOW ADI Localizer Bar) + -- TISL Control Panel + [622] = "%0.1f", -- PTR-TISLCP-MODE (TISL Mode) + [623] = "%1d", -- PTR-TISLCP-SLANT-RNG (Slant range) + [624] = "%.3f", -- PTR-TISLCP-ALT-ABV-TGT-WH1 (Altitude above target tens of thousands of feet) + [626] = "%.3f", -- PTR-TISLCP-ALT-ABV-TGT-WH2 (Altitude above target Units of thousands of feet) + [628] = "%.1f", -- PTR-TISLCP-ENTER (ENTER) + [630] = "%.1f", -- + [632] = "%.1f", -- PTR-TISLCP-BITE (BITE) + [634] = "%.1f", -- + [636] = "%0.2f", -- PTR-TISLCP-CODE-WH1 (TISL Code wheel 1) + [638] = "%0.2f", -- PTR-TISLCP-CODE-WH2 (TISL Code wheel 2) + [640] = "%0.2f", -- PTR-TISLCP-CODE-WH3 (TISL Code wheel 3) + [642] = "%0.2f", -- PTR-TISLCP-CODE-WH4 (TISL Code wheel 4) + [644] = "%1d", -- PTR-TISLCP-TISL-AUX (TISL AUX) + -- Fuel System Control Panel + -- Fuel Quantity Indicator and Selector + [645] = "%0.1f", -- PTR-FQIS-SELECT (Fuel display selector) + [646] = "%.1f", -- PTR-FQIS-TEST (Fuel Gauge Test) + -- CPT MECH + [651] = "%.1f", -- PTR-DOWNLOCK-OVERRIDE (Downlock Override) + [716] = "%1d", -- PNT-LNDGEAR (Landing Gear Lever) + [773] = "%1d", -- PTR-FLAPS (Flap Setting) + [654] = "%1d", -- PTR-ANTI-SKID (Anti Skid) + -- Light System Control Panel + [655] = "%0.1f", -- PTR-LIGHTS-LAND (Land Taxi Lights) + -- STALL + [704] = "%.1f", -- PTR-STALLWCP-STALL (Stall Volume) (Axis) {0.0,1.0} in 0.1 steps + [705] = "%.1f", -- PTR-STALLWCP-PEAK (Peak Volume) (Axis) {0.0,1.0} in 0.1 steps + -- Canopy + [712] = "%0.2f", -- PTR-CANOPY-OPEN (Canopy Open/Hold/Close) + -- Auxiliary Landing Gear Handle + [718] = "%1d", -- PTR-ARM-DWNC-L (Auxiliary Landing Gear Handle) + [722] = "%.1f", -- PTR-BTN-ARM-DWNC-L (Auxiliary Landing Gear Handle Lock button) + -- Arm Seat Handle + [733] = "%1d", -- PTR-ARM-SEAT-HANDLE (Seat Arm Handle) + -- + [772] = "%1d", -- PTR-EMER-BRKARM (Emergency Brake) + -- Secure Voice Comms Panel + [778] = "%1d", -- PTR-ZEROIZE-COVER (Zeroise Cover) + [779] = "%1d", -- PTR-ZEROIZE-SWITCH (Zeroise Switch) + [780] = "%1d", -- PTR-DELAY-SWITCH (Delay Switch) + [781] = "%0.1f", -- PTR-LVR-PANKY58-PLAIN (C/RAD switch) + [782] = "%0.1f", -- PTR-LVR-PANKY58-1TO5 (Full switch) + [783] = "%0.1f", -- PTR-LVR-PANKY58-MODE (Mode switch) + [784] = "%1d", -- PTR-TMB-PANKY58-POWER (Power switch) + -- Armament Ground Safety Override Switch + [709] = "%1d", -- PTR-ARMGS-COVER (Arm Ground Safety Override Cover) + [710] = "%1d", -- PTR-ARMGS-OVERRIDE-SWITCH (Arm Ground Safety Override Switch) + --Circuit Breaker Panel CBP + [666] = "%1d", -- PTR-CBP-AILERON-DISC-L (AILERON DISC L) + [667] = "%1d", -- PTR-CBP-AILERON-DISC-R (AILERON DISC R) + [668] = "%1d", -- PTR-CBP-SPS-RUDDER-AUTH-LIM (SPS & RUDDER AUTH LIMIT) + [669] = "%1d", -- PTR-CBP-ELEVATION-DISC-L (ELEVATION DISC L) + [670] = "%1d", -- PTR-CBP-ELEVATION-DISC-R (ELEVATION DISC R) + [671] = "%1d", -- PTR-CBP-AILERON-TAB-L (AILERON TAB L) + [672] = "%1d", -- PTR-CBP-AILERON-TAB-R (AILERON TAB R) + [673] = "%1d", -- PTR-CBP-EMER-FLAP (EMER FLAP) + [674] = "%1d", -- PTR-CBP-EMER-TRIM (EMER TRIM) + [675] = "%1d", -- PTR-CBP-LAND-GEAR (LAND GEAR) + [676] = "%1d", -- PTR-CBP-ENGINE-START-L (ENGINE START L) + [677] = "%1d", -- PTR-CBP-ENGINE-START-R (ENGINE START R) + [678] = "%1d", -- PTR-CBP-APU-CONT (APU CONT) + [679] = "%1d", -- PTR-CBP-ANG-IGNITOR-1 (ENG IGNITOR L/R-1) + [680] = "%1d", -- PTR-CBP-ANG-IGNITOR-2 (ENG IGNITOR L/R-2) + [681] = "%1d", -- PTR-CBP-EMER-FUEL-SHUTOFF-ENG-L (EMER FUEL SHUTOFF ENG L) + [682] = "%1d", -- PTR-CBP-EMER-FUEL-SHUTOFF-ENG-R (EMER FUEL SHUTOFF ENG R) + [683] = "%1d", -- PTR-CBP-DC-FUEL-PUMP (DC FUEL PUMP) + [684] = "%1d", -- PTR-CBP-BLEED-AIR-CONT-L (BLEED AIR CONT L) + [685] = "%1d", -- PTR-CBP-BLEED-AIR-CONT-R (BLEED AIR CONT R) + [686] = "%1d", -- PTR-CBP-EXT-STORES-JETT-1 (EXT STORES JETT 1) + [687] = "%1d", -- PTR-CBP-EXT-STORES-JETT-2 (EXT STORES JETT 2) + [688] = "%1d", -- PTR-CBP-STBY-ATT-IND (STBY ATT IND) + [689] = "%1d", -- PTR-CBP-MASTER-CAUT (MASTER CAUT) + [690] = "%1d", -- PTR-CBP-PITOT-HEAT-AC (PITOT HEAT AC) + [691] = "%1d", -- PTR-CBP-IFF (IFF) + [692] = "%1d", -- PTR-CBP-UHF-COMM (UHF COMM) + [693] = "%1d", -- PTR-CBP-INTER-COMM (INTER COMM) + [694] = "%1d", -- PTR-CBP-GENERATOR-CONT-L (GENERATOR CONT L) + [695] = "%1d", -- PTR-CBP-GENERATOR-CONT-R (GENERATOR CONT R) + [696] = "%1d", -- PTR-CBP-CONVERTER-L (CONVERTER L) + [697] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0A (AUX ESS BUS 0A) + [698] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0B (AUX ESS BUS 0B) + [699] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0C (AUX ESS BUS 0C) + [700] = "%1d", -- PTR-CBP-BATTERY-BUS-TRANS (BATTERY BUS TRANS) + [701] = "%1d", -- PTR-CBP-INVERTER-PWR (INVERTER PWR) + [702] = "%1d", -- PTR-CBP-INVERTER-CONT (INVERTER CONT) + [703] = "%1d", -- PTR-CBP-AUX-ESS-BUS-TIE (AUX ESS BUS TIE) + --AAU-34/A + [62] = "%1d", -- PNT-ALT-LEVR-L (Set Pressure) + [60] = "%1d", -- PNT-ALT-LEVR-R (ELECT/PNEU) + -- Seat Adjustment Button + [770] = "%1d", -- Seat Height Adjustment up/down + -- Arm Seat Handle + [787] = "%1d", -- Extend boarding ladder cover + [788] = "%1d", -- Extend boarding ladder button + -- Accelerometer + [904] = "%1d", -- Accelerometer Push to set + -- DVADR Remote Control Panel + [789] = "%1d", -- DVADR - Function control toggle switch + -- Anti-G suit valve test button + [776] = "%1d", -- Anti-G suit valve test button + -- Internal canopy actuator disengage lever + [777] = "%1d", -- Internal canopy actuator disengage lever + -- Canopy jettison lever + [785] = "%1d", -- Canopy jettison lever + [786] = "%1d", -- Canopy Jettison Lever Unlock Button + -- Antenna Select Panel + [706] = "%1d", -- IFF - antenna switch + [707] = "%1d", -- UHF - antenna switch + [708] = "%1d", -- EGI HQ TOD + -- RWR + [16] = "%.4f", -- RWR Adjust Display Brightness {0.15, 0.85} in 0.1 steps +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- Digital Clock + ------------------------------------------------- + local lDigitalClock = ExportScript.Tools.getListIndicatorValue(4) + + if lDigitalClock ~= nil and lDigitalClock.txtHours ~= nil then + local lCET = "" + if lDigitalClock.txtET ~= nil then + lCET = ";"..lDigitalClock.txtET + else + lCET = "; "..lDigitalClock.txtC + end + + ExportScript.Tools.SendData(2010, string.format("%s%s%s%s", lDigitalClock.txtHours, lDigitalClock.txtMinutes, lDigitalClock.txtSeconds, lCET)) + end +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- Digital Clock + ------------------------------------------------- + local lDigitalClock = ExportScript.Tools.getListIndicatorValue(4) + + if lDigitalClock ~= nil and lDigitalClock.txtHours ~= nil then + ExportScript.Tools.SendDataDAC("2010", string.format("%s%s%s", lDigitalClock.txtHours, lDigitalClock.txtMinutes, lDigitalClock.txtSeconds)) + end +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- AN/ARC-164 UHF and UHF Preset Channel + --------------------------------------------------- + local lUHF_RADIO = GetDevice(54) + if lUHF_RADIO:is_on() then + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((lUHF_RADIO:get_frequency()/1000000))) + + local lPresetChannel = ExportScript.Tools.getListIndicatorValue(10) + + ExportScript.Tools.SendData(2001, string.format("%s", lPresetChannel.txtPresetChannel)) + else + ExportScript.Tools.SendData(2000, " ") + ExportScript.Tools.SendData(2001, " ") + end + + -- AN/ARC-186(V) VHF AM and Preset Channel + --------------------------------------------------- + local lVHF_AM_RADIO = GetDevice(55) + ExportScript.Tools.SendData(2002, ExportScript.Tools.RoundFreqeuncy((lVHF_AM_RADIO:get_frequency()/1000000))) + + local lVHF_AM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendData(2003, lVHF_AM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(137), 2)]) + + -- AN/ARC-186(V) VHF FM and Preset Channel + ------------------------------------------------- + local lVHF_FM_RADIO = GetDevice(56) + ExportScript.Tools.SendData(2004, ExportScript.Tools.RoundFreqeuncy((lVHF_FM_RADIO:get_frequency()/1000000))) + + -- Preset is buggy + local lVHF_FM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendData(2005, lVHF_FM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(151), 2, "ceil")]) + + -- Calculate Total Fuel + -------------------------------------------------------- + local lFuelQuantityCounterTenthOfThous = mainPanelDevice:get_argument_value(90) * 10000 -- {0.0, 10.0} {0.0, 1.0} + local lFuelQuantityCounterThousands = mainPanelDevice:get_argument_value(91) * 1000 -- {0.0, 10.0} {0.0, 1.0} + local lFuelQuantityCounterHundreds = mainPanelDevice:get_argument_value(92) * 100 -- {0.0, 10.0} {0.0, 1.0} + -- orginal + local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds) / 10) + ExportScript.Tools.SendData("2007", string.format("%0.0f", lFuelQuantityCounter).."00") + -- exact + --local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds)) + --ExportScript.Tools.SendData("2007", string.format("%1d", lFuelQuantityCounter).."0") + + -- TACAN Channel + ------------------------------------------------- + ExportScript.Tools.SendData(2008, (mainPanelDevice:get_argument_value(263) == 0 and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(mainPanelDevice:get_argument_value(266) == 0 and "X" or "Y")) + ExportScript.Tools.SendData(266, (mainPanelDevice:get_argument_value(266) == 0 and "0" or "1")) + + -- ILS Channel + ------------------------------------------------- + local lILSFrequencyMHz = {[0]="108",[0.1]="109",[0.2]="110",[0.3]="111"} + local lILSFrequencyKHz = {[0]="10",[0.1]="15",[0.2]="30",[0.3]="35",[0.4]="50",[0.5]="55",[0.6]="70",[0.7]="75",[0.8]="90",[0.9]="95"} + + ExportScript.Tools.SendData(2009, lILSFrequencyMHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(251), 1)].."."..lILSFrequencyKHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(252), 1)]) + + -- CMSC 2020 (Text only) + ------------------------------------------------- + if mainPanelDevice:get_argument_value(364) > 0 then + local lCMSCTable = ExportScript.Tools.getListIndicatorValue(8) + + if lCMSCTable ~= nil and lCMSCTable.txt_JMR ~= nil then + ExportScript.Tools.SendData(2011, string.format("%s", lCMSCTable.txt_CHAFF_FLARE)) -- txt_CHAFF_FLARE + ExportScript.Tools.SendData(2012, string.format("%s", lCMSCTable.txt_JMR)) -- txt_JMR + ExportScript.Tools.SendData(2013, string.format("%s", lCMSCTable.txt_MWS)) -- txt_MWS + end + else + ExportScript.Tools.SendData(2011, " ") -- txt_CHAFF_FLARE + ExportScript.Tools.SendData(2012, " ") -- txt_JMR + ExportScript.Tools.SendData(2013, " ") -- txt_MWS + end + + -- CMSP + ------------------------------------------------- + if mainPanelDevice:get_argument_value(364) > 0 then + local lCMSP = ExportScript.Tools.getListIndicatorValue(7) + + local lCMSPTable = {"","","",""} + + if lCMSP ~= nil and lCMSP.txt_UP ~= nil then + lCMSP.txt_UP = lCMSP.txt_UP:gsub(" ", " ") + lCMSP.txt_UP = lCMSP.txt_UP.." " + lCMSPTable = ExportScript.Tools.split(lCMSP.txt_UP, "%s") + end + + --ExportScript.Tools.WriteToLog('lCMSP: '..ExportScript.Tools.dump(lCMSP)) + --ExportScript.Tools.WriteToLog('lCMSPTable: '..ExportScript.Tools.dump(lCMSPTable)) + + ExportScript.Tools.SendData(2014, string.format("%s", lCMSPTable[1])) + ExportScript.Tools.SendData(2015, string.format("%s", lCMSPTable[2])) + ExportScript.Tools.SendData(2016, string.format("%s", lCMSPTable[3])) + ExportScript.Tools.SendData(2017, string.format("%s", lCMSPTable[4])) + ExportScript.Tools.SendData(2018, string.format("%s", lCMSP.txt_DOWN1)) + ExportScript.Tools.SendData(2019, string.format("%s", lCMSP.txt_DOWN2)) + ExportScript.Tools.SendData(2020, string.format("%s", lCMSP.txt_DOWN3)) + ExportScript.Tools.SendData(2021, string.format("%s", lCMSP.txt_DOWN4)) + else + ExportScript.Tools.SendData(2014, " ") + ExportScript.Tools.SendData(2015, " ") + ExportScript.Tools.SendData(2016, " ") + ExportScript.Tools.SendData(2017, " ") + ExportScript.Tools.SendData(2018, " ") + ExportScript.Tools.SendData(2019, " ") + ExportScript.Tools.SendData(2020, " ") + ExportScript.Tools.SendData(2021, " ") + end + + -- Cockpit Light + ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {290,292,293}) + -- Engine Instruments Lights, Flight Instruments Lights, Auxiliary Instruments Lights + + -- CDU Data + ExportScript.AF.exportCDU() +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + -- AN/ARC-164 UHF and UHF Preset Channel + --------------------------------------------------- + local lUHF_RADIO = GetDevice(54) + if lUHF_RADIO:is_on() then + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((lUHF_RADIO:get_frequency()/1000000))) + + local lPresetChannel = ExportScript.Tools.getListIndicatorValue(10) + + ExportScript.Tools.SendDataDAC("2001", string.format("%s", lPresetChannel.txtPresetChannel)) + else + ExportScript.Tools.SendDataDAC("2000", "-") + ExportScript.Tools.SendDataDAC("2001", "-") + end + + -- AN/ARC-186(V) VHF AM and Preset Channel + --------------------------------------------------- + local lVHF_AM_RADIO = GetDevice(55) + ExportScript.Tools.SendDataDAC("2002", ExportScript.Tools.RoundFreqeuncy((lVHF_AM_RADIO:get_frequency()/1000000))) + + local lVHF_AM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendDataDAC("2003", lVHF_AM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(137), 2)]) + + -- AN/ARC-186(V) VHF FM and Preset Channel + ------------------------------------------------- + local lVHF_FM_RADIO = GetDevice(56) + ExportScript.Tools.SendDataDAC("2004", ExportScript.Tools.RoundFreqeuncy((lVHF_FM_RADIO:get_frequency()/1000000))) + + -- Preset is buggy + local lVHF_FM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendDataDAC("2005", lVHF_FM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(151), 2, "ceil")]) + + -- Pressure setting + -------------------------------------------------------- + local pressure_setting_3 = mainPanelDevice:get_argument_value(56) * 10000 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting_2 = mainPanelDevice:get_argument_value(57) * 1000 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting_1 = mainPanelDevice:get_argument_value(58) * 100 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting_0 = mainPanelDevice:get_argument_value(59) * 10 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting = ((pressure_setting_3 + pressure_setting_2 + pressure_setting_1 + pressure_setting_0) / 100) + ExportScript.Tools.SendDataDAC("2006", string.format("%5.2f", pressure_setting)) + + -- Calculate Total Fuel + -------------------------------------------------------- + local lFuelQuantityCounterTenthOfThous = mainPanelDevice:get_argument_value(90) * 10000 -- {0.0, 10.0} {0.0, 1.0} + local lFuelQuantityCounterThousands = mainPanelDevice:get_argument_value(91) * 1000 -- {0.0, 10.0} {0.0, 1.0} + local lFuelQuantityCounterHundreds = mainPanelDevice:get_argument_value(92) * 100 -- {0.0, 10.0} {0.0, 1.0} + -- orginal + local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds) / 10) + ExportScript.Tools.SendDataDAC("2007", string.format("%0.0f", lFuelQuantityCounter).."00") + -- exact + --local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds)) + --ExportScript.Tools.SendDataDAC("2007", string.format("%1d", lFuelQuantityCounter).."0") + + -- TACAN Channel + ------------------------------------------------- + ExportScript.Tools.SendDataDAC("2008", (mainPanelDevice:get_argument_value(263) == 0 and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)) + + -- ILS Channel + ------------------------------------------------- + local lILSFrequencyMHz = {[0]="108",[0.1]="109",[0.2]="110",[0.3]="111"} + local lILSFrequencyKHz = {[0]="10",[0.1]="15",[0.2]="30",[0.3]="35",[0.4]="50",[0.5]="55",[0.6]="70",[0.7]="75",[0.8]="90",[0.9]="95"} + + ExportScript.Tools.SendDataDAC("2009", lILSFrequencyMHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(251), 1)].."."..lILSFrequencyKHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(252), 1)]) + + -- generic Radio display and frequency rotarys + ------------------------------------------------- + -- genericRadioConf + ExportScript.genericRadioConf = {} + ExportScript.genericRadioConf['maxRadios'] = 3 -- numbers of aviables/supported radios + ExportScript.genericRadioConf[1] = {} -- first radio + ExportScript.genericRadioConf[1]['Name'] = "AN/ARC-164 UHF" -- name of radio + ExportScript.genericRadioConf[1]['DeviceID'] = 54 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[1]['minFrequency'] = 220.000 -- lowest frequency + ExportScript.genericRadioConf[1]['maxFrequency'] = 314.450 -- highest frequency + ExportScript.genericRadioConf[1]['Power'] = {} -- power button active + ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3008 -- power button id from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} + ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change + ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua + ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadioConf[2] = {} -- secound radio + ExportScript.genericRadioConf[2]['Name'] = "AN/ARC-186(V) VHF FM" -- name of radio + ExportScript.genericRadioConf[2]['DeviceID'] = 55 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[2]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[2]['minFrequency'] = 116.000 -- lowest frequency + ExportScript.genericRadioConf[2]['maxFrequency'] = 151.975 -- highest frequency + ExportScript.genericRadioConf[2]['Power'] = {} -- power button active + ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua + ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 137 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} + ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.01 -- minimal step for preset change + ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua + ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3006 -- load button id from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadioConf[3] = {} -- secound radio + ExportScript.genericRadioConf[3]['Name'] = "AN/ARC-186(V) VHF AM" -- name of radio + ExportScript.genericRadioConf[3]['DeviceID'] = 56 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[3]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[3]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[3]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[3]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[3]['minFrequency'] = 30.000 -- lowest frequency + ExportScript.genericRadioConf[3]['maxFrequency'] = 76.000 -- highest frequency + ExportScript.genericRadioConf[3]['Power'] = {} -- power button active + ExportScript.genericRadioConf[3]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua + ExportScript.genericRadioConf[3]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[3]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[3]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[3]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[3]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[3]['Preset']['ArgumentID'] = 151 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[3]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + ExportScript.genericRadioConf[3]['Preset']['ButtonID2'] = 3002 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[3]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} + ExportScript.genericRadioConf[3]['Preset']['Step'] = 0.01 -- minimal step for preset change + ExportScript.genericRadioConf[3]['Preset']['Step2'] = -0.01 -- minimal step for preset change + ExportScript.genericRadioConf[3]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[3]['Squelch']['ArgumentID'] = 148 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[3]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[3]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[3]['Squelch']['ValueOff'] = -1.0 -- squelch off value from cklickable.lua + ExportScript.genericRadioConf[3]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[3]['Load']['ButtonID'] = 3004 -- load button id from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[3]['ManualPreset']['ArgumentID'] = 149 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadio(nil, nil) + + -- NOT FOR ARCAZE + ------------------------------------------------- + --[[ + -- CMSC + ------------------------------------------------- + local lCMSC = list_indication(8) + lCMSC = lCMSC:gsub("-----------------------------------------", "") + lCMSC = lCMSC:gsub("txt_CHAFF_FLARE", "") + lCMSC = lCMSC:gsub("txt_JMR", "") + lCMSC = lCMSC:gsub("txt_MWS", "") + lCMSC = lCMSC:gsub("%c%c(%C)", "%1") + lCMSC = lCMSC.."\n" + + local lCMSCTable = {} + lCMSCTable = ExportScript.Tools.split(lCMSC, "%c") + + if lCMSCTable[2] ~= nil then + ExportScript.Tools.SendDataDAC("2011", lCMSCTable[1]) -- txt_CHAFF_FLARE + ExportScript.Tools.SendDataDAC("2012", lCMSCTable[2]) -- txt_JMR + ExportScript.Tools.SendDataDAC("2013", lCMSCTable[3]) -- txt_MWS + else + ExportScript.Tools.SendDataDAC("2011", "") -- txt_CHAFF_FLARE + ExportScript.Tools.SendDataDAC("2012", "") -- txt_JMR + ExportScript.Tools.SendDataDAC("2013", "") -- txt_MWS + end + + -- CMSP + ------------------------------------------------- + local lCMSP = list_indication(7) + lCMSP = lCMSP:gsub("-----------------------------------------", "") + lCMSP = lCMSP:gsub("txt_UP", "") + lCMSP = lCMSP:gsub("txt_DOWN1", "") + lCMSP = lCMSP:gsub("txt_DOWN2", "") + lCMSP = lCMSP:gsub("txt_DOWN3", "") + lCMSP = lCMSP:gsub("txt_DOWN4", "") + lCMSP = lCMSP:gsub("%c%c(%C)", "%1") + lCMSP = lCMSP.."\n" + + local lCMSPTable = {} + lCMSPTable = ExportScript.Tools.split(lCMSP, "%c") + + lCMSP = lCMSPTable[1].."\n"..table.concat(lCMSPTable, " ", 2) + ExportScript.Tools.SendDataDAC("2014", lCMSP) + ]] + + + --===================================================================================== + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + local ltmp1 = 0 + for ltmp2 = 0, 13, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + --ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end + ]] +--[[ + -- LITENING_INTERFACE + local lLITENING_INTERFACE = GetDevice(11) + ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:get_station '..ExportScript.Tools.dump(lLITENING_INTERFACE:get_station())) + --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:add_masked_region '..ExportScript.Tools.dump(lLITENING_INTERFACE:add_masked_region())) -- test the parameters + --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:set_laser_designation_code '..ExportScript.Tools.dump(lLITENING_INTERFACE:set_laser_designation_code())) -- test the parameters + --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:set_laser_spot_search_code '..ExportScript.Tools.dump(lLITENING_INTERFACE:set_laser_spot_search_code())) -- test the parameters + + -- ADI + local lADI = GetDevice(47) + ExportScript.Tools.WriteToLog('lADI:get_sideslip '..ExportScript.Tools.dump(lADI:get_sideslip())) + ExportScript.Tools.WriteToLog('lADI:get_bank '..ExportScript.Tools.dump(lADI:get_bank())) + ExportScript.Tools.WriteToLog('lADI:get_pitch '..ExportScript.Tools.dump(lADI:get_pitch())) + + -- SAI + local lSAI = GetDevice(48) + ExportScript.Tools.WriteToLog('lSAI:get_sideslip '..ExportScript.Tools.dump(lSAI:get_sideslip())) + ExportScript.Tools.WriteToLog('lSAI:get_bank '..ExportScript.Tools.dump(lSAI:get_bank())) + ExportScript.Tools.WriteToLog('lSAI:get_pitch '..ExportScript.Tools.dump(lSAI:get_pitch())) + + -- UHF_RADIO + local lUHF_RADIO = GetDevice(54) + ExportScript.Tools.WriteToLog('lUHF_RADIO:is_on '..ExportScript.Tools.dump(lUHF_RADIO:is_on())) + ExportScript.Tools.WriteToLog('lUHF_RADIO:get_frequency '..ExportScript.Tools.dump(lUHF_RADIO:get_frequency())) + --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_frequency '..ExportScript.Tools.dump(lUHF_RADIO:set_frequency())) -- test the parameters + --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_modulation '..ExportScript.Tools.dump(lUHF_RADIO:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_channel '..ExportScript.Tools.dump(lUHF_RADIO:set_channel())) -- test the parameters + + -- VHF_AM_RADIO + local lVHF_AM_RADIO = GetDevice(55) + ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:is_on '..ExportScript.Tools.dump(lVHF_AM_RADIO:is_on())) + ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:get_frequency '..ExportScript.Tools.dump(lVHF_AM_RADIO:get_frequency())) + --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_frequency '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_frequency())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_modulation '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_channel '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_channel())) -- test the parameters + + -- VHF_FM_RADIO + local lVHF_FM_RADIO = GetDevice(56) + ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:is_on '..ExportScript.Tools.dump(lVHF_FM_RADIO:is_on())) + ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:get_frequency '..ExportScript.Tools.dump(lVHF_FM_RADIO:get_frequency())) + --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_frequency '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_frequency())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_modulation '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_channel '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_channel())) -- test the parameters + + -- INTERCOM + local lINTERCOM = GetDevice(58) + ExportScript.Tools.WriteToLog('lINTERCOM:is_communicator_available '..ExportScript.Tools.dump(lINTERCOM:is_communicator_available())) + ExportScript.Tools.WriteToLog('lINTERCOM:get_noise_level '..ExportScript.Tools.dump(lINTERCOM:get_noise_level())) + ExportScript.Tools.WriteToLog('lINTERCOM:get_signal_level '..ExportScript.Tools.dump(lINTERCOM:get_signal_level())) + --ExportScript.Tools.WriteToLog('lINTERCOM:set_communicator '..ExportScript.Tools.dump(lINTERCOM:set_communicator())) -- test the parameters + --ExportScript.Tools.WriteToLog('lINTERCOM:set_voip_mode '..ExportScript.Tools.dump(lINTERCOM:set_voip_mode())) -- test the parameters +]] +--[[ + local ltmp1 = 0 + for ltmp2 = 1, 73, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] + +--getIndicatorData(3) + +end + +----------------------------- +-- Custom functions -- +----------------------------- + +----------------------------- +-- CDU Export based on Jan Boeckers DCS BIOS +-- https://github.com/dcs-bios/dcs-bios +----------------------------- + +ExportScript.AF.CDUIndicatorData={ + ACCEPT={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="ACCEPT", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ADI_ATT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ADI_ATT", + index=0, + statictext=true, + x=10, + y=4 + } + }, + ADI_ATT0={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ADI_ATT0", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ADI_ATT1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ADI_ATT1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ALIGN={ + { + alignment="LFT", + cdu_pages={ + "NAV", + "INS" + }, + id="ALIGN", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ALL={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="ALL", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ALL1={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="ALL1", + index=0, + statictext=false, + x=1, + y=3 + } + }, + ALL2={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="ALL2", + index=0, + statictext=true, + x=2, + y=3 + } + }, + ALM_REQ={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="ALM_REQ", + index=0, + statictext=true, + x=2, + y=8 + } + }, + ALM_REQs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="ALM_REQs", + index=0, + statictext=false, + x=11, + y=8 + } + }, + ALM_REQs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="ALM_REQs1", + index=0, + statictext=false, + x=11, + y=8 + } + }, + ALTITUDE={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ALTITUDE", + index=0, + statictext=true, + x=10, + y=8 + } + }, + ALT_ALIGN={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="ALT_ALIGN", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ALT_ST1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ALT_ST1", + index=0, + statictext=false, + x=23, + y=8 + } + }, + ALT_ST2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ALT_ST2", + index=0, + statictext=false, + x=23, + y=8 + } + }, + ALT_WIND_TEMP={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="ALT_WIND_TEMP", + index=0, + statictext=true, + x=2, + y=4 + } + }, + ANCHORDIS1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORDIS1", + index=0, + statictext=false, + x=20, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDIS1", + index=1, + statictext=false, + x=9, + y=8 + } + }, + ANCHORDIS2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORDIS2", + index=0, + statictext=false, + x=20, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDIS2", + index=1, + statictext=false, + x=9, + y=8 + } + }, + ANCHORDISMH={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORDISMH", + index=0, + statictext=true, + x=19, + y=9 + } + }, + ANCHORDMH1={ + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDMH1", + index=0, + statictext=false, + x=8, + y=7 + } + }, + ANCHORDMH2={ + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDMH2", + index=0, + statictext=false, + x=8, + y=7 + } + }, + ANCHORIdent1={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORIdent1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + ANCHORIdent2={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORIdent2", + index=0, + statictext=false, + x=2, + y=5 + } + }, + ANCHORIdentEntry={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORIdentEntry", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ANCHORMH1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORMH1", + index=0, + statictext=false, + x=16, + y=9 + } + }, + ANCHORMH2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORMH2", + index=0, + statictext=false, + x=16, + y=9 + } + }, + ANCHORMH3={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORMH3", + index=0, + statictext=false, + x=16, + y=9 + } + }, + ANCHORNumber1={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + ANCHORNumber2={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + ANCHORNumberEntry={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORNumberEntry", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ANCHORTOFRMode1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTOFRMode1", + index=0, + statictext=false, + x=13, + y=9 + } + }, + ANCHORTOFRMode2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTOFRMode2", + index=0, + statictext=false, + x=13, + y=9 + } + }, + ANCHORTOFRRotary={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTOFRRotary", + index=0, + statictext=true, + x=24, + y=9 + } + }, + ANCHORTTG1={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTTG1", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORTTG1", + index=1, + statictext=false, + x=6, + y=6 + } + }, + ANCHORTTG2={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTTG2", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORTTG2", + index=1, + statictext=false, + x=6, + y=6 + } + }, + ANCHORTTG3={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTTG3", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORTTG3", + index=1, + statictext=false, + x=6, + y=6 + } + }, + ANCHOR_PT={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHOR_PT", + index=0, + statictext=true, + x=24, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="ANCHOR_PT", + index=1, + statictext=true, + x=1, + y=5 + } + }, + ANN1={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN1", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN10={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN10", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN11={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN11", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN12={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN12", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN13={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN13", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN14={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN14", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN15={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN15", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN16={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN16", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN17={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN17", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN18={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN18", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN19={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN19", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN2={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN2", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN20={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN20", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN21={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN21", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN22={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN22", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN23={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN23", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN24={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN24", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN25={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN25", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN26={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN26", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN26a={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN26a", + index=0, + statictext=false, + x=7, + y=2 + } + }, + ANN27={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN27", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN28={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN28", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN29={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN29", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN3={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN3", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN30={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN30", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN31={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN31", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN32={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN32", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN33={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN33", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN34={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN34", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN35={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN35", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN36={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN36", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN37={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN37", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN38={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN38", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN39={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN39", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN4={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN4", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN40={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN40", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN41={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN41", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN42={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN42", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN43={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN43", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN5={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN5", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN6={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN6", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN7={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN7", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN8={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN8", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN9={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN9", + index=0, + statictext=false, + x=2, + y=2 + } + }, + APP={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="APP", + index=0, + statictext=true, + x=2, + y=9 + } + }, + AS={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS", + index=0, + statictext=true, + x=1, + y=3 + } + }, + AS_FLAG={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS_FLAG", + index=0, + statictext=false, + x=8, + y=4 + } + }, + AS_FLAG1={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS_FLAG1", + index=0, + statictext=false, + x=8, + y=4 + } + }, + AS_FLAG2={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS_FLAG2", + index=0, + statictext=false, + x=8, + y=4 + } + }, + ATT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ATT", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ATTRIBCRS0={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS0", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS1", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS2={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS2", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS3={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS3", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS4={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS4", + index=0, + statictext=false, + x=14, + y=9 + } + }, + ATTRIBCRS5={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS5", + index=0, + statictext=false, + x=14, + y=9 + } + }, + ATTRIBCRS6={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS6", + index=0, + statictext=false, + x=14, + y=9 + } + }, + ATTRIBSCS0={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSCS0", + index=0, + statictext=false, + x=6, + y=9 + } + }, + ATTRIBSCS1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSCS1", + index=0, + statictext=false, + x=6, + y=9 + } + }, + ATTRIBScale={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBScale1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBScale2={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale2", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBScale3={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale3", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBSteer={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSteer", + index=0, + statictext=false, + x=2, + y=8 + } + }, + ATTRIBSteer1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSteer1", + index=0, + statictext=false, + x=2, + y=8 + } + }, + ATTRIBSteer2={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSteer2", + index=0, + statictext=false, + x=2, + y=8 + } + }, + ATTRIBUTES={ + { + alignment="RGHT", + cdu_pages={ + "NAV" + }, + id="ATTRIBUTES", + index=0, + statictext=true, + x=24, + y=5 + } + }, + ATTRIBVNavMode={ + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBVNavMode", + index=0, + statictext=false, + x=23, + y=3 + } + }, + ATTRIBVNavMode1={ + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBVNavMode1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + ATTRIB_CRS_VAL={ + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIB_CRS_VAL", + index=0, + statictext=false, + x=23, + y=9 + } + }, + ActiveFP={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP", + index=0, + statictext=false, + x=1, + y=3 + } + }, + ActiveFP1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP1", + index=0, + statictext=false, + x=22, + y=3 + } + }, + ActiveFP2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP2", + index=0, + statictext=false, + x=1, + y=5 + } + }, + ActiveFP3={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP3", + index=0, + statictext=false, + x=22, + y=5 + } + }, + ActiveFP4={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP4", + index=0, + statictext=false, + x=1, + y=7 + } + }, + ActiveFP5={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP5", + index=0, + statictext=false, + x=22, + y=7 + } + }, + AlignMode_BATH={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_BATH", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignMode_Ground={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_Ground", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignMode_InFlt={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_InFlt", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignMode_SH={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_SH", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignModes={ + { + alignment="RGHT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignModes", + index=0, + statictext=false, + x=24, + y=3 + } + }, + AlignStatus={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatus", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignStatus1={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatus1", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignStatus2={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatus2", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignStatusAsterisk={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatusAsterisk", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignTime={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignTime", + index=0, + statictext=false, + x=7, + y=8 + } + }, + AlignTimeAsterisk={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignTimeAsterisk", + index=0, + statictext=false, + x=7, + y=8 + } + }, + Asterisk={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE", + "1ST_LINE" + }, + id="Asterisk", + index=0, + statictext=false, + x=1, + y=1 + } + }, + BATTERY={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="BATTERY", + index=0, + statictext=true, + x=2, + y=3 + } + }, + BATTERYs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="BATTERYs", + index=0, + statictext=false, + x=11, + y=3 + } + }, + BATTERYs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="BATTERYs1", + index=0, + statictext=false, + x=11, + y=3 + } + }, + BBCTL={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="BBCTL", + index=0, + statictext=true, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="BBCTL", + index=1, + statictext=true, + x=1, + y=3 + } + }, + BIT_INPR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="BIT_INPR", + index=0, + statictext=true, + x=2, + y=5 + } + }, + BIT_INPRs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="BIT_INPRs", + index=0, + statictext=false, + x=11, + y=5 + } + }, + BIT_INPRs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="BIT_INPRs1", + index=0, + statictext=false, + x=11, + y=5 + } + }, + BIT_TST={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="BIT_TST", + index=0, + statictext=true, + x=2, + y=8 + } + }, + BLOCK_NUM1={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM1", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM2={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM2", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM3={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM3", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM4={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM4", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM5={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM5", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM6={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM6", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM7={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM7", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM8={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM8", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BRACKETS={ + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="BRACKETS", + index=0, + statictext=true, + x=24, + y=9 + } + }, + BRACKETS_EL={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="BRACKETS_EL", + index=0, + statictext=false, + x=1, + y=5 + } + }, + BRACKETS_FIRSTCOORD={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_FIRSTCOORD", + index=0, + statictext=true, + x=1, + y=7 + } + }, + BRACKETS_INIT_WP_ID={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_INIT_WP_ID", + index=0, + statictext=true, + x=1, + y=5 + } + }, + BRACKETS_ITEM1={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="BRACKETS_ITEM1", + index=0, + statictext=true, + x=1, + y=3 + } + }, + BRACKETS_ITEM2={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="BRACKETS_ITEM2", + index=0, + statictext=true, + x=1, + y=5 + } + }, + BRACKETS_ITEM3={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="BRACKETS_ITEM3", + index=0, + statictext=true, + x=1, + y=7 + } + }, + BRACKETS_ITEM4={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="BRACKETS_ITEM4", + index=0, + statictext=true, + x=1, + y=9 + } + }, + BRACKETS_MH_DIS={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_MH_DIS", + index=0, + statictext=true, + x=24, + y=5 + } + }, + BRACKETS_MISC_DATA={ + { + alignment="RGHT", + cdu_pages={ + "INS" + }, + id="BRACKETS_MISC_DATA", + index=0, + statictext=true, + x=24, + y=9 + } + }, + BRACKETS_SECONDCOORD={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_SECONDCOORD", + index=0, + statictext=true, + x=1, + y=9 + } + }, + BRACKETS_WPNUM_LTR={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_WPNUM_LTR", + index=0, + statictext=true, + x=24, + y=9 + } + }, + BRACKETS_WPT_NAME={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="BRACKETS_WPT_NAME", + index=0, + statictext=true, + x=24, + y=3 + } + }, + BRANCH1={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="BRANCH1", + index=0, + statictext=false, + x=1, + y=3 + } + }, + BVL={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="BVL", + index=0, + statictext=true, + x=2, + y=7 + } + }, + BVL_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="BVL_VAL", + index=0, + statictext=true, + x=24, + y=7 + } + }, + BVU={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="BVU", + index=0, + statictext=true, + x=2, + y=6 + } + }, + BVU_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="BVU_VAL", + index=0, + statictext=true, + x=24, + y=6 + } + }, + B_ALT={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="B_ALT", + index=0, + statictext=true, + x=2, + y=5 + } + }, + B_ALT_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="B_ALT_ST", + index=0, + statictext=false, + x=21, + y=5 + } + }, + B_ALT_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="B_ALT_ST1", + index=0, + statictext=false, + x=21, + y=5 + } + }, + B_ALT_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="B_ALT_VAL", + index=0, + statictext=false, + x=13, + y=5 + } + }, + C={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="C", + index=0, + statictext=false, + x=23, + y=9 + } + }, + CADC={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC", + index=0, + statictext=true, + x=16, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC", + index=1, + statictext=true, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CADC", + index=2, + statictext=true, + x=18, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="CADC", + index=3, + statictext=true, + x=24, + y=3 + } + }, + CADC_SA={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_SA", + index=0, + statictext=false, + x=1, + y=5 + } + }, + CADC_ST0={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST0", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST0", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST0", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST1", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST1", + index=1, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST2={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST2", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST2", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST2", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST3={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST3", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST3", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST3", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST4={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST4", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST4", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST4", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS0", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CADC_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS1", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CADC_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS2", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CADC_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS3", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CBIT1={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT1", + index=0, + statictext=true, + x=2, + y=3 + } + }, + CBIT10={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT10", + index=0, + statictext=true, + x=14, + y=5 + } + }, + CBIT11={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT11", + index=0, + statictext=true, + x=14, + y=6 + } + }, + CBIT2={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT2", + index=0, + statictext=true, + x=2, + y=4 + } + }, + CBIT3={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT3", + index=0, + statictext=true, + x=2, + y=5 + } + }, + CBIT4={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT4", + index=0, + statictext=true, + x=2, + y=6 + } + }, + CBIT5={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT5", + index=0, + statictext=true, + x=2, + y=7 + } + }, + CBIT6={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT6", + index=0, + statictext=true, + x=2, + y=8 + } + }, + CBIT7={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT7", + index=0, + statictext=true, + x=2, + y=9 + } + }, + CBIT8={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT8", + index=0, + statictext=true, + x=14, + y=3 + } + }, + CBIT9={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT9", + index=0, + statictext=true, + x=14, + y=4 + } + }, + CDU={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU", + index=0, + statictext=true, + x=2, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU", + index=1, + statictext=true, + x=18, + y=6 + } + }, + CDUTEST={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="CDUTEST", + index=1, + statictext=true, + x=24, + y=5 + } + }, + CDUTEST1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST1", + index=0, + statictext=false, + x=9, + y=3 + } + }, + CDUTEST10={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST10", + index=0, + statictext=false, + x=9, + y=6 + } + }, + CDUTEST11={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST11", + index=0, + statictext=false, + x=9, + y=6 + } + }, + CDUTEST12={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST12", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CDUTEST13={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST13", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CDUTEST14={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST14", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CDUTEST15={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST15", + index=0, + statictext=false, + x=23, + y=4 + } + }, + CDUTEST16={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST16", + index=0, + statictext=false, + x=23, + y=4 + } + }, + CDUTEST17={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST17", + index=0, + statictext=false, + x=23, + y=4 + } + }, + CDUTEST2={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST2", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST3={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST3", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST4={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST4", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST5={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST5", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST6={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST6", + index=0, + statictext=false, + x=9, + y=5 + } + }, + CDUTEST7={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST7", + index=0, + statictext=false, + x=9, + y=5 + } + }, + CDUTEST8={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST8", + index=0, + statictext=false, + x=9, + y=5 + } + }, + CDUTEST9={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST9", + index=0, + statictext=false, + x=9, + y=6 + } + }, + CDU_LASTE={ + { + alignment="RGHT", + cdu_pages={ + "DTSUPLD" + }, + id="CDU_LASTE", + index=0, + statictext=true, + x=24, + y=3 + } + }, + CDU_ST0={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST0", + index=0, + statictext=false, + x=17, + y=3 + } + }, + CDU_ST1={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU_ST1", + index=0, + statictext=false, + x=23, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST1", + index=1, + statictext=false, + x=17, + y=3 + } + }, + CDU_ST3={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU_ST3", + index=0, + statictext=false, + x=23, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST3", + index=1, + statictext=false, + x=17, + y=3 + } + }, + CDU_ST4={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU_ST4", + index=0, + statictext=false, + x=23, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST4", + index=1, + statictext=false, + x=17, + y=3 + } + }, + CDU_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS0", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS1", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS2", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS3", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_SYS_ACTION={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_SYS_ACTION", + index=0, + statictext=false, + x=1, + y=7 + } + }, + CHASSIS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="CHASSIS", + index=0, + statictext=true, + x=2, + y=6 + } + }, + CHASSIS_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="CHASSIS_STATUS", + index=0, + statictext=true, + x=10, + y=6 + } + }, + CLEAR={ + { + alignment="RGHT", + cdu_pages={ + "BBCTL" + }, + id="CLEAR", + index=0, + statictext=true, + x=23, + y=7 + } + }, + CLEAR_SA={ + { + alignment="RGHT", + cdu_pages={ + "BBCTL" + }, + id="CLEAR_SA", + index=0, + statictext=false, + x=24, + y=7 + } + }, + CODE={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="CODE", + index=0, + statictext=true, + x=2, + y=4 + } + }, + CR_ON_OFF={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_ON_OFF", + index=0, + statictext=false, + x=5, + y=5 + } + }, + CR_ON_OFF1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_ON_OFF1", + index=0, + statictext=false, + x=5, + y=5 + } + }, + CR_SYMB={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_SYMB", + index=0, + statictext=false, + x=1, + y=5 + } + }, + CR_TXT={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_TXT", + index=0, + statictext=true, + x=2, + y=5 + } + }, + CSCI={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="CSCI", + index=0, + statictext=false, + x=4, + y=10 + } + }, + CTD={ + { + alignment="LFT", + cdu_pages={ + "POS" + }, + id="CTD", + index=0, + statictext=true, + x=2, + y=8 + } + }, + CTD_VAL={ + { + alignment="LFT", + cdu_pages={ + "POS" + }, + id="CTD_VAL", + index=0, + statictext=false, + x=16, + y=8 + } + }, + CoordFormat0={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="CoordFormat0", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="CoordFormat1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CurrFlightPlanLetter0={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrFlightPlanLetter0", + index=0, + statictext=false, + x=10, + y=1 + } + }, + CurrFlightPlanLetter1={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrFlightPlanLetter1", + index=0, + statictext=false, + x=10, + y=1 + } + }, + CurrFlightPlanNumber={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrFlightPlanNumber", + index=0, + statictext=false, + x=11, + y=1 + } + }, + CurrSteerPointAsterisk={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrSteerPointAsterisk", + index=0, + statictext=false, + x=14, + y=1 + } + }, + CurrSteerPointNumber={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrSteerPointNumber", + index=0, + statictext=false, + x=14, + y=1 + } + }, + DATA={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="DATA", + index=0, + statictext=true, + x=2, + y=4 + } + }, + DATA2={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="DATA2", + index=0, + statictext=true, + x=2, + y=6 + } + }, + DATA_OFF={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DATA_OFF", + index=0, + statictext=false, + x=21, + y=7 + } + }, + DATA_OFF1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DATA_OFF1", + index=0, + statictext=false, + x=21, + y=7 + } + }, + DATA_PUMP={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DATA_PUMP", + index=0, + statictext=true, + x=11, + y=7 + } + }, + DAY={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DAY", + index=0, + statictext=true, + x=16, + y=7 + } + }, + DAY_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DAY_DE", + index=0, + statictext=false, + x=24, + y=7 + } + }, + DAY_TXT={ + { + alignment="RGHT", + cdu_pages={ + "TIME" + }, + id="DAY_TXT", + index=0, + statictext=false, + x=23, + y=7 + } + }, + DECR={ + { + alignment="RGHT", + cdu_pages={ + "MXLOG" + }, + id="DECR", + index=0, + statictext=true, + x=23, + y=3 + } + }, + DEF_ATT={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="DEF_ATT", + index=0, + statictext=true, + x=2, + y=3 + } + }, + DEGREE1={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="DEGREE1", + index=0, + statictext=true, + x=17, + y=5 + } + }, + DEGREE2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="DEGREE2", + index=0, + statictext=true, + x=17, + y=7 + } + }, + DEGREE3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="DEGREE3", + index=0, + statictext=true, + x=17, + y=9 + } + }, + DIS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="DIS", + index=0, + statictext=true, + x=16, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="DIS", + index=1, + statictext=true, + x=7, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="DIS", + index=2, + statictext=true, + x=2, + y=8 + } + }, + DISPLAY_TEST={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="DISPLAY_TEST", + index=0, + statictext=true, + x=1, + y=3 + } + }, + DISPLAY_TEST1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="DISPLAY_TEST1", + index=0, + statictext=true, + x=2, + y=5 + } + }, + DISPLAY_TEST_VALUES={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="DISPLAY_TEST_VALUES", + index=0, + statictext=true, + x=2, + y=6 + } + }, + DIVERT={ + { + alignment="RGHT", + cdu_pages={ + "NAV" + }, + id="DIVERT", + index=0, + statictext=true, + x=24, + y=9 + } + }, + DIVERTDIV={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV", + index=0, + statictext=false, + x=5, + y=4 + } + }, + DIVERTDIV1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV1", + index=0, + statictext=false, + x=5, + y=6 + } + }, + DIVERTDIV2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV2", + index=0, + statictext=false, + x=5, + y=8 + } + }, + DIVERTDIV3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV3", + index=0, + statictext=false, + x=5, + y=10 + } + }, + DIVERTDistance={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance", + index=0, + statictext=false, + x=6, + y=4 + } + }, + DIVERTDistance1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance1", + index=0, + statictext=false, + x=6, + y=6 + } + }, + DIVERTDistance2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance2", + index=0, + statictext=false, + x=6, + y=8 + } + }, + DIVERTDistance3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance3", + index=0, + statictext=false, + x=6, + y=10 + } + }, + DIVERTMH={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH", + index=0, + statictext=false, + x=2, + y=4 + } + }, + DIVERTMH1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + DIVERTMH2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH2", + index=0, + statictext=false, + x=2, + y=8 + } + }, + DIVERTMH3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH3", + index=0, + statictext=false, + x=2, + y=10 + } + }, + DIVERTName={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName", + index=0, + statictext=false, + x=7, + y=3 + } + }, + DIVERTName1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName1", + index=0, + statictext=false, + x=7, + y=5 + } + }, + DIVERTName2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName2", + index=0, + statictext=false, + x=7, + y=7 + } + }, + DIVERTName3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName3", + index=0, + statictext=false, + x=7, + y=9 + } + }, + DIVERTNumber={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + DIVERTNumber1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + DIVERTNumber2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber2", + index=0, + statictext=false, + x=2, + y=7 + } + }, + DIVERTNumber3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber3", + index=0, + statictext=false, + x=2, + y=9 + } + }, + DIVERTSteer={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer", + index=0, + statictext=false, + x=23, + y=3 + } + }, + DIVERTSteer1={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + DIVERTSteer2={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer2", + index=0, + statictext=false, + x=23, + y=7 + } + }, + DIVERTSteer3={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer3", + index=0, + statictext=false, + x=23, + y=9 + } + }, + DIVERTSteerNOT={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT", + index=0, + statictext=false, + x=1, + y=3 + } + }, + DIVERTSteerNOT1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT1", + index=0, + statictext=false, + x=1, + y=5 + } + }, + DIVERTSteerNOT2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT2", + index=0, + statictext=false, + x=1, + y=7 + } + }, + DIVERTSteerNOT3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT3", + index=0, + statictext=false, + x=1, + y=9 + } + }, + DIVERTTTG={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG", + index=0, + statictext=false, + x=17, + y=4 + } + }, + DIVERTTTG1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG1", + index=0, + statictext=false, + x=17, + y=4 + } + }, + DIVERTTTG2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG2", + index=0, + statictext=false, + x=17, + y=6 + } + }, + DIVERTTTG3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG3", + index=0, + statictext=false, + x=17, + y=6 + } + }, + DIVERTTTG4={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG4", + index=0, + statictext=false, + x=17, + y=8 + } + }, + DIVERTTTG5={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG5", + index=0, + statictext=false, + x=17, + y=8 + } + }, + DIVERTTTG6={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG6", + index=0, + statictext=false, + x=17, + y=10 + } + }, + DIVERTTTG7={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG7", + index=0, + statictext=false, + x=17, + y=10 + } + }, + DIVERTTTGText={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText", + index=0, + statictext=false, + x=12, + y=4 + } + }, + DIVERTTTGText1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText1", + index=0, + statictext=false, + x=12, + y=6 + } + }, + DIVERTTTGText2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText2", + index=0, + statictext=false, + x=12, + y=8 + } + }, + DIVERTTTGText3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText3", + index=0, + statictext=false, + x=12, + y=10 + } + }, + DKI={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="DKI", + index=0, + statictext=false, + x=1, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DKI", + index=1, + statictext=true, + x=1, + y=3 + } + }, + DMH={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="DMH", + index=0, + statictext=true, + x=2, + y=7 + } + }, + DP_RTR={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1" + }, + id="DP_RTR", + index=0, + statictext=true, + x=24, + y=7 + } + }, + DSW1={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW1", + index=0, + statictext=true, + x=2, + y=4 + } + }, + DSW1_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW1_VAL", + index=0, + statictext=true, + x=24, + y=4 + } + }, + DSW2={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW2", + index=0, + statictext=true, + x=2, + y=5 + } + }, + DSW2_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW2_VAL", + index=0, + statictext=true, + x=24, + y=5 + } + }, + DTCID={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTCID", + index=0, + statictext=true, + x=2, + y=3 + } + }, + DTOT={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="DTOT", + index=0, + statictext=true, + x=24, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="DTOT", + index=1, + statictext=true, + x=1, + y=9 + } + }, + DTOT_ADJUST={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DTOT_ADJUST", + index=0, + statictext=true, + x=1, + y=3 + } + }, + DTOT_ADJUST_TXT={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DTOT_ADJUST_TXT", + index=0, + statictext=false, + x=2, + y=4 + } + }, + DTS={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS", + index=0, + statictext=true, + x=2, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS", + index=1, + statictext=true, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="DTS", + index=2, + statictext=true, + x=1, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "DTSDNLD", + "DTSSTAT", + "DTSUPLD" + }, + id="DTS", + index=3, + statictext=true, + x=24, + y=9 + } + }, + DTSAS={ + { + alignment="RGHT", + cdu_pages={ + "SYS1" + }, + id="DTSAS", + index=0, + statictext=true, + x=24, + y=7 + } + }, + DTSAS_EGI_STATUS={ + { + alignment="RGHT", + cdu_pages={ + "1ST_LINE" + }, + id="DTSAS_EGI_STATUS", + index=0, + statictext=false, + x=23, + y=1 + } + }, + DTSAS_HPU1={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_HPU1", + index=0, + statictext=false, + x=10, + y=7 + } + }, + DTSAS_ON_OFF={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_ON_OFF", + index=0, + statictext=false, + x=8, + y=3 + } + }, + DTSAS_ON_OFF1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_ON_OFF1", + index=0, + statictext=false, + x=8, + y=3 + } + }, + DTSAS_OWC={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_OWC", + index=0, + statictext=false, + x=20, + y=9 + } + }, + DTSAS_OWC1={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_OWC1", + index=0, + statictext=false, + x=20, + y=9 + } + }, + DTSAS_ST0={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTSAS_ST0", + index=0, + statictext=false, + x=15, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTSAS_ST0", + index=1, + statictext=false, + x=19, + y=6 + } + }, + DTSAS_ST2={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTSAS_ST2", + index=0, + statictext=false, + x=15, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTSAS_ST2", + index=1, + statictext=false, + x=19, + y=6 + } + }, + DTSAS_ST3={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTSAS_ST3", + index=0, + statictext=false, + x=15, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTSAS_ST3", + index=1, + statictext=false, + x=19, + y=6 + } + }, + DTSAS_SYMB={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_SYMB", + index=0, + statictext=false, + x=1, + y=3 + } + }, + DTSAS_TXT={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_TXT", + index=0, + statictext=true, + x=2, + y=3 + } + }, + DTSAS_VPU1={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_VPU1", + index=0, + statictext=false, + x=9, + y=8 + } + }, + DTSDNLD={ + { + alignment="RGHT", + cdu_pages={ + "DTS" + }, + id="DTSDNLD", + index=0, + statictext=true, + x=24, + y=5 + } + }, + DTSSTAT={ + { + alignment="RGHT", + cdu_pages={ + "DTS" + }, + id="DTSSTAT", + index=0, + statictext=true, + x=24, + y=7 + } + }, + DTSUPLD={ + { + alignment="RGHT", + cdu_pages={ + "DTS" + }, + id="DTSUPLD", + index=0, + statictext=true, + x=24, + y=3 + } + }, + DTSUPLOAD={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="DTSUPLOAD", + index=0, + statictext=true, + x=1, + y=9 + } + }, + DTS_LB={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_LB", + index=0, + statictext=true, + x=18, + y=3 + } + }, + DTS_SA={ + { + alignment="RGHT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_SA", + index=0, + statictext=false, + x=24, + y=3 + } + }, + DTS_ST0={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST0", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST0", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST0", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST0", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST0", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST1={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST1", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST1", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST1", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST1", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST1", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST2={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST2", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST2", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST2", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST2", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST2", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST3={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST3", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST3", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST3", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST3", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST3", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST4={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST4", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST4", + index=1, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST4", + index=2, + statictext=false, + x=23, + y=4 + } + }, + DTS_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS0", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTS_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS1", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTS_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS2", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTS_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS3", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTTG={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="DTTG", + index=0, + statictext=true, + x=1, + y=7 + } + }, + DUR={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="DUR", + index=0, + statictext=true, + x=1, + y=7 + } + }, + DUR_VALS={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="DUR_VALS", + index=0, + statictext=true, + x=9, + y=7 + } + }, + EEPROM={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="EEPROM", + index=0, + statictext=false, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="EEPROM", + index=1, + statictext=true, + x=1, + y=5 + } + }, + EGI={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGI", + index=0, + statictext=true, + x=1, + y=3 + } + }, + EGIAvailableMode={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="EGIAvailableMode", + index=0, + statictext=false, + x=24, + y=3 + } + }, + EGIAvailableMode1={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGIAvailableMode1", + index=0, + statictext=false, + x=24, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="EGIAvailableMode1", + index=1, + statictext=false, + x=24, + y=7 + } + }, + EGIAvailableMode2={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGIAvailableMode2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + EGICurrentMode={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EGICurrentMode", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGICurrentMode", + index=1, + statictext=false, + x=17, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="EGICurrentMode", + index=2, + statictext=false, + x=19, + y=3 + } + }, + EGICurrentMode1={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EGICurrentMode1", + index=0, + statictext=false, + x=5, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGICurrentMode1", + index=1, + statictext=false, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="EGICurrentMode1", + index=2, + statictext=false, + x=20, + y=7 + } + }, + EGICurrentMode2={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGICurrentMode2", + index=0, + statictext=false, + x=20, + y=7 + } + }, + EGIStatus={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus1", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus1", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus1", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus1", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus1", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus10={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus10", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus10", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus10", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus11={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus11", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus11", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus11", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus12={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus12", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus12", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus12", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus13={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus13", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus13", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus13", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus14={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus14", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus14", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus14", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus15={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus15", + index=0, + statictext=false, + x=17, + y=5 + } + }, + EGIStatus16={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus16", + index=0, + statictext=false, + x=17, + y=5 + } + }, + EGIStatus2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus2", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus2", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus2", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus2", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus2", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus3", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus3", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus3", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus3", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus3", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus4", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus4", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus4", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus4", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus4", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus5", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus5", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus5", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus6", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus6", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus6", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus7", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus7", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus7", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus8", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus8", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus8", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus9", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus9", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus9", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGITEST={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="EGITEST", + index=0, + statictext=true, + x=1, + y=3 + } + }, + EGI_BLD_FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM1", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM2", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM3", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM4", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM5", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM6", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM7", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM8", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM9", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_GPS_EHE={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EHE", + index=0, + statictext=false, + x=15, + y=4 + } + }, + EGI_GPS_EHE1={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EHE1", + index=0, + statictext=false, + x=15, + y=4 + } + }, + EGI_GPS_EVE={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EVE", + index=0, + statictext=false, + x=15, + y=5 + } + }, + EGI_GPS_EVE1={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EVE1", + index=0, + statictext=false, + x=15, + y=5 + } + }, + EGI_GPS_FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM1", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM1", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM2", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM2", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM3", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM3", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM4", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM4", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM5", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM5", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM6", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM6", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM7", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM7", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM8", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM8", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM9", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM9", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_ST3={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST3", + index=0, + statictext=false, + x=15, + y=7 + } + }, + EGI_GPS_ST31={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST31", + index=0, + statictext=false, + x=15, + y=7 + } + }, + EGI_GPS_ST5={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST5", + index=0, + statictext=false, + x=15, + y=6 + } + }, + EGI_GPS_ST51={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST51", + index=0, + statictext=false, + x=15, + y=6 + } + }, + EGI_INS_FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM1", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM2", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM3", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM4", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM5", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM6", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM7", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM8", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM9", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_OFP={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGI_OFP", + index=0, + statictext=true, + x=2, + y=7 + } + }, + EGI_SA={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGI_SA", + index=0, + statictext=false, + x=1, + y=7 + } + }, + EHE={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EHE", + index=0, + statictext=true, + x=8, + y=4 + } + }, + EL={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="EL", + index=0, + statictext=true, + x=2, + y=5 + } + }, + ELEVATION={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="ELEVATION", + index=0, + statictext=true, + x=16, + y=4 + } + }, + EMPTY={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="EMPTY", + index=0, + statictext=true, + x=3, + y=5 + } + }, + ERASE={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="ERASE", + index=0, + statictext=true, + x=2, + y=7 + } + }, + ERASEFL={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="ERASEFL", + index=0, + statictext=true, + x=13, + y=4 + } + }, + ERASEFs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="ERASEFs", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ERASEFs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="ERASEFs1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ERASE_SA={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="ERASE_SA", + index=0, + statictext=false, + x=1, + y=7 + } + }, + EVE={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EVE", + index=0, + statictext=true, + x=8, + y=5 + } + }, + EX={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="EX", + index=0, + statictext=true, + x=2, + y=7 + } + }, + EstimatedDrift={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="EstimatedDrift", + index=0, + statictext=false, + x=13, + y=8 + } + }, + F={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="F", + index=0, + statictext=false, + x=23, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="F", + index=1, + statictext=true, + x=5, + y=4 + } + }, + FAST={ + { + alignment="RGHT", + cdu_pages={ + "ALTALGN" + }, + id="FAST", + index=0, + statictext=true, + x=23, + y=3 + } + }, + FAULT={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="FAULT", + index=0, + statictext=true, + x=2, + y=3 + } + }, + FAUL_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="FAUL_STATUS0", + index=0, + statictext=false, + x=8, + y=3 + } + }, + FAUL_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="FAUL_STATUS1", + index=0, + statictext=false, + x=8, + y=3 + } + }, + FLDINFO={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="FLDINFO", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FLDINFO_APP_UHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_APP_UHF", + index=0, + statictext=false, + x=7, + y=9 + } + }, + FLDINFO_APP_VHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_APP_VHF", + index=0, + statictext=false, + x=15, + y=9 + } + }, + FLDINFO_BR={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="FLDINFO_BR", + index=0, + statictext=false, + x=24, + y=3 + } + }, + FLDINFO_ELEV={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ELEV", + index=0, + statictext=false, + x=21, + y=4 + } + }, + FLDINFO_ID={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ID", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FLDINFO_ILS1={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ILS1", + index=0, + statictext=false, + x=7, + y=7 + } + }, + FLDINFO_ILS2={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ILS2", + index=0, + statictext=false, + x=15, + y=7 + } + }, + FLDINFO_NUM={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_NUM", + index=0, + statictext=false, + x=16, + y=3 + } + }, + FLDINFO_Name={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_Name", + index=0, + statictext=false, + x=2, + y=4 + } + }, + FLDINFO_RWY_HD={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_RWY_HD", + index=0, + statictext=false, + x=7, + y=6 + } + }, + FLDINFO_RWY_HD2={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_RWY_HD2", + index=0, + statictext=false, + x=15, + y=6 + } + }, + FLDINFO_RWY_LNG={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_RWY_LNG", + index=0, + statictext=false, + x=19, + y=6 + } + }, + FLDINFO_TAC_CHAN={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TAC_CHAN", + index=0, + statictext=false, + x=7, + y=8 + } + }, + FLDINFO_TAC_OFF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TAC_OFF", + index=0, + statictext=false, + x=11, + y=8 + } + }, + FLDINFO_TWR_UHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TWR_UHF", + index=0, + statictext=false, + x=7, + y=10 + } + }, + FLDINFO_TWR_VHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TWR_VHF", + index=0, + statictext=false, + x=15, + y=10 + } + }, + ["FLIGHT DRIVER"]={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT DRIVER", + index=0, + statictext=true, + x=5, + y=4 + } + }, + FLIGHT_DRIVER={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="FLIGHT_DRIVER", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FLIGHT_DRIVER1={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="FLIGHT_DRIVER1", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER1", + index=1, + statictext=false, + x=6, + y=5 + } + }, + FLIGHT_DRIVER2={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="FLIGHT_DRIVER2", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER2", + index=1, + statictext=false, + x=6, + y=5 + } + }, + FLIGHT_DRIVER3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER3", + index=0, + statictext=false, + x=6, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "POS" + }, + id="FLIGHT_DRIVER3", + index=1, + statictext=false, + x=23, + y=3 + } + }, + FLIGHT_DRIVER4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER4", + index=0, + statictext=false, + x=6, + y=5 + } + }, + FLTR_INS={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="FLTR_INS", + index=0, + statictext=true, + x=2, + y=9 + } + }, + FLTR_INSs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="FLTR_INSs", + index=0, + statictext=false, + x=11, + y=9 + } + }, + FLTR_INSs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="FLTR_INSs1", + index=0, + statictext=false, + x=11, + y=9 + } + }, + FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FOM", + index=0, + statictext=true, + x=11, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="FOM", + index=1, + statictext=true, + x=8, + y=3 + } + }, + FOM_LINE={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FOM_LINE", + index=0, + statictext=true, + x=2, + y=8 + } + }, + FPAction={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPAction", + index=0, + statictext=false, + x=1, + y=3 + } + }, + FPAction1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPAction1", + index=0, + statictext=false, + x=1, + y=5 + } + }, + FPAction2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPAction2", + index=0, + statictext=false, + x=1, + y=7 + } + }, + FPBUILDBranch={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPBUILDBranch", + index=0, + statictext=false, + x=24, + y=3 + } + }, + FPBUILDBranch1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPBUILDBranch1", + index=0, + statictext=false, + x=24, + y=5 + } + }, + FPBUILDBranch2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPBUILDBranch2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + FPMENUPageNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPMENUPageNumber", + index=0, + statictext=false, + x=20, + y=10 + } + }, + FPBUILDPageNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPMENUPageNumber", + index=0, + statictext=false, + x=20, + y=10 + } + }, + FPBUILDPlanName={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPBUILDPlanName", + index=0, + statictext=false, + x=5, + y=3 + } + }, + FPBUILDPlanNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPBUILDPlanNumber", + index=0, + statictext=false, + x=6, + y=4 + } + }, + FPMode={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode", + index=0, + statictext=false, + x=5, + y=3 + } + }, + FPMode1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode1", + index=0, + statictext=false, + x=5, + y=3 + } + }, + FPMode2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode2", + index=0, + statictext=false, + x=5, + y=5 + } + }, + FPMode3={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode3", + index=0, + statictext=false, + x=5, + y=5 + } + }, + FPMode4={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode4", + index=0, + statictext=false, + x=5, + y=7 + } + }, + FPMode5={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode5", + index=0, + statictext=false, + x=5, + y=7 + } + }, + FPName={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPName", + index=0, + statictext=false, + x=11, + y=3 + } + }, + FPName1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPName1", + index=0, + statictext=false, + x=11, + y=5 + } + }, + FPName2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPName2", + index=0, + statictext=false, + x=11, + y=7 + } + }, + FPNameInput={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNameInput", + index=0, + statictext=false, + x=1, + y=9 + } + }, + FPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FPNumber1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNumber1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + FPNumber2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNumber2", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FPP={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="FPP", + index=0, + statictext=false, + x=1, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="FPP", + index=1, + statictext=true, + x=1, + y=6 + } + }, + FROM_CF_RTRY={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_CF_RTRY", + index=0, + statictext=true, + x=24, + y=3 + } + }, + FROM_CoordFormat0={ + { + alignment="RGHT", + cdu_pages={ + "FROM" + }, + id="FROM_CoordFormat0", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FROM_CoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "FROM" + }, + id="FROM_CoordFormat1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FROM_DataEntry0={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_DataEntry0", + index=0, + statictext=false, + x=1, + y=3 + } + }, + FROM_DataEntry1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_DataEntry1", + index=0, + statictext=false, + x=1, + y=5 + } + }, + FROM_Lat={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Lat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_Lat1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Lat1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_Long={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Long", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_Long1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Long1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_NUMBER={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="FROM_NUMBER", + index=0, + statictext=false, + x=20, + y=2 + } + }, + FROM_PT={ + { + alignment="RGHT", + cdu_pages={ + "WPMENU" + }, + id="FROM_PT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + FROM_PointArea={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointArea", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_PointArea1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointArea1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_PointGrid={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointGrid", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_PointGrid1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointGrid1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_TITLE={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="FROM_TITLE", + index=0, + statictext=false, + x=15, + y=2 + } + }, + FROM_WptIdent={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptIdent", + index=0, + statictext=false, + x=2, + y=5 + } + }, + FROM_WptIdent1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptIdent1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + FROM_WptNumber={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FROM_WptNumber1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FT_BRACKETS={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="FT_BRACKETS", + index=0, + statictext=false, + x=24, + y=9 + } + }, + FT_TXT={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="FT_TXT", + index=0, + statictext=true, + x=23, + y=9 + } + }, + FULLText={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FULLText", + index=0, + statictext=false, + x=10, + y=9 + } + }, + FWI={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2", + "GPSBIT3", + "GPSBIT4" + }, + id="FWI", + index=0, + statictext=true, + x=2, + y=3 + } + }, + GC={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="GC", + index=0, + statictext=true, + x=2, + y=8 + } + }, + GC1={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="GC1", + index=0, + statictext=true, + x=24, + y=8 + } + }, + GCAS_LAST_SOURCE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="GCAS_LAST_SOURCE", + index=0, + statictext=false, + x=2, + y=9 + } + }, + GCAS_MSGS={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="GCAS_MSGS", + index=0, + statictext=true, + x=2, + y=9 + } + }, + GCAS_MSGS1={ + { + alignment="RGHT", + cdu_pages={ + "LASTE" + }, + id="GCAS_MSGS1", + index=0, + statictext=false, + x=16, + y=9 + } + }, + GEM_OFP={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GEM_OFP", + index=0, + statictext=true, + x=2, + y=9 + } + }, + GEM_SA={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GEM_SA", + index=0, + statictext=false, + x=1, + y=9 + } + }, + GMT_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_DE", + index=0, + statictext=false, + x=24, + y=9 + } + }, + GMT_LCL1={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_LCL1", + index=0, + statictext=false, + x=12, + y=9 + } + }, + GMT_LCL2={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_LCL2", + index=0, + statictext=false, + x=12, + y=9 + } + }, + GMT_LCL_Time={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_LCL_Time", + index=0, + statictext=false, + x=16, + y=9 + } + }, + GPS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPS", + index=0, + statictext=true, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="GPS", + index=1, + statictext=true, + x=1, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1", + "GPSBIT2", + "GPSBIT3", + "GPSKEYS", + "GPSSTAT2" + }, + id="GPS", + index=2, + statictext=true, + x=24, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="GPS", + index=3, + statictext=true, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPS", + index=4, + statictext=true, + x=14, + y=3 + } + }, + GPS1={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="GPS1", + index=0, + statictext=false, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5", + "GPSSTAT1" + }, + id="GPS1", + index=1, + statictext=true, + x=24, + y=9 + } + }, + GPS2={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="GPS2", + index=0, + statictext=true, + x=2, + y=5 + } + }, + GPSAltitude={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="GPSAltitude", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="GPSAltitude1", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="GPSAltitude2", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude3={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="GPSAltitude3", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude4={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="GPSAltitude4", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSBIT={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="GPSBIT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + GPSKEYS={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="GPSKEYS", + index=0, + statictext=true, + x=24, + y=9 + } + }, + GPSSTAT={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="GPSSTAT", + index=0, + statictext=true, + x=24, + y=3 + } + }, + GPSStatus={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus1={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus1", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus1", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus2={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus2", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus2", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus3={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus3", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus3", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus4={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus4", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus4", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPS_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_SA", + index=0, + statictext=true, + x=2, + y=3 + } + }, + GPS_SA1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_SA1", + index=0, + statictext=false, + x=1, + y=3 + } + }, + GPS_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPS_STATUS", + index=0, + statictext=true, + x=20, + y=3 + } + }, + GPS_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS0", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GPS_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS1", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GPS_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS2", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GPS_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS3", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GROUND={ + { + alignment="RGHT", + cdu_pages={ + "ALIGN" + }, + id="GROUND", + index=0, + statictext=true, + x=23, + y=3 + } + }, + GUK_USER={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GUK_USER", + index=0, + statictext=true, + x=14, + y=6 + } + }, + GUK_USERs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GUK_USERs", + index=0, + statictext=false, + x=23, + y=6 + } + }, + GUK_USERs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GUK_USERs1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + G_ALT={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="G_ALT", + index=0, + statictext=true, + x=2, + y=9 + } + }, + HARS={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="HARS", + index=0, + statictext=true, + x=18, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="HARS", + index=1, + statictext=true, + x=18, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "SYS1" + }, + id="HARS", + index=2, + statictext=true, + x=24, + y=5 + } + }, + HARS_I_F={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="HARS_I_F", + index=0, + statictext=false, + x=13, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="HARS_I_F", + index=1, + statictext=true, + x=13, + y=3 + } + }, + HARS_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="HARS_ST2", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="HARS_ST2", + index=1, + statictext=false, + x=23, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="HARS_ST2", + index=2, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="HARS_ST2", + index=3, + statictext=false, + x=11, + y=7 + } + }, + HARS_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="HARS_ST3", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="HARS_ST3", + index=1, + statictext=false, + x=23, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="HARS_ST3", + index=2, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="HARS_ST3", + index=3, + statictext=false, + x=11, + y=7 + } + }, + HAS_KEYS={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="HAS_KEYS", + index=0, + statictext=true, + x=13, + y=5 + } + }, + HAS_KEYSs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="HAS_KEYSs", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HAS_KEYSs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="HAS_KEYSs1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HPU={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="HPU", + index=0, + statictext=true, + x=2, + y=7 + } + }, + HUD_ATT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="HUD_ATT", + index=0, + statictext=true, + x=10, + y=5 + } + }, + HUD_ATT1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="HUD_ATT1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HUD_ATT2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="HUD_ATT2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HUD_IND={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="HUD_IND", + index=0, + statictext=true, + x=1, + y=9 + } + }, + HUD_OFF={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="HUD_OFF", + index=0, + statictext=false, + x=6, + y=9 + } + }, + HUD_ON={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="HUD_ON", + index=0, + statictext=false, + x=6, + y=9 + } + }, + IAS={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="IAS", + index=0, + statictext=true, + x=2, + y=8 + } + }, + IAS_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="IAS_ST", + index=0, + statictext=false, + x=21, + y=8 + } + }, + IAS_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="IAS_ST1", + index=0, + statictext=false, + x=21, + y=8 + } + }, + IAS_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="IAS_VAL", + index=0, + statictext=false, + x=16, + y=8 + } + }, + IE={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="IE", + index=0, + statictext=true, + x=15, + y=4 + } + }, + IE_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="IE_STATUS", + index=0, + statictext=true, + x=20, + y=4 + } + }, + IIW={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT5" + }, + id="IIW", + index=0, + statictext=true, + x=2, + y=3 + } + }, + ILS={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="ILS", + index=0, + statictext=true, + x=2, + y=7 + } + }, + ILS1={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="ILS1", + index=0, + statictext=true, + x=2, + y=10 + } + }, + INCR={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="INCR", + index=0, + statictext=true, + x=2, + y=3 + } + }, + INFLT={ + { + alignment="RGHT", + cdu_pages={ + "ALIGN" + }, + id="INFLT", + index=0, + statictext=true, + x=23, + y=5 + } + }, + INIT={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="INIT", + index=0, + statictext=true, + x=1, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="INIT", + index=1, + statictext=true, + x=2, + y=6 + } + }, + INITWAYPTIdent1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTIdent1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + INITWAYPTIdent2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTIdent2", + index=0, + statictext=false, + x=2, + y=5 + } + }, + INITWAYPTNumber1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + INITWAYPTNumber2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + INITWAYPT_INCR_DECR={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPT_INCR_DECR", + index=0, + statictext=true, + x=1, + y=3 + } + }, + INIT_REQ={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="INIT_REQ", + index=0, + statictext=true, + x=2, + y=6 + } + }, + INIT_REQs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="INIT_REQs", + index=0, + statictext=false, + x=11, + y=6 + } + }, + INIT_REQs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="INIT_REQs1", + index=0, + statictext=false, + x=11, + y=6 + } + }, + INS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="INS", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="INS", + index=1, + statictext=true, + x=24, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS", + index=2, + statictext=true, + x=1, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="INS", + index=3, + statictext=false, + x=24, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS", + index=4, + statictext=true, + x=2, + y=5 + } + }, + INS1={ + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="INS1", + index=0, + statictext=false, + x=24, + y=7 + } + }, + INS2={ + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="INS2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + INSERT={ + { + alignment="RGHT", + cdu_pages={ + "FPBUILD" + }, + id="INSERT", + index=0, + statictext=true, + x=23, + y=3 + } + }, + INSERTDisplay={ + { + alignment="RGHT", + cdu_pages={ + "FPBUILD" + }, + id="INSERTDisplay", + index=0, + statictext=false, + x=24, + y=3 + } + }, + INSSTAT={ + { + alignment="RGHT", + cdu_pages={ + "INS" + }, + id="INSSTAT", + index=0, + statictext=true, + x=24, + y=3 + } + }, + INS_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_SA", + index=0, + statictext=false, + x=1, + y=5 + } + }, + INS_ST={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST", + index=0, + statictext=true, + x=19, + y=3 + } + }, + INS_ST1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST3={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST3", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST4={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST4", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST5={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST5", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS0", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INS_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS1", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INS_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS2", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INS_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS3", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INVALID={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="INVALID", + index=0, + statictext=true, + x=2, + y=3 + } + }, + INVALID_ST0={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="INVALID_ST0", + index=0, + statictext=false, + x=10, + y=3 + } + }, + INVALID_ST1={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="INVALID_ST1", + index=0, + statictext=false, + x=10, + y=3 + } + }, + IN_FP={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="IN_FP", + index=0, + statictext=true, + x=19, + y=3 + } + }, + ISA={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="ISA", + index=0, + statictext=true, + x=2, + y=4 + } + }, + ISA_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="ISA_STATUS", + index=0, + statictext=true, + x=10, + y=4 + } + }, + I_F_1553={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="I_F_1553", + index=0, + statictext=false, + x=13, + y=5 + } + }, + InitInputLatUTM={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitInputLatUTM", + index=0, + statictext=false, + x=1, + y=7 + } + }, + InitInputLongMGRS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitInputLongMGRS", + index=0, + statictext=false, + x=1, + y=9 + } + }, + InitPosCoordFormat_LL={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPosCoordFormat_LL", + index=0, + statictext=false, + x=1, + y=5 + } + }, + InitPosCoordFormat_UTM={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPosCoordFormat_UTM", + index=0, + statictext=false, + x=1, + y=5 + } + }, + InitPositLat={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositLat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + InitPositLong={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositLong", + index=0, + statictext=false, + x=2, + y=9 + } + }, + InitPositMGRS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + InitPositText={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositText", + index=0, + statictext=false, + x=2, + y=6 + } + }, + InitPositUTM={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + KEYLOAD={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="KEYLOAD", + index=0, + statictext=true, + x=2, + y=8 + } + }, + KEY_2HR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_2HR", + index=0, + statictext=true, + x=14, + y=8 + } + }, + KEY_DUR={ + { + alignment="RGHT", + cdu_pages={ + "GPSKEYS" + }, + id="KEY_DUR", + index=0, + statictext=false, + x=8, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSSTAT2" + }, + id="KEY_DUR", + index=1, + statictext=false, + x=12, + y=7 + } + }, + KEY_PAR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PAR", + index=0, + statictext=true, + x=14, + y=7 + } + }, + KEY_PARs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs", + index=0, + statictext=false, + x=23, + y=7 + } + }, + KEY_PARs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs1", + index=0, + statictext=false, + x=23, + y=7 + } + }, + KEY_PARs2={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs2", + index=0, + statictext=false, + x=23, + y=8 + } + }, + KEY_PARs3={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs3", + index=0, + statictext=false, + x=23, + y=8 + } + }, + KEY_REM={ + { + alignment="RGHT", + cdu_pages={ + "GPSKEYS" + }, + id="KEY_REM", + index=0, + statictext=false, + x=11, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSSTAT2" + }, + id="KEY_REM", + index=1, + statictext=false, + x=16, + y=7 + } + }, + KEY_USED={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USED", + index=0, + statictext=true, + x=14, + y=5 + } + }, + KEY_USEDs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KEY_USEDs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KEY_USEDs2={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KEY_USEDs3={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs3", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KLDs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="KLDs", + index=0, + statictext=false, + x=17, + y=8 + } + }, + KLDs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="KLDs1", + index=0, + statictext=false, + x=17, + y=8 + } + }, + KYK={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="KYK", + index=0, + statictext=true, + x=2, + y=3 + } + }, + L4={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2", + "GPSBIT3" + }, + id="L4", + index=0, + statictext=true, + x=2, + y=4 + } + }, + L5={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2", + "GPSBIT3" + }, + id="L5", + index=0, + statictext=true, + x=2, + y=5 + } + }, + LAR={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR", + index=0, + statictext=true, + x=17, + y=6 + } + }, + LAR_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR_VALUE", + index=0, + statictext=false, + x=23, + y=6 + } + }, + LAR_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR_VALUE1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + LAR_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR_VALUE2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + LASTE={ + { + alignment="RGHT", + cdu_pages={ + "SYS1" + }, + id="LASTE", + index=0, + statictext=true, + x=24, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="LASTE", + index=1, + statictext=true, + x=24, + y=9 + } + }, + LASTE_ST0={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="LASTE_ST0", + index=0, + statictext=false, + x=15, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LASTE_ST0", + index=1, + statictext=false, + x=11, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LASTE_ST0", + index=2, + statictext=false, + x=23, + y=3 + } + }, + LASTE_ST1={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="LASTE_ST1", + index=0, + statictext=false, + x=15, + y=7 + } + }, + LASTE_ST2={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LASTE_ST2", + index=0, + statictext=false, + x=11, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LASTE_ST2", + index=1, + statictext=false, + x=23, + y=3 + } + }, + LASTE_V={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LASTE_V", + index=0, + statictext=true, + x=17, + y=3 + } + }, + LCL_ADJUST={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="LCL_ADJUST", + index=0, + statictext=true, + x=1, + y=7 + } + }, + LCL_ADJUST_TXT={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="LCL_ADJUST_TXT", + index=0, + statictext=false, + x=2, + y=8 + } + }, + LINE7={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="LINE7", + index=0, + statictext=true, + x=2, + y=7 + } + }, + LINE9={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="LINE9", + index=0, + statictext=true, + x=2, + y=9 + } + }, + LOAD_PASS={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LOAD_PASS", + index=0, + statictext=true, + x=11, + y=7 + } + }, + LRU1={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="LRU1", + index=0, + statictext=false, + x=1, + y=7 + } + }, + LRU2={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="LRU2", + index=0, + statictext=true, + x=2, + y=7 + } + }, + LRUTEST={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1", + "EGITEST" + }, + id="LRUTEST", + index=0, + statictext=true, + x=24, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="LRUTEST", + index=1, + statictext=true, + x=1, + y=5 + } + }, + LRU_CADC={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_CADC", + index=0, + statictext=false, + x=6, + y=6 + } + }, + LRU_CDU={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_CDU", + index=0, + statictext=false, + x=13, + y=3 + } + }, + LRU_DTS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_DTS", + index=0, + statictext=false, + x=13, + y=5 + } + }, + LRU_DTSAS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_DTSAS", + index=0, + statictext=false, + x=13, + y=6 + } + }, + LRU_GPS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_GPS", + index=0, + statictext=false, + x=7, + y=4 + } + }, + LRU_HARS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_HARS", + index=0, + statictext=false, + x=6, + y=7 + } + }, + LRU_INS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_INS", + index=0, + statictext=false, + x=7, + y=3 + } + }, + LRU_LASTE={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_LASTE", + index=0, + statictext=false, + x=5, + y=8 + } + }, + LRU_MBC={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_MBC", + index=0, + statictext=false, + x=13, + y=4 + } + }, + LRU_MSN={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_MSN", + index=0, + statictext=false, + x=7, + y=5 + } + }, + MACH={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MACH", + index=0, + statictext=true, + x=18, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="MACH", + index=1, + statictext=true, + x=2, + y=7 + } + }, + MACH_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="MACH_ST", + index=0, + statictext=false, + x=21, + y=7 + } + }, + MACH_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="MACH_ST1", + index=0, + statictext=false, + x=21, + y=7 + } + }, + MACH_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="MACH_VAL", + index=0, + statictext=false, + x=16, + y=7 + } + }, + MAGH_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="MAGH_ST2", + index=0, + statictext=false, + x=19, + y=9 + } + }, + MAGH_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="MAGH_ST3", + index=0, + statictext=false, + x=19, + y=9 + } + }, + MAGH_VAL={ + { + alignment="RGHT", + cdu_pages={ + "HARS" + }, + id="MAGH_VAL", + index=0, + statictext=false, + x=16, + y=9 + } + }, + MAG_HEAD={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="MAG_HEAD", + index=0, + statictext=true, + x=2, + y=9 + } + }, + MBC={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="MBC", + index=0, + statictext=true, + x=18, + y=7 + } + }, + MBC1={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="MBC1", + index=0, + statictext=true, + x=23, + y=7 + } + }, + MBIT1={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT1", + index=0, + statictext=true, + x=2, + y=3 + } + }, + MBIT10={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT10", + index=0, + statictext=true, + x=14, + y=5 + } + }, + MBIT11={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT11", + index=0, + statictext=true, + x=14, + y=6 + } + }, + MBIT2={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT2", + index=0, + statictext=true, + x=2, + y=4 + } + }, + MBIT3={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT3", + index=0, + statictext=true, + x=2, + y=5 + } + }, + MBIT4={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT4", + index=0, + statictext=true, + x=2, + y=6 + } + }, + MBIT5={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT5", + index=0, + statictext=true, + x=2, + y=7 + } + }, + MBIT6={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT6", + index=0, + statictext=true, + x=2, + y=8 + } + }, + MBIT7={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT7", + index=0, + statictext=true, + x=2, + y=9 + } + }, + MBIT8={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT8", + index=0, + statictext=true, + x=14, + y=3 + } + }, + MBIT9={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT9", + index=0, + statictext=true, + x=14, + y=4 + } + }, + MH={ + { + alignment="RGHT", + cdu_pages={ + "ALTALGN" + }, + id="MH", + index=0, + statictext=true, + x=16, + y=5 + } + }, + MH1={ + { + alignment="RGHT", + cdu_pages={ + "ALTALGN" + }, + id="MH1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MHD={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="MHD", + index=0, + statictext=true, + x=18, + y=7 + } + }, + MHD_ERR={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="MHD_ERR", + index=0, + statictext=false, + x=21, + y=7 + } + }, + MH_DE={ + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="MH_DE", + index=0, + statictext=false, + x=24, + y=5 + } + }, + MISC_ADDR={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="MISC_ADDR", + index=0, + statictext=true, + x=1, + y=9 + } + }, + MISSION={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="MISSION", + index=0, + statictext=true, + x=2, + y=4 + } + }, + MODE={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="MODE", + index=0, + statictext=true, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE", + index=1, + statictext=true, + x=2, + y=3 + } + }, + MODE0={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE0", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE1", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE2", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE3={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE3", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE4={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE4", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE5={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE5", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE6={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE6", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE7={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE7", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE8={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE8", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE9={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE9", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MONTH={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="MONTH", + index=0, + statictext=true, + x=16, + y=5 + } + }, + MONTH_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="MONTH_DE", + index=0, + statictext=false, + x=24, + y=5 + } + }, + MONTH_TXT={ + { + alignment="RGHT", + cdu_pages={ + "TIME" + }, + id="MONTH_TXT", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MSN={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="MSN", + index=0, + statictext=true, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="MSN", + index=1, + statictext=true, + x=18, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN", + index=2, + statictext=false, + x=1, + y=7 + } + }, + MSN_DUR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="MSN_DUR", + index=0, + statictext=true, + x=2, + y=7 + } + }, + MSN_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_SA", + index=0, + statictext=true, + x=2, + y=7 + } + }, + MSN_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="MSN_STATUS", + index=0, + statictext=true, + x=20, + y=5 + } + }, + MSN_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS0", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MSN_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS1", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MSN_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS2", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MSN_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS3", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MV={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="MV", + index=1, + statictext=false, + x=23, + y=5 + } + }, + MV1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV1", + index=0, + statictext=false, + x=17, + y=5 + } + }, + MV2={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MV3={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV3", + index=0, + statictext=false, + x=17, + y=5 + } + }, + MV4={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV4", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MV5={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV5", + index=0, + statictext=false, + x=17, + y=5 + } + }, + MV6={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV6", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MV_EQ={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV_EQ", + index=0, + statictext=false, + x=18, + y=5 + } + }, + MV_EQ1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV_EQ1", + index=0, + statictext=false, + x=18, + y=5 + } + }, + MV_EQ2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV_EQ2", + index=0, + statictext=false, + x=18, + y=5 + } + }, + MXLOG={ + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="MXLOG", + index=0, + statictext=true, + x=24, + y=9 + } + }, + MXOPT={ + { + alignment="RGHT", + cdu_pages={ + "MXLOG" + }, + id="MXOPT", + index=0, + statictext=true, + x=23, + y=7 + } + }, + Mach={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="Mach", + index=0, + statictext=false, + x=23, + y=4 + } + }, + NAV={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="NAV", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="NAV", + index=1, + statictext=true, + x=23, + y=7 + } + }, + NAVMODEROTARY={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="NAVMODEROTARY", + index=0, + statictext=true, + x=24, + y=3 + } + }, + NAV_DAT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_DAT", + index=0, + statictext=true, + x=10, + y=6 + } + }, + NAV_DAT1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_DAT1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + NAV_DAT2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_DAT2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + NAV_DATA={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="NAV_DATA", + index=0, + statictext=true, + x=2, + y=4 + } + }, + NAV_DATAs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="NAV_DATAs", + index=0, + statictext=false, + x=11, + y=4 + } + }, + NAV_DATAs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="NAV_DATAs1", + index=0, + statictext=false, + x=11, + y=4 + } + }, + NAV_RDY={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY", + index=0, + statictext=true, + x=10, + y=7 + } + }, + NAV_RDY1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY1", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NAV_RDY2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY2", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NAV_RDY3={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY3", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NEWFPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="NEWFPNumber", + index=0, + statictext=false, + x=2, + y=9 + } + }, + NEWFPText={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="NEWFPText", + index=0, + statictext=false, + x=10, + y=9 + } + }, + NEW_WAYPT_NUM={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET", + "WAYPT1" + }, + id="NEW_WAYPT_NUM", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NM={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="NM", + index=0, + statictext=true, + x=2, + y=3 + } + }, + NMDisplay={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="NMDisplay", + index=0, + statictext=false, + x=1, + y=3 + } + }, + NMINPUT={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="NMINPUT", + index=0, + statictext=false, + x=1, + y=3 + } + }, + NOT_ATTEMPTED={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="NOT_ATTEMPTED", + index=0, + statictext=true, + x=11, + y=5 + } + }, + NS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="NS", + index=0, + statictext=true, + x=2, + y=6 + } + }, + NS_ERR={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="NS_ERR", + index=0, + statictext=false, + x=7, + y=6 + } + }, + NUM={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="NUM", + index=0, + statictext=false, + x=1, + y=2 + } + }, + OAT={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="OAT", + index=0, + statictext=true, + x=15, + y=9 + } + }, + OF={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="OF", + index=0, + statictext=true, + x=2, + y=6 + } + }, + OFFSETDIV={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETDIV", + index=0, + statictext=true, + x=19, + y=6 + } + }, + OFFSETWAYPTCoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTCoordFormat1", + index=0, + statictext=false, + x=24, + y=3 + } + }, + OFFSETWAYPTCoordFormat2={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTCoordFormat2", + index=0, + statictext=false, + x=24, + y=3 + } + }, + OFFSETWAYPTDIS1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTDIS1", + index=0, + statictext=false, + x=20, + y=6 + } + }, + OFFSETWAYPTDIS2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTDIS2", + index=0, + statictext=false, + x=20, + y=6 + } + }, + OFFSETWAYPTLat={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + OFFSETWAYPTLatUTM={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLatUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + OFFSETWAYPTLong={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLong", + index=0, + statictext=false, + x=2, + y=9 + } + }, + OFFSETWAYPTLongMGRS={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLongMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + OFFSETWAYPTMGRS={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + OFFSETWAYPTMH1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTMH1", + index=0, + statictext=false, + x=16, + y=6 + } + }, + OFFSETWAYPTMH2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTMH2", + index=0, + statictext=false, + x=16, + y=6 + } + }, + OFFSETWAYPTNumber1={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTNumber1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + OFFSETWAYPTNumber2={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTNumber2", + index=0, + statictext=false, + x=23, + y=9 + } + }, + OFFSETWAYPTUTM={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + OFP={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="OFP", + index=0, + statictext=true, + x=2, + y=5 + } + }, + OFPID={ + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="OFPID", + index=0, + statictext=true, + x=1, + y=9 + } + }, + OFPID1_LINE3={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE3", + index=0, + statictext=true, + x=2, + y=3 + } + }, + OFPID1_LINE4_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE4_1", + index=0, + statictext=true, + x=2, + y=4 + } + }, + OFPID1_LINE4_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE4_2", + index=0, + statictext=true, + x=13, + y=4 + } + }, + OFPID1_LINE5={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE5", + index=0, + statictext=true, + x=2, + y=5 + } + }, + OFPID1_LINE6_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE6_1", + index=0, + statictext=true, + x=2, + y=6 + } + }, + OFPID1_LINE6_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE6_2", + index=0, + statictext=true, + x=13, + y=6 + } + }, + OFPID1_LINE7={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE7", + index=0, + statictext=true, + x=2, + y=7 + } + }, + OFPID1_LINE8={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE8", + index=0, + statictext=true, + x=2, + y=8 + } + }, + OFPID2_LINE3={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE3", + index=0, + statictext=true, + x=2, + y=3 + } + }, + OFPID2_LINE4_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE4_1", + index=0, + statictext=true, + x=2, + y=4 + } + }, + OFPID2_LINE4_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE4_2", + index=0, + statictext=true, + x=16, + y=4 + } + }, + OFPID2_LINE5={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE5", + index=0, + statictext=true, + x=2, + y=5 + } + }, + OFPID2_LINE6_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE6_1", + index=0, + statictext=true, + x=2, + y=6 + } + }, + OFPID2_LINE6_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE6_2", + index=0, + statictext=true, + x=16, + y=6 + } + }, + OFPID2_LINE7={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE7", + index=0, + statictext=true, + x=2, + y=7 + } + }, + OFPID2_LINE8={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE8", + index=0, + statictext=true, + x=2, + y=8 + } + }, + OFP_SA={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="OFP_SA", + index=0, + statictext=false, + x=1, + y=5 + } + }, + OPTIOMS_MAGHEAD={ + { + alignment="RGHT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIOMS_MAGHEAD", + index=0, + statictext=false, + x=9, + y=4 + } + }, + OPTIONS={ + { + alignment="RGHT", + cdu_pages={ + "NAV" + }, + id="OPTIONS", + index=0, + statictext=true, + x=24, + y=7 + } + }, + OPTIONS_CF={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_CF", + index=0, + statictext=false, + x=4, + y=5 + } + }, + OPTIONS_DE={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_DE", + index=0, + statictext=true, + x=1, + y=5 + } + }, + OPTIONS_EQUAL={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_EQUAL", + index=0, + statictext=false, + x=4, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="OPTIONS_EQUAL", + index=1, + statictext=false, + x=18, + y=5 + } + }, + OPTIONS_EQUAL1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_EQUAL1", + index=0, + statictext=false, + x=3, + y=5 + } + }, + OPTIONS_HD0={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HD0", + index=0, + statictext=false, + x=2, + y=4 + } + }, + OPTIONS_HD1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HD1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + OPTIONS_HF0={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HF0", + index=0, + statictext=false, + x=2, + y=3 + } + }, + OPTIONS_HF1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HF1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + OPTIONS_HS0={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HS0", + index=0, + statictext=false, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="OPTIONS_HS0", + index=1, + statictext=true, + x=16, + y=5 + } + }, + OPTIONS_HS1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HS1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + OPTIONS_MV={ + { + alignment="RGHT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_MV", + index=0, + statictext=false, + x=9, + y=5 + } + }, + OPTIONS_RTRY={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_RTRY", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ORIG_NAV={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="ORIG_NAV", + index=0, + statictext=true, + x=1, + y=5 + } + }, + OWC={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC", + index=0, + statictext=true, + x=17, + y=4 + } + }, + OWC1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC1", + index=0, + statictext=true, + x=21, + y=8 + } + }, + OWC_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC_VALUE", + index=0, + statictext=false, + x=23, + y=4 + } + }, + OWC_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC_VALUE1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + OWC_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC_VALUE2", + index=0, + statictext=false, + x=23, + y=4 + } + }, + Overload={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="Overload", + index=0, + statictext=false, + x=20, + y=7 + } + }, + Overload1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="Overload1", + index=0, + statictext=false, + x=20, + y=7 + } + }, + Overload2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="Overload2", + index=0, + statictext=false, + x=20, + y=7 + } + }, + Overload3={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="Overload3", + index=0, + statictext=false, + x=23, + y=7 + } + }, + Overload4={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="Overload4", + index=0, + statictext=false, + x=22, + y=7 + } + }, + P={ + { + alignment="LFT", + cdu_pages={ + "FPMENU"}, + id="P", + index=0, + statictext=true, + x=19, + y=10 + } + }, + PC={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="PC", + index=0, + statictext=true, + x=2, + y=5 + } + }, + PGCAS={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS", + index=0, + statictext=true, + x=17, + y=3 + } + }, + PGCAS_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS_VALUE", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PGCAS_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS_VALUE1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PGCAS_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS_VALUE2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PITCH={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PITCH", + index=0, + statictext=true, + x=2, + y=7 + } + }, + PITCH_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PITCH_ST2", + index=0, + statictext=false, + x=19, + y=7 + } + }, + PITCH_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PITCH_ST3", + index=0, + statictext=false, + x=19, + y=7 + } + }, + PITCH_VAL={ + { + alignment="RGHT", + cdu_pages={ + "HARS" + }, + id="PITCH_VAL", + index=0, + statictext=false, + x=16, + y=7 + } + }, + POS={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="POS", + index=0, + statictext=true, + x=1, + y=7 + } + }, + POS_SOURCE={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_SOURCE", + index=0, + statictext=true, + x=2, + y=3 + } + }, + POS_Source_DTS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_DTS", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_GPS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_GPS", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_GPS1={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_GPS1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_Last_Pos={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_Last_Pos", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_Man={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_Man", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_Standby={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_Standby", + index=0, + statictext=false, + x=2, + y=4 + } + }, + PPOSGroundSpeed={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSGroundSpeed", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSGroundSpeed1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSGroundSpeed1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSGroundSpeed2={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSGroundSpeed2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSIAS={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSIAS", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSSpeedMode={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode1", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode2", + index=0, + statictext=false, + x=17, + y=3 + } + }, + PPOSSpeedMode3={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode3", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode4={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode4", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode5={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode5", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedRotary={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedRotary", + index=0, + statictext=true, + x=24, + y=3 + } + }, + PPOSTAS1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSTAS1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PR={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR", + index=0, + statictext=true, + x=17, + y=5 + } + }, + PREF={ + { + alignment="RGHT", + cdu_pages={ + "DTSUPLD" + }, + id="PREF", + index=0, + statictext=true, + x=23, + y=4 + } + }, + PR_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR_VALUE", + index=0, + statictext=false, + x=23, + y=5 + } + }, + PR_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR_VALUE1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + PR_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR_VALUE2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + PS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="PS", + index=0, + statictext=true, + x=2, + y=5 + } + }, + PS_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="PS_STATUS", + index=0, + statictext=true, + x=10, + y=5 + } + }, + P_ALT={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="P_ALT", + index=0, + statictext=true, + x=2, + y=4 + } + }, + P_ALT_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="P_ALT_ST", + index=0, + statictext=false, + x=21, + y=4 + } + }, + P_ALT_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="P_ALT_ST1", + index=0, + statictext=false, + x=21, + y=4 + } + }, + P_ALT_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="P_ALT_VAL", + index=0, + statictext=false, + x=13, + y=4 + } + }, + PageFPBUILD={ + { + alignment="RGHT", + cdu_pages={ + "FPMENU" + }, + id="PageFPBUILD", + index=0, + statictext=false, + x=24, + y=2 + } + }, + PageNameACCREJ={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="PageNameACCREJ", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameALIGN={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="PageNameALIGN", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameALTALGN={ + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="PageNameALTALGN", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameANCHOR={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="PageNameANCHOR", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameATTRIB={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="PageNameATTRIB", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameBBCTL={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="PageNameBBCTL", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameBITBALL={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="PageNameBITBALL", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameCADC={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="PageNameCADC", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameCDUTEST1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="PageNameCDUTEST1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameCDUTEST2={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="PageNameCDUTEST2", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDIVERT={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="PageNameDIVERT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTS={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="PageNameDTS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSAS={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PageNameDTSAS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSDNLD={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="PageNameDTSDNLD", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSSTAT={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="PageNameDTSSTAT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSUPLD={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="PageNameDTSUPLD", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameEGI={ + { + alignment="LFT", + cdu_pages={ + "EGI1", + "EGI2", + "EGI3", + "EGI4" + }, + id="PageNameEGI", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameEGITEST={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="PageNameEGITEST", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFLDINFO={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="PageNameFLDINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFPBUILD={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="PageNameFPBUILD", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFPMENU={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="PageNameFPMENU", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFROM={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="PageNameFROM", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPS={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="PageNameGPS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT1={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="PageNameGPSBIT1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT2={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2" + }, + id="PageNameGPSBIT2", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT3={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT3" + }, + id="PageNameGPSBIT3", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT4={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4" + }, + id="PageNameGPSBIT4", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT5={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT5" + }, + id="PageNameGPSBIT5", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSKEYS={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="PageNameGPSKEYS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSSTAT1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="PageNameGPSSTAT1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameHARS={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PageNameHARS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameINS={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="PageNameINS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameINSSTAT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="PageNameINSSTAT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameLASTE={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="PageNameLASTE", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameLRUTEST={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="PageNameLRUTEST", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameMXLOG={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="PageNameMXLOG", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameNAV={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="PageNameNAV", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOFFSET={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="PageNameOFFSET", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOFPID1={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="PageNameOFPID1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOFPID2={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="PageNameOFPID2", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOPTIONS={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="PageNameOPTIONS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNamePOS={ + { + alignment="LFT", + cdu_pages={ + "POS" + }, + id="PageNamePOS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNamePOSINFO={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="PageNamePOSINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameREINIT={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="PageNameREINIT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameRESET={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="PageNameRESET", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameSTARTUPBIT={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="PageNameSTARTUPBIT", + index=0, + statictext=false, + x=3, + y=1 + } + }, + PageNameSTRINFO={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="PageNameSTRINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameSYS={ + { + alignment="LFT", + cdu_pages={ + "SYS" + }, + id="PageNameSYS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameTIME={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="PageNameTIME", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameUPDATE={ + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="PageNameUPDATE", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWAYPT={ + { + alignment="LFT", + cdu_pages={ + "WAYPT" + }, + id="PageNameWAYPT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWIND={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="PageNameWIND", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWNDEDIT={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="PageNameWNDEDIT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWPINFO={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="PageNameWPINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWPMENU={ + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="PageNameWPMENU", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWPTATT={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="PageNameWPTATT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PresPositLat={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLat", + index=0, + statictext=false, + x=2, + y=3 + } + }, + PresPositLat1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLat1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + PresPositLong={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLong", + index=0, + statictext=false, + x=2, + y=4 + } + }, + PresPositLong1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLong1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + PresPositMGRS={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositMGRS", + index=0, + statictext=false, + x=2, + y=7 + } + }, + PresPositMGRS1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositMGRS1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + PresPositUTM={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositUTM", + index=0, + statictext=false, + x=2, + y=6 + } + }, + PresPositUTM1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositUTM1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + RAM={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="RAM", + index=0, + statictext=false, + x=1, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="RAM", + index=1, + statictext=true, + x=1, + y=4 + } + }, + RAM_1553={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="RAM_1553", + index=0, + statictext=false, + x=13, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="RAM_1553", + index=1, + statictext=true, + x=13, + y=4 + } + }, + READY={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY", + index=0, + statictext=true, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="READY", + index=1, + statictext=true, + x=2, + y=3 + } + }, + READY_ST0={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST0", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST1={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST1", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST2={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST2", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST3={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST3", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST4={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST4", + index=0, + statictext=false, + x=8, + y=5 + } + }, + RECENT_NAV={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="RECENT_NAV", + index=0, + statictext=true, + x=1, + y=9 + } + }, + RECORD={ + { + alignment="RGHT", + cdu_pages={ + "LRUTEST" + }, + id="RECORD", + index=0, + statictext=true, + x=24, + y=7 + } + }, + REINIT={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="REINIT", + index=0, + statictext=true, + x=1, + y=9 + } + }, + REINIT_DTSAS={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_DTSAS", + index=0, + statictext=true, + x=1, + y=9 + } + }, + REINIT_GPS={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_GPS", + index=0, + statictext=true, + x=1, + y=5 + } + }, + REINIT_INS={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_INS", + index=0, + statictext=true, + x=1, + y=3 + } + }, + REINIT_LASTE={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_LASTE", + index=0, + statictext=true, + x=1, + y=7 + } + }, + REJECT={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="REJECT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + RESET={ + { + alignment="RGHT", + cdu_pages={ + "SYS1", + "BBCTL" + }, + id="RESET", + index=0, + statictext=true, + x=24, + y=9 + } + }, + RESET_CADC={ + { + alignment="RGHT", + cdu_pages={ + "RESET" + }, + id="RESET_CADC", + index=0, + statictext=true, + x=24, + y=3 + } + }, + RESET_CICU={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_CICU", + index=0, + statictext=true, + x=1, + y=7 + } + }, + RESET_CICU0={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_CICU0", + index=0, + statictext=false, + x=8, + y=7 + } + }, + RESET_CICU1={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_CICU1", + index=0, + statictext=false, + x=8, + y=7 + } + }, + RESET_DTS={ + { + alignment="RGHT", + cdu_pages={ + "RESET" + }, + id="RESET_DTS", + index=0, + statictext=true, + x=24, + y=7 + } + }, + RESET_EGI={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_EGI", + index=0, + statictext=true, + x=1, + y=3 + } + }, + RESET_HARS={ + { + alignment="RGHT", + cdu_pages={ + "RESET" + }, + id="RESET_HARS", + index=0, + statictext=true, + x=24, + y=5 + } + }, + RESET_LASTE={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_LASTE", + index=0, + statictext=true, + x=1, + y=5 + } + }, + RESET_LASTE1={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_LASTE1", + index=0, + statictext=true, + x=8, + y=7 + } + }, + RESET_ST0={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_ST0", + index=0, + statictext=false, + x=8, + y=5 + } + }, + RESET_ST1={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_ST1", + index=0, + statictext=false, + x=8, + y=5 + } + }, + ROLL={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="ROLL", + index=0, + statictext=true, + x=2, + y=5 + } + }, + ROLL_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="ROLL_ST2", + index=0, + statictext=false, + x=19, + y=5 + } + }, + ROLL_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="ROLL_ST3", + index=0, + statictext=false, + x=19, + y=5 + } + }, + ROLL_VAL={ + { + alignment="RGHT", + cdu_pages={ + "HARS" + }, + id="ROLL_VAL", + index=0, + statictext=false, + x=16, + y=5 + } + }, + RPU={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="RPU", + index=0, + statictext=true, + x=2, + y=5 + } + }, + RPU4s={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="RPU4s", + index=0, + statictext=false, + x=11, + y=5 + } + }, + RPU4s1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="RPU4s1", + index=0, + statictext=false, + x=11, + y=5 + } + }, + RTR={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="RTR", + index=0, + statictext=true, + x=24, + y=3 + } + }, + RT_ADDR={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="RT_ADDR", + index=0, + statictext=false, + x=13, + y=6 + } + }, + RWY={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="RWY", + index=0, + statictext=true, + x=2, + y=6 + } + }, + RWY_L_FEET={ + { + alignment="RGHT", + cdu_pages={ + "FLDINFO" + }, + id="RWY_L_FEET", + index=0, + statictext=true, + x=24, + y=6 + } + }, + SAT4={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SAT4", + index=0, + statictext=true, + x=2, + y=4 + } + }, + SAT4s={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SAT4s", + index=0, + statictext=false, + x=11, + y=4 + } + }, + SAT4s1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SAT4s1", + index=0, + statictext=false, + x=11, + y=4 + } + }, + SCALE={ + { + alignment="LFT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="SCALE", + index=0, + statictext=true, + x=1, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="SCALE", + index=1, + statictext=true, + x=1, + y=5 + } + }, + SCS={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="SCS", + index=0, + statictext=true, + x=2, + y=9 + } + }, + SCS_ROTARY={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="SCS_ROTARY", + index=0, + statictext=false, + x=1, + y=9 + } + }, + SENSORS={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="SENSORS", + index=0, + statictext=true, + x=10, + y=9 + } + }, + SEN_ST1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="SEN_ST1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + SEN_ST2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="SEN_ST2", + index=0, + statictext=false, + x=23, + y=9 + } + }, + SERVICE={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="SERVICE", + index=0, + statictext=true, + x=2, + y=7 + } + }, + SFKEYSs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SFKEYSs", + index=0, + statictext=false, + x=23, + y=3 + } + }, + SFKEYSs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SFKEYSs1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + SFKEYSs2={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SFKEYSs2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + SLASH1={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="SLASH1", + index=0, + statictext=true, + x=14, + y=9 + } + }, + SLASH2={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="SLASH2", + index=0, + statictext=true, + x=14, + y=10 + } + }, + SPHEROID={ + { + alignment="RGHT", + cdu_pages={ + "WPMENU" + }, + id="SPHEROID", + index=0, + statictext=false, + x=23, + y=9 + } + }, + SPU={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="SPU", + index=0, + statictext=true, + x=2, + y=3 + } + }, + SPU_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="SPU_STATUS", + index=0, + statictext=true, + x=10, + y=3 + } + }, + ST3={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="ST3", + index=0, + statictext=true, + x=8, + y=7 + } + }, + ST5={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="ST5", + index=0, + statictext=true, + x=8, + y=6 + } + }, + START={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1" + }, + id="START", + index=0, + statictext=true, + x=23, + y=5 + } + }, + STARTUPBIT={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT", + index=0, + statictext=false, + x=9, + y=3 + } + }, + STARTUPBIT1={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT1", + index=0, + statictext=false, + x=9, + y=3 + } + }, + STARTUPBIT10={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT10", + index=0, + statictext=false, + x=9, + y=6 + } + }, + STARTUPBIT11={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT11", + index=0, + statictext=false, + x=9, + y=6 + } + }, + STARTUPBIT12={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT12", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STARTUPBIT13={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT13", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STARTUPBIT14={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT14", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STARTUPBIT15={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT15", + index=0, + statictext=false, + x=23, + y=4 + } + }, + STARTUPBIT16={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT16", + index=0, + statictext=false, + x=23, + y=4 + } + }, + STARTUPBIT17={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT17", + index=0, + statictext=false, + x=23, + y=4 + } + }, + STARTUPBIT18={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT18", + index=0, + statictext=false, + x=23, + y=5 + } + }, + STARTUPBIT19={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT19", + index=0, + statictext=false, + x=23, + y=5 + } + }, + STARTUPBIT2={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT2", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT20={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT20", + index=0, + statictext=false, + x=23, + y=5 + } + }, + STARTUPBIT21={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT21", + index=0, + statictext=false, + x=23, + y=6 + } + }, + STARTUPBIT22={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT22", + index=0, + statictext=false, + x=23, + y=6 + } + }, + STARTUPBIT23={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT23", + index=0, + statictext=false, + x=23, + y=6 + } + }, + STARTUPBIT24={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT24", + index=0, + statictext=false, + x=9, + y=10 + } + }, + STARTUPBIT3={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT3", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT4={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT4", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT5={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT5", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT6={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT6", + index=0, + statictext=false, + x=9, + y=5 + } + }, + STARTUPBIT7={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT7", + index=0, + statictext=false, + x=9, + y=5 + } + }, + STARTUPBIT8={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT8", + index=0, + statictext=false, + x=9, + y=5 + } + }, + STARTUPBIT9={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT9", + index=0, + statictext=false, + x=9, + y=6 + } + }, + START_SA={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1" + }, + id="START_SA", + index=0, + statictext=false, + x=24, + y=5 + } + }, + STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="STATUS", + index=0, + statictext=true, + x=2, + y=8 + } + }, + STATUS_LINE={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="STATUS_LINE", + index=0, + statictext=true, + x=2, + y=3 + } + }, + STATUS_LINE1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="STATUS_LINE1", + index=0, + statictext=true, + x=10, + y=3 + } + }, + STATUS_LINE2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="STATUS_LINE2", + index=0, + statictext=true, + x=18, + y=3 + } + }, + STEER={ + { + alignment="LFT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="STEER", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="STEER", + index=1, + statictext=true, + x=1, + y=7 + } + }, + STEERPOINT={ + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="STEERPOINT", + index=0, + statictext=true, + x=1, + y=3 + } + }, + STEERPTIndicator={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="STEERPTIndicator", + index=0, + statictext=false, + x=7, + y=3 + } + }, + STEER_PT={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STEER_PT", + index=0, + statictext=true, + x=2, + y=7 + } + }, + STOP_MSN={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="STOP_MSN", + index=0, + statictext=true, + x=2, + y=9 + } + }, + STOP_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="STOP_SA", + index=0, + statictext=false, + x=1, + y=9 + } + }, + STRBRGRAD={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD1", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD2", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD3", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD4={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD4", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRADMode={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRADMode", + index=0, + statictext=false, + x=2, + y=7 + } + }, + STRBRGRADMode1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRADMode1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + STRBRGRADRotary={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRADRotary", + index=0, + statictext=true, + x=1, + y=7 + } + }, + STRDIS={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS", + index=0, + statictext=true, + x=2, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="STRDIS", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STRDIS", + index=2, + statictext=false, + x=17, + y=4 + } + }, + STRDIS1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS1", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRDIS1", + index=1, + statictext=false, + x=6, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STRDIS1", + index=2, + statictext=false, + x=17, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDIS1", + index=3, + statictext=false, + x=23, + y=8 + } + }, + STRDIS2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS2", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRDIS2", + index=1, + statictext=false, + x=6, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDIS2", + index=2, + statictext=false, + x=23, + y=8 + } + }, + STRDIS3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS3", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDIS3", + index=1, + statictext=false, + x=23, + y=8 + } + }, + STRDISMH={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRDISMH", + index=0, + statictext=true, + x=5, + y=9 + } + }, + STRDMH={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH", + index=0, + statictext=true, + x=2, + y=4 + } + }, + STRDMH1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH1", + index=0, + statictext=false, + x=10, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDMH1", + index=1, + statictext=false, + x=23, + y=7 + } + }, + STRDMH2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH2", + index=0, + statictext=false, + x=10, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDMH2", + index=1, + statictext=false, + x=23, + y=7 + } + }, + STRDMH3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH3", + index=0, + statictext=false, + x=10, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDMH3", + index=1, + statictext=false, + x=23, + y=7 + } + }, + STREL={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STREL", + index=0, + statictext=true, + x=2, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="STREL", + index=1, + statictext=true, + x=17, + y=9 + } + }, + STREL1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL1", + index=0, + statictext=false, + x=10, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STREL1", + index=1, + statictext=false, + x=23, + y=9 + } + }, + STREL2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL2", + index=0, + statictext=false, + x=10, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STREL2", + index=1, + statictext=false, + x=23, + y=9 + } + }, + STREL3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL3", + index=0, + statictext=false, + x=10, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="STREL3", + index=1, + statictext=false, + x=23, + y=9 + } + }, + STREL4={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL4", + index=0, + statictext=false, + x=10, + y=6 + } + }, + STRGroundSpeed1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRGroundSpeed1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + STRIAS1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRIAS1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + STRIdent={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRIdent", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRIdent", + index=1, + statictext=false, + x=2, + y=5 + } + }, + STRIdent1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO", + "ANCHOR" + }, + id="STRIdent1", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRIdent1", + index=1, + statictext=false, + x=2, + y=5 + } + }, + STRIdent2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO", + "ANCHOR" + }, + id="STRIdent2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STRIdent3={ + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRIdent3", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STRIdentEntry={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO", + "ANCHOR" + }, + id="STRIdentEntry", + index=0, + statictext=false, + x=24, + y=3 + } + }, + STRMH1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRMH1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + STRMH2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRMH2", + index=0, + statictext=false, + x=2, + y=9 + } + }, + STRNumber={ + { + alignment="LFT", + cdu_pages={ + "STRINFO", + "UPDATE" + }, + id="STRNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + STRNumber1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO", + "UPDATE" + }, + id="STRNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + STRNumber2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + STRNumber3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRNumber3", + index=0, + statictext=false, + x=3, + y=3 + } + }, + STRNumberIncDec={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRNumberIncDec", + index=0, + statictext=false, + x=1, + y=3 + } + }, + STRReqGroundSpeed={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqGroundSpeed", + index=0, + statictext=false, + x=23, + y=7 + } + }, + STRReqIAS={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqIAS", + index=0, + statictext=false, + x=23, + y=7 + } + }, + STRReqSpeedMode={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedMode", + index=0, + statictext=false, + x=19, + y=7 + } + }, + STRReqSpeedMode1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedMode1", + index=0, + statictext=false, + x=19, + y=7 + } + }, + STRReqSpeedMode2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedMode2", + index=0, + statictext=false, + x=19, + y=7 + } + }, + STRReqSpeedRotary={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedRotary", + index=0, + statictext=false, + x=24, + y=7 + } + }, + STRReqTAS={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqTAS", + index=0, + statictext=false, + x=23, + y=7 + } + }, + STRSpeedMode3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode3", + index=0, + statictext=false, + x=17, + y=9 + } + }, + STRSpeedMode4={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode4", + index=0, + statictext=false, + x=19, + y=9 + } + }, + STRSpeedMode5={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode5", + index=0, + statictext=false, + x=19, + y=9 + } + }, + STRSpeedMode6={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode6", + index=0, + statictext=false, + x=19, + y=9 + } + }, + STRSpeedRotary1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedRotary1", + index=0, + statictext=true, + x=24, + y=9 + } + }, + STRTAS1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRTAS1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + STRTOT={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT1", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT2", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT3", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT4={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT4", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTTG={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG", + index=0, + statictext=true, + x=12, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG", + index=1, + statictext=true, + x=7, + y=6 + } + }, + STRTTG1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG1", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRTTG1", + index=1, + statictext=false, + x=2, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG1", + index=2, + statictext=false, + x=11, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG1", + index=3, + statictext=false, + x=23, + y=6 + } + }, + STRTTG2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG2", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRTTG2", + index=1, + statictext=false, + x=2, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG2", + index=2, + statictext=false, + x=11, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG2", + index=3, + statictext=false, + x=23, + y=6 + } + }, + STRTTG3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG3", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRTTG3", + index=1, + statictext=false, + x=2, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG3", + index=2, + statictext=false, + x=11, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG3", + index=3, + statictext=false, + x=23, + y=6 + } + }, + STRTTG4={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG4", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG4", + index=1, + statictext=false, + x=23, + y=6 + } + }, + STRTTG5={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG5", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG5", + index=1, + statictext=false, + x=23, + y=6 + } + }, + STRWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindDirection1", + index=0, + statictext=false, + x=17, + y=8 + } + }, + STRWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindDirection2", + index=0, + statictext=false, + x=17, + y=8 + } + }, + STRWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindSpeed1", + index=0, + statictext=false, + x=21, + y=8 + } + }, + STRWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindSpeed2", + index=0, + statictext=false, + x=21, + y=8 + } + }, + ST_ST={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="ST_ST", + index=0, + statictext=true, + x=2, + y=6 + } + }, + SUCCESSFUL={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="SUCCESSFUL", + index=0, + statictext=true, + x=11, + y=6 + } + }, + SUFKEYS={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SUFKEYS", + index=0, + statictext=true, + x=13, + y=3 + } + }, + T={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="T", + index=0, + statictext=true, + x=4, + y=8 + } + }, + TAC={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="TAC", + index=0, + statictext=true, + x=2, + y=8 + } + }, + TARGET_MARK={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="TARGET_MARK", + index=0, + statictext=true, + x=24, + y=7 + } + }, + TAS={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TAS", + index=0, + statictext=true, + x=2, + y=6 + } + }, + TAS_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TAS_ST", + index=0, + statictext=false, + x=21, + y=6 + } + }, + TAS_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TAS_ST1", + index=0, + statictext=false, + x=21, + y=6 + } + }, + TAS_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="TAS_VAL", + index=0, + statictext=false, + x=15, + y=6 + } + }, + TEMP={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TEMP", + index=0, + statictext=true, + x=2, + y=9 + } + }, + TEMP_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TEMP_ST", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TEMP_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TEMP_ST1", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TEMP_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="TEMP_VAL", + index=0, + statictext=false, + x=14, + y=9 + } + }, + TEST_MODE0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE0", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_MODE1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_MODE2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE2", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_MODE4={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE4", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_SA={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_SA", + index=0, + statictext=false, + x=1, + y=9 + } + }, + TEST_SA1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_SA1", + index=0, + statictext=false, + x=1, + y=9 + } + }, + TEST_SA2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_SA2", + index=0, + statictext=false, + x=1, + y=9 + } + }, + TGTSYM_NEW_WPT={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="TGTSYM_NEW_WPT", + index=0, + statictext=true, + x=24, + y=7 + } + }, + TIME={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="TIME", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="TIME", + index=1, + statictext=true, + x=2, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="TIME", + index=2, + statictext=true, + x=24, + y=7 + } + }, + TOT={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="TOT", + index=0, + statictext=true, + x=12, + y=6 + } + }, + TTG={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="TTG", + index=0, + statictext=true, + x=2, + y=6 + } + }, + TempC={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="TempC", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TempF={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="TempF", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TempRotary={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="TempRotary", + index=0, + statictext=true, + x=24, + y=9 + } + }, + UPDATE={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="UPDATE", + index=0, + statictext=true, + x=1, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "INS" + }, + id="UPDATE", + index=1, + statictext=true, + x=24, + y=5 + } + }, + UTC={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="UTC", + index=0, + statictext=true, + x=2, + y=7 + } + }, + UTCs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="UTCs", + index=0, + statictext=false, + x=11, + y=7 + } + }, + UTCs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="UTCs1", + index=0, + statictext=false, + x=11, + y=7 + } + }, + VANGLE={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLE", + index=0, + statictext=false, + x=24, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLE", + index=1, + statictext=false, + x=24, + y=5 + } + }, + VANGLEEntry={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEEntry", + index=0, + statictext=false, + x=24, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEEntry", + index=1, + statictext=false, + x=24, + y=7 + } + }, + VANGLEMode={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEMode", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEMode", + index=1, + statictext=false, + x=23, + y=6 + } + }, + VANGLEMode1={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEMode1", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEMode1", + index=1, + statictext=false, + x=23, + y=6 + } + }, + VANGLEValue={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEValue", + index=0, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEValue", + index=1, + statictext=false, + x=23, + y=7 + } + }, + VIEW1={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW1", + index=0, + statictext=true, + x=2, + y=3 + } + }, + VIEW2={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW2", + index=0, + statictext=true, + x=2, + y=5 + } + }, + VIEW3={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW3", + index=0, + statictext=true, + x=2, + y=7 + } + }, + VIEW4={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW4", + index=0, + statictext=true, + x=2, + y=9 + } + }, + VIEW5={ + { + alignment="RGHT", + cdu_pages={ + "BBCTL" + }, + id="VIEW5", + index=0, + statictext=true, + x=23, + y=3 + } + }, + VNAV_MODE={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VNAV_MODE", + index=0, + statictext=true, + x=24, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VNAV_MODE", + index=1, + statictext=true, + x=24, + y=3 + } + }, + VPU={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="VPU", + index=0, + statictext=true, + x=2, + y=8 + } + }, + VRSN={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="VRSN", + index=0, + statictext=true, + x=2, + y=4 + } + }, + WARCODE={ + { + alignment="LFT", + cdu_pages={ + "EGI3", + "EGI4" + }, + id="WARCODE", + index=0, + statictext=true, + x=17, + y=8 + } + }, + WARNING={ + { + alignment="LFT", + cdu_pages={ + "EGI3", + "EGI4" + }, + id="WARNING", + index=0, + statictext=true, + x=14, + y=7 + } + }, + WAYPOINT={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="WAYPOINT", + index=0, + statictext=true, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WAYPOINT", + index=1, + statictext=true, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WPMENU" + }, + id="WAYPOINT", + index=2, + statictext=true, + x=24, + y=3 + } + }, + WAYPTClass={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass10={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass10", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass11={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass11", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass12={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass12", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass13={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass13", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass14={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass14", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass15={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass15", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass16={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass16", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass17={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass17", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass18={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass18", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass19={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass19", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass2={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass2", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass20={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass20", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass21={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass21", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass3={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass3", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass4={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass4", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass5={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass5", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass6={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass6", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass7={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass7", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass8={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass8", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass9={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass9", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTCoordFormat={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTCoordFormat", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WAYPTCoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTCoordFormat1", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WAYPTDATA_ENTRY={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTDATA_ENTRY", + index=0, + statictext=false, + x=1, + y=7 + } + }, + WAYPTDATA_ENTRY1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTDATA_ENTRY1", + index=0, + statictext=false, + x=1, + y=9 + } + }, + WAYPTIdent={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTIdent", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTIdent", + index=1, + statictext=false, + x=12, + y=2 + } + }, + WAYPTIdent1={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="WAYPTIdent1", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTIdent1", + index=1, + statictext=false, + x=12, + y=2 + } + }, + WAYPTIdent2={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WAYPTIdent2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WAYPTLat={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WAYPTLatUTM={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLatUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WAYPTLong={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLong", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WAYPTLongMGRS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLongMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WAYPTMGRS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WAYPTNumber={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTNumber", + index=0, + statictext=false, + x=2, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTNumber", + index=1, + statictext=false, + x=6, + y=2 + } + }, + WAYPTNumber1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="WAYPTNumber1", + index=0, + statictext=false, + x=2, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTNumber1", + index=1, + statictext=false, + x=6, + y=2 + } + }, + WAYPTNumber2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WAYPTNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + WAYPTScale={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale2", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale3={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale3", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale4={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale4", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTSteer={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTSteer1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTSteer2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer2", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTSteer4={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer4", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTUTM={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WAYPTVNavMode={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTVNavMode", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WAYPTVNavMode1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTVNavMode1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WAYPTVNavMode2={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTVNavMode2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WAYPTWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindDirection1", + index=0, + statictext=false, + x=17, + y=8 + } + }, + WAYPTWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindDirection2", + index=0, + statictext=false, + x=17, + y=8 + } + }, + WAYPTWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindSpeed1", + index=0, + statictext=false, + x=21, + y=8 + } + }, + WAYPTWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindSpeed2", + index=0, + statictext=false, + x=21, + y=8 + } + }, + WAYPT_CR_FLAG={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_CR_FLAG", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPT_CR_FLAG1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_CR_FLAG1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPT_DTOT={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_DTOT", + index=0, + statictext=false, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTOT", + index=1, + statictext=false, + x=8, + y=9 + } + }, + WAYPT_DTOT1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_DTOT1", + index=0, + statictext=false, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTOT1", + index=1, + statictext=false, + x=8, + y=9 + } + }, + WAYPT_DTTG={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTTG", + index=0, + statictext=false, + x=8, + y=7 + } + }, + WAYPT_DTTG1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTTG1", + index=0, + statictext=false, + x=7, + y=7 + } + }, + WAYPT_EL1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_EL1", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WAYPT_EL2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_EL2", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WAYPT_EL3={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_EL3", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WAYPT_INCR_DECR={ + { + alignment="LFT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="WAYPT_INCR_DECR", + index=0, + statictext=true, + x=1, + y=3 + } + }, + WE={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="WE", + index=0, + statictext=true, + x=18, + y=6 + } + }, + WE_ERR={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="WE_ERR", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WIND={ + { + alignment="RGHT", + cdu_pages={ + "LASTE" + }, + id="WIND", + index=0, + statictext=true, + x=24, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WIND", + index=1, + statictext=true, + x=24, + y=3 + } + }, + WINDALT={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDALT", + index=0, + statictext=false, + x=3, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT", + index=1, + statictext=false, + x=3, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDALT", + index=2, + statictext=false, + x=12, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT", + index=3, + statictext=false, + x=12, + y=3 + } + }, + WINDALT1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDALT1", + index=0, + statictext=false, + x=3, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT1", + index=1, + statictext=false, + x=3, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDALT1", + index=2, + statictext=false, + x=12, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT1", + index=3, + statictext=false, + x=12, + y=5 + } + }, + WINDALT2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDALT2", + index=0, + statictext=false, + x=3, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT2", + index=1, + statictext=false, + x=3, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDALT2", + index=2, + statictext=false, + x=12, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT2", + index=3, + statictext=false, + x=12, + y=7 + } + }, + WINDALT3={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT3", + index=0, + statictext=false, + x=3, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT3", + index=1, + statictext=false, + x=12, + y=9 + } + }, + WINDCLRMODE={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDCLRMODE", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WINDCLRMODE1={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDCLRMODE1", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WINDCLRMODE2={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDCLRMODE2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WINDDATA_ENTRY={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY", + index=0, + statictext=false, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY", + index=1, + statictext=false, + x=1, + y=3 + } + }, + WINDDATA_ENTRY1={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY1", + index=0, + statictext=false, + x=24, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY1", + index=1, + statictext=false, + x=24, + y=3 + } + }, + WINDDATA_ENTRY2={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY2", + index=0, + statictext=false, + x=1, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY2", + index=1, + statictext=false, + x=1, + y=5 + } + }, + WINDDATA_ENTRY3={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY3", + index=0, + statictext=false, + x=24, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY3", + index=1, + statictext=false, + x=24, + y=5 + } + }, + WINDDATA_ENTRY4={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY4", + index=0, + statictext=false, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY4", + index=1, + statictext=false, + x=1, + y=7 + } + }, + WINDDATA_ENTRY5={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY5", + index=0, + statictext=false, + x=24, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY5", + index=1, + statictext=false, + x=24, + y=7 + } + }, + WINDDATA_ENTRY6={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY6", + index=0, + statictext=false, + x=1, + y=9 + } + }, + WINDDATA_ENTRY7={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY7", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WINDDIV={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDIV", + index=0, + statictext=false, + x=9, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV", + index=1, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDIV", + index=2, + statictext=false, + x=5, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV", + index=3, + statictext=false, + x=5, + y=3 + } + }, + WINDDIV1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDIV1", + index=0, + statictext=false, + x=9, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV1", + index=1, + statictext=false, + x=9, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDIV1", + index=2, + statictext=false, + x=5, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV1", + index=3, + statictext=false, + x=5, + y=5 + } + }, + WINDDIV2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDIV2", + index=0, + statictext=false, + x=9, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV2", + index=1, + statictext=false, + x=9, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDIV2", + index=2, + statictext=false, + x=5, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV2", + index=3, + statictext=false, + x=5, + y=7 + } + }, + WINDDIV3={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV3", + index=0, + statictext=false, + x=9, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV3", + index=1, + statictext=false, + x=5, + y=9 + } + }, + WINDDir={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDir", + index=0, + statictext=false, + x=6, + y=5 + } + }, + WINDDir1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDir1", + index=0, + statictext=false, + x=6, + y=5 + } + }, + WINDDirSpeed={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed", + index=1, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed", + index=2, + statictext=false, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed", + index=3, + statictext=false, + x=2, + y=3 + } + }, + WINDDirSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed1", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed1", + index=1, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed1", + index=2, + statictext=false, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed1", + index=3, + statictext=false, + x=2, + y=3 + } + }, + WINDDirSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed2", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed2", + index=1, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed2", + index=2, + statictext=false, + x=2, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed2", + index=3, + statictext=false, + x=2, + y=5 + } + }, + WINDDirSpeed3={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed3", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed3", + index=1, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed3", + index=2, + statictext=false, + x=2, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed3", + index=3, + statictext=false, + x=2, + y=5 + } + }, + WINDDirSpeed4={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed4", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed4", + index=1, + statictext=false, + x=2, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed4", + index=2, + statictext=false, + x=2, + y=7 + } + }, + WINDDirSpeed5={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed5", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed5", + index=1, + statictext=false, + x=2, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed5", + index=2, + statictext=false, + x=2, + y=7 + } + }, + WINDDirSpeed6={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed6", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed6", + index=1, + statictext=false, + x=2, + y=9 + } + }, + WINDDirSpeed7={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed7", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed7", + index=1, + statictext=false, + x=2, + y=9 + } + }, + WINDMODE={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE", + index=0, + statictext=true, + x=24, + y=3 + } + }, + WINDMODE1={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDMODE2={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDMODE3={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE3", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDMODE4={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE4", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDSpeed={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed", + index=1, + statictext=false, + x=10, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed", + index=2, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed", + index=3, + statictext=false, + x=6, + y=3 + } + }, + WINDSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed1", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed1", + index=1, + statictext=false, + x=10, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed1", + index=2, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed1", + index=3, + statictext=false, + x=6, + y=3 + } + }, + WINDSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed2", + index=0, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed2", + index=1, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed2", + index=2, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed2", + index=3, + statictext=false, + x=6, + y=5 + } + }, + WINDSpeed3={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed3", + index=0, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed3", + index=1, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed3", + index=2, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed3", + index=3, + statictext=false, + x=6, + y=5 + } + }, + WINDSpeed4={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed4", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed4", + index=1, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed4", + index=2, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed4", + index=3, + statictext=false, + x=6, + y=7 + } + }, + WINDSpeed5={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed5", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed5", + index=1, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed5", + index=2, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed5", + index=3, + statictext=false, + x=6, + y=7 + } + }, + WINDSpeed6={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed6", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed6", + index=1, + statictext=false, + x=6, + y=9 + } + }, + WINDSpeed7={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed7", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed7", + index=1, + statictext=false, + x=6, + y=9 + } + }, + WINDTemp={ + { + alignment="RGHT", + cdu_pages={ + "WIND", + "WNDEDIT" + }, + id="WINDTemp", + index=0, + statictext=false, + x=24, + y=2 + }, + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp", + index=2, + statictext=false, + x=13, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp", + index=3, + statictext=false, + x=23, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp", + index=4, + statictext=false, + x=23, + y=3 + } + }, + WINDTemp1={ + { + alignment="RGHT", + cdu_pages={ + "WIND", + "WNDEDIT" + }, + id="WINDTemp1", + index=0, + statictext=false, + x=24, + y=2 + }, + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp1", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp1", + index=2, + statictext=false, + x=13, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp1", + index=3, + statictext=false, + x=23, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp1", + index=4, + statictext=false, + x=23, + y=3 + } + }, + WINDTemp10={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp10", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp10", + index=1, + statictext=false, + x=23, + y=9 + } + }, + WINDTemp11={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp11", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp11", + index=1, + statictext=false, + x=23, + y=9 + } + }, + WINDTemp12={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp12", + index=0, + statictext=false, + x=23, + y=9 + } + }, + WINDTemp2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp2", + index=0, + statictext=false, + x=13, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp2", + index=1, + statictext=false, + x=13, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp2", + index=2, + statictext=false, + x=23, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp2", + index=3, + statictext=false, + x=23, + y=3 + } + }, + WINDTemp3={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp3", + index=0, + statictext=false, + x=13, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp3", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp3", + index=2, + statictext=false, + x=23, + y=7 + } + }, + WINDTemp4={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp4", + index=0, + statictext=false, + x=13, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp4", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp4", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp4", + index=3, + statictext=false, + x=23, + y=5 + } + }, + WINDTemp5={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp5", + index=0, + statictext=false, + x=13, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp5", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp5", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp5", + index=3, + statictext=false, + x=23, + y=5 + } + }, + WINDTemp6={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp6", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp6", + index=1, + statictext=false, + x=13, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp6", + index=2, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp6", + index=3, + statictext=false, + x=23, + y=5 + } + }, + WINDTemp7={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp7", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp7", + index=1, + statictext=false, + x=13, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp7", + index=2, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp7", + index=3, + statictext=false, + x=23, + y=7 + } + }, + WINDTemp8={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp8", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp8", + index=1, + statictext=false, + x=13, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp8", + index=2, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp8", + index=3, + statictext=false, + x=23, + y=7 + } + }, + WINDTemp9={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp9", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp9", + index=1, + statictext=false, + x=23, + y=7 + } + }, + WIND_ALT_TEMP={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WIND_ALT_TEMP", + index=0, + statictext=true, + x=2, + y=4 + } + }, + WND={ + { + alignment="LFT", + cdu_pages={ + "STRINFO", + "WAYPT1" + }, + id="WND", + index=0, + statictext=true, + x=13, + y=8 + } + }, + WNDDIV={ + { + alignment="LFT", + cdu_pages={ + "WIND", + "WNDEDIT" + }, + id="WNDDIV", + index=0, + statictext=false, + x=17, + y=2 + } + }, + WNDEDIT={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WNDEDIT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + WNDEDWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindDirection1", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDEDWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindDirection2", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDEDWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindSpeed1", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WNDEDWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindSpeed2", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WNDWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindDirection1", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindDirection2", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindSpeed1", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WNDWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindSpeed2", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WPActive={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive", + index=0, + statictext=false, + x=9, + y=5 + } + }, + WPActive1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive1", + index=0, + statictext=false, + x=9, + y=5 + } + }, + WPActive2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive2", + index=0, + statictext=false, + x=9, + y=6 + } + }, + WPActive3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive3", + index=0, + statictext=false, + x=9, + y=7 + } + }, + WPActive4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive4", + index=0, + statictext=false, + x=9, + y=7 + } + }, + WPActive5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive5", + index=0, + statictext=false, + x=9, + y=8 + } + }, + WPActive6={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive6", + index=0, + statictext=false, + x=9, + y=9 + } + }, + WPActive7={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive7", + index=0, + statictext=false, + x=9, + y=9 + } + }, + WPFPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPFPNumber", + index=0, + statictext=false, + x=2, + y=5 + } + }, + WPFPNumber1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPFPNumber1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WPFPNumber2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPFPNumber2", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WPInput={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPInput", + index=0, + statictext=false, + x=1, + y=5 + } + }, + WPInput1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPInput1", + index=0, + statictext=false, + x=1, + y=7 + } + }, + WPInput2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPInput2", + index=0, + statictext=false, + x=1, + y=9 + } + }, + WPN_EVENTS={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="WPN_EVENTS", + index=0, + statictext=true, + x=2, + y=8 + } + }, + WPN_EVENTS1={ + { + alignment="RGHT", + cdu_pages={ + "LASTE" + }, + id="WPN_EVENTS1", + index=0, + statictext=false, + x=16, + y=8 + } + }, + WPName={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPName1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName1", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPName2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName2", + index=0, + statictext=false, + x=10, + y=6 + } + }, + WPName3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName3", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPName4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName4", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPName5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName5", + index=0, + statictext=false, + x=10, + y=8 + } + }, + WPName6={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName6", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPName7={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName7", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPNewName={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPNewName1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName1", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPNewName2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName2", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPNewName3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName3", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPNewName4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName4", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPNewName5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName5", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WPNumber1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber1", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WPNumber2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber2", + index=0, + statictext=false, + x=5, + y=6 + } + }, + WPNumber3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber3", + index=0, + statictext=false, + x=5, + y=7 + } + }, + WPNumber4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber4", + index=0, + statictext=false, + x=5, + y=7 + } + }, + WPNumber5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber5", + index=0, + statictext=false, + x=5, + y=8 + } + }, + WPNumber6={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber6", + index=0, + statictext=false, + x=5, + y=9 + } + }, + WPNumber7={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber7", + index=0, + statictext=false, + x=5, + y=9 + } + }, + WPT={ + { + alignment="LFT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="WPT", + index=0, + statictext=false, + x=2, + y=2 + } + }, + WPTATT={ + { + alignment="RGHT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATT", + index=0, + statictext=false, + x=24, + y=4 + } + }, + WPTATTBranch={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATTBranch", + index=0, + statictext=false, + x=24, + y=5 + } + }, + WPTATTBranch1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATTBranch1", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WPTATTBranch2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATTBranch2", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WPTATTScale={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale2={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale2", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale3={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale3", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale4={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale4", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTSteer={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTSteer1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTSteer2={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer2", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTSteer4={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer4", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTVNavMode={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTVNavMode", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WPTATTVNavMode1={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTVNavMode1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WPTATTVNavMode2={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTVNavMode2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WPTATT_DTOT={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTOT", + index=0, + statictext=false, + x=8, + y=9 + } + }, + WPTATT_DTOT1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTOT1", + index=0, + statictext=false, + x=8, + y=9 + } + }, + WPTATT_DTOT_ST={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTOT_ST", + index=0, + statictext=true, + x=1, + y=9 + } + }, + WPTATT_DTTG={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTTG", + index=0, + statictext=false, + x=7, + y=7 + } + }, + WPTATT_DTTG1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTTG1", + index=0, + statictext=false, + x=7, + y=7 + } + }, + WPTATT_DTTG_ST={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTTG_ST", + index=0, + statictext=true, + x=1, + y=7 + } + }, + WPTATT_FP_Number={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_FP_Number", + index=0, + statictext=false, + x=22, + y=3 + } + }, + WPTATT_WPT_Name={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_WPT_Name", + index=0, + statictext=false, + x=11, + y=2 + } + }, + WPTATT_WPT_Number={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_WPT_Number", + index=0, + statictext=false, + x=6, + y=2 + } + }, + WPTDIS1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTDIS1", + index=0, + statictext=false, + x=20, + y=5 + } + }, + WPTDIS2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTDIS2", + index=0, + statictext=false, + x=20, + y=5 + } + }, + WPTDISMH={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTDISMH", + index=0, + statictext=true, + x=19, + y=5 + } + }, + WPTMH1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTMH1", + index=0, + statictext=false, + x=16, + y=5 + } + }, + WPTMH2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTMH2", + index=0, + statictext=false, + x=16, + y=5 + } + }, + WPTTTG1={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WPTTTG1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WPTTTG2={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WPTTTG2", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WPTTTG3={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WPTTTG3", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WRITE={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="WRITE", + index=0, + statictext=true, + x=2, + y=9 + } + }, + YEAR={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="YEAR", + index=0, + statictext=true, + x=16, + y=3 + } + }, + YEAR_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="YEAR_DE", + index=0, + statictext=false, + x=24, + y=3 + } + }, + YEAR_TXT={ + { + alignment="RGHT", + cdu_pages={ + "TIME" + }, + id="YEAR_TXT", + index=0, + statictext=false, + x=23, + y=3 + } + }, + YES={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="YES", + index=0, + statictext=true, + x=11, + y=3 + } + }, + ZEROES1={ + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="ZEROES1", + index=0, + statictext=true, + x=1, + y=7 + } + }, + ZEROES2={ + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="ZEROES2", + index=0, + statictext=true, + x=23, + y=7 + } + }, + ZEROIZE={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="ZEROIZE", + index=0, + statictext=true, + x=1, + y=9 + } + }, + pName={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="pName", + index=0, + statictext=true, + x=2, + y=1 + } + }, + ScratchBorders={ + { + alignment="LFT", + x=1, + y=10 + } + }, + ScratchString={ + { + alignment="LFT", + x=2, + y=10 + } + }, + PAGE={ + { + alignment="LFT", + x=19, + y=10 + } + }, + PAGE_NUM={ + { + alignment="LFT", + x=20, + y=10 + } + } +} + +-- Unicode UTF-16 +function ExportScript.AF.replaceSymbols(s) + s = s:gsub(string.char(0xB0), "0x00B0") --DEGREE "°" + s = s:gsub(string.char(0xB1), "0x00B1") --INC_DEC "±" + s = s:gsub(string.char(0xA9), "0x2299") --INC_DEC (Circle with Dot) + s = s:gsub(string.char(0x3A), "0x003A") --Colon ":" + s = s:gsub(":" , "0x003A") --Colon ":" + s = s:gsub(string.char(0xBB), "0x2192") --Right Arrow "→" + s = s:gsub(string.char(0xAB), "0x2190") --Left Arrow "←" + s = s:gsub(string.char(0xB6), "0x2588") --Cursor "█" + s = s:gsub(string.char(0xA1), "0x2337") --DATA_ENTRY "⌷" + s = s:gsub(string.char(0xAE), "0x2195") --UpDown Arrow "↕" + s = s:gsub("*" , "0x002A") -- Asterisk "*" + return s +end + +function ExportScript.AF.preReplaceSymbols(s) + s = s:gsub(string.char(26), string.char(0xBB)) -- BRANCH_L + s = s:gsub(string.char(27), string.char(0xAB)) -- BRANCH_R + s = s:gsub(string.char(18), string.char(0xAE)) -- ROTARY + s = s:gsub(string.char(20), string.char(0xA1)) -- DATA_ENTRY + s = s:gsub("©" , string.char(0xA9)) -- SYS_ACTION + s = s:gsub("°" , string.char(0xB0)) -- DEGREE + s = s:gsub("ю" , string.char(0xB6)) -- FILLED + s = s:gsub("я" , string.char(0xB1)) -- INC_DEC + return s +end + +function ExportScript.AF.exportCDU() + local cdu = ExportScript.Tools.getListIndicatorValue(3) + + local cdu_lines = {} + local empty_line = " " -- 24 spaces + cdu_lines[1] = empty_line + cdu_lines[2] = empty_line + cdu_lines[3] = empty_line + cdu_lines[4] = empty_line + cdu_lines[5] = empty_line + cdu_lines[6] = empty_line + cdu_lines[7] = empty_line + cdu_lines[8] = empty_line + cdu_lines[9] = empty_line + cdu_lines[10] = empty_line + if not cdu then + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('keine cdu daten') + end + ExportScript.Tools.SendData(2030, cdu_lines[1]) + ExportScript.Tools.SendData(2031, cdu_lines[2]) + ExportScript.Tools.SendData(2032, cdu_lines[3]) + ExportScript.Tools.SendData(2033, cdu_lines[4]) + ExportScript.Tools.SendData(2034, cdu_lines[5]) + ExportScript.Tools.SendData(2035, cdu_lines[6]) + ExportScript.Tools.SendData(2036, cdu_lines[7]) + ExportScript.Tools.SendData(2037, cdu_lines[8]) + ExportScript.Tools.SendData(2038, cdu_lines[9]) + ExportScript.Tools.SendData(2039, cdu_lines[10]) + return + end + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu: '..ExportScript.Tools.dump(cdu)) + end + local cdu_page = list_cockpit_params():match('CDU_PAGE:"([0-9A-Za-z_]+)"') + local cursor_pos = 2 + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu_page: '..ExportScript.Tools.dump(cdu_page)) + end + if cdu.ScratchString then cursor_pos = cdu.ScratchString:len()+2 end + + ExportScript.AF.CDUIndicatorData["Cursor"]={ + [1]={ + alignment="LFT", + x=cursor_pos, + y=10 + } + } + + for k, v in pairs(cdu) do + local candidates = ExportScript.AF.CDUIndicatorData[k] + if candidates then + + v = ExportScript.AF.preReplaceSymbols(v) -- make sure that 1 char == 1 byte + + local render_instructions = nil + if #candidates == 1 then + render_instructions = candidates[1] + else + for _, ri in pairs(candidates) do + for _, page in pairs(ri.cdu_pages) do + if cdu_page == "CDU_"..page then + render_instructions = ri + break + end + end + end + end + if render_instructions then + local i + local ri = render_instructions + local old_line = cdu_lines[ri.y] + local replacements = {} + if ri.alignment == "LFT" then + for i = 1, v:len(), 1 do + local c = v:sub(i,i) + if c ~= " " then replacements[ri.x + i - 1] = c end + end + elseif ri.alignment == "RGHT" then + for i = 1, v:len(), 1 do + local c = v:sub(i,i) + if c ~= " " then replacements[ri.x - (v:len() - i)] = c end + end + end + local new_line = "" + for i = 1, 24, 1 do + new_line = new_line .. (replacements[i] or old_line:sub(i,i)) + end + cdu_lines[ri.y] = new_line + end + end + end + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu_lines 1: '..ExportScript.Tools.dump(cdu_lines)) + end + + cdu_lines[1] = ExportScript.AF.replaceSymbols(cdu_lines[1]) + cdu_lines[2] = ExportScript.AF.replaceSymbols(cdu_lines[2]) + cdu_lines[3] = ExportScript.AF.replaceSymbols(cdu_lines[3]) + cdu_lines[4] = ExportScript.AF.replaceSymbols(cdu_lines[4]) + cdu_lines[5] = ExportScript.AF.replaceSymbols(cdu_lines[5]) + cdu_lines[6] = ExportScript.AF.replaceSymbols(cdu_lines[6]) + cdu_lines[7] = ExportScript.AF.replaceSymbols(cdu_lines[7]) + cdu_lines[8] = ExportScript.AF.replaceSymbols(cdu_lines[8]) + cdu_lines[9] = ExportScript.AF.replaceSymbols(cdu_lines[9]) + cdu_lines[10] = ExportScript.AF.replaceSymbols(cdu_lines[10]) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu_lines 2: '..ExportScript.Tools.dump(cdu_lines)) + end + ExportScript.Tools.SendData(2030, cdu_lines[1]) + ExportScript.Tools.SendData(2031, cdu_lines[2]) + ExportScript.Tools.SendData(2032, cdu_lines[3]) + ExportScript.Tools.SendData(2033, cdu_lines[4]) + ExportScript.Tools.SendData(2034, cdu_lines[5]) + ExportScript.Tools.SendData(2035, cdu_lines[6]) + ExportScript.Tools.SendData(2036, cdu_lines[7]) + ExportScript.Tools.SendData(2037, cdu_lines[8]) + ExportScript.Tools.SendData(2038, cdu_lines[9]) + ExportScript.Tools.SendData(2039, cdu_lines[10]) + end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/A-10C_2.lua b/Scripts/DCS-ExportScript/ExportsModules/A-10C_2.lua new file mode 100644 index 00000000..beece252 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/A-10C_2.lua @@ -0,0 +1,22039 @@ +-- A-10C + +ExportScript.FoundDCSModule = true +ExportScript.Version.A10C = "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 + ]] + -- AOA Gauges + [4] = "%.4f", -- AOA + [55] = "%0.1f", -- AOA Power Flag + -- VVI + [12] = "%.4f", -- Variometer (VVI) {-1.0, -0.5, -0.29, 0.29, 0.5, 1.0} {-6000, -2000, -1000, 1000, 2000, 6000} + -- APU + [13] = "%.4f", -- APU RPM + [14] = "%.4f", -- APU Temperature + [15] = "%.4f", -- Accelerometer_main + -- ADI + [17] = "%.4f", -- ADI Pitch + [18] = "%.4f", -- ADI Bank + [19] = "%0.1f", -- ADI Course Warning Flag + [20] = "%.4f", -- ADI Bank Steering Bar + [21] = "%.4f", -- ADI Pitch Steering Bar + [23] = "%.4f", -- ADI Turn Needle + [24] = "%.4f", -- ADI Slip Ball + [25] = "%0.1f", -- ADI Attitude Warning Flag + [26] = "%0.1f", -- ADI Glide-Slope Warning Flag + [27] = "%.4f", -- ADI Glide-Slope Indicator + -- HSI + [28] = "%0.4f", -- HSI_range_counter_1000 + [29] = "%0.4f", -- HSI_range_counter_100 + [30] = "%0.4f", -- HSI_range_counter_10 + [31] = "%0.4f", -- HSI_range_counter_1 + [32] = "%0.1f", -- HSI Range Flag + [33] = "%.4f", -- HSI Bearing #1 + [34] = "%.4f", -- HSI Heading + [35] = "%.4f", -- HSI Bearing #2 + [36] = "%.4f", -- HSI Heading Marker + [40] = "%0.1f", -- HSI Power Flag + [41] = "%.4f", -- HSI Deviation + [46] = "%0.1f", -- HSI Bearing Flag + [47] = "%.4f", -- HSI Course Arrow + -- Airspeed + [48] = "%.4f", -- Airspeed Needle + [49] = "%.4f", -- Airspeed Dial + -- Altimeter + [51] = "%.4f", -- Altimeter_100_footPtr + [52] = "%.4f", -- Altimeter_10000_footCount + [53] = "%.4f", -- Altimeter_1000_footCount + [54] = "%.4f", -- Altimeter_100_footCount + [59] = "%.4f", -- pressure_setting_0 + [58] = "%.4f", -- pressure_setting_1 + [57] = "%.4f", -- pressure_setting_2 + [56] = "%.4f", -- pressure_setting_3 + [61] = "%.1f", -- AAU34_PNEU_flag + -- Stby Attitude Indicator + [63] = "%.4f", -- Standby Attitude Indicator pitch + [64] = "%.4f", -- Standby Attitude Indicator bank + [65] = "%0.1f", -- Standby Attitude Indicator warning flag + [715] = "%.4f", -- Standby Attitude Indicator manual pitch adjustment + [717] = "%.4f", -- Standby Attitude Indicator knob arrow + -- Engine Gauges + [70] = "%.4f", -- Left Engine Temperature + [71] = "%.4f", -- Left Engine TemperatureUnits + [73] = "%.4f", -- Right Engine Temperature + [74] = "%.4f", -- Right Engine TemperatureUnits + [76] = "%.4f", -- EngineLeftFanSpeed + [77] = "%.4f", -- EngineRightFanSpeed + [78] = "%.4f", -- EngineLeftCoreSpeedTenth + [79] = "%.4f", -- EngineLeftCoreSpeedUnits + [80] = "%.4f", -- EngineRightCoreSpeedTenth + [81] = "%.4f", -- EngineRightCoreSpeedUnits + [82] = "%.4f", -- Left Engine Oil Pressure + [83] = "%.4f", -- Right Engine Oil Pressure + [84] = "%.4f", -- EngineLeftFuelFlow + [85] = "%.4f", -- EngineRightFuelFlow + -- Fuel Gauges + [88] = "%.4f", -- Fuel Indicator, FuelQuantityLeft + [89] = "%.4f", -- Fuel Indicator, FuelQuantityRight + [90] = "%.4f", -- FuelQuantityCounterTenthOfThous + [91] = "%.4f", -- FuelQuantityCounterThousands + [92] = "%.4f", -- FuelQuantityCounterHundreds + [129] = "%1d", -- PTR-LCP-EAC (EAC On/Off) + -- Misc lamps + [178] = "%.f", -- L_AILERON_EMER_DISENGAGE + [179] = "%.f", -- R_AILERON_EMER_DISENGAGE + [181] = "%.f", -- L_ELEVATOR_EMER_DISENGAGE + [182] = "%.f", -- R_ELEVATOR_EMER_DISENGAGE + -- STABILITY AUGMENTATION SYSTEM PANEL + [185] = "%1d", -- PTR-SASP-YAW-SASENGAGE-L (Yaw SAS Engage left) + [186] = "%1d", -- PTR-SASP-YAW-SASENGAGE-R (Yaw SAS Engage right) + [187] = "%1d", -- PTR-SASP-PITCH-SASENGAGE-L (Pitch SAS Engage left) + [188] = "%1d", -- PTR-SASP-PITCH-SASENGAGE-R (Pitch SAS Engage right) + -- Misc lamps + [191] = "%.f", -- TAKE_OFF_TRIM + [215] = "%.f", -- L_ENG_FIRE + [216] = "%.f", -- APU_FIRE + [217] = "%.f", -- R_ENG_FIRE + [260] = "%.f", -- TACAN_test_light {0.0, 1.0} + -- + [269] = "%.4f", -- HARS_sync {-1.0, 1.0} + [274] = "%.4f", -- OxygenVolume {0.0, 1.0} + [281] = "%.4f", -- CabinPressAlt {0.0, 1.0} + -- Light System Control Panel + [289] = "%1d", -- PTR-LGHTCP-ANTICOLLISION (Anticollision Lights) + -- CMSC lamps + [372] = "%.f", -- CMSC_MissileLaunchIndicator {0.0, 1.0} + [373] = "%.f", -- CMSC_PriorityStatusIndicator {0.0, 1.0} + [374] = "%.f", -- CMSC_UnknownStatusIndicator {0.0, 1.0} + -- Master Warning Lamp UFCP + [404] = "%.f", -- MASTER_WARNING_STUB MASTER WARNING + -- Caution Panel LAMPS + [480] = "%.f", -- ENG_START_CYCLE + [481] = "%.f", -- L_HYD_PRESS + [482] = "%.f", -- R_HYD_PRESS + [483] = "%.f", -- GUN_UNSAFE + [484] = "%.f", -- ANTISKID + [485] = "%.f", -- L_HYD_RES + [486] = "%.f", -- R_HYD_RES + [487] = "%.f", -- OXY_LOW + [488] = "%.f", -- ELEV_DISENG + [489] = "%.f", -- VOID1 + [490] = "%.f", -- SEAT_NOT_ARMED + [491] = "%.f", -- BLEED_AIR_LEAK + [492] = "%.f", -- AIL_DISENG + [493] = "%.f", -- L_AIL_TAB + [494] = "%.f", -- R_AIL_TAB + [495] = "%.f", -- SERVICE_AIR_HOT + [496] = "%.f", -- PITCH_SAS + [497] = "%.f", -- L_ENG_HOT + [498] = "%.f", -- R_ENG_HOT + [499] = "%.f", -- WINDSHIELD_HOT + [500] = "%.f", -- YAW_SAS + [501] = "%.f", -- L_ENG_OIL_PRESS + [502] = "%.f", -- R_ENG_OIL_PRESS + [503] = "%.f", -- CICU + [504] = "%.f", -- GCAS + [505] = "%.f", -- L_MAIN_PUMP + [506] = "%.f", -- R_MAIN_PUMP + [507] = "%.f", -- VOID2 + [508] = "%.f", -- LASTE + [509] = "%.f", -- L_WING_PUMP + [510] = "%.f", -- R_WING_PUMP + [511] = "%.f", -- HARS + [512] = "%.f", -- IFF_MODE_4 + [513] = "%.f", -- L_MAIN_FUEL_LOW + [514] = "%.f", -- R_MAIN_FUEL_LOW + [515] = "%.f", -- L_R_TKS_UNEQUAL + [516] = "%.f", -- EAC + [517] = "%.f", -- L_FUEL_PRESS + [518] = "%.f", -- R_FUEL_PRESS + [519] = "%.f", -- NAV + [520] = "%.f", -- STALL_SYS + [521] = "%.f", -- L_CONV + [522] = "%.f", -- R_CONV + [523] = "%.f", -- CADC + [524] = "%.f", -- APU_GEN + [525] = "%.f", -- L_GEN + [526] = "%.f", -- R_GEN + [527] = "%.f", -- INST_INV + -- Angle of attack indicator + [540] = "%0.1f", -- AOA_INDEXER_HIGH + [541] = "%0.4f", -- AOA_INDEXER_NORM + [542] = "%0.1f", -- AOA_INDEXER_LOW + -- Misc Data + [600] = "%0.1f", -- BreathFlow {0.0, 1.0} + [604] = "%.4f", -- OxygenPress {0.0, 0.5, 1.0} + -- NMSP Panel lamps + [606] = "%.f", -- HARS + [608] = "%.f", -- EGI + [610] = "%.f", -- TISL + [612] = "%.f", -- STRPT + [614] = "%.f", -- ANCHR + [616] = "%.f", -- TCN + [618] = "%.f", -- ILS + [619] = "%.f", -- UHF + [620] = "%.f", -- FM + -- Hydraulic Pressure + [647] = "%.4f", -- HydraulicPressureLeft {0.0,1.0} + [648] = "%.4f", -- HydraulicPressureRight {0.0,1.0} + -- Flap Indicator + [653] = "%.4f", -- FlapPositionIndicator {0,20} {0,2/3,1} + -- Landing Gear Lamps + [659] = "%.f", -- GEAR_N_SAFE + [660] = "%.f", -- GEAR_L_SAFE + [661] = "%.f", -- GEAR_R_SAFE + -- Misc lamps + [662] = "%.f", -- GUN_READY + [663] = "%.f", -- NOSEWHEEL_STEERING + [664] = "%.f", -- MARKER_BEACON + [665] = "%.f", -- CANOPY_UNLOCKED + [730] = "%.f", -- AIR_REFUEL_READY + [731] = "%.f", -- AIR_REFUEL_LATCHED + [732] = "%.f", -- AIR_REFUEL_DISCONNECT + [737] = "%.f", -- HANDLE_GEAR_WARNING + -- IFF Panel lamps + [798] = "%.f", -- IFF_reply_lamp {0, 1} + [799] = "%.f", -- IFF_test_lamp {0, 1} + -- + [902] = "%.4f", -- Accelerometer_min + [903] = "%.4f", -- Accelerometer_max + -- Standby Compass + [6] = "%.4f", -- heading + [720] = "%.4f", -- pitch + [721] = "%.4f", -- bank +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + --Attitude Direction Indicator + [22] = "%.4f", -- ADI Pitch Trim Knob {-.05,0.5} in 01. steps + --Horizontal Situation Indicator + [45] = "%.4f", -- HSI Heading Set Knob + [44] = "%.4f", -- HSI Course Set Knob + --Standby Attitude Indicator + [67] = "%1df", -- SAI Cage Standby Attitude Indicator. Hold Right Mouse Button and rotate Scroll Wheel to uncage + [66] = "%.4f", -- SAI Cage Standby Attitude Indicator. Hold Right Mouse Button and rotate Scroll Wheel to uncage + -- Digital Clock + [68] = "%1d", -- Clock Toggle Clock and Elapsed Time Modes + [69] = "%1d", -- Clock Start, Stop and Reset Elapsed Timer + -- Emergency Jettison Button + [101] = "%.1f", -- PTR-EXT-STORES-JETT (mergency Jettison External Stores) + -- Fire Extinguishers Panel + [102] = "%1d", -- PTR-FIRE-LENG-PULL (Left Engine Fire T-Handle) + [103] = "%1d", -- PTR-FIRE-APU-PULL (APU Fire T-Handle) + [104] = "%1d", -- PTR-FIRE-RENG-PULL (Right Engine Fire T-Handle) + [105] = "%1d", -- PTR-FIRE-EXTING-DISCH (Fire Extinguishing Agent Discharge) + -- Fuel System Control Panel + [106] = "%1d", -- PTR-FSCP-EXT-TANKS-WING (External Wing Tanks Boost Pumps) + [107] = "%1d", -- PTR-FSCP-EXT-TANKS-FUS (External Fuselage Tank Boost Pump) + [108] = "%1d", -- PTR-FSCP-TK-GATE (Tank Gate) + [109] = "%1d", -- PTR-FSCP-CROSS-FEED (Cross Feed) + [110] = "%1d", -- PTR-FSCP-BOOST-PUMPS-WING-L (Boost Pumps Left Wing) + [111] = "%1d", -- PTR-FSCP-BOOST-PUMPS-WING-R (Boost Pumps Right Wing) + [112] = "%1d", -- PTR-FSCP-BOOST-PUMPS-MAIN-L (Boost Pumps Main Fuselage Left) + [113] = "%1d", -- PTR-FSCP-BOOST-PUMPS-MAIN-R (Boost Pumps Main Fuselage Right) + [114] = "%1d", -- PTR-FSCP-SIG-AMPL (Signal Amplifier Norm/Override) + [115] = "%.1f", -- PTR-FSCP-LINE-CHECK (Line Check) + [116] = "%.3f", -- PTR-FSCP-RCVR-LT (Refueling Lighting Dial) + [117] = "%1d", -- PTR-FSCP-FILLDISABLE-WING-L (Fill Disable Wing Left) + [118] = "%1d", -- PTR-FSCP-FILLDISABLE-WING-R (Fill Disable Wing Right) + [119] = "%1d", -- PTR-FSCP-FILLDISABLE-MAIN-L (Fill Disable Main Left) + [120] = "%1d", -- PTR-FSCP-FILLDISABLE-MAIN-R (Fill Disable Main Right) + [121] = "%1d", -- PTR-FSCP-RCVR-LEVER (Aerial Refueling Slipway Control Lever) + -- Engine System and Throttle panel + [122] = "%1d", -- PTR-FUEL-FLOW-L (Left Engine Fuel Flow Control) + [123] = "%1d", -- PTR-FUEL-FLOW-R (Right Engine Fuel Flow Control) + [124] = "%1d", -- PTR-ENGINE-OPER-L (Engine Operate Left) + [125] = "%1d", -- PTR-ENGINE-OPER-R (Engine Operate Right) + [126] = "%1d", -- PTR-APU-START (APU On/Off) + [128] = "%.1f", -- PTR-THROTTLE-FRICTION (Throttle Friction Control) + [652] = "%1d", -- PTR-TEMS-DATA (TEMS DATA) + -- LASTE Control Panel + [130] = "%1d", -- PTR-LCP-RDRALTM (Radar Altimeter Normal/Disabled) + [131] = "%.1f", -- PTR-LCP-AUTOPILOT-ENGAGE (Autopilot Engage/Disengage) + [132] = "%1d", -- PTR-LCP-AUTOPILOT-PATH-ALT (Autopilot Mode Select Switch) + -- ANARC186-VHF_AM + -- AM Radio + [133] = "%.3f", -- PTR-ANARC186-VHFAM-VOLUME (Volume) + [134] = "%1d", -- PTR-ANARC186-VHFAM-SQUELCH (Squelch / TONE) + [135] = "%0.1f", -- PTR-ANARC186-VHFAM-FREQEMER-CONTROL (Frequency Selection Dial) + [136] = "%.1f", -- PTR-ANARC186-VHFAM-LOAD (Load) + [137] = "%0.3f", -- PTR-ANARC186-VHFAM-PRESET (Preset Channel Selector) + [138] = "%0.1f", -- PTR-ANARC186-VHFAM-MODE (Frequency Mode Dial) + [139] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-1 (Frequency Selector the 1nd) + [140] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-2 (Frequency Selector the 2nd) + [141] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-3 (Frequency Selector the 3nd) + [142] = "%0.2f", -- PTR-ANARC186-VHFAM-FREQ-4 (Frequency Selector the 4nd) + -- FM Radio + [147] = "%.3f", -- PTR-ANARC186-VHFFM-VOLUME (Volume) + [148] = "%1d", -- PTR-ANARC186-VHFFM-SQUELCH (Squelch / TONE) + [149] = "%0.1f", -- PTR-ANARC186-VHFFM-FREQEMER-CONTROL (Frequency Selection Dial) + [150] = "%.1f", -- PTR-ANARC186-VHFFM-LOAD (Load) + [151] = "%0.3f", -- PTR-ANARC186-VHFFM-PRESET (Preset Channel Selector) + [152] = "%0.1f", -- PTR-ANARC186-VHFFM-MODE (Frequency Mode Dial) + [153] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-1 (Frequency Selector the 1nd) + [154] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-2 (Frequency Selector the 2nd) + [155] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-3 (Frequency Selector the 3nd) + [156] = "%0.2f", -- PTR-ANARC186-VHFFM-FREQ-4 (Frequency Selector the 4nd) + -- ANARC164 + -- UHF Raido + [161] = "%0.2f", -- PTR-ANARC164-CHANNEL-SELECTOR (Preset Channel Selector) + [162] = "%0.1f", -- PTR-ANARC164-100MHZ-SELECTOR (100 MHz Selector) + [163] = "%0.2f", -- PTR-ANARC164-10MHZ-SELECTOR (10 MHz Selector) + [164] = "%0.2f", -- PTR-ANARC164-1MHZ-SELECTOR (1 MHz Selector) + [165] = "%0.2f", -- PTR-ANARC164-0.1MHZ-SELECTOR (0.1 MHz Selector) + [166] = "%0.2f", -- PTR-ANARC164-0.025MHZ-SELECTOR (0.025 MHz Selector) + [167] = "%0.1f", -- PTR-ANARC164-FREQMODE (Frequency Mode Dial) + [168] = "%0.1f", -- PTR-ANARC164-FUNCTION (Function Dial) + [169] = "%1d", -- PTR-ANARC164-T-TONE (T-Tone) + [170] = "%1d", -- PTR-ANARC164-SQUELCH (Squelch) + [171] = "%.3f", -- PTR-ANARC164-VOLUME (Volume) + [172] = "%.1f", -- PTR-ANARC164-TEST-DISPLAY (Test Display) + [173] = "%.1f", -- PTR-ANARC164-STATUS (Status) + [734] = "%1d", -- PTR-ANARC164-COVER + [735] = "%.1f", -- PTR-ANARC164-LOAD (Load button) + -- Emergency Flight Control Panel + [174] = "%1d", -- PTR-EFCP-SPDBK-EMER-RETR (Speed Brake Emergency Retract) + [175] = "%1d", -- Speed Brake Emergency Retract (Pitch/Roll Trim Norm/Emergency Override) + [176] = "%0.1f", -- PTR-EFCP-TRIM (Trim Emergency ...) + [177] = "%1d", -- PTR-EFCP-AILERON-EMER-DISENGAGE (Aileron Emergency Disengage) + [180] = "%1d", -- PTR-EFCP-ELEVATOR-EMER-DISENGAGE (Elevator Emergency Disengage) + [183] = "%1d", -- PTR-EFCP-FLAP-EMER-RETR (Flaps Emergency Retract) + [184] = "%1d", -- PTR-EFCP-MRFCS (Manual Reversion Flight Control System (MRFCS)) + -- STABILITY AUGMENTATION SYSTEM PANEL + [189] = "%1d", -- PTR-SASP-MONITOR-TEST (Monitor Test Left/Right) + [190] = "%.1f", -- PTR-SASP-TO-TRIM (Set Takeoff Trim) + [192] = "%.3f", -- PTR-SASP-YAW-TRIM (Yaw Trim) + -- Light System Control Panel + [193] = "%.3f", -- PTR-ALCP-RSIL (Refuel Status Indexer Lights) + [194] = "%0.1f", -- PTR-ALCP-NVIS-LTS (Nightvision Lights) + [195] = "%.3f", -- PTR-ALCP-WPNSTA (Weapon Station Lights. No function) + [196] = "%1d", -- PTR-ALCP-HARSSAS (HARS-SAS Override/NORM) + -- ALCP + [197] = "%.1f", -- "PTR-ALCP-SIGLIGHTS-LAMP-TEST (Test Cockpit Indication Lights) + -- Light System Control Panel + [198] = "%.1f", -- PTR-ALCP-FDBAL-TEST (Fire Detect Bleed Air Test) + -- IFF + [199] = "%0.1f", -- PTR-IFFCP-CODE (Code) + [200] = "%0.1f", -- PTR-IFFCP-MASTER (Master) + [201] = "%1d", -- PTR-IFFCP-OUT-AUDIO-LIGHT (Audio/light) + [202] = "%1d", -- PTR-IFFCP-TEST-M-1 (Test M-1) + [203] = "%1d", -- PTR-IFFCP-TEST-M-2 (Test M-2) + [204] = "%1d", -- PTR-IFFCP-TEST-M-3A (Test M-3A) + [205] = "%1d", -- PTR-IFFCP-TEST-M-C (Test M-C) + [206] = "%1d", -- PTR-IFFCP-RADTEST (RAD Test/Mon) + [207] = "%1d", -- PTR-IFFCP-MIC-IDENT (Ident/Mic) + [208] = "%1d", -- PTR-IFFCP-ON-OUT (IFF On/Out) + [209] = "%0.2f", -- PTR-IFFCP-MODE1-WHEEL1 (MODE1-WHEEL1) + [210] = "%0.2f", -- PTR-IFFCP-MODE1-WHEEL2 (MODE1-WHEEL2) + [211] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL1 (MODE3A-WHEEL1) + [212] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL2 (MODE3A-WHEEL2) + [213] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL3 (MODE3A-WHEEL3) + [214] = "%0.2f", -- PTR-IFFCP-MODE3A-WHEEL4 (MODE3A-WHEEL4) + -- Inercom Panel + [221] = "%.3f", -- PTR-INTERCOM-INT (INT Switch) + [222] = "%1d", -- PTR-INTERCOM-INT (INT Switch) + [223] = "%.3f", -- PTR-INTERCOM-FM (FM Switch) + [224] = "%1d", -- PTR-INTERCOM-FM (FM Switch) + [225] = "%.3f", -- PTR-INTERCOM-VHF (VHF Switch) + [226] = "%1d", -- PTR-INTERCOM-VHF (VHF Switch) + [227] = "%.3f", -- PTR-INTERCOM-UHF (UHF Switch) + [228] = "%1d", -- PTR-INTERCOM-UHF (UHF Switch) + [229] = "%.3f", -- PTR-INTERCOM-AIM (AIM Switch) + [230] = "%1d", -- PTR-INTERCOM-AIM (AIM Switch) + [231] = "%.3f", -- PTR-INTERCOM-IFF (IFF Switch) + [232] = "%1d", -- PTR-INTERCOM-IFF (IFF Switch) + [233] = "%.3f", -- PTR-INTERCOM-ILS (ILS Switch) + [234] = "%1d", -- PTR-INTERCOM-ILS (ILS Switch) + [235] = "%.3f", -- PTR-INTERCOM-TCN (TCN Switch) + [236] = "%1d", -- PTR-INTERCOM-TCN (TCN Switch) + [237] = "%1d", -- PTR-INTERCOM-HM (HM Switch) + [238] = "%.3f", -- PTR-INTERCOM-VOL (Intercom volume) + [239] = "%0.1f", -- PTR-INTERCOM-MODE (Selector switch) + [240] = "%.1f", -- PTR-INTERCOM-CALL (Call button) + -- Electrical Power Panel + [241] = "%1d", -- PTR-EPP-APU-GEN-PWR (APU Generator On/Off) + [242] = "%1d", -- PTR-EPP-INVERTER (Inverter Switch) + [243] = "%1d", -- PTR-EPP-EMER-FLOOD (Emergency Flood Light) + [244] = "%1d", -- PTR-EPP-AC-GEN-PWR-L (Left AC Generator Power) + [245] = "%1d", -- PTR-EPP-AC-GEN-PWR-R (Right AC Generator Power) + [246] = "%1d", -- PTR-EPP-BATTERY-PWR (Battery Power) + -- ILS + [247] = "%1d", -- PTR-ILSCP-PWR Power + [248] = "%0.1f", -- PTR-ILSCP-PWR ILS Frequency MHz + [249] = "%.3f", -- PTR-ILSCP-VOL ILS Frequency kHz + [250] = "%0.1f", -- PTR-ILSCP-VOL Volume + [251] = "%0.1f", -- ILS_window_wheel_MHz + [252] = "%0.1f", -- ILS_window_wheel_KHz + -- TACAN + [256] = "%.1f", -- Channel Selector (Tens). Rotate mouse wheel to select (Axis) {0.0,1.0} in 0.1 steps + [257] = "%0.2f", -- Channel Selector (Ones) / X/Y Mode. Rotate mouse wheel to make channel selection (Axis) {0.0,1.0} in 0.1 steps + [258] = "%1d", -- Channel Selector (Ones) / X/Y Mode. Right mouse click to select X/Y. + [259] = "%.1f", -- PTR-TACAN-TEST (Test TACAN Signal on HSI) + [261] = "%.3f", -- PTR-TACAN-VOL (Signal Volume) (Axis) {0.0,1.0} in 0.1 steps + [262] = "%0.1f", -- PTR-TACAN-MODE (Mode Dial) {0.0,0.1,0.2,0.3,0.4} + [263] = "%.1f", -- TACAN_digit_pos.hundreds + [264] = "%.1f", -- TACAN_digit_pos.tens + [265] = "%.1f", -- TACAN_digit_pos.ones + --[266] = "%1d", -- XYwheel + -- HARS + [267] = "%.1f", -- PTR-HARS-CP-PUSH-TO-SYNC (HARS Push-To-Sync) + [268] = "%.3f", -- PTR-HARS-CP-PUSH-TO-SYNC (HARS Push-To-Sync) + [270] = "%1d", -- PTR-HARS-CP-SLAVE (HARS SLAVE-DG mode) + [271] = "%.3f", -- PTR-HARS-CP-LATITUDE (HARS Latitude Dial) + [272] = "%1d", -- PTR-HARS-CP-MAG-VAR (HARS MAG VAR) + [273] = "%1d", -- PTR-HARS-CP-N-S (HARS N/S toggle switch) + [711] = "%.1f", -- PTR-HARS-FAST-ERECT (HARS Fast Erect) + -- Environment Control Panel + [275] = "%.1f", -- PTR-ENVCP-OXY-TEST (Oxygen Indicator Test) + [276] = "%1d", -- PTR-ENVCP-WINDSHIELD-DEFOG (Windshield Defog/Deice) + [277] = "%.3f", -- PTR-ENVCP-CANOPY-DEFOG (Canopy Defog) + [278] = "%1d", -- PTR-ENVCP-WINDSHIELD-RREMOVE-WASH (Windshield Rain Removal/Wash) + [279] = "%1d", -- PTR-ENVCP-PITOT-HEAT (Pitot Heater) + [280] = "%1d", -- PTR-ENVCP-BLEED-AIR (Bleed Air) + [282] = "%1d", -- PTR-ENVCP-TEMP-PRESS (Temperature/Pressure Control) + [283] = "%1d", -- PTR-ENVCP-MAIN-AIR-SUPPLY (Main Air Supply) + [284] = "%.3f", -- PTR-ENVCP-FLOW-LEVEL (Flow Level Control) + -- Light System Control Panel + [287] = "%1d", -- PTR-LGHTCP-POSITION (Position Lights, FLASH/OFF/STEADY) + [288] = "%.3f", -- PTR-LGHTCP-FORMATION (Formation Lights) + [290] = "%.3f", -- PTR-LGHTCP-ENG-INST (Engine Instruments Lights) + [291] = "%1d", -- PTR-LGHTCP-NOSE-ILLUM (Nose Illumination) + [292] = "%.3f", -- PTR-LGHTCP-FLIGHT-INST (Flight Instruments Lights) + [293] = "%.3f", -- PTR-LGHTCP-AUX-INST (Auxiliary Instruments Lights) + [294] = "%1d", -- PTR-LGHTCP-SIGNAL-LTS (Signal Lights) + [295] = "%1d", -- PTR-LGHTCP-ACCEL-COMP (Accelerometer & Compass Lights) + [296] = "%.3f", -- PTR-LGHTCP-FLOOD (Flood Light) + [297] = "%.3f", -- PTR-LGHTCP-CONSOLE (Console Light) + -- Left MFCDI + [300] = "%.1f", -- PNT-BTN-MFD-L-01 (OSB 1) + [301] = "%.1f", -- PNT-BTN-MFD-L-02 (OSB 2) + [302] = "%.1f", -- PNT-BTN-MFD-L-03 (OSB 3) + [303] = "%.1f", -- PNT-BTN-MFD-L-04 (OSB 4) + [304] = "%.1f", -- PNT-BTN-MFD-L-05 (OSB 5) + [305] = "%.1f", -- PNT-BTN-MFD-L-06 (OSB 6) + [306] = "%.1f", -- PNT-BTN-MFD-L-07 (OSB 7) + [307] = "%.1f", -- PNT-BTN-MFD-L-08 (OSB 8) + [308] = "%.1f", -- PNT-BTN-MFD-L-09 (OSB 9) + [309] = "%.1f", -- PNT-BTN-MFD-L-10 (OSB 10) + [310] = "%.1f", -- PNT-BTN-MFD-L-11 (OSB 11) + [311] = "%.1f", -- PNT-BTN-MFD-L-12 (OSB 12) + [312] = "%.1f", -- PNT-BTN-MFD-L-13 (OSB 13) + [313] = "%.1f", -- PNT-BTN-MFD-L-14 (OSB 14) + [314] = "%.1f", -- PNT-BTN-MFD-L-15 (OSB 15) + [315] = "%.1f", -- PNT-BTN-MFD-L-16 (OSB 16) + [316] = "%.1f", -- PNT-BTN-MFD-L-17 (OSB 17) + [317] = "%.1f", -- PNT-BTN-MFD-L-18 (OSB 18) + [318] = "%.1f", -- PNT-BTN-MFD-L-19 (OSB 19) + [319] = "%.1f", -- PNT-BTN-MFD-L-20 (OSB 20) + [320] = "%1d", -- PNT-MFCD-L-ADJ-UP/DN (Moving Map Scale Adjust Increase/Decrease) + [321] = "%1d", -- PNT-MFCD-L-DSP-UP/DN (Decrease/Increase Backlight Brightness) + [322] = "%1d", -- PNT-MFD-L-BRT-UP/DN (Decrease/Increase Brightness) + [323] = "%1d", -- PNT-MFD-L-CON-UP/DN (Decrease/Increase Contrast) + [324] = "%1d", -- PNT-MFD-L-SYM-UP/DN (Decrease/Increase Symbol Levels) + [325] = "%0.1f", -- PNT-LVR-MFD-L (DAY/NIGHT/OFF) + -- Right MFCDI + [326] = "%.1f", -- PNT-BTN-MFD-R-01 (OSB 1) + [327] = "%.1f", -- PNT-BTN-MFD-R-02 (OSB 2) + [328] = "%.1f", -- PNT-BTN-MFD-R-03 (OSB 3) + [329] = "%.1f", -- PNT-BTN-MFD-R-04 (OSB 4) + [330] = "%.1f", -- PNT-BTN-MFD-R-05 (OSB 5) + [331] = "%.1f", -- PNT-BTN-MFD-R-06 (OSB 6) + [332] = "%.1f", -- PNT-BTN-MFD-R-07 (OSB 7) + [333] = "%.1f", -- PNT-BTN-MFD-R-08 (OSB 8) + [334] = "%.1f", -- PNT-BTN-MFD-R-09 (OSB 9) + [335] = "%.1f", -- PNT-BTN-MFD-R-10 (OSB 10) + [336] = "%.1f", -- PNT-BTN-MFD-R-11 (OSB 11) + [337] = "%.1f", -- PNT-BTN-MFD-R-12 (OSB 12) + [338] = "%.1f", -- PNT-BTN-MFD-R-13 (OSB 13) + [339] = "%.1f", -- PNT-BTN-MFD-R-14 (OSB 14) + [340] = "%.1f", -- PNT-BTN-MFD-R-15 (OSB 15) + [341] = "%.1f", -- PNT-BTN-MFD-R-16 (OSB 16) + [342] = "%.1f", -- PNT-BTN-MFD-R-17 (OSB 17) + [343] = "%.1f", -- PNT-BTN-MFD-R-18 (OSB 18) + [344] = "%.1f", -- PNT-BTN-MFD-R-19 (OSB 19) + [345] = "%.1f", -- PNT-BTN-MFD-R-20 (OSB 20) + [346] = "%1d", -- PNT-MFCD-R-ADJ-UP/DN (Moving Map Scale Adjust Increase/Decrease) + [347] = "%1d", -- PNT-MFCD-R-DSP-UP/DN (Decrease/Increase Backlight Brightness) + [348] = "%1d", -- PNT-MFD-R-BRT-UP/DN (Decrease/Increase Brightness) + [349] = "%1d", -- PNT-MFD-R-CON-UP/DN (Decrease/Increase Contrast) + [350] = "%1d", -- PNT-MFD-R-SYM-UP/DN (Decrease/Increase Symbol Levels) + [351] = "%0.1f", -- PNT-LVR-MFD-R (DAY/NIGHT/OFF) + -- CMSP + [352] = "%.1f", -- PNT-BTN-CMSP-ARW1 (Edit Program Value) + [353] = "%.1f", -- PNT-BTN-CMSP-ARW2 (Edit Program Value) + [354] = "%.1f", -- PNT-BTN-CMSP-ARW3 (Edit Program Value) + [355] = "%.1f", -- PNT-BTN-CMSP-ARW4 (Edit Program Value) + [356] = "%1d", -- PNT-BTN-CMSP-BRT-UP/DN (Cycle Program or Value Up/Down) + [357] = "%.1f", -- PNT-BTN-CMSP-RTN (Save and Return Program) + [358] = "%1d", -- PNT-TMB-CMSP-JTSN (Jettison Countermeasures) + [359] = "%.3f", -- PNT-LEV-CMSP-BRT (Adjust Display Brightness) + [360] = "%0.1f", -- PNT-TMB-CMSP-MWS (Missile Warning System (MWS). Left mouse - ON/OFF, Right mouse - MENU (No Function)) + [361] = "%0.1f", -- PNT-TMB-CMSP-JMR (Electronic Countermeasure Jammer (JMR). Left mouse - ON/OFF, Right mouse - MENU (No Function)) + [362] = "%0.1f", -- PNT-TMB-CMSP-RWR (Radar Warning Receiver (RWR). Left mouse - ON/OFF, Right mouse - MENU) + [363] = "%0.1f", -- PNT-TMB-CMSP-DISP (Countermeasure Dispenser (DISP). Left mouse - ON/OFF, Right mouse - MENU) + [364] = "%0.1f", -- PNT-LEV-CMSP-MODE (Master CMS Mode Select) + -- CMSC + [365] = "%.1f", -- PNT-BTN-RWR-JMR (Select Jammer Program) + [366] = "%.1f", -- PNT-BTN-RWR-MWS (Cycle Missile Warning System Programs. No function) + [367] = "%.3f", -- PNT-LEV-RWR-BRT (Adjust Display Brightness) + [368] = "%.3f", -- PNT-LEV-RWR-AUD (Adjust RWR Volume) + [369] = "%.1f", -- PNT-BTN-RWR-PRI (Toggle between 5 and 16 Priority Threats Displayed) + [370] = "%.1f", -- PNT-BTN-RWR-SEP (Separate RWR Symbols) + [371] = "%.1f", -- PNT-BTN-RWR-UNK (Display Unknown Threats) + -- AHCP + [375] = "%0.1f", -- PNT-TMB-AHCP-MARM (Master Arm) + [376] = "%0.1f", -- PNT-TMB-AHCP-GUNPAC (Gun Arm Mode) + [377] = "%0.1f", -- PNT-TMB-AHCP-LARM (Laser Arm) + [378] = "%1d", -- PNT-TMB-AHCP-TGP (Targeting Pod Power On/Off) + [379] = "%0.1f", -- PNT-TMB-AHCP-ALT (Altimeter Source) + [380] = "%1d", -- PNT-TMB-AHCP-TIME (Day/Night HUD Mode) + [381] = "%1d", -- PNT-TMB-AHCP-NORM (NORM/Standby HUD Mode) + [382] = "%1d", -- PNT-TMB-AHCP-CICU (Turn On/Off CICU) + [383] = "%1d", -- PNT-TMB-AHCP-JTRS (JTRS Datalink On/Off) + [384] = "%0.1f", -- PNT-TMB-AHCP-IFFCC (Turn On/Off/Test IFFCC) + -- UFC + [385] = "%.1f", -- PNT-BTN-UFC-1 + [386] = "%.1f", -- PNT-BTN-UFC-2 + [387] = "%.1f", -- PNT-BTN-UFC-3 + [388] = "%.1f", -- PNT-BTN-UFC-4 + [389] = "%.1f", -- PNT-BTN-UFC-5 + [390] = "%.1f", -- PNT-BTN-UFC-6 + [391] = "%.1f", -- PNT-BTN-UFC-7 + [392] = "%.1f", -- PNT-BTN-UFC-8 + [393] = "%.1f", -- PNT-BTN-UFC-9 + [394] = "%.1f", -- PNT-BTN-UFC-HACK (Display Hack Time) + [395] = "%.1f", -- PNT-BTN-UFC-0 + [396] = "%.1f", -- PNT-BTN-UFC-SPC (Space) + [397] = "%.1f", -- PNT-BTN-UFC-FUNC (Select Function Mode) + [398] = "%.1f", -- PNT-BTN-UFC-LTR (Select Letter Mode) + [399] = "%.1f", -- PNT-BTN-UFC-CLR (Clear) + [400] = "%.1f", -- PNT-BTN-UFC-ENT (Enter) + [401] = "%.1f", -- PNT-BTN-UFC-MK (Create Overhead Mark Point) + [402] = "%.1f", -- PNT-BTN-UFC-ALT (Display and Adjust Altitude Alert Values) + [405] = "%1d", -- PNT-BTN-UFC-STEER-UP/DN (Cycle Steerpoint/Waypoint) + [406] = "%1d", -- PNT-BTN-UFC-DATA-UP/DN + [407] = "%1d", -- PNT-BTN-UFC-SEL-UP/DN + [408] = "%1d", -- PNT-BTN-UFC-DEPR-UP/DN (Adjust Depressible Pipper) + [409] = "%1d", -- PNT-BTN-UFC-INTEN-RGT/LFT (Adjust HUD Brightness (Hold rocker)) + -- SYS_CONTROLLER + [403] = "%.1f", -- PNT-BTN-UFC-MASTWARN (Master Caution Light) + -- CDU + [410] = "%.1f", -- PNT-BTN-CDU-ARW-L1 (LSK 3L) + [411] = "%.1f", -- PNT-BTN-CDU-ARW-L2 (LSK 5L) + [412] = "%.1f", -- PNT-BTN-CDU-ARW-L3 (LSK 7L) + [413] = "%.1f", -- PNT-BTN-CDU-ARW-L4 (LSK 9L) + [414] = "%.1f", -- PNT-BTN-CDU-ARW-R1 (LSK 3R) + [415] = "%.1f", -- PNT-BTN-CDU-ARW-R2 (LSK 5R) + [416] = "%.1f", -- PNT-BTN-CDU-ARW-R3 (LSK 7R) + [417] = "%.1f", -- PNT-BTN-CDU-ARW-R4 (LSK 9R) + [418] = "%.1f", -- PNT-BTN-CDU-SYS (Display System (SYS) Page) + [419] = "%.1f", -- PNT-BTN-CDU-NAV (Display Navigation (NAV) Page) + [420] = "%.1f", -- PNT-BTN-CDU-WP (Display Waypoint Menu (WP MENU) Page) + [421] = "%.1f", -- PNT-BTN-CDU-OSET (Display Offset (OFFSET) Page) + [422] = "%.1f", -- PNT-BTN-CDU-FPM (Display Flight Plan Menu (FPMENU) Page) + [423] = "%.1f", -- PNT-BTN-CDU-PREV (Go to previous page) + [424] = "%1d", -- PNT-BTN-CDU-DIMBRT-L/R (Display Brightness Adjustment (Not Functional)) + [425] = "%.1f", -- PNT-BTN-CDU-1 + [426] = "%.1f", -- PNT-BTN-CDU-2 + [427] = "%.1f", -- PNT-BTN-CDU-3 + [428] = "%.1f", -- PNT-BTN-CDU-4 + [429] = "%.1f", -- PNT-BTN-CDU-5 + [430] = "%.1f", -- PNT-BTN-CDU-6 + [431] = "%.1f", -- PNT-BTN-CDU-7 + [432] = "%.1f", -- PNT-BTN-CDU-8 + [433] = "%.1f", -- PNT-BTN-CDU-9 + [434] = "%.1f", -- PNT-BTN-CDU-0 + [435] = "%.1f", -- PNT-BTN-CDU-PNT + [436] = "%.1f", -- PNT-BTN-CDU-SLASH + [437] = "%.1f", -- PNT-BTN-CDU-A + [438] = "%.1f", -- PNT-BTN-CDU-B + [439] = "%.1f", -- PNT-BTN-CDU-C + [440] = "%.1f", -- PNT-BTN-CDU-D + [441] = "%.1f", -- PNT-BTN-CDU-E + [442] = "%.1f", -- PNT-BTN-CDU-F + [443] = "%.1f", -- PNT-BTN-CDU-G + [444] = "%.1f", -- PNT-BTN-CDU-H + [445] = "%.1f", -- PNT-BTN-CDU-I + [446] = "%.1f", -- PNT-BTN-CDU-J + [447] = "%.1f", -- PNT-BTN-CDU-K + [448] = "%.1f", -- PNT-BTN-CDU-L + [449] = "%.1f", -- PNT-BTN-CDU-M + [450] = "%.1f", -- PNT-BTN-CDU-N + [451] = "%.1f", -- PNT-BTN-CDU-O + [452] = "%.1f", -- PNT-BTN-CDU-P + [453] = "%.1f", -- PNT-BTN-CDU-Q + [454] = "%.1f", -- PNT-BTN-CDU-R + [455] = "%.1f", -- PNT-BTN-CDU-S + [456] = "%.1f", -- PNT-BTN-CDU-T + [457] = "%.1f", -- PNT-BTN-CDU-U + [458] = "%.1f", -- PNT-BTN-CDU-V + [459] = "%.1f", -- PNT-BTN-CDU-W + [460] = "%.1f", -- PNT-BTN-CDU-X + [461] = "%.1f", -- PNT-BTN-CDU-Y + [462] = "%.1f", -- PNT-BTN-CDU-Z + [463] = "%1d", -- PNT-BTN-CDU-PG-UP/DN (Page Up/Down To Additional Pages When Available) + [466] = "%.1f", -- PNT-BTN-CDU-MK (Create Overhead Mark Point) + [467] = "%.1f", -- PNT-BTN-CDU-BCK (Erase Single Character. Hold for repeated erase) + [468] = "%.1f", -- PNT-BTN-CDU-SPC (Insert Space Into Scratchpad) + [469] = "%1d", -- PNT-BTN-CDU-BLANC-L/R (Scroll Waypoint Names During Search) + [470] = "%.1f", -- PNT-BTN-CDU-CLR (Erase Entire Scratchpad) + [471] = "%.1f", -- PNT-BTN-CDU-FA (Fault Acknowledge/Clear Fault Display) + [472] = "%1d", -- PNT-BTN-CDU-PLUS (Increment/Decrement Data Indicated With +/- Symbol) + -- AAP + [473] = "%0.1f", -- PNT-LVR-STEER-PT-SEL-SWITCH (Use Steerpoint From Active Flight Plan) + [474] = "%1d", -- PNT-TMB-STEER-SPRING-LD-SWITCH (Toggle Steerpoint) + [475] = "%0.1f", -- PNT-LEV-PAGE-SEL-SWITCH (CDU Page Select) + [476] = "%1d", -- PTR-TMB-CDU-SWITCH (CDU Power On/Off) + [477] = "%1d", -- PTR-TMB-EGI-SWITCH (EGI Power On/Off) + -- UFC + [531] = "%.1f", -- PNT-BTN-UFC-FWD + [532] = "%.1f", -- PNT-BTN-UFC-MID + [533] = "%.1f", -- PNT-BTN-UFC-AFT + -- Oxygen System Control Panel + [601] = "%1d", -- PTR-OXYGENCP-EMERGENCY (Oxygen Flow Emergency/Normal/Test Mask) + [602] = "%1d", -- PTR-OXYGENCP-OXYGEN-DILUTER (Oxygen Normal/100%) + [603] = "%1d", -- PTR-OXYGENCP-SUPPLY (Oxygen Supply On/Off) + -- Navigation Mode Select Panel + [605] = "%.1f", -- PTR-NMSP-HARS (HARS Backup Navigation Mode) + [607] = "%.1f", -- PTR-NMSP-EGI (EGI Navigation Mode) + [609] = "%.1f", -- PTR-NMSP-TISL (TISL No Function) + [611] = "%.1f", -- PTR-NMSP-STARTPT (STEERPT Mode) + [613] = "%.1f", -- PTR-NMSP-ANCHR (ANCHR Mode) + [615] = "%.1f", -- PTR-NMSP-TCN (TCN Mode) + [617] = "%.1f", -- PTR-NMSP-ILS (ILS Mode) + [621] = "%1d", -- PTR-NMSP-ABLE-STOW (ABLE-STOW ADI Localizer Bar) + -- TISL Control Panel + [622] = "%0.1f", -- PTR-TISLCP-MODE (TISL Mode) + [623] = "%1d", -- PTR-TISLCP-SLANT-RNG (Slant range) + [624] = "%.3f", -- PTR-TISLCP-ALT-ABV-TGT-WH1 (Altitude above target tens of thousands of feet) + [626] = "%.3f", -- PTR-TISLCP-ALT-ABV-TGT-WH2 (Altitude above target Units of thousands of feet) + [628] = "%.1f", -- PTR-TISLCP-ENTER (ENTER) + [630] = "%.1f", -- + [632] = "%.1f", -- PTR-TISLCP-BITE (BITE) + [634] = "%.1f", -- + [636] = "%0.2f", -- PTR-TISLCP-CODE-WH1 (TISL Code wheel 1) + [638] = "%0.2f", -- PTR-TISLCP-CODE-WH2 (TISL Code wheel 2) + [640] = "%0.2f", -- PTR-TISLCP-CODE-WH3 (TISL Code wheel 3) + [642] = "%0.2f", -- PTR-TISLCP-CODE-WH4 (TISL Code wheel 4) + [644] = "%1d", -- PTR-TISLCP-TISL-AUX (TISL AUX) + -- Fuel System Control Panel + -- Fuel Quantity Indicator and Selector + [645] = "%0.1f", -- PTR-FQIS-SELECT (Fuel display selector) + [646] = "%.1f", -- PTR-FQIS-TEST (Fuel Gauge Test) + -- CPT MECH + [651] = "%.1f", -- PTR-DOWNLOCK-OVERRIDE (Downlock Override) + [716] = "%1d", -- PNT-LNDGEAR (Landing Gear Lever) + [773] = "%1d", -- PTR-FLAPS (Flap Setting) + [654] = "%1d", -- PTR-ANTI-SKID (Anti Skid) + -- Light System Control Panel + [655] = "%0.1f", -- PTR-LIGHTS-LAND (Land Taxi Lights) + -- STALL + [704] = "%.1f", -- PTR-STALLWCP-STALL (Stall Volume) (Axis) {0.0,1.0} in 0.1 steps + [705] = "%.1f", -- PTR-STALLWCP-PEAK (Peak Volume) (Axis) {0.0,1.0} in 0.1 steps + -- Canopy + [712] = "%0.2f", -- PTR-CANOPY-OPEN (Canopy Open/Hold/Close) + -- Auxiliary Landing Gear Handle + [718] = "%1d", -- PTR-ARM-DWNC-L (Auxiliary Landing Gear Handle) + [722] = "%.1f", -- PTR-BTN-ARM-DWNC-L (Auxiliary Landing Gear Handle Lock button) + -- Arm Seat Handle + [733] = "%1d", -- PTR-ARM-SEAT-HANDLE (Seat Arm Handle) + -- + [772] = "%1d", -- PTR-EMER-BRKARM (Emergency Brake) + -- Secure Voice Comms Panel + [778] = "%1d", -- PTR-ZEROIZE-COVER (Zeroise Cover) + [779] = "%1d", -- PTR-ZEROIZE-SWITCH (Zeroise Switch) + [780] = "%1d", -- PTR-DELAY-SWITCH (Delay Switch) + [781] = "%0.1f", -- PTR-LVR-PANKY58-PLAIN (C/RAD switch) + [782] = "%0.1f", -- PTR-LVR-PANKY58-1TO5 (Full switch) + [783] = "%0.1f", -- PTR-LVR-PANKY58-MODE (Mode switch) + [784] = "%1d", -- PTR-TMB-PANKY58-POWER (Power switch) + -- Armament Ground Safety Override Switch + [709] = "%1d", -- PTR-ARMGS-COVER (Arm Ground Safety Override Cover) + [710] = "%1d", -- PTR-ARMGS-OVERRIDE-SWITCH (Arm Ground Safety Override Switch) + --Circuit Breaker Panel CBP + [666] = "%1d", -- PTR-CBP-AILERON-DISC-L (AILERON DISC L) + [667] = "%1d", -- PTR-CBP-AILERON-DISC-R (AILERON DISC R) + [668] = "%1d", -- PTR-CBP-SPS-RUDDER-AUTH-LIM (SPS & RUDDER AUTH LIMIT) + [669] = "%1d", -- PTR-CBP-ELEVATION-DISC-L (ELEVATION DISC L) + [670] = "%1d", -- PTR-CBP-ELEVATION-DISC-R (ELEVATION DISC R) + [671] = "%1d", -- PTR-CBP-AILERON-TAB-L (AILERON TAB L) + [672] = "%1d", -- PTR-CBP-AILERON-TAB-R (AILERON TAB R) + [673] = "%1d", -- PTR-CBP-EMER-FLAP (EMER FLAP) + [674] = "%1d", -- PTR-CBP-EMER-TRIM (EMER TRIM) + [675] = "%1d", -- PTR-CBP-LAND-GEAR (LAND GEAR) + [676] = "%1d", -- PTR-CBP-ENGINE-START-L (ENGINE START L) + [677] = "%1d", -- PTR-CBP-ENGINE-START-R (ENGINE START R) + [678] = "%1d", -- PTR-CBP-APU-CONT (APU CONT) + [679] = "%1d", -- PTR-CBP-ANG-IGNITOR-1 (ENG IGNITOR L/R-1) + [680] = "%1d", -- PTR-CBP-ANG-IGNITOR-2 (ENG IGNITOR L/R-2) + [681] = "%1d", -- PTR-CBP-EMER-FUEL-SHUTOFF-ENG-L (EMER FUEL SHUTOFF ENG L) + [682] = "%1d", -- PTR-CBP-EMER-FUEL-SHUTOFF-ENG-R (EMER FUEL SHUTOFF ENG R) + [683] = "%1d", -- PTR-CBP-DC-FUEL-PUMP (DC FUEL PUMP) + [684] = "%1d", -- PTR-CBP-BLEED-AIR-CONT-L (BLEED AIR CONT L) + [685] = "%1d", -- PTR-CBP-BLEED-AIR-CONT-R (BLEED AIR CONT R) + [686] = "%1d", -- PTR-CBP-EXT-STORES-JETT-1 (EXT STORES JETT 1) + [687] = "%1d", -- PTR-CBP-EXT-STORES-JETT-2 (EXT STORES JETT 2) + [688] = "%1d", -- PTR-CBP-STBY-ATT-IND (STBY ATT IND) + [689] = "%1d", -- PTR-CBP-MASTER-CAUT (MASTER CAUT) + [690] = "%1d", -- PTR-CBP-PITOT-HEAT-AC (PITOT HEAT AC) + [691] = "%1d", -- PTR-CBP-IFF (IFF) + [692] = "%1d", -- PTR-CBP-UHF-COMM (UHF COMM) + [693] = "%1d", -- PTR-CBP-INTER-COMM (INTER COMM) + [694] = "%1d", -- PTR-CBP-GENERATOR-CONT-L (GENERATOR CONT L) + [695] = "%1d", -- PTR-CBP-GENERATOR-CONT-R (GENERATOR CONT R) + [696] = "%1d", -- PTR-CBP-CONVERTER-L (CONVERTER L) + [697] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0A (AUX ESS BUS 0A) + [698] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0B (AUX ESS BUS 0B) + [699] = "%1d", -- PTR-CBP-AUX-ESS-BUS-0C (AUX ESS BUS 0C) + [700] = "%1d", -- PTR-CBP-BATTERY-BUS-TRANS (BATTERY BUS TRANS) + [701] = "%1d", -- PTR-CBP-INVERTER-PWR (INVERTER PWR) + [702] = "%1d", -- PTR-CBP-INVERTER-CONT (INVERTER CONT) + [703] = "%1d", -- PTR-CBP-AUX-ESS-BUS-TIE (AUX ESS BUS TIE) + --AAU-34/A + [62] = "%1d", -- PNT-ALT-LEVR-L (Set Pressure) + [60] = "%1d", -- PNT-ALT-LEVR-R (ELECT/PNEU) + -- Seat Adjustment Button + [770] = "%1d", -- Seat Height Adjustment up/down + -- Arm Seat Handle + [787] = "%1d", -- Extend boarding ladder cover + [788] = "%1d", -- Extend boarding ladder button + -- Accelerometer + [904] = "%1d", -- Accelerometer Push to set + -- DVADR Remote Control Panel + [789] = "%1d", -- DVADR - Function control toggle switch + -- Anti-G suit valve test button + [776] = "%1d", -- Anti-G suit valve test button + -- Internal canopy actuator disengage lever + [777] = "%1d", -- Internal canopy actuator disengage lever + -- Canopy jettison lever + [785] = "%1d", -- Canopy jettison lever + [786] = "%1d", -- Canopy Jettison Lever Unlock Button + -- Antenna Select Panel + [706] = "%0.2f", -- IFF - antenna switch + [707] = "%1d", -- UHF - antenna switch + [708] = "%1d", -- EGI HQ TOD + -- RWR + [16] = "%.4f", -- RWR Adjust Display Brightness {0.15, 0.85} in 0.1 steps + + -- HMCS + [550] = "%1d", -- HMCS Switch (1,0,-1) +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- Digital Clock + ------------------------------------------------- + local lDigitalClock = ExportScript.Tools.getListIndicatorValue(4) + + if lDigitalClock ~= nil and lDigitalClock.txtHours ~= nil then + local lCET = "" + if lDigitalClock.txtET ~= nil then + lCET = ";"..lDigitalClock.txtET + else + lCET = "; "..lDigitalClock.txtC + end + + ExportScript.Tools.SendData(2010, string.format("%s%s%s%s", lDigitalClock.txtHours, lDigitalClock.txtMinutes, lDigitalClock.txtSeconds, lCET)) + end +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- Digital Clock + ------------------------------------------------- + local lDigitalClock = ExportScript.Tools.getListIndicatorValue(4) + + if lDigitalClock ~= nil and lDigitalClock.txtHours ~= nil then + ExportScript.Tools.SendDataDAC("2010", string.format("%s%s%s", lDigitalClock.txtHours, lDigitalClock.txtMinutes, lDigitalClock.txtSeconds)) + end +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + -- Export ScratchPad. Recommend 11pt font in DCS-Interface + local lScratchPadGet = ExportScript.Tools.getListIndicatorValue(5) + local lScratchPad = ExportScript.Tools.coerce_nil_to_string(lScratchPadGet.Scratch_PAD) -- .. lScratchPad.Scratch_PAD_Mode + local lScratchPadMode = ExportScript.Tools.coerce_nil_to_string(lScratchPadGet.Scratch_PAD_Mode) + -- https://www.tutorialspoint.com/string-gsub-function-in-lua-programming + lScratchPadMode = string.gsub(lScratchPadMode, "%s+", "") -- removes spaces + local lScratchPadTotal = lScratchPad .. lScratchPadMode -- combines the scratchpad and the mode + if lScratchPadTotal == '' then lScratchPadTotal = '[Sctch]\n[Pad]' end -- abbreviation for scratch due to 7 charPerLine later + ExportScript.Tools.SendData(2040, lScratchPadTotal) + local lScratchPadStacked = splitLines(lScratchPadTotal, 7) -- splits into newlines + lScratchPadStacked = string.gsub(lScratchPadStacked,' ]','_]') -- takes care of the blank space + lScratchPadStacked = string.gsub(lScratchPadStacked,' \n]','_]') -- removes new line with only bracket + ExportScript.Tools.SendData(2041, lScratchPadStacked) + + -- AN/ARC-164 UHF and UHF Preset Channel + --------------------------------------------------- + local lUHF_RADIO = GetDevice(54) + if lUHF_RADIO:is_on() then + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((lUHF_RADIO:get_frequency()/1000000))) + + local lPresetChannel = ExportScript.Tools.getListIndicatorValue(10) + + ExportScript.Tools.SendData(2001, string.format("%s", lPresetChannel.txtPresetChannel)) + else + ExportScript.Tools.SendData(2000, " ") + ExportScript.Tools.SendData(2001, " ") + end + + -- AN/ARC-186(V) VHF AM and Preset Channel + --------------------------------------------------- + local lVHF_AM_RADIO = GetDevice(55) + ExportScript.Tools.SendData(2002, ExportScript.Tools.RoundFreqeuncy((lVHF_AM_RADIO:get_frequency()/1000000))) + + local lVHF_AM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendData(2003, lVHF_AM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(137), 2)]) + + -- AN/ARC-186(V) VHF FM and Preset Channel + ------------------------------------------------- + local lVHF_FM_RADIO = GetDevice(56) + ExportScript.Tools.SendData(2004, ExportScript.Tools.RoundFreqeuncy((lVHF_FM_RADIO:get_frequency()/1000000))) + + -- Preset is buggy + local lVHF_FM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendData(2005, lVHF_FM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(151), 2, "ceil")]) + + -- TACAN Channel + ------------------------------------------------- + ExportScript.Tools.SendData(2008, (mainPanelDevice:get_argument_value(263) == 0 and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(mainPanelDevice:get_argument_value(266) == 0 and "X" or "Y")) + ExportScript.Tools.SendData(266, (mainPanelDevice:get_argument_value(266) == 0 and "0" or "1")) + + -- ILS Channel + ------------------------------------------------- + local lILSFrequencyMHz = {[0]="108",[0.1]="109",[0.2]="110",[0.3]="111"} + local lILSFrequencyKHz = {[0]="10",[0.1]="15",[0.2]="30",[0.3]="35",[0.4]="50",[0.5]="55",[0.6]="70",[0.7]="75",[0.8]="90",[0.9]="95"} + + ExportScript.Tools.SendData(2009, lILSFrequencyMHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(251), 1)].."."..lILSFrequencyKHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(252), 1)]) + + -- CMSC 2020 (Text only) + ------------------------------------------------- + if mainPanelDevice:get_argument_value(364) > 0 then + local lCMSCTable = ExportScript.Tools.getListIndicatorValue(8) + + if lCMSCTable ~= nil and lCMSCTable.txt_JMR ~= nil then + ExportScript.Tools.SendData(2011, string.format("%s", lCMSCTable.txt_CHAFF_FLARE)) -- txt_CHAFF_FLARE + ExportScript.Tools.SendData(2012, string.format("%s", lCMSCTable.txt_JMR)) -- txt_JMR + ExportScript.Tools.SendData(2013, string.format("%s", lCMSCTable.txt_MWS)) -- txt_MWS + end + else + ExportScript.Tools.SendData(2011, " ") -- txt_CHAFF_FLARE + ExportScript.Tools.SendData(2012, " ") -- txt_JMR + ExportScript.Tools.SendData(2013, " ") -- txt_MWS + end + + -- CMSP + ------------------------------------------------- + if mainPanelDevice:get_argument_value(364) > 0 then + local lCMSP = ExportScript.Tools.getListIndicatorValue(7) + + local lCMSPTable = {"","","",""} + + if lCMSP ~= nil and lCMSP.txt_UP ~= nil then + lCMSP.txt_UP = lCMSP.txt_UP:gsub(" ", " ") + lCMSP.txt_UP = lCMSP.txt_UP.." " + lCMSPTable = ExportScript.Tools.split(lCMSP.txt_UP, "%s") + end + + --ExportScript.Tools.WriteToLog('lCMSP: '..ExportScript.Tools.dump(lCMSP)) + --ExportScript.Tools.WriteToLog('lCMSPTable: '..ExportScript.Tools.dump(lCMSPTable)) + + ExportScript.Tools.SendData(2014, string.format("%s", lCMSPTable[1])) + ExportScript.Tools.SendData(2015, string.format("%s", lCMSPTable[2])) + ExportScript.Tools.SendData(2016, string.format("%s", lCMSPTable[3])) + ExportScript.Tools.SendData(2017, string.format("%s", lCMSPTable[4])) + ExportScript.Tools.SendData(2018, string.format("%s", lCMSP.txt_DOWN1)) + ExportScript.Tools.SendData(2019, string.format("%s", lCMSP.txt_DOWN2)) + ExportScript.Tools.SendData(2020, string.format("%s", lCMSP.txt_DOWN3)) + ExportScript.Tools.SendData(2021, string.format("%s", lCMSP.txt_DOWN4)) + else + ExportScript.Tools.SendData(2014, " ") + ExportScript.Tools.SendData(2015, " ") + ExportScript.Tools.SendData(2016, " ") + ExportScript.Tools.SendData(2017, " ") + ExportScript.Tools.SendData(2018, " ") + ExportScript.Tools.SendData(2019, " ") + ExportScript.Tools.SendData(2020, " ") + ExportScript.Tools.SendData(2021, " ") + end + + -- Cockpit Light + ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {290,292,293}) + -- Engine Instruments Lights, Flight Instruments Lights, Auxiliary Instruments Lights + + -- CDU Data + ExportScript.AF.exportCDU() +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + -- AN/ARC-164 UHF and UHF Preset Channel + --------------------------------------------------- + local lUHF_RADIO = GetDevice(54) + if lUHF_RADIO:is_on() then + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((lUHF_RADIO:get_frequency()/1000000))) + + local lPresetChannel = ExportScript.Tools.getListIndicatorValue(10) + + ExportScript.Tools.SendDataDAC("2001", string.format("%s", lPresetChannel.txtPresetChannel)) + else + ExportScript.Tools.SendDataDAC("2000", "-") + ExportScript.Tools.SendDataDAC("2001", "-") + end + + -- AN/ARC-186(V) VHF AM and Preset Channel + --------------------------------------------------- + local lVHF_AM_RADIO = GetDevice(55) + ExportScript.Tools.SendDataDAC("2002", ExportScript.Tools.RoundFreqeuncy((lVHF_AM_RADIO:get_frequency()/1000000))) + + local lVHF_AM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendDataDAC("2003", lVHF_AM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(137), 2)]) + + -- AN/ARC-186(V) VHF FM and Preset Channel + ------------------------------------------------- + local lVHF_FM_RADIO = GetDevice(56) + ExportScript.Tools.SendDataDAC("2004", ExportScript.Tools.RoundFreqeuncy((lVHF_FM_RADIO:get_frequency()/1000000))) + + -- Preset is buggy + local lVHF_FM_RADIO_PRESET = {[0.0]="1",[0.01]="2",[0.02]="3",[0.03]="4",[0.04]="5",[0.05]="6",[0.06]="7",[0.07]="8",[0.08]="9",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="1"} + ExportScript.Tools.SendDataDAC("2005", lVHF_FM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(151), 2, "ceil")]) + + -- Pressure setting + -------------------------------------------------------- + local pressure_setting_3 = mainPanelDevice:get_argument_value(56) * 10000 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting_2 = mainPanelDevice:get_argument_value(57) * 1000 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting_1 = mainPanelDevice:get_argument_value(58) * 100 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting_0 = mainPanelDevice:get_argument_value(59) * 10 -- {0.0, 10.0} {0.0, 1.0} + local pressure_setting = ((pressure_setting_3 + pressure_setting_2 + pressure_setting_1 + pressure_setting_0) / 100) + ExportScript.Tools.SendDataDAC("2006", string.format("%5.2f", pressure_setting)) + + -- Calculate Total Fuel + -------------------------------------------------------- + local lFuelQuantityCounterTenthOfThous = mainPanelDevice:get_argument_value(90) * 10000 -- {0.0, 10.0} {0.0, 1.0} + local lFuelQuantityCounterThousands = mainPanelDevice:get_argument_value(91) * 1000 -- {0.0, 10.0} {0.0, 1.0} + local lFuelQuantityCounterHundreds = mainPanelDevice:get_argument_value(92) * 100 -- {0.0, 10.0} {0.0, 1.0} + -- orginal + local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds) / 10) + ExportScript.Tools.SendDataDAC("2007", string.format("%0.0f", lFuelQuantityCounter).."00") + -- exact + --local lFuelQuantityCounter = ((lFuelQuantityCounterTenthOfThous + lFuelQuantityCounterThousands + lFuelQuantityCounterHundreds)) + --ExportScript.Tools.SendDataDAC("2007", string.format("%1d", lFuelQuantityCounter).."0") + + -- TACAN Channel + ------------------------------------------------- + ExportScript.Tools.SendDataDAC("2008", (mainPanelDevice:get_argument_value(263) == 0 and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)) + + -- ILS Channel + ------------------------------------------------- + local lILSFrequencyMHz = {[0]="108",[0.1]="109",[0.2]="110",[0.3]="111"} + local lILSFrequencyKHz = {[0]="10",[0.1]="15",[0.2]="30",[0.3]="35",[0.4]="50",[0.5]="55",[0.6]="70",[0.7]="75",[0.8]="90",[0.9]="95"} + + ExportScript.Tools.SendDataDAC("2009", lILSFrequencyMHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(251), 1)].."."..lILSFrequencyKHz[ExportScript.Tools.round(mainPanelDevice:get_argument_value(252), 1)]) + + -- generic Radio display and frequency rotarys + ------------------------------------------------- + -- genericRadioConf + ExportScript.genericRadioConf = {} + ExportScript.genericRadioConf['maxRadios'] = 3 -- numbers of aviables/supported radios + ExportScript.genericRadioConf[1] = {} -- first radio + ExportScript.genericRadioConf[1]['Name'] = "AN/ARC-164 UHF" -- name of radio + ExportScript.genericRadioConf[1]['DeviceID'] = 54 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[1]['minFrequency'] = 220.000 -- lowest frequency + ExportScript.genericRadioConf[1]['maxFrequency'] = 314.450 -- highest frequency + ExportScript.genericRadioConf[1]['Power'] = {} -- power button active + ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3008 -- power button id from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} + ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change + ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua + ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadioConf[2] = {} -- secound radio + ExportScript.genericRadioConf[2]['Name'] = "AN/ARC-186(V) VHF FM" -- name of radio + ExportScript.genericRadioConf[2]['DeviceID'] = 55 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[2]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[2]['minFrequency'] = 116.000 -- lowest frequency + ExportScript.genericRadioConf[2]['maxFrequency'] = 151.975 -- highest frequency + ExportScript.genericRadioConf[2]['Power'] = {} -- power button active + ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua + ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 137 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} + ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.01 -- minimal step for preset change + ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua + ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3006 -- load button id from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadioConf[3] = {} -- secound radio + ExportScript.genericRadioConf[3]['Name'] = "AN/ARC-186(V) VHF AM" -- name of radio + ExportScript.genericRadioConf[3]['DeviceID'] = 56 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[3]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[3]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[3]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[3]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[3]['minFrequency'] = 30.000 -- lowest frequency + ExportScript.genericRadioConf[3]['maxFrequency'] = 76.000 -- highest frequency + ExportScript.genericRadioConf[3]['Power'] = {} -- power button active + ExportScript.genericRadioConf[3]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua + ExportScript.genericRadioConf[3]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[3]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[3]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[3]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[3]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[3]['Preset']['ArgumentID'] = 151 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[3]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + ExportScript.genericRadioConf[3]['Preset']['ButtonID2'] = 3002 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[3]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} + ExportScript.genericRadioConf[3]['Preset']['Step'] = 0.01 -- minimal step for preset change + ExportScript.genericRadioConf[3]['Preset']['Step2'] = -0.01 -- minimal step for preset change + ExportScript.genericRadioConf[3]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[3]['Squelch']['ArgumentID'] = 148 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[3]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[3]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[3]['Squelch']['ValueOff'] = -1.0 -- squelch off value from cklickable.lua + ExportScript.genericRadioConf[3]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[3]['Load']['ButtonID'] = 3004 -- load button id from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[3]['ManualPreset']['ArgumentID'] = 149 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[3]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadio(nil, nil) + + -- NOT FOR ARCAZE + ------------------------------------------------- + --[[ + -- CMSC + ------------------------------------------------- + local lCMSC = list_indication(8) + lCMSC = lCMSC:gsub("-----------------------------------------", "") + lCMSC = lCMSC:gsub("txt_CHAFF_FLARE", "") + lCMSC = lCMSC:gsub("txt_JMR", "") + lCMSC = lCMSC:gsub("txt_MWS", "") + lCMSC = lCMSC:gsub("%c%c(%C)", "%1") + lCMSC = lCMSC.."\n" + + local lCMSCTable = {} + lCMSCTable = ExportScript.Tools.split(lCMSC, "%c") + + if lCMSCTable[2] ~= nil then + ExportScript.Tools.SendDataDAC("2011", lCMSCTable[1]) -- txt_CHAFF_FLARE + ExportScript.Tools.SendDataDAC("2012", lCMSCTable[2]) -- txt_JMR + ExportScript.Tools.SendDataDAC("2013", lCMSCTable[3]) -- txt_MWS + else + ExportScript.Tools.SendDataDAC("2011", "") -- txt_CHAFF_FLARE + ExportScript.Tools.SendDataDAC("2012", "") -- txt_JMR + ExportScript.Tools.SendDataDAC("2013", "") -- txt_MWS + end + + -- CMSP + ------------------------------------------------- + local lCMSP = list_indication(7) + lCMSP = lCMSP:gsub("-----------------------------------------", "") + lCMSP = lCMSP:gsub("txt_UP", "") + lCMSP = lCMSP:gsub("txt_DOWN1", "") + lCMSP = lCMSP:gsub("txt_DOWN2", "") + lCMSP = lCMSP:gsub("txt_DOWN3", "") + lCMSP = lCMSP:gsub("txt_DOWN4", "") + lCMSP = lCMSP:gsub("%c%c(%C)", "%1") + lCMSP = lCMSP.."\n" + + local lCMSPTable = {} + lCMSPTable = ExportScript.Tools.split(lCMSP, "%c") + + lCMSP = lCMSPTable[1].."\n"..table.concat(lCMSPTable, " ", 2) + ExportScript.Tools.SendDataDAC("2014", lCMSP) + ]] + + + --===================================================================================== + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + local ltmp1 = 0 + for ltmp2 = 0, 13, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + --ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end + ]] + --[[ + -- LITENING_INTERFACE + local lLITENING_INTERFACE = GetDevice(11) + ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:get_station '..ExportScript.Tools.dump(lLITENING_INTERFACE:get_station())) + --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:add_masked_region '..ExportScript.Tools.dump(lLITENING_INTERFACE:add_masked_region())) -- test the parameters + --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:set_laser_designation_code '..ExportScript.Tools.dump(lLITENING_INTERFACE:set_laser_designation_code())) -- test the parameters + --ExportScript.Tools.WriteToLog('lLITENING_INTERFACE:set_laser_spot_search_code '..ExportScript.Tools.dump(lLITENING_INTERFACE:set_laser_spot_search_code())) -- test the parameters + + -- ADI + local lADI = GetDevice(47) + ExportScript.Tools.WriteToLog('lADI:get_sideslip '..ExportScript.Tools.dump(lADI:get_sideslip())) + ExportScript.Tools.WriteToLog('lADI:get_bank '..ExportScript.Tools.dump(lADI:get_bank())) + ExportScript.Tools.WriteToLog('lADI:get_pitch '..ExportScript.Tools.dump(lADI:get_pitch())) + + -- SAI + local lSAI = GetDevice(48) + ExportScript.Tools.WriteToLog('lSAI:get_sideslip '..ExportScript.Tools.dump(lSAI:get_sideslip())) + ExportScript.Tools.WriteToLog('lSAI:get_bank '..ExportScript.Tools.dump(lSAI:get_bank())) + ExportScript.Tools.WriteToLog('lSAI:get_pitch '..ExportScript.Tools.dump(lSAI:get_pitch())) + + -- UHF_RADIO + local lUHF_RADIO = GetDevice(54) + ExportScript.Tools.WriteToLog('lUHF_RADIO:is_on '..ExportScript.Tools.dump(lUHF_RADIO:is_on())) + ExportScript.Tools.WriteToLog('lUHF_RADIO:get_frequency '..ExportScript.Tools.dump(lUHF_RADIO:get_frequency())) + --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_frequency '..ExportScript.Tools.dump(lUHF_RADIO:set_frequency())) -- test the parameters + --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_modulation '..ExportScript.Tools.dump(lUHF_RADIO:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lUHF_RADIO:set_channel '..ExportScript.Tools.dump(lUHF_RADIO:set_channel())) -- test the parameters + + -- VHF_AM_RADIO + local lVHF_AM_RADIO = GetDevice(55) + ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:is_on '..ExportScript.Tools.dump(lVHF_AM_RADIO:is_on())) + ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:get_frequency '..ExportScript.Tools.dump(lVHF_AM_RADIO:get_frequency())) + --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_frequency '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_frequency())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_modulation '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_AM_RADIO:set_channel '..ExportScript.Tools.dump(lVHF_AM_RADIO:set_channel())) -- test the parameters + + -- VHF_FM_RADIO + local lVHF_FM_RADIO = GetDevice(56) + ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:is_on '..ExportScript.Tools.dump(lVHF_FM_RADIO:is_on())) + ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:get_frequency '..ExportScript.Tools.dump(lVHF_FM_RADIO:get_frequency())) + --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_frequency '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_frequency())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_modulation '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lVHF_FM_RADIO:set_channel '..ExportScript.Tools.dump(lVHF_FM_RADIO:set_channel())) -- test the parameters + + -- INTERCOM + local lINTERCOM = GetDevice(58) + ExportScript.Tools.WriteToLog('lINTERCOM:is_communicator_available '..ExportScript.Tools.dump(lINTERCOM:is_communicator_available())) + ExportScript.Tools.WriteToLog('lINTERCOM:get_noise_level '..ExportScript.Tools.dump(lINTERCOM:get_noise_level())) + ExportScript.Tools.WriteToLog('lINTERCOM:get_signal_level '..ExportScript.Tools.dump(lINTERCOM:get_signal_level())) + --ExportScript.Tools.WriteToLog('lINTERCOM:set_communicator '..ExportScript.Tools.dump(lINTERCOM:set_communicator())) -- test the parameters + --ExportScript.Tools.WriteToLog('lINTERCOM:set_voip_mode '..ExportScript.Tools.dump(lINTERCOM:set_voip_mode())) -- test the parameters +]] + --[[ + local ltmp1 = 0 + for ltmp2 = 1, 73, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] + + --getIndicatorData(3) + +end + +----------------------------- +-- Custom functions -- +----------------------------- + +-- formats the string by putting newlines in the appropriate places +function splitLines(stringIn, charPerLine) + local rows = DIV(#stringIn,charPerLine) + for i = 1, rows, 1 do -- the i's represent the displacement and multipliers needed for the self iterations + stringIn = string.insert(stringIn, '\n', (charPerLine * i) + (i-1)) + end + return stringIn +end + +-- workaround for floor division. typically // +-- http://lua-users.org/wiki/SimpleRound +function DIV(a,b) + return (a - a % b) / b +end + +-- used to insert newlines at the right areas +-- https://stackoverflow.com/questions/59561776/how-do-i-insert-a-string-into-another-string-in-lua +function string.insert(str1, str2, pos) + return str1:sub(1,pos)..str2..str1:sub(pos+1) +end + +----------------------------- +-- CDU Export based on Jan Boeckers DCS BIOS +-- https://github.com/dcs-bios/dcs-bios +----------------------------- + +ExportScript.AF.CDUIndicatorData={ + ACCEPT={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="ACCEPT", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ADI_ATT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ADI_ATT", + index=0, + statictext=true, + x=10, + y=4 + } + }, + ADI_ATT0={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ADI_ATT0", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ADI_ATT1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ADI_ATT1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ALIGN={ + { + alignment="LFT", + cdu_pages={ + "NAV", + "INS" + }, + id="ALIGN", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ALL={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="ALL", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ALL1={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="ALL1", + index=0, + statictext=false, + x=1, + y=3 + } + }, + ALL2={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="ALL2", + index=0, + statictext=true, + x=2, + y=3 + } + }, + ALM_REQ={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="ALM_REQ", + index=0, + statictext=true, + x=2, + y=8 + } + }, + ALM_REQs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="ALM_REQs", + index=0, + statictext=false, + x=11, + y=8 + } + }, + ALM_REQs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="ALM_REQs1", + index=0, + statictext=false, + x=11, + y=8 + } + }, + ALTITUDE={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ALTITUDE", + index=0, + statictext=true, + x=10, + y=8 + } + }, + ALT_ALIGN={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="ALT_ALIGN", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ALT_ST1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ALT_ST1", + index=0, + statictext=false, + x=23, + y=8 + } + }, + ALT_ST2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ALT_ST2", + index=0, + statictext=false, + x=23, + y=8 + } + }, + ALT_WIND_TEMP={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="ALT_WIND_TEMP", + index=0, + statictext=true, + x=2, + y=4 + } + }, + ANCHORDIS1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORDIS1", + index=0, + statictext=false, + x=20, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDIS1", + index=1, + statictext=false, + x=9, + y=8 + } + }, + ANCHORDIS2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORDIS2", + index=0, + statictext=false, + x=20, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDIS2", + index=1, + statictext=false, + x=9, + y=8 + } + }, + ANCHORDISMH={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORDISMH", + index=0, + statictext=true, + x=19, + y=9 + } + }, + ANCHORDMH1={ + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDMH1", + index=0, + statictext=false, + x=8, + y=7 + } + }, + ANCHORDMH2={ + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORDMH2", + index=0, + statictext=false, + x=8, + y=7 + } + }, + ANCHORIdent1={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORIdent1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + ANCHORIdent2={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORIdent2", + index=0, + statictext=false, + x=2, + y=5 + } + }, + ANCHORIdentEntry={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORIdentEntry", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ANCHORMH1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORMH1", + index=0, + statictext=false, + x=16, + y=9 + } + }, + ANCHORMH2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORMH2", + index=0, + statictext=false, + x=16, + y=9 + } + }, + ANCHORMH3={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORMH3", + index=0, + statictext=false, + x=16, + y=9 + } + }, + ANCHORNumber1={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + ANCHORNumber2={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + ANCHORNumberEntry={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORNumberEntry", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ANCHORTOFRMode1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTOFRMode1", + index=0, + statictext=false, + x=13, + y=9 + } + }, + ANCHORTOFRMode2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTOFRMode2", + index=0, + statictext=false, + x=13, + y=9 + } + }, + ANCHORTOFRRotary={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTOFRRotary", + index=0, + statictext=true, + x=24, + y=9 + } + }, + ANCHORTTG1={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTTG1", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORTTG1", + index=1, + statictext=false, + x=6, + y=6 + } + }, + ANCHORTTG2={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTTG2", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORTTG2", + index=1, + statictext=false, + x=6, + y=6 + } + }, + ANCHORTTG3={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHORTTG3", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="ANCHORTTG3", + index=1, + statictext=false, + x=6, + y=6 + } + }, + ANCHOR_PT={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="ANCHOR_PT", + index=0, + statictext=true, + x=24, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="ANCHOR_PT", + index=1, + statictext=true, + x=1, + y=5 + } + }, + ANN1={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN1", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN10={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN10", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN11={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN11", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN12={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN12", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN13={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN13", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN14={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN14", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN15={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN15", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN16={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN16", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN17={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN17", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN18={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN18", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN19={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN19", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN2={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN2", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN20={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN20", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN21={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN21", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN22={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN22", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN23={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN23", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN24={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN24", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN25={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN25", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN26={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN26", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN26a={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN26a", + index=0, + statictext=false, + x=7, + y=2 + } + }, + ANN27={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN27", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN28={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN28", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN29={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN29", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN3={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN3", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN30={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN30", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN31={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN31", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN32={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN32", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN33={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN33", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN34={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN34", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN35={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN35", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN36={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN36", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN37={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN37", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN38={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN38", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN39={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN39", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN4={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN4", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN40={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN40", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN41={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN41", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN42={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN42", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN43={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN43", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN5={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN5", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN6={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN6", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN7={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN7", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN8={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN8", + index=0, + statictext=false, + x=2, + y=2 + } + }, + ANN9={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="ANN9", + index=0, + statictext=false, + x=2, + y=2 + } + }, + APP={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="APP", + index=0, + statictext=true, + x=2, + y=9 + } + }, + AS={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS", + index=0, + statictext=true, + x=1, + y=3 + } + }, + AS_FLAG={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS_FLAG", + index=0, + statictext=false, + x=8, + y=4 + } + }, + AS_FLAG1={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS_FLAG1", + index=0, + statictext=false, + x=8, + y=4 + } + }, + AS_FLAG2={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="AS_FLAG2", + index=0, + statictext=false, + x=8, + y=4 + } + }, + ATT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="ATT", + index=0, + statictext=true, + x=1, + y=5 + } + }, + ATTRIBCRS0={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS0", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS1", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS2={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS2", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS3={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS3", + index=0, + statictext=false, + x=13, + y=8 + } + }, + ATTRIBCRS4={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS4", + index=0, + statictext=false, + x=14, + y=9 + } + }, + ATTRIBCRS5={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS5", + index=0, + statictext=false, + x=14, + y=9 + } + }, + ATTRIBCRS6={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBCRS6", + index=0, + statictext=false, + x=14, + y=9 + } + }, + ATTRIBSCS0={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSCS0", + index=0, + statictext=false, + x=6, + y=9 + } + }, + ATTRIBSCS1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSCS1", + index=0, + statictext=false, + x=6, + y=9 + } + }, + ATTRIBScale={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBScale1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBScale2={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale2", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBScale3={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBScale3", + index=0, + statictext=false, + x=2, + y=6 + } + }, + ATTRIBSteer={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSteer", + index=0, + statictext=false, + x=2, + y=8 + } + }, + ATTRIBSteer1={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSteer1", + index=0, + statictext=false, + x=2, + y=8 + } + }, + ATTRIBSteer2={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBSteer2", + index=0, + statictext=false, + x=2, + y=8 + } + }, + ATTRIBUTES={ + { + alignment="RGHT", + cdu_pages={ + "NAV" + }, + id="ATTRIBUTES", + index=0, + statictext=true, + x=24, + y=5 + } + }, + ATTRIBVNavMode={ + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBVNavMode", + index=0, + statictext=false, + x=23, + y=3 + } + }, + ATTRIBVNavMode1={ + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIBVNavMode1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + ATTRIB_CRS_VAL={ + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="ATTRIB_CRS_VAL", + index=0, + statictext=false, + x=23, + y=9 + } + }, + ActiveFP={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP", + index=0, + statictext=false, + x=1, + y=3 + } + }, + ActiveFP1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP1", + index=0, + statictext=false, + x=22, + y=3 + } + }, + ActiveFP2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP2", + index=0, + statictext=false, + x=1, + y=5 + } + }, + ActiveFP3={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP3", + index=0, + statictext=false, + x=22, + y=5 + } + }, + ActiveFP4={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP4", + index=0, + statictext=false, + x=1, + y=7 + } + }, + ActiveFP5={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="ActiveFP5", + index=0, + statictext=false, + x=22, + y=7 + } + }, + AlignMode_BATH={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_BATH", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignMode_Ground={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_Ground", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignMode_InFlt={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_InFlt", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignMode_SH={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignMode_SH", + index=0, + statictext=false, + x=11, + y=4 + } + }, + AlignModes={ + { + alignment="RGHT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignModes", + index=0, + statictext=false, + x=24, + y=3 + } + }, + AlignStatus={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatus", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignStatus1={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatus1", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignStatus2={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatus2", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignStatusAsterisk={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignStatusAsterisk", + index=0, + statictext=false, + x=13, + y=8 + } + }, + AlignTime={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignTime", + index=0, + statictext=false, + x=7, + y=8 + } + }, + AlignTimeAsterisk={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="AlignTimeAsterisk", + index=0, + statictext=false, + x=7, + y=8 + } + }, + Asterisk={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE", + "1ST_LINE" + }, + id="Asterisk", + index=0, + statictext=false, + x=1, + y=1 + } + }, + BATTERY={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="BATTERY", + index=0, + statictext=true, + x=2, + y=3 + } + }, + BATTERYs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="BATTERYs", + index=0, + statictext=false, + x=11, + y=3 + } + }, + BATTERYs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="BATTERYs1", + index=0, + statictext=false, + x=11, + y=3 + } + }, + BBCTL={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="BBCTL", + index=0, + statictext=true, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="BBCTL", + index=1, + statictext=true, + x=1, + y=3 + } + }, + BIT_INPR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="BIT_INPR", + index=0, + statictext=true, + x=2, + y=5 + } + }, + BIT_INPRs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="BIT_INPRs", + index=0, + statictext=false, + x=11, + y=5 + } + }, + BIT_INPRs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="BIT_INPRs1", + index=0, + statictext=false, + x=11, + y=5 + } + }, + BIT_TST={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="BIT_TST", + index=0, + statictext=true, + x=2, + y=8 + } + }, + BLOCK_NUM1={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM1", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM2={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM2", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM3={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM3", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM4={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM4", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM5={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM5", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM6={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM6", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM7={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM7", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BLOCK_NUM8={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="BLOCK_NUM8", + index=0, + statictext=false, + x=13, + y=9 + } + }, + BRACKETS={ + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="BRACKETS", + index=0, + statictext=true, + x=24, + y=9 + } + }, + BRACKETS_EL={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="BRACKETS_EL", + index=0, + statictext=false, + x=1, + y=5 + } + }, + BRACKETS_FIRSTCOORD={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_FIRSTCOORD", + index=0, + statictext=true, + x=1, + y=7 + } + }, + BRACKETS_INIT_WP_ID={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_INIT_WP_ID", + index=0, + statictext=true, + x=1, + y=5 + } + }, + BRACKETS_ITEM1={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="BRACKETS_ITEM1", + index=0, + statictext=true, + x=1, + y=3 + } + }, + BRACKETS_ITEM2={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="BRACKETS_ITEM2", + index=0, + statictext=true, + x=1, + y=5 + } + }, + BRACKETS_ITEM3={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="BRACKETS_ITEM3", + index=0, + statictext=true, + x=1, + y=7 + } + }, + BRACKETS_ITEM4={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="BRACKETS_ITEM4", + index=0, + statictext=true, + x=1, + y=9 + } + }, + BRACKETS_MH_DIS={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_MH_DIS", + index=0, + statictext=true, + x=24, + y=5 + } + }, + BRACKETS_MISC_DATA={ + { + alignment="RGHT", + cdu_pages={ + "INS" + }, + id="BRACKETS_MISC_DATA", + index=0, + statictext=true, + x=24, + y=9 + } + }, + BRACKETS_SECONDCOORD={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_SECONDCOORD", + index=0, + statictext=true, + x=1, + y=9 + } + }, + BRACKETS_WPNUM_LTR={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="BRACKETS_WPNUM_LTR", + index=0, + statictext=true, + x=24, + y=9 + } + }, + BRACKETS_WPT_NAME={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="BRACKETS_WPT_NAME", + index=0, + statictext=true, + x=24, + y=3 + } + }, + BRANCH1={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="BRANCH1", + index=0, + statictext=false, + x=1, + y=3 + } + }, + BVL={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="BVL", + index=0, + statictext=true, + x=2, + y=7 + } + }, + BVL_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="BVL_VAL", + index=0, + statictext=true, + x=24, + y=7 + } + }, + BVU={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="BVU", + index=0, + statictext=true, + x=2, + y=6 + } + }, + BVU_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="BVU_VAL", + index=0, + statictext=true, + x=24, + y=6 + } + }, + B_ALT={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="B_ALT", + index=0, + statictext=true, + x=2, + y=5 + } + }, + B_ALT_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="B_ALT_ST", + index=0, + statictext=false, + x=21, + y=5 + } + }, + B_ALT_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="B_ALT_ST1", + index=0, + statictext=false, + x=21, + y=5 + } + }, + B_ALT_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="B_ALT_VAL", + index=0, + statictext=false, + x=13, + y=5 + } + }, + C={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="C", + index=0, + statictext=false, + x=23, + y=9 + } + }, + CADC={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC", + index=0, + statictext=true, + x=16, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC", + index=1, + statictext=true, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CADC", + index=2, + statictext=true, + x=18, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="CADC", + index=3, + statictext=true, + x=24, + y=3 + } + }, + CADC_SA={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_SA", + index=0, + statictext=false, + x=1, + y=5 + } + }, + CADC_ST0={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST0", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST0", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST0", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST1", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST1", + index=1, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST2={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST2", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST2", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST2", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST3={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST3", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST3", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST3", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_ST4={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="CADC_ST4", + index=0, + statictext=false, + x=21, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT", + "RESET" + }, + id="CADC_ST4", + index=1, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CADC_ST4", + index=2, + statictext=false, + x=11, + y=6 + } + }, + CADC_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS0", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CADC_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS1", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CADC_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS2", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CADC_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CADC_STATUS3", + index=0, + statictext=false, + x=7, + y=5 + } + }, + CBIT1={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT1", + index=0, + statictext=true, + x=2, + y=3 + } + }, + CBIT10={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT10", + index=0, + statictext=true, + x=14, + y=5 + } + }, + CBIT11={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT11", + index=0, + statictext=true, + x=14, + y=6 + } + }, + CBIT2={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT2", + index=0, + statictext=true, + x=2, + y=4 + } + }, + CBIT3={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT3", + index=0, + statictext=true, + x=2, + y=5 + } + }, + CBIT4={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT4", + index=0, + statictext=true, + x=2, + y=6 + } + }, + CBIT5={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT5", + index=0, + statictext=true, + x=2, + y=7 + } + }, + CBIT6={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT6", + index=0, + statictext=true, + x=2, + y=8 + } + }, + CBIT7={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT7", + index=0, + statictext=true, + x=2, + y=9 + } + }, + CBIT8={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT8", + index=0, + statictext=true, + x=14, + y=3 + } + }, + CBIT9={ + { + alignment="LFT", + cdu_pages={ + "EGI4" + }, + id="CBIT9", + index=0, + statictext=true, + x=14, + y=4 + } + }, + CDU={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU", + index=0, + statictext=true, + x=2, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU", + index=1, + statictext=true, + x=18, + y=6 + } + }, + CDUTEST={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="CDUTEST", + index=1, + statictext=true, + x=24, + y=5 + } + }, + CDUTEST1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST1", + index=0, + statictext=false, + x=9, + y=3 + } + }, + CDUTEST10={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST10", + index=0, + statictext=false, + x=9, + y=6 + } + }, + CDUTEST11={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST11", + index=0, + statictext=false, + x=9, + y=6 + } + }, + CDUTEST12={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST12", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CDUTEST13={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST13", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CDUTEST14={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST14", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CDUTEST15={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST15", + index=0, + statictext=false, + x=23, + y=4 + } + }, + CDUTEST16={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST16", + index=0, + statictext=false, + x=23, + y=4 + } + }, + CDUTEST17={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST17", + index=0, + statictext=false, + x=23, + y=4 + } + }, + CDUTEST2={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST2", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST3={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST3", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST4={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST4", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST5={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST5", + index=0, + statictext=false, + x=9, + y=4 + } + }, + CDUTEST6={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST6", + index=0, + statictext=false, + x=9, + y=5 + } + }, + CDUTEST7={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST7", + index=0, + statictext=false, + x=9, + y=5 + } + }, + CDUTEST8={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST8", + index=0, + statictext=false, + x=9, + y=5 + } + }, + CDUTEST9={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="CDUTEST9", + index=0, + statictext=false, + x=9, + y=6 + } + }, + CDU_LASTE={ + { + alignment="RGHT", + cdu_pages={ + "DTSUPLD" + }, + id="CDU_LASTE", + index=0, + statictext=true, + x=24, + y=3 + } + }, + CDU_ST0={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST0", + index=0, + statictext=false, + x=17, + y=3 + } + }, + CDU_ST1={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU_ST1", + index=0, + statictext=false, + x=23, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST1", + index=1, + statictext=false, + x=17, + y=3 + } + }, + CDU_ST3={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU_ST3", + index=0, + statictext=false, + x=23, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST3", + index=1, + statictext=false, + x=17, + y=3 + } + }, + CDU_ST4={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="CDU_ST4", + index=0, + statictext=false, + x=23, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="CDU_ST4", + index=1, + statictext=false, + x=17, + y=3 + } + }, + CDU_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS0", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS1", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS2", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_STATUS3", + index=0, + statictext=false, + x=6, + y=7 + } + }, + CDU_SYS_ACTION={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="CDU_SYS_ACTION", + index=0, + statictext=false, + x=1, + y=7 + } + }, + CHASSIS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="CHASSIS", + index=0, + statictext=true, + x=2, + y=6 + } + }, + CHASSIS_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="CHASSIS_STATUS", + index=0, + statictext=true, + x=10, + y=6 + } + }, + CLEAR={ + { + alignment="RGHT", + cdu_pages={ + "BBCTL" + }, + id="CLEAR", + index=0, + statictext=true, + x=23, + y=7 + } + }, + CLEAR_SA={ + { + alignment="RGHT", + cdu_pages={ + "BBCTL" + }, + id="CLEAR_SA", + index=0, + statictext=false, + x=24, + y=7 + } + }, + CODE={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="CODE", + index=0, + statictext=true, + x=2, + y=4 + } + }, + CR_ON_OFF={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_ON_OFF", + index=0, + statictext=false, + x=5, + y=5 + } + }, + CR_ON_OFF1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_ON_OFF1", + index=0, + statictext=false, + x=5, + y=5 + } + }, + CR_SYMB={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_SYMB", + index=0, + statictext=false, + x=1, + y=5 + } + }, + CR_TXT={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="CR_TXT", + index=0, + statictext=true, + x=2, + y=5 + } + }, + CSCI={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="CSCI", + index=0, + statictext=false, + x=4, + y=10 + } + }, + CTD={ + { + alignment="LFT", + cdu_pages={ + "POS" + }, + id="CTD", + index=0, + statictext=true, + x=2, + y=8 + } + }, + CTD_VAL={ + { + alignment="LFT", + cdu_pages={ + "POS" + }, + id="CTD_VAL", + index=0, + statictext=false, + x=16, + y=8 + } + }, + CoordFormat0={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="CoordFormat0", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="CoordFormat1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + CurrFlightPlanLetter0={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrFlightPlanLetter0", + index=0, + statictext=false, + x=10, + y=1 + } + }, + CurrFlightPlanLetter1={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrFlightPlanLetter1", + index=0, + statictext=false, + x=10, + y=1 + } + }, + CurrFlightPlanNumber={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrFlightPlanNumber", + index=0, + statictext=false, + x=11, + y=1 + } + }, + CurrSteerPointAsterisk={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrSteerPointAsterisk", + index=0, + statictext=false, + x=14, + y=1 + } + }, + CurrSteerPointNumber={ + { + alignment="LFT", + cdu_pages={ + "1ST_LINE" + }, + id="CurrSteerPointNumber", + index=0, + statictext=false, + x=14, + y=1 + } + }, + DATA={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="DATA", + index=0, + statictext=true, + x=2, + y=4 + } + }, + DATA2={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="DATA2", + index=0, + statictext=true, + x=2, + y=6 + } + }, + DATA_OFF={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DATA_OFF", + index=0, + statictext=false, + x=21, + y=7 + } + }, + DATA_OFF1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DATA_OFF1", + index=0, + statictext=false, + x=21, + y=7 + } + }, + DATA_PUMP={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DATA_PUMP", + index=0, + statictext=true, + x=11, + y=7 + } + }, + DAY={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DAY", + index=0, + statictext=true, + x=16, + y=7 + } + }, + DAY_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DAY_DE", + index=0, + statictext=false, + x=24, + y=7 + } + }, + DAY_TXT={ + { + alignment="RGHT", + cdu_pages={ + "TIME" + }, + id="DAY_TXT", + index=0, + statictext=false, + x=23, + y=7 + } + }, + DECR={ + { + alignment="RGHT", + cdu_pages={ + "MXLOG" + }, + id="DECR", + index=0, + statictext=true, + x=23, + y=3 + } + }, + DEF_ATT={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="DEF_ATT", + index=0, + statictext=true, + x=2, + y=3 + } + }, + DEGREE1={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="DEGREE1", + index=0, + statictext=true, + x=17, + y=5 + } + }, + DEGREE2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="DEGREE2", + index=0, + statictext=true, + x=17, + y=7 + } + }, + DEGREE3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="DEGREE3", + index=0, + statictext=true, + x=17, + y=9 + } + }, + DIS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="DIS", + index=0, + statictext=true, + x=16, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="DIS", + index=1, + statictext=true, + x=7, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="DIS", + index=2, + statictext=true, + x=2, + y=8 + } + }, + DISPLAY_TEST={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="DISPLAY_TEST", + index=0, + statictext=true, + x=1, + y=3 + } + }, + DISPLAY_TEST1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="DISPLAY_TEST1", + index=0, + statictext=true, + x=2, + y=5 + } + }, + DISPLAY_TEST_VALUES={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="DISPLAY_TEST_VALUES", + index=0, + statictext=true, + x=2, + y=6 + } + }, + DIVERT={ + { + alignment="RGHT", + cdu_pages={ + "NAV" + }, + id="DIVERT", + index=0, + statictext=true, + x=24, + y=9 + } + }, + DIVERTDIV={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV", + index=0, + statictext=false, + x=5, + y=4 + } + }, + DIVERTDIV1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV1", + index=0, + statictext=false, + x=5, + y=6 + } + }, + DIVERTDIV2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV2", + index=0, + statictext=false, + x=5, + y=8 + } + }, + DIVERTDIV3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDIV3", + index=0, + statictext=false, + x=5, + y=10 + } + }, + DIVERTDistance={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance", + index=0, + statictext=false, + x=6, + y=4 + } + }, + DIVERTDistance1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance1", + index=0, + statictext=false, + x=6, + y=6 + } + }, + DIVERTDistance2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance2", + index=0, + statictext=false, + x=6, + y=8 + } + }, + DIVERTDistance3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTDistance3", + index=0, + statictext=false, + x=6, + y=10 + } + }, + DIVERTMH={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH", + index=0, + statictext=false, + x=2, + y=4 + } + }, + DIVERTMH1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + DIVERTMH2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH2", + index=0, + statictext=false, + x=2, + y=8 + } + }, + DIVERTMH3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTMH3", + index=0, + statictext=false, + x=2, + y=10 + } + }, + DIVERTName={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName", + index=0, + statictext=false, + x=7, + y=3 + } + }, + DIVERTName1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName1", + index=0, + statictext=false, + x=7, + y=5 + } + }, + DIVERTName2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName2", + index=0, + statictext=false, + x=7, + y=7 + } + }, + DIVERTName3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTName3", + index=0, + statictext=false, + x=7, + y=9 + } + }, + DIVERTNumber={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + DIVERTNumber1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + DIVERTNumber2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber2", + index=0, + statictext=false, + x=2, + y=7 + } + }, + DIVERTNumber3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTNumber3", + index=0, + statictext=false, + x=2, + y=9 + } + }, + DIVERTSteer={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer", + index=0, + statictext=false, + x=23, + y=3 + } + }, + DIVERTSteer1={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + DIVERTSteer2={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer2", + index=0, + statictext=false, + x=23, + y=7 + } + }, + DIVERTSteer3={ + { + alignment="RGHT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteer3", + index=0, + statictext=false, + x=23, + y=9 + } + }, + DIVERTSteerNOT={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT", + index=0, + statictext=false, + x=1, + y=3 + } + }, + DIVERTSteerNOT1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT1", + index=0, + statictext=false, + x=1, + y=5 + } + }, + DIVERTSteerNOT2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT2", + index=0, + statictext=false, + x=1, + y=7 + } + }, + DIVERTSteerNOT3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTSteerNOT3", + index=0, + statictext=false, + x=1, + y=9 + } + }, + DIVERTTTG={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG", + index=0, + statictext=false, + x=17, + y=4 + } + }, + DIVERTTTG1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG1", + index=0, + statictext=false, + x=17, + y=4 + } + }, + DIVERTTTG2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG2", + index=0, + statictext=false, + x=17, + y=6 + } + }, + DIVERTTTG3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG3", + index=0, + statictext=false, + x=17, + y=6 + } + }, + DIVERTTTG4={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG4", + index=0, + statictext=false, + x=17, + y=8 + } + }, + DIVERTTTG5={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG5", + index=0, + statictext=false, + x=17, + y=8 + } + }, + DIVERTTTG6={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG6", + index=0, + statictext=false, + x=17, + y=10 + } + }, + DIVERTTTG7={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTG7", + index=0, + statictext=false, + x=17, + y=10 + } + }, + DIVERTTTGText={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText", + index=0, + statictext=false, + x=12, + y=4 + } + }, + DIVERTTTGText1={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText1", + index=0, + statictext=false, + x=12, + y=6 + } + }, + DIVERTTTGText2={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText2", + index=0, + statictext=false, + x=12, + y=8 + } + }, + DIVERTTTGText3={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="DIVERTTTGText3", + index=0, + statictext=false, + x=12, + y=10 + } + }, + DKI={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="DKI", + index=0, + statictext=false, + x=1, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="DKI", + index=1, + statictext=true, + x=1, + y=3 + } + }, + DMH={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="DMH", + index=0, + statictext=true, + x=2, + y=7 + } + }, + DP_RTR={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1" + }, + id="DP_RTR", + index=0, + statictext=true, + x=24, + y=7 + } + }, + DSW1={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW1", + index=0, + statictext=true, + x=2, + y=4 + } + }, + DSW1_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW1_VAL", + index=0, + statictext=true, + x=24, + y=4 + } + }, + DSW2={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW2", + index=0, + statictext=true, + x=2, + y=5 + } + }, + DSW2_VAL={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="DSW2_VAL", + index=0, + statictext=true, + x=24, + y=5 + } + }, + DTCID={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTCID", + index=0, + statictext=true, + x=2, + y=3 + } + }, + DTOT={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="DTOT", + index=0, + statictext=true, + x=24, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="DTOT", + index=1, + statictext=true, + x=1, + y=9 + } + }, + DTOT_ADJUST={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DTOT_ADJUST", + index=0, + statictext=true, + x=1, + y=3 + } + }, + DTOT_ADJUST_TXT={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="DTOT_ADJUST_TXT", + index=0, + statictext=false, + x=2, + y=4 + } + }, + DTS={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS", + index=0, + statictext=true, + x=2, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS", + index=1, + statictext=true, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="DTS", + index=2, + statictext=true, + x=1, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "DTSDNLD", + "DTSSTAT", + "DTSUPLD" + }, + id="DTS", + index=3, + statictext=true, + x=24, + y=9 + } + }, + DTSAS={ + { + alignment="RGHT", + cdu_pages={ + "SYS1" + }, + id="DTSAS", + index=0, + statictext=true, + x=24, + y=7 + } + }, + DTSAS_EGI_STATUS={ + { + alignment="RGHT", + cdu_pages={ + "1ST_LINE" + }, + id="DTSAS_EGI_STATUS", + index=0, + statictext=false, + x=23, + y=1 + } + }, + DTSAS_HPU1={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_HPU1", + index=0, + statictext=false, + x=10, + y=7 + } + }, + DTSAS_ON_OFF={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_ON_OFF", + index=0, + statictext=false, + x=8, + y=3 + } + }, + DTSAS_ON_OFF1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_ON_OFF1", + index=0, + statictext=false, + x=8, + y=3 + } + }, + DTSAS_OWC={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_OWC", + index=0, + statictext=false, + x=20, + y=9 + } + }, + DTSAS_OWC1={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_OWC1", + index=0, + statictext=false, + x=20, + y=9 + } + }, + DTSAS_ST0={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTSAS_ST0", + index=0, + statictext=false, + x=15, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTSAS_ST0", + index=1, + statictext=false, + x=19, + y=6 + } + }, + DTSAS_ST2={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTSAS_ST2", + index=0, + statictext=false, + x=15, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTSAS_ST2", + index=1, + statictext=false, + x=19, + y=6 + } + }, + DTSAS_ST3={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTSAS_ST3", + index=0, + statictext=false, + x=15, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTSAS_ST3", + index=1, + statictext=false, + x=19, + y=6 + } + }, + DTSAS_SYMB={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_SYMB", + index=0, + statictext=false, + x=1, + y=3 + } + }, + DTSAS_TXT={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_TXT", + index=0, + statictext=true, + x=2, + y=3 + } + }, + DTSAS_VPU1={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="DTSAS_VPU1", + index=0, + statictext=false, + x=9, + y=8 + } + }, + DTSDNLD={ + { + alignment="RGHT", + cdu_pages={ + "DTS" + }, + id="DTSDNLD", + index=0, + statictext=true, + x=24, + y=5 + } + }, + DTSSTAT={ + { + alignment="RGHT", + cdu_pages={ + "DTS" + }, + id="DTSSTAT", + index=0, + statictext=true, + x=24, + y=7 + } + }, + DTSUPLD={ + { + alignment="RGHT", + cdu_pages={ + "DTS" + }, + id="DTSUPLD", + index=0, + statictext=true, + x=24, + y=3 + } + }, + DTSUPLOAD={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="DTSUPLOAD", + index=0, + statictext=true, + x=1, + y=9 + } + }, + DTS_LB={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_LB", + index=0, + statictext=true, + x=18, + y=3 + } + }, + DTS_SA={ + { + alignment="RGHT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_SA", + index=0, + statictext=false, + x=24, + y=3 + } + }, + DTS_ST0={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST0", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST0", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST0", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST0", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST0", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST1={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST1", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST1", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST1", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST1", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST1", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST2={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST2", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST2", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST2", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST2", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST2", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST3={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST3", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="DTS_ST3", + index=1, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="DTS_ST3", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST3", + index=3, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST3", + index=4, + statictext=false, + x=23, + y=4 + } + }, + DTS_ST4={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="DTS_ST4", + index=0, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="DTS_ST4", + index=1, + statictext=false, + x=17, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="DTS_ST4", + index=2, + statictext=false, + x=23, + y=4 + } + }, + DTS_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS0", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTS_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS1", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTS_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS2", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTS_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="DTS_STATUS3", + index=0, + statictext=false, + x=22, + y=3 + } + }, + DTTG={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="DTTG", + index=0, + statictext=true, + x=1, + y=7 + } + }, + DUR={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="DUR", + index=0, + statictext=true, + x=1, + y=7 + } + }, + DUR_VALS={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="DUR_VALS", + index=0, + statictext=true, + x=9, + y=7 + } + }, + EEPROM={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="EEPROM", + index=0, + statictext=false, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="EEPROM", + index=1, + statictext=true, + x=1, + y=5 + } + }, + EGI={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGI", + index=0, + statictext=true, + x=1, + y=3 + } + }, + EGIAvailableMode={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="EGIAvailableMode", + index=0, + statictext=false, + x=24, + y=3 + } + }, + EGIAvailableMode1={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGIAvailableMode1", + index=0, + statictext=false, + x=24, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="EGIAvailableMode1", + index=1, + statictext=false, + x=24, + y=7 + } + }, + EGIAvailableMode2={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGIAvailableMode2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + EGICurrentMode={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EGICurrentMode", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGICurrentMode", + index=1, + statictext=false, + x=17, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="EGICurrentMode", + index=2, + statictext=false, + x=19, + y=3 + } + }, + EGICurrentMode1={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EGICurrentMode1", + index=0, + statictext=false, + x=5, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGICurrentMode1", + index=1, + statictext=false, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="EGICurrentMode1", + index=2, + statictext=false, + x=20, + y=7 + } + }, + EGICurrentMode2={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="EGICurrentMode2", + index=0, + statictext=false, + x=20, + y=7 + } + }, + EGIStatus={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus1", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus1", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus1", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus1", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus1", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus10={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus10", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus10", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus10", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus11={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus11", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus11", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus11", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus12={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus12", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus12", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus12", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus13={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus13", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus13", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus13", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus14={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus14", + index=0, + statictext=false, + x=22, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus14", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus14", + index=2, + statictext=false, + x=11, + y=5 + } + }, + EGIStatus15={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus15", + index=0, + statictext=false, + x=17, + y=5 + } + }, + EGIStatus16={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus16", + index=0, + statictext=false, + x=17, + y=5 + } + }, + EGIStatus2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus2", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus2", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus2", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus2", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus2", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus3", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus3", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus3", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus3", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus3", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus4", + index=0, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGIStatus4", + index=1, + statictext=false, + x=20, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus4", + index=2, + statictext=false, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="EGIStatus4", + index=3, + statictext=false, + x=8, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus4", + index=4, + statictext=false, + x=11, + y=3 + } + }, + EGIStatus5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus5", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus5", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus5", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus6", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus6", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus6", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus7", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus7", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus7", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus8", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus8", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus8", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGIStatus9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGIStatus9", + index=0, + statictext=false, + x=14, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="EGIStatus9", + index=1, + statictext=false, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="EGIStatus9", + index=2, + statictext=false, + x=11, + y=4 + } + }, + EGITEST={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="EGITEST", + index=0, + statictext=true, + x=1, + y=3 + } + }, + EGI_BLD_FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM1", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM2", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM3", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM4", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM5", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM6", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM7", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM8", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_BLD_FOM9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_BLD_FOM9", + index=0, + statictext=false, + x=22, + y=8 + } + }, + EGI_GPS_EHE={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EHE", + index=0, + statictext=false, + x=15, + y=4 + } + }, + EGI_GPS_EHE1={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EHE1", + index=0, + statictext=false, + x=15, + y=4 + } + }, + EGI_GPS_EVE={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EVE", + index=0, + statictext=false, + x=15, + y=5 + } + }, + EGI_GPS_EVE1={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_EVE1", + index=0, + statictext=false, + x=15, + y=5 + } + }, + EGI_GPS_FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM1", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM1", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM2", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM2", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM3", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM3", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM4", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM4", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM5", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM5", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM6", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM6", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM7", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM7", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM8", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM8", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_FOM9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_GPS_FOM9", + index=0, + statictext=false, + x=14, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_FOM9", + index=1, + statictext=false, + x=15, + y=3 + } + }, + EGI_GPS_ST3={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST3", + index=0, + statictext=false, + x=15, + y=7 + } + }, + EGI_GPS_ST31={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST31", + index=0, + statictext=false, + x=15, + y=7 + } + }, + EGI_GPS_ST5={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST5", + index=0, + statictext=false, + x=15, + y=6 + } + }, + EGI_GPS_ST51={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="EGI_GPS_ST51", + index=0, + statictext=false, + x=15, + y=6 + } + }, + EGI_INS_FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM1", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM2", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM3", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM4", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM5={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM5", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM6={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM6", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM7={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM7", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM8={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM8", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_INS_FOM9={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="EGI_INS_FOM9", + index=0, + statictext=false, + x=6, + y=8 + } + }, + EGI_OFP={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGI_OFP", + index=0, + statictext=true, + x=2, + y=7 + } + }, + EGI_SA={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="EGI_SA", + index=0, + statictext=false, + x=1, + y=7 + } + }, + EHE={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EHE", + index=0, + statictext=true, + x=8, + y=4 + } + }, + EL={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="EL", + index=0, + statictext=true, + x=2, + y=5 + } + }, + ELEVATION={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="ELEVATION", + index=0, + statictext=true, + x=16, + y=4 + } + }, + EMPTY={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="EMPTY", + index=0, + statictext=true, + x=3, + y=5 + } + }, + ERASE={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="ERASE", + index=0, + statictext=true, + x=2, + y=7 + } + }, + ERASEFL={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="ERASEFL", + index=0, + statictext=true, + x=13, + y=4 + } + }, + ERASEFs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="ERASEFs", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ERASEFs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="ERASEFs1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + ERASE_SA={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="ERASE_SA", + index=0, + statictext=false, + x=1, + y=7 + } + }, + EVE={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="EVE", + index=0, + statictext=true, + x=8, + y=5 + } + }, + EX={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="EX", + index=0, + statictext=true, + x=2, + y=7 + } + }, + EstimatedDrift={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="EstimatedDrift", + index=0, + statictext=false, + x=13, + y=8 + } + }, + F={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="F", + index=0, + statictext=false, + x=23, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="F", + index=1, + statictext=true, + x=5, + y=4 + } + }, + FAST={ + { + alignment="RGHT", + cdu_pages={ + "ALTALGN" + }, + id="FAST", + index=0, + statictext=true, + x=23, + y=3 + } + }, + FAULT={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="FAULT", + index=0, + statictext=true, + x=2, + y=3 + } + }, + FAUL_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="FAUL_STATUS0", + index=0, + statictext=false, + x=8, + y=3 + } + }, + FAUL_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="FAUL_STATUS1", + index=0, + statictext=false, + x=8, + y=3 + } + }, + FLDINFO={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="FLDINFO", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FLDINFO_APP_UHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_APP_UHF", + index=0, + statictext=false, + x=7, + y=9 + } + }, + FLDINFO_APP_VHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_APP_VHF", + index=0, + statictext=false, + x=15, + y=9 + } + }, + FLDINFO_BR={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="FLDINFO_BR", + index=0, + statictext=false, + x=24, + y=3 + } + }, + FLDINFO_ELEV={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ELEV", + index=0, + statictext=false, + x=21, + y=4 + } + }, + FLDINFO_ID={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ID", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FLDINFO_ILS1={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ILS1", + index=0, + statictext=false, + x=7, + y=7 + } + }, + FLDINFO_ILS2={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_ILS2", + index=0, + statictext=false, + x=15, + y=7 + } + }, + FLDINFO_NUM={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_NUM", + index=0, + statictext=false, + x=16, + y=3 + } + }, + FLDINFO_Name={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_Name", + index=0, + statictext=false, + x=2, + y=4 + } + }, + FLDINFO_RWY_HD={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_RWY_HD", + index=0, + statictext=false, + x=7, + y=6 + } + }, + FLDINFO_RWY_HD2={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_RWY_HD2", + index=0, + statictext=false, + x=15, + y=6 + } + }, + FLDINFO_RWY_LNG={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_RWY_LNG", + index=0, + statictext=false, + x=19, + y=6 + } + }, + FLDINFO_TAC_CHAN={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TAC_CHAN", + index=0, + statictext=false, + x=7, + y=8 + } + }, + FLDINFO_TAC_OFF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TAC_OFF", + index=0, + statictext=false, + x=11, + y=8 + } + }, + FLDINFO_TWR_UHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TWR_UHF", + index=0, + statictext=false, + x=7, + y=10 + } + }, + FLDINFO_TWR_VHF={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="FLDINFO_TWR_VHF", + index=0, + statictext=false, + x=15, + y=10 + } + }, + ["FLIGHT DRIVER"]={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT DRIVER", + index=0, + statictext=true, + x=5, + y=4 + } + }, + FLIGHT_DRIVER={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="FLIGHT_DRIVER", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FLIGHT_DRIVER1={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="FLIGHT_DRIVER1", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER1", + index=1, + statictext=false, + x=6, + y=5 + } + }, + FLIGHT_DRIVER2={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="FLIGHT_DRIVER2", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER2", + index=1, + statictext=false, + x=6, + y=5 + } + }, + FLIGHT_DRIVER3={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER3", + index=0, + statictext=false, + x=6, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "POS" + }, + id="FLIGHT_DRIVER3", + index=1, + statictext=false, + x=23, + y=3 + } + }, + FLIGHT_DRIVER4={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FLIGHT_DRIVER4", + index=0, + statictext=false, + x=6, + y=5 + } + }, + FLTR_INS={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="FLTR_INS", + index=0, + statictext=true, + x=2, + y=9 + } + }, + FLTR_INSs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="FLTR_INSs", + index=0, + statictext=false, + x=11, + y=9 + } + }, + FLTR_INSs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="FLTR_INSs1", + index=0, + statictext=false, + x=11, + y=9 + } + }, + FOM={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FOM", + index=0, + statictext=true, + x=11, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="FOM", + index=1, + statictext=true, + x=8, + y=3 + } + }, + FOM_LINE={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="FOM_LINE", + index=0, + statictext=true, + x=2, + y=8 + } + }, + FPAction={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPAction", + index=0, + statictext=false, + x=1, + y=3 + } + }, + FPAction1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPAction1", + index=0, + statictext=false, + x=1, + y=5 + } + }, + FPAction2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPAction2", + index=0, + statictext=false, + x=1, + y=7 + } + }, + FPBUILDBranch={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPBUILDBranch", + index=0, + statictext=false, + x=24, + y=3 + } + }, + FPBUILDBranch1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPBUILDBranch1", + index=0, + statictext=false, + x=24, + y=5 + } + }, + FPBUILDBranch2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPBUILDBranch2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + FPMENUPageNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPMENUPageNumber", + index=0, + statictext=false, + x=20, + y=10 + } + }, + FPBUILDPageNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPMENUPageNumber", + index=0, + statictext=false, + x=20, + y=10 + } + }, + FPBUILDPlanName={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPBUILDPlanName", + index=0, + statictext=false, + x=5, + y=3 + } + }, + FPBUILDPlanNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="FPBUILDPlanNumber", + index=0, + statictext=false, + x=6, + y=4 + } + }, + FPMode={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode", + index=0, + statictext=false, + x=5, + y=3 + } + }, + FPMode1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode1", + index=0, + statictext=false, + x=5, + y=3 + } + }, + FPMode2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode2", + index=0, + statictext=false, + x=5, + y=5 + } + }, + FPMode3={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode3", + index=0, + statictext=false, + x=5, + y=5 + } + }, + FPMode4={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode4", + index=0, + statictext=false, + x=5, + y=7 + } + }, + FPMode5={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPMode5", + index=0, + statictext=false, + x=5, + y=7 + } + }, + FPName={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPName", + index=0, + statictext=false, + x=11, + y=3 + } + }, + FPName1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPName1", + index=0, + statictext=false, + x=11, + y=5 + } + }, + FPName2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPName2", + index=0, + statictext=false, + x=11, + y=7 + } + }, + FPNameInput={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNameInput", + index=0, + statictext=false, + x=1, + y=9 + } + }, + FPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FPNumber1={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNumber1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + FPNumber2={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FPNumber2", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FPP={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="FPP", + index=0, + statictext=false, + x=1, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="FPP", + index=1, + statictext=true, + x=1, + y=6 + } + }, + FROM_CF_RTRY={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_CF_RTRY", + index=0, + statictext=true, + x=24, + y=3 + } + }, + FROM_CoordFormat0={ + { + alignment="RGHT", + cdu_pages={ + "FROM" + }, + id="FROM_CoordFormat0", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FROM_CoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "FROM" + }, + id="FROM_CoordFormat1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + FROM_DataEntry0={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_DataEntry0", + index=0, + statictext=false, + x=1, + y=3 + } + }, + FROM_DataEntry1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_DataEntry1", + index=0, + statictext=false, + x=1, + y=5 + } + }, + FROM_Lat={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Lat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_Lat1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Lat1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_Long={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Long", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_Long1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_Long1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_NUMBER={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="FROM_NUMBER", + index=0, + statictext=false, + x=20, + y=2 + } + }, + FROM_PT={ + { + alignment="RGHT", + cdu_pages={ + "WPMENU" + }, + id="FROM_PT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + FROM_PointArea={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointArea", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_PointArea1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointArea1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + FROM_PointGrid={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointGrid", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_PointGrid1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_PointGrid1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + FROM_TITLE={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="FROM_TITLE", + index=0, + statictext=false, + x=15, + y=2 + } + }, + FROM_WptIdent={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptIdent", + index=0, + statictext=false, + x=2, + y=5 + } + }, + FROM_WptIdent1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptIdent1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + FROM_WptNumber={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FROM_WptNumber1={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="FROM_WptNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + FT_BRACKETS={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="FT_BRACKETS", + index=0, + statictext=false, + x=24, + y=9 + } + }, + FT_TXT={ + { + alignment="RGHT", + cdu_pages={ + "DTSAS" + }, + id="FT_TXT", + index=0, + statictext=true, + x=23, + y=9 + } + }, + FULLText={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="FULLText", + index=0, + statictext=false, + x=10, + y=9 + } + }, + FWI={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2", + "GPSBIT3", + "GPSBIT4" + }, + id="FWI", + index=0, + statictext=true, + x=2, + y=3 + } + }, + GC={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="GC", + index=0, + statictext=true, + x=2, + y=8 + } + }, + GC1={ + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1" + }, + id="GC1", + index=0, + statictext=true, + x=24, + y=8 + } + }, + GCAS_LAST_SOURCE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="GCAS_LAST_SOURCE", + index=0, + statictext=false, + x=2, + y=9 + } + }, + GCAS_MSGS={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="GCAS_MSGS", + index=0, + statictext=true, + x=2, + y=9 + } + }, + GCAS_MSGS1={ + { + alignment="RGHT", + cdu_pages={ + "LASTE" + }, + id="GCAS_MSGS1", + index=0, + statictext=false, + x=16, + y=9 + } + }, + GEM_OFP={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GEM_OFP", + index=0, + statictext=true, + x=2, + y=9 + } + }, + GEM_SA={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GEM_SA", + index=0, + statictext=false, + x=1, + y=9 + } + }, + GMT_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_DE", + index=0, + statictext=false, + x=24, + y=9 + } + }, + GMT_LCL1={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_LCL1", + index=0, + statictext=false, + x=12, + y=9 + } + }, + GMT_LCL2={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_LCL2", + index=0, + statictext=false, + x=12, + y=9 + } + }, + GMT_LCL_Time={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="GMT_LCL_Time", + index=0, + statictext=false, + x=16, + y=9 + } + }, + GPS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPS", + index=0, + statictext=true, + x=15, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="GPS", + index=1, + statictext=true, + x=1, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSBIT1", + "GPSBIT2", + "GPSBIT3", + "GPSKEYS", + "GPSSTAT2" + }, + id="GPS", + index=2, + statictext=true, + x=24, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5" + }, + id="GPS", + index=3, + statictext=true, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPS", + index=4, + statictext=true, + x=14, + y=3 + } + }, + GPS1={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="GPS1", + index=0, + statictext=false, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSBIT4", + "GPSBIT5", + "GPSSTAT1" + }, + id="GPS1", + index=1, + statictext=true, + x=24, + y=9 + } + }, + GPS2={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="GPS2", + index=0, + statictext=true, + x=2, + y=5 + } + }, + GPSAltitude={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="GPSAltitude", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="GPSAltitude1", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="GPSAltitude2", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude3={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="GPSAltitude3", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSAltitude4={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="GPSAltitude4", + index=0, + statictext=false, + x=8, + y=9 + } + }, + GPSBIT={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="GPSBIT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + GPSKEYS={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="GPSKEYS", + index=0, + statictext=true, + x=24, + y=9 + } + }, + GPSSTAT={ + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="GPSSTAT", + index=0, + statictext=true, + x=24, + y=3 + } + }, + GPSStatus={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus1={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus1", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus1", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus2={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus2", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus2", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus3={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus3", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus3", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPSStatus4={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPSStatus4", + index=0, + statictext=false, + x=20, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GPSStatus4", + index=1, + statictext=false, + x=23, + y=3 + } + }, + GPS_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_SA", + index=0, + statictext=true, + x=2, + y=3 + } + }, + GPS_SA1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_SA1", + index=0, + statictext=false, + x=1, + y=3 + } + }, + GPS_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="GPS_STATUS", + index=0, + statictext=true, + x=20, + y=3 + } + }, + GPS_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS0", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GPS_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS1", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GPS_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS2", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GPS_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="GPS_STATUS3", + index=0, + statictext=false, + x=6, + y=3 + } + }, + GROUND={ + { + alignment="RGHT", + cdu_pages={ + "ALIGN" + }, + id="GROUND", + index=0, + statictext=true, + x=23, + y=3 + } + }, + GUK_USER={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GUK_USER", + index=0, + statictext=true, + x=14, + y=6 + } + }, + GUK_USERs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GUK_USERs", + index=0, + statictext=false, + x=23, + y=6 + } + }, + GUK_USERs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="GUK_USERs1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + G_ALT={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="G_ALT", + index=0, + statictext=true, + x=2, + y=9 + } + }, + HARS={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="HARS", + index=0, + statictext=true, + x=18, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="HARS", + index=1, + statictext=true, + x=18, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "SYS1" + }, + id="HARS", + index=2, + statictext=true, + x=24, + y=5 + } + }, + HARS_I_F={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="HARS_I_F", + index=0, + statictext=false, + x=13, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="HARS_I_F", + index=1, + statictext=true, + x=13, + y=3 + } + }, + HARS_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="HARS_ST2", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="HARS_ST2", + index=1, + statictext=false, + x=23, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="HARS_ST2", + index=2, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="HARS_ST2", + index=3, + statictext=false, + x=11, + y=7 + } + }, + HARS_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="HARS_ST3", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="HARS_ST3", + index=1, + statictext=false, + x=23, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="HARS_ST3", + index=2, + statictext=false, + x=23, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="HARS_ST3", + index=3, + statictext=false, + x=11, + y=7 + } + }, + HAS_KEYS={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="HAS_KEYS", + index=0, + statictext=true, + x=13, + y=5 + } + }, + HAS_KEYSs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="HAS_KEYSs", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HAS_KEYSs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="HAS_KEYSs1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HPU={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="HPU", + index=0, + statictext=true, + x=2, + y=7 + } + }, + HUD_ATT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="HUD_ATT", + index=0, + statictext=true, + x=10, + y=5 + } + }, + HUD_ATT1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="HUD_ATT1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HUD_ATT2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="HUD_ATT2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + HUD_IND={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="HUD_IND", + index=0, + statictext=true, + x=1, + y=9 + } + }, + HUD_OFF={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="HUD_OFF", + index=0, + statictext=false, + x=6, + y=9 + } + }, + HUD_ON={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="HUD_ON", + index=0, + statictext=false, + x=6, + y=9 + } + }, + IAS={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="IAS", + index=0, + statictext=true, + x=2, + y=8 + } + }, + IAS_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="IAS_ST", + index=0, + statictext=false, + x=21, + y=8 + } + }, + IAS_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="IAS_ST1", + index=0, + statictext=false, + x=21, + y=8 + } + }, + IAS_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="IAS_VAL", + index=0, + statictext=false, + x=16, + y=8 + } + }, + IE={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="IE", + index=0, + statictext=true, + x=15, + y=4 + } + }, + IE_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="IE_STATUS", + index=0, + statictext=true, + x=20, + y=4 + } + }, + IIW={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT5" + }, + id="IIW", + index=0, + statictext=true, + x=2, + y=3 + } + }, + ILS={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="ILS", + index=0, + statictext=true, + x=2, + y=7 + } + }, + ILS1={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="ILS1", + index=0, + statictext=true, + x=2, + y=10 + } + }, + INCR={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="INCR", + index=0, + statictext=true, + x=2, + y=3 + } + }, + INFLT={ + { + alignment="RGHT", + cdu_pages={ + "ALIGN" + }, + id="INFLT", + index=0, + statictext=true, + x=23, + y=5 + } + }, + INIT={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="INIT", + index=0, + statictext=true, + x=1, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="INIT", + index=1, + statictext=true, + x=2, + y=6 + } + }, + INITWAYPTIdent1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTIdent1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + INITWAYPTIdent2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTIdent2", + index=0, + statictext=false, + x=2, + y=5 + } + }, + INITWAYPTNumber1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + INITWAYPTNumber2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPTNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + INITWAYPT_INCR_DECR={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="INITWAYPT_INCR_DECR", + index=0, + statictext=true, + x=1, + y=3 + } + }, + INIT_REQ={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="INIT_REQ", + index=0, + statictext=true, + x=2, + y=6 + } + }, + INIT_REQs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="INIT_REQs", + index=0, + statictext=false, + x=11, + y=6 + } + }, + INIT_REQs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="INIT_REQs1", + index=0, + statictext=false, + x=11, + y=6 + } + }, + INS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="INS", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="INS", + index=1, + statictext=true, + x=24, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS", + index=2, + statictext=true, + x=1, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="INS", + index=3, + statictext=false, + x=24, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS", + index=4, + statictext=true, + x=2, + y=5 + } + }, + INS1={ + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="INS1", + index=0, + statictext=false, + x=24, + y=7 + } + }, + INS2={ + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="INS2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + INSERT={ + { + alignment="RGHT", + cdu_pages={ + "FPBUILD" + }, + id="INSERT", + index=0, + statictext=true, + x=23, + y=3 + } + }, + INSERTDisplay={ + { + alignment="RGHT", + cdu_pages={ + "FPBUILD" + }, + id="INSERTDisplay", + index=0, + statictext=false, + x=24, + y=3 + } + }, + INSSTAT={ + { + alignment="RGHT", + cdu_pages={ + "INS" + }, + id="INSSTAT", + index=0, + statictext=true, + x=24, + y=3 + } + }, + INS_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_SA", + index=0, + statictext=false, + x=1, + y=5 + } + }, + INS_ST={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST", + index=0, + statictext=true, + x=19, + y=3 + } + }, + INS_ST1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST3={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST3", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST4={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST4", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_ST5={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="INS_ST5", + index=0, + statictext=false, + x=23, + y=3 + } + }, + INS_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS0", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INS_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS1", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INS_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS2", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INS_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="INS_STATUS3", + index=0, + statictext=false, + x=6, + y=5 + } + }, + INVALID={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="INVALID", + index=0, + statictext=true, + x=2, + y=3 + } + }, + INVALID_ST0={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="INVALID_ST0", + index=0, + statictext=false, + x=10, + y=3 + } + }, + INVALID_ST1={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="INVALID_ST1", + index=0, + statictext=false, + x=10, + y=3 + } + }, + IN_FP={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="IN_FP", + index=0, + statictext=true, + x=19, + y=3 + } + }, + ISA={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="ISA", + index=0, + statictext=true, + x=2, + y=4 + } + }, + ISA_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="ISA_STATUS", + index=0, + statictext=true, + x=10, + y=4 + } + }, + I_F_1553={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="I_F_1553", + index=0, + statictext=false, + x=13, + y=5 + } + }, + InitInputLatUTM={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitInputLatUTM", + index=0, + statictext=false, + x=1, + y=7 + } + }, + InitInputLongMGRS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitInputLongMGRS", + index=0, + statictext=false, + x=1, + y=9 + } + }, + InitPosCoordFormat_LL={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPosCoordFormat_LL", + index=0, + statictext=false, + x=1, + y=5 + } + }, + InitPosCoordFormat_UTM={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPosCoordFormat_UTM", + index=0, + statictext=false, + x=1, + y=5 + } + }, + InitPositLat={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositLat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + InitPositLong={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositLong", + index=0, + statictext=false, + x=2, + y=9 + } + }, + InitPositMGRS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + InitPositText={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositText", + index=0, + statictext=false, + x=2, + y=6 + } + }, + InitPositUTM={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="InitPositUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + KEYLOAD={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="KEYLOAD", + index=0, + statictext=true, + x=2, + y=8 + } + }, + KEY_2HR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_2HR", + index=0, + statictext=true, + x=14, + y=8 + } + }, + KEY_DUR={ + { + alignment="RGHT", + cdu_pages={ + "GPSKEYS" + }, + id="KEY_DUR", + index=0, + statictext=false, + x=8, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSSTAT2" + }, + id="KEY_DUR", + index=1, + statictext=false, + x=12, + y=7 + } + }, + KEY_PAR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PAR", + index=0, + statictext=true, + x=14, + y=7 + } + }, + KEY_PARs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs", + index=0, + statictext=false, + x=23, + y=7 + } + }, + KEY_PARs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs1", + index=0, + statictext=false, + x=23, + y=7 + } + }, + KEY_PARs2={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs2", + index=0, + statictext=false, + x=23, + y=8 + } + }, + KEY_PARs3={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_PARs3", + index=0, + statictext=false, + x=23, + y=8 + } + }, + KEY_REM={ + { + alignment="RGHT", + cdu_pages={ + "GPSKEYS" + }, + id="KEY_REM", + index=0, + statictext=false, + x=11, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "GPSSTAT2" + }, + id="KEY_REM", + index=1, + statictext=false, + x=16, + y=7 + } + }, + KEY_USED={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USED", + index=0, + statictext=true, + x=14, + y=5 + } + }, + KEY_USEDs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KEY_USEDs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KEY_USEDs2={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KEY_USEDs3={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="KEY_USEDs3", + index=0, + statictext=false, + x=23, + y=5 + } + }, + KLDs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="KLDs", + index=0, + statictext=false, + x=17, + y=8 + } + }, + KLDs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="KLDs1", + index=0, + statictext=false, + x=17, + y=8 + } + }, + KYK={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="KYK", + index=0, + statictext=true, + x=2, + y=3 + } + }, + L4={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2", + "GPSBIT3" + }, + id="L4", + index=0, + statictext=true, + x=2, + y=4 + } + }, + L5={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2", + "GPSBIT3" + }, + id="L5", + index=0, + statictext=true, + x=2, + y=5 + } + }, + LAR={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR", + index=0, + statictext=true, + x=17, + y=6 + } + }, + LAR_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR_VALUE", + index=0, + statictext=false, + x=23, + y=6 + } + }, + LAR_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR_VALUE1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + LAR_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="LAR_VALUE2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + LASTE={ + { + alignment="RGHT", + cdu_pages={ + "SYS1" + }, + id="LASTE", + index=0, + statictext=true, + x=24, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="LASTE", + index=1, + statictext=true, + x=24, + y=9 + } + }, + LASTE_ST0={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="LASTE_ST0", + index=0, + statictext=false, + x=15, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LASTE_ST0", + index=1, + statictext=false, + x=11, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LASTE_ST0", + index=2, + statictext=false, + x=23, + y=3 + } + }, + LASTE_ST1={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="LASTE_ST1", + index=0, + statictext=false, + x=15, + y=7 + } + }, + LASTE_ST2={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LASTE_ST2", + index=0, + statictext=false, + x=11, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LASTE_ST2", + index=1, + statictext=false, + x=23, + y=3 + } + }, + LASTE_V={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LASTE_V", + index=0, + statictext=true, + x=17, + y=3 + } + }, + LCL_ADJUST={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="LCL_ADJUST", + index=0, + statictext=true, + x=1, + y=7 + } + }, + LCL_ADJUST_TXT={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="LCL_ADJUST_TXT", + index=0, + statictext=false, + x=2, + y=8 + } + }, + LINE7={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="LINE7", + index=0, + statictext=true, + x=2, + y=7 + } + }, + LINE9={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="LINE9", + index=0, + statictext=true, + x=2, + y=9 + } + }, + LOAD_PASS={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="LOAD_PASS", + index=0, + statictext=true, + x=11, + y=7 + } + }, + LRU1={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="LRU1", + index=0, + statictext=false, + x=1, + y=7 + } + }, + LRU2={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="LRU2", + index=0, + statictext=true, + x=2, + y=7 + } + }, + LRUTEST={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1", + "EGITEST" + }, + id="LRUTEST", + index=0, + statictext=true, + x=24, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="LRUTEST", + index=1, + statictext=true, + x=1, + y=5 + } + }, + LRU_CADC={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_CADC", + index=0, + statictext=false, + x=6, + y=6 + } + }, + LRU_CDU={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_CDU", + index=0, + statictext=false, + x=13, + y=3 + } + }, + LRU_DTS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_DTS", + index=0, + statictext=false, + x=13, + y=5 + } + }, + LRU_DTSAS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_DTSAS", + index=0, + statictext=false, + x=13, + y=6 + } + }, + LRU_GPS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_GPS", + index=0, + statictext=false, + x=7, + y=4 + } + }, + LRU_HARS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_HARS", + index=0, + statictext=false, + x=6, + y=7 + } + }, + LRU_INS={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_INS", + index=0, + statictext=false, + x=7, + y=3 + } + }, + LRU_LASTE={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_LASTE", + index=0, + statictext=false, + x=5, + y=8 + } + }, + LRU_MBC={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_MBC", + index=0, + statictext=false, + x=13, + y=4 + } + }, + LRU_MSN={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="LRU_MSN", + index=0, + statictext=false, + x=7, + y=5 + } + }, + MACH={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MACH", + index=0, + statictext=true, + x=18, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="MACH", + index=1, + statictext=true, + x=2, + y=7 + } + }, + MACH_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="MACH_ST", + index=0, + statictext=false, + x=21, + y=7 + } + }, + MACH_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="MACH_ST1", + index=0, + statictext=false, + x=21, + y=7 + } + }, + MACH_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="MACH_VAL", + index=0, + statictext=false, + x=16, + y=7 + } + }, + MAGH_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="MAGH_ST2", + index=0, + statictext=false, + x=19, + y=9 + } + }, + MAGH_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="MAGH_ST3", + index=0, + statictext=false, + x=19, + y=9 + } + }, + MAGH_VAL={ + { + alignment="RGHT", + cdu_pages={ + "HARS" + }, + id="MAGH_VAL", + index=0, + statictext=false, + x=16, + y=9 + } + }, + MAG_HEAD={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="MAG_HEAD", + index=0, + statictext=true, + x=2, + y=9 + } + }, + MBC={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="MBC", + index=0, + statictext=true, + x=18, + y=7 + } + }, + MBC1={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="MBC1", + index=0, + statictext=true, + x=23, + y=7 + } + }, + MBIT1={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT1", + index=0, + statictext=true, + x=2, + y=3 + } + }, + MBIT10={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT10", + index=0, + statictext=true, + x=14, + y=5 + } + }, + MBIT11={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT11", + index=0, + statictext=true, + x=14, + y=6 + } + }, + MBIT2={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT2", + index=0, + statictext=true, + x=2, + y=4 + } + }, + MBIT3={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT3", + index=0, + statictext=true, + x=2, + y=5 + } + }, + MBIT4={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT4", + index=0, + statictext=true, + x=2, + y=6 + } + }, + MBIT5={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT5", + index=0, + statictext=true, + x=2, + y=7 + } + }, + MBIT6={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT6", + index=0, + statictext=true, + x=2, + y=8 + } + }, + MBIT7={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT7", + index=0, + statictext=true, + x=2, + y=9 + } + }, + MBIT8={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT8", + index=0, + statictext=true, + x=14, + y=3 + } + }, + MBIT9={ + { + alignment="LFT", + cdu_pages={ + "EGI3" + }, + id="MBIT9", + index=0, + statictext=true, + x=14, + y=4 + } + }, + MH={ + { + alignment="RGHT", + cdu_pages={ + "ALTALGN" + }, + id="MH", + index=0, + statictext=true, + x=16, + y=5 + } + }, + MH1={ + { + alignment="RGHT", + cdu_pages={ + "ALTALGN" + }, + id="MH1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MHD={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="MHD", + index=0, + statictext=true, + x=18, + y=7 + } + }, + MHD_ERR={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="MHD_ERR", + index=0, + statictext=false, + x=21, + y=7 + } + }, + MH_DE={ + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="MH_DE", + index=0, + statictext=false, + x=24, + y=5 + } + }, + MISC_ADDR={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="MISC_ADDR", + index=0, + statictext=true, + x=1, + y=9 + } + }, + MISSION={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="MISSION", + index=0, + statictext=true, + x=2, + y=4 + } + }, + MODE={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="MODE", + index=0, + statictext=true, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE", + index=1, + statictext=true, + x=2, + y=3 + } + }, + MODE0={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE0", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE1", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE2", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE3={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE3", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE4={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE4", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE5={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE5", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE6={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE6", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE7={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE7", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE8={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE8", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MODE9={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="MODE9", + index=0, + statictext=false, + x=8, + y=3 + } + }, + MONTH={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="MONTH", + index=0, + statictext=true, + x=16, + y=5 + } + }, + MONTH_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="MONTH_DE", + index=0, + statictext=false, + x=24, + y=5 + } + }, + MONTH_TXT={ + { + alignment="RGHT", + cdu_pages={ + "TIME" + }, + id="MONTH_TXT", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MSN={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="MSN", + index=0, + statictext=true, + x=15, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="MSN", + index=1, + statictext=true, + x=18, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN", + index=2, + statictext=false, + x=1, + y=7 + } + }, + MSN_DUR={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="MSN_DUR", + index=0, + statictext=true, + x=2, + y=7 + } + }, + MSN_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_SA", + index=0, + statictext=true, + x=2, + y=7 + } + }, + MSN_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="MSN_STATUS", + index=0, + statictext=true, + x=20, + y=5 + } + }, + MSN_STATUS0={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS0", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MSN_STATUS1={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS1", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MSN_STATUS2={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS2", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MSN_STATUS3={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="MSN_STATUS3", + index=0, + statictext=false, + x=6, + y=7 + } + }, + MV={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="MV", + index=1, + statictext=false, + x=23, + y=5 + } + }, + MV1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV1", + index=0, + statictext=false, + x=17, + y=5 + } + }, + MV2={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MV3={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV3", + index=0, + statictext=false, + x=17, + y=5 + } + }, + MV4={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV4", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MV5={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV5", + index=0, + statictext=false, + x=17, + y=5 + } + }, + MV6={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="MV6", + index=0, + statictext=false, + x=23, + y=5 + } + }, + MV_EQ={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV_EQ", + index=0, + statictext=false, + x=18, + y=5 + } + }, + MV_EQ1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV_EQ1", + index=0, + statictext=false, + x=18, + y=5 + } + }, + MV_EQ2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="MV_EQ2", + index=0, + statictext=false, + x=18, + y=5 + } + }, + MXLOG={ + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="MXLOG", + index=0, + statictext=true, + x=24, + y=9 + } + }, + MXOPT={ + { + alignment="RGHT", + cdu_pages={ + "MXLOG" + }, + id="MXOPT", + index=0, + statictext=true, + x=23, + y=7 + } + }, + Mach={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="Mach", + index=0, + statictext=false, + x=23, + y=4 + } + }, + NAV={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="NAV", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="NAV", + index=1, + statictext=true, + x=23, + y=7 + } + }, + NAVMODEROTARY={ + { + alignment="RGHT", + cdu_pages={ + "NAV", + "POS" + }, + id="NAVMODEROTARY", + index=0, + statictext=true, + x=24, + y=3 + } + }, + NAV_DAT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_DAT", + index=0, + statictext=true, + x=10, + y=6 + } + }, + NAV_DAT1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_DAT1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + NAV_DAT2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_DAT2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + NAV_DATA={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="NAV_DATA", + index=0, + statictext=true, + x=2, + y=4 + } + }, + NAV_DATAs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="NAV_DATAs", + index=0, + statictext=false, + x=11, + y=4 + } + }, + NAV_DATAs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="NAV_DATAs1", + index=0, + statictext=false, + x=11, + y=4 + } + }, + NAV_RDY={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY", + index=0, + statictext=true, + x=10, + y=7 + } + }, + NAV_RDY1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY1", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NAV_RDY2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY2", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NAV_RDY3={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="NAV_RDY3", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NEWFPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="NEWFPNumber", + index=0, + statictext=false, + x=2, + y=9 + } + }, + NEWFPText={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="NEWFPText", + index=0, + statictext=false, + x=10, + y=9 + } + }, + NEW_WAYPT_NUM={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET", + "WAYPT1" + }, + id="NEW_WAYPT_NUM", + index=0, + statictext=false, + x=23, + y=7 + } + }, + NM={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="NM", + index=0, + statictext=true, + x=2, + y=3 + } + }, + NMDisplay={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="NMDisplay", + index=0, + statictext=false, + x=1, + y=3 + } + }, + NMINPUT={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="NMINPUT", + index=0, + statictext=false, + x=1, + y=3 + } + }, + NOT_ATTEMPTED={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="NOT_ATTEMPTED", + index=0, + statictext=true, + x=11, + y=5 + } + }, + NS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="NS", + index=0, + statictext=true, + x=2, + y=6 + } + }, + NS_ERR={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="NS_ERR", + index=0, + statictext=false, + x=7, + y=6 + } + }, + NUM={ + { + alignment="LFT", + cdu_pages={ + "ANNUNCIATIONS" + }, + id="NUM", + index=0, + statictext=false, + x=1, + y=2 + } + }, + OAT={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="OAT", + index=0, + statictext=true, + x=15, + y=9 + } + }, + OF={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="OF", + index=0, + statictext=true, + x=2, + y=6 + } + }, + OFFSETDIV={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETDIV", + index=0, + statictext=true, + x=19, + y=6 + } + }, + OFFSETWAYPTCoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTCoordFormat1", + index=0, + statictext=false, + x=24, + y=3 + } + }, + OFFSETWAYPTCoordFormat2={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTCoordFormat2", + index=0, + statictext=false, + x=24, + y=3 + } + }, + OFFSETWAYPTDIS1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTDIS1", + index=0, + statictext=false, + x=20, + y=6 + } + }, + OFFSETWAYPTDIS2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTDIS2", + index=0, + statictext=false, + x=20, + y=6 + } + }, + OFFSETWAYPTLat={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + OFFSETWAYPTLatUTM={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLatUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + OFFSETWAYPTLong={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLong", + index=0, + statictext=false, + x=2, + y=9 + } + }, + OFFSETWAYPTLongMGRS={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTLongMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + OFFSETWAYPTMGRS={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + OFFSETWAYPTMH1={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTMH1", + index=0, + statictext=false, + x=16, + y=6 + } + }, + OFFSETWAYPTMH2={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTMH2", + index=0, + statictext=false, + x=16, + y=6 + } + }, + OFFSETWAYPTNumber1={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTNumber1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + OFFSETWAYPTNumber2={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTNumber2", + index=0, + statictext=false, + x=23, + y=9 + } + }, + OFFSETWAYPTUTM={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="OFFSETWAYPTUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + OFP={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="OFP", + index=0, + statictext=true, + x=2, + y=5 + } + }, + OFPID={ + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="OFPID", + index=0, + statictext=true, + x=1, + y=9 + } + }, + OFPID1_LINE3={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE3", + index=0, + statictext=true, + x=2, + y=3 + } + }, + OFPID1_LINE4_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE4_1", + index=0, + statictext=true, + x=2, + y=4 + } + }, + OFPID1_LINE4_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE4_2", + index=0, + statictext=true, + x=13, + y=4 + } + }, + OFPID1_LINE5={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE5", + index=0, + statictext=true, + x=2, + y=5 + } + }, + OFPID1_LINE6_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE6_1", + index=0, + statictext=true, + x=2, + y=6 + } + }, + OFPID1_LINE6_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE6_2", + index=0, + statictext=true, + x=13, + y=6 + } + }, + OFPID1_LINE7={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE7", + index=0, + statictext=true, + x=2, + y=7 + } + }, + OFPID1_LINE8={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="OFPID1_LINE8", + index=0, + statictext=true, + x=2, + y=8 + } + }, + OFPID2_LINE3={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE3", + index=0, + statictext=true, + x=2, + y=3 + } + }, + OFPID2_LINE4_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE4_1", + index=0, + statictext=true, + x=2, + y=4 + } + }, + OFPID2_LINE4_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE4_2", + index=0, + statictext=true, + x=16, + y=4 + } + }, + OFPID2_LINE5={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE5", + index=0, + statictext=true, + x=2, + y=5 + } + }, + OFPID2_LINE6_1={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE6_1", + index=0, + statictext=true, + x=2, + y=6 + } + }, + OFPID2_LINE6_2={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE6_2", + index=0, + statictext=true, + x=16, + y=6 + } + }, + OFPID2_LINE7={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE7", + index=0, + statictext=true, + x=2, + y=7 + } + }, + OFPID2_LINE8={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="OFPID2_LINE8", + index=0, + statictext=true, + x=2, + y=8 + } + }, + OFP_SA={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="OFP_SA", + index=0, + statictext=false, + x=1, + y=5 + } + }, + OPTIOMS_MAGHEAD={ + { + alignment="RGHT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIOMS_MAGHEAD", + index=0, + statictext=false, + x=9, + y=4 + } + }, + OPTIONS={ + { + alignment="RGHT", + cdu_pages={ + "NAV" + }, + id="OPTIONS", + index=0, + statictext=true, + x=24, + y=7 + } + }, + OPTIONS_CF={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_CF", + index=0, + statictext=false, + x=4, + y=5 + } + }, + OPTIONS_DE={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_DE", + index=0, + statictext=true, + x=1, + y=5 + } + }, + OPTIONS_EQUAL={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_EQUAL", + index=0, + statictext=false, + x=4, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="OPTIONS_EQUAL", + index=1, + statictext=false, + x=18, + y=5 + } + }, + OPTIONS_EQUAL1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_EQUAL1", + index=0, + statictext=false, + x=3, + y=5 + } + }, + OPTIONS_HD0={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HD0", + index=0, + statictext=false, + x=2, + y=4 + } + }, + OPTIONS_HD1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HD1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + OPTIONS_HF0={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HF0", + index=0, + statictext=false, + x=2, + y=3 + } + }, + OPTIONS_HF1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HF1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + OPTIONS_HS0={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HS0", + index=0, + statictext=false, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="OPTIONS_HS0", + index=1, + statictext=true, + x=16, + y=5 + } + }, + OPTIONS_HS1={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_HS1", + index=0, + statictext=false, + x=2, + y=5 + } + }, + OPTIONS_MV={ + { + alignment="RGHT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_MV", + index=0, + statictext=false, + x=9, + y=5 + } + }, + OPTIONS_RTRY={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="OPTIONS_RTRY", + index=0, + statictext=true, + x=1, + y=3 + } + }, + ORIG_NAV={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="ORIG_NAV", + index=0, + statictext=true, + x=1, + y=5 + } + }, + OWC={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC", + index=0, + statictext=true, + x=17, + y=4 + } + }, + OWC1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC1", + index=0, + statictext=true, + x=21, + y=8 + } + }, + OWC_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC_VALUE", + index=0, + statictext=false, + x=23, + y=4 + } + }, + OWC_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC_VALUE1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + OWC_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="OWC_VALUE2", + index=0, + statictext=false, + x=23, + y=4 + } + }, + Overload={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="Overload", + index=0, + statictext=false, + x=20, + y=7 + } + }, + Overload1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="Overload1", + index=0, + statictext=false, + x=20, + y=7 + } + }, + Overload2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="Overload2", + index=0, + statictext=false, + x=20, + y=7 + } + }, + Overload3={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="Overload3", + index=0, + statictext=false, + x=23, + y=7 + } + }, + Overload4={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="Overload4", + index=0, + statictext=false, + x=22, + y=7 + } + }, + P={ + { + alignment="LFT", + cdu_pages={ + "FPMENU"}, + id="P", + index=0, + statictext=true, + x=19, + y=10 + } + }, + PC={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="PC", + index=0, + statictext=true, + x=2, + y=5 + } + }, + PGCAS={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS", + index=0, + statictext=true, + x=17, + y=3 + } + }, + PGCAS_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS_VALUE", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PGCAS_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS_VALUE1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PGCAS_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PGCAS_VALUE2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PITCH={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PITCH", + index=0, + statictext=true, + x=2, + y=7 + } + }, + PITCH_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PITCH_ST2", + index=0, + statictext=false, + x=19, + y=7 + } + }, + PITCH_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PITCH_ST3", + index=0, + statictext=false, + x=19, + y=7 + } + }, + PITCH_VAL={ + { + alignment="RGHT", + cdu_pages={ + "HARS" + }, + id="PITCH_VAL", + index=0, + statictext=false, + x=16, + y=7 + } + }, + POS={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="POS", + index=0, + statictext=true, + x=1, + y=7 + } + }, + POS_SOURCE={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_SOURCE", + index=0, + statictext=true, + x=2, + y=3 + } + }, + POS_Source_DTS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_DTS", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_GPS={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_GPS", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_GPS1={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_GPS1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_Last_Pos={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_Last_Pos", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_Man={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_Man", + index=0, + statictext=false, + x=2, + y=4 + } + }, + POS_Source_Standby={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="POS_Source_Standby", + index=0, + statictext=false, + x=2, + y=4 + } + }, + PPOSGroundSpeed={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSGroundSpeed", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSGroundSpeed1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSGroundSpeed1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSGroundSpeed2={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSGroundSpeed2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSIAS={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSIAS", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PPOSSpeedMode={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode1", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode2={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode2", + index=0, + statictext=false, + x=17, + y=3 + } + }, + PPOSSpeedMode3={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode3", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode4={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode4", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedMode5={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedMode5", + index=0, + statictext=false, + x=19, + y=3 + } + }, + PPOSSpeedRotary={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="PPOSSpeedRotary", + index=0, + statictext=true, + x=24, + y=3 + } + }, + PPOSTAS1={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="PPOSTAS1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + PR={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR", + index=0, + statictext=true, + x=17, + y=5 + } + }, + PREF={ + { + alignment="RGHT", + cdu_pages={ + "DTSUPLD" + }, + id="PREF", + index=0, + statictext=true, + x=23, + y=4 + } + }, + PR_VALUE={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR_VALUE", + index=0, + statictext=false, + x=23, + y=5 + } + }, + PR_VALUE1={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR_VALUE1", + index=0, + statictext=false, + x=23, + y=5 + } + }, + PR_VALUE2={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PR_VALUE2", + index=0, + statictext=false, + x=23, + y=5 + } + }, + PS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="PS", + index=0, + statictext=true, + x=2, + y=5 + } + }, + PS_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="PS_STATUS", + index=0, + statictext=true, + x=10, + y=5 + } + }, + P_ALT={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="P_ALT", + index=0, + statictext=true, + x=2, + y=4 + } + }, + P_ALT_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="P_ALT_ST", + index=0, + statictext=false, + x=21, + y=4 + } + }, + P_ALT_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="P_ALT_ST1", + index=0, + statictext=false, + x=21, + y=4 + } + }, + P_ALT_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="P_ALT_VAL", + index=0, + statictext=false, + x=13, + y=4 + } + }, + PageFPBUILD={ + { + alignment="RGHT", + cdu_pages={ + "FPMENU" + }, + id="PageFPBUILD", + index=0, + statictext=false, + x=24, + y=2 + } + }, + PageNameACCREJ={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="PageNameACCREJ", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameALIGN={ + { + alignment="LFT", + cdu_pages={ + "ALIGN" + }, + id="PageNameALIGN", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameALTALGN={ + { + alignment="LFT", + cdu_pages={ + "ALTALGN" + }, + id="PageNameALTALGN", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameANCHOR={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="PageNameANCHOR", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameATTRIB={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="PageNameATTRIB", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameBBCTL={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="PageNameBBCTL", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameBITBALL={ + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="PageNameBITBALL", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameCADC={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="PageNameCADC", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameCDUTEST1={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="PageNameCDUTEST1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameCDUTEST2={ + { + alignment="LFT", + cdu_pages={ + "CDUTEST2" + }, + id="PageNameCDUTEST2", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDIVERT={ + { + alignment="LFT", + cdu_pages={ + "DIVERT" + }, + id="PageNameDIVERT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTS={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="PageNameDTS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSAS={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="PageNameDTSAS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSDNLD={ + { + alignment="LFT", + cdu_pages={ + "DTSDNLD" + }, + id="PageNameDTSDNLD", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSSTAT={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="PageNameDTSSTAT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameDTSUPLD={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="PageNameDTSUPLD", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameEGI={ + { + alignment="LFT", + cdu_pages={ + "EGI1", + "EGI2", + "EGI3", + "EGI4" + }, + id="PageNameEGI", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameEGITEST={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="PageNameEGITEST", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFLDINFO={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="PageNameFLDINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFPBUILD={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="PageNameFPBUILD", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFPMENU={ + { + alignment="LFT", + cdu_pages={ + "FPMENU" + }, + id="PageNameFPMENU", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameFROM={ + { + alignment="LFT", + cdu_pages={ + "FROM" + }, + id="PageNameFROM", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPS={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="PageNameGPS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT1={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT1" + }, + id="PageNameGPSBIT1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT2={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT2" + }, + id="PageNameGPSBIT2", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT3={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT3" + }, + id="PageNameGPSBIT3", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT4={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT4" + }, + id="PageNameGPSBIT4", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSBIT5={ + { + alignment="LFT", + cdu_pages={ + "GPSBIT5" + }, + id="PageNameGPSBIT5", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSKEYS={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="PageNameGPSKEYS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameGPSSTAT1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="PageNameGPSSTAT1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameHARS={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="PageNameHARS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameINS={ + { + alignment="LFT", + cdu_pages={ + "INS" + }, + id="PageNameINS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameINSSTAT={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="PageNameINSSTAT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameLASTE={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="PageNameLASTE", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameLRUTEST={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="PageNameLRUTEST", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameMXLOG={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="PageNameMXLOG", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameNAV={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="PageNameNAV", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOFFSET={ + { + alignment="LFT", + cdu_pages={ + "OFFSET" + }, + id="PageNameOFFSET", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOFPID1={ + { + alignment="LFT", + cdu_pages={ + "OFPID1" + }, + id="PageNameOFPID1", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOFPID2={ + { + alignment="LFT", + cdu_pages={ + "OFPID2" + }, + id="PageNameOFPID2", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameOPTIONS={ + { + alignment="LFT", + cdu_pages={ + "OPTIONS" + }, + id="PageNameOPTIONS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNamePOS={ + { + alignment="LFT", + cdu_pages={ + "POS" + }, + id="PageNamePOS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNamePOSINFO={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="PageNamePOSINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameREINIT={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="PageNameREINIT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameRESET={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="PageNameRESET", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameSTARTUPBIT={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="PageNameSTARTUPBIT", + index=0, + statictext=false, + x=3, + y=1 + } + }, + PageNameSTRINFO={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="PageNameSTRINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameSYS={ + { + alignment="LFT", + cdu_pages={ + "SYS" + }, + id="PageNameSYS", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameTIME={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="PageNameTIME", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameUPDATE={ + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="PageNameUPDATE", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWAYPT={ + { + alignment="LFT", + cdu_pages={ + "WAYPT" + }, + id="PageNameWAYPT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWIND={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="PageNameWIND", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWNDEDIT={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="PageNameWNDEDIT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWPINFO={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="PageNameWPINFO", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWPMENU={ + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="PageNameWPMENU", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PageNameWPTATT={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="PageNameWPTATT", + index=0, + statictext=true, + x=2, + y=1 + } + }, + PresPositLat={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLat", + index=0, + statictext=false, + x=2, + y=3 + } + }, + PresPositLat1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLat1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + PresPositLong={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLong", + index=0, + statictext=false, + x=2, + y=4 + } + }, + PresPositLong1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositLong1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + PresPositMGRS={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositMGRS", + index=0, + statictext=false, + x=2, + y=7 + } + }, + PresPositMGRS1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositMGRS1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + PresPositUTM={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositUTM", + index=0, + statictext=false, + x=2, + y=6 + } + }, + PresPositUTM1={ + { + alignment="LFT", + cdu_pages={ + "POSINFO", + "POS" + }, + id="PresPositUTM1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + RAM={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="RAM", + index=0, + statictext=false, + x=1, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="RAM", + index=1, + statictext=true, + x=1, + y=4 + } + }, + RAM_1553={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="RAM_1553", + index=0, + statictext=false, + x=13, + y=4 + }, + { + alignment="LFT", + cdu_pages={ + "CDUTEST1" + }, + id="RAM_1553", + index=1, + statictext=true, + x=13, + y=4 + } + }, + READY={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY", + index=0, + statictext=true, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="READY", + index=1, + statictext=true, + x=2, + y=3 + } + }, + READY_ST0={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST0", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST1={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST1", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST2={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST2", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST3={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST3", + index=0, + statictext=false, + x=8, + y=5 + } + }, + READY_ST4={ + { + alignment="LFT", + cdu_pages={ + "DTS" + }, + id="READY_ST4", + index=0, + statictext=false, + x=8, + y=5 + } + }, + RECENT_NAV={ + { + alignment="LFT", + cdu_pages={ + "DTSUPLD" + }, + id="RECENT_NAV", + index=0, + statictext=true, + x=1, + y=9 + } + }, + RECORD={ + { + alignment="RGHT", + cdu_pages={ + "LRUTEST" + }, + id="RECORD", + index=0, + statictext=true, + x=24, + y=7 + } + }, + REINIT={ + { + alignment="LFT", + cdu_pages={ + "SYS1" + }, + id="REINIT", + index=0, + statictext=true, + x=1, + y=9 + } + }, + REINIT_DTSAS={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_DTSAS", + index=0, + statictext=true, + x=1, + y=9 + } + }, + REINIT_GPS={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_GPS", + index=0, + statictext=true, + x=1, + y=5 + } + }, + REINIT_INS={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_INS", + index=0, + statictext=true, + x=1, + y=3 + } + }, + REINIT_LASTE={ + { + alignment="LFT", + cdu_pages={ + "REINIT" + }, + id="REINIT_LASTE", + index=0, + statictext=true, + x=1, + y=7 + } + }, + REJECT={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="REJECT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + RESET={ + { + alignment="RGHT", + cdu_pages={ + "SYS1", + "BBCTL" + }, + id="RESET", + index=0, + statictext=true, + x=24, + y=9 + } + }, + RESET_CADC={ + { + alignment="RGHT", + cdu_pages={ + "RESET" + }, + id="RESET_CADC", + index=0, + statictext=true, + x=24, + y=3 + } + }, + RESET_CICU={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_CICU", + index=0, + statictext=true, + x=1, + y=7 + } + }, + RESET_CICU0={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_CICU0", + index=0, + statictext=false, + x=8, + y=7 + } + }, + RESET_CICU1={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_CICU1", + index=0, + statictext=false, + x=8, + y=7 + } + }, + RESET_DTS={ + { + alignment="RGHT", + cdu_pages={ + "RESET" + }, + id="RESET_DTS", + index=0, + statictext=true, + x=24, + y=7 + } + }, + RESET_EGI={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_EGI", + index=0, + statictext=true, + x=1, + y=3 + } + }, + RESET_HARS={ + { + alignment="RGHT", + cdu_pages={ + "RESET" + }, + id="RESET_HARS", + index=0, + statictext=true, + x=24, + y=5 + } + }, + RESET_LASTE={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_LASTE", + index=0, + statictext=true, + x=1, + y=5 + } + }, + RESET_LASTE1={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_LASTE1", + index=0, + statictext=true, + x=8, + y=7 + } + }, + RESET_ST0={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_ST0", + index=0, + statictext=false, + x=8, + y=5 + } + }, + RESET_ST1={ + { + alignment="LFT", + cdu_pages={ + "RESET" + }, + id="RESET_ST1", + index=0, + statictext=false, + x=8, + y=5 + } + }, + ROLL={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="ROLL", + index=0, + statictext=true, + x=2, + y=5 + } + }, + ROLL_ST2={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="ROLL_ST2", + index=0, + statictext=false, + x=19, + y=5 + } + }, + ROLL_ST3={ + { + alignment="LFT", + cdu_pages={ + "HARS" + }, + id="ROLL_ST3", + index=0, + statictext=false, + x=19, + y=5 + } + }, + ROLL_VAL={ + { + alignment="RGHT", + cdu_pages={ + "HARS" + }, + id="ROLL_VAL", + index=0, + statictext=false, + x=16, + y=5 + } + }, + RPU={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="RPU", + index=0, + statictext=true, + x=2, + y=5 + } + }, + RPU4s={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="RPU4s", + index=0, + statictext=false, + x=11, + y=5 + } + }, + RPU4s1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="RPU4s1", + index=0, + statictext=false, + x=11, + y=5 + } + }, + RTR={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="RTR", + index=0, + statictext=true, + x=24, + y=3 + } + }, + RT_ADDR={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="RT_ADDR", + index=0, + statictext=false, + x=13, + y=6 + } + }, + RWY={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="RWY", + index=0, + statictext=true, + x=2, + y=6 + } + }, + RWY_L_FEET={ + { + alignment="RGHT", + cdu_pages={ + "FLDINFO" + }, + id="RWY_L_FEET", + index=0, + statictext=true, + x=24, + y=6 + } + }, + SAT4={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SAT4", + index=0, + statictext=true, + x=2, + y=4 + } + }, + SAT4s={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SAT4s", + index=0, + statictext=false, + x=11, + y=4 + } + }, + SAT4s1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SAT4s1", + index=0, + statictext=false, + x=11, + y=4 + } + }, + SCALE={ + { + alignment="LFT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="SCALE", + index=0, + statictext=true, + x=1, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="SCALE", + index=1, + statictext=true, + x=1, + y=5 + } + }, + SCS={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="SCS", + index=0, + statictext=true, + x=2, + y=9 + } + }, + SCS_ROTARY={ + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="SCS_ROTARY", + index=0, + statictext=false, + x=1, + y=9 + } + }, + SENSORS={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="SENSORS", + index=0, + statictext=true, + x=10, + y=9 + } + }, + SEN_ST1={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="SEN_ST1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + SEN_ST2={ + { + alignment="LFT", + cdu_pages={ + "INSSTAT" + }, + id="SEN_ST2", + index=0, + statictext=false, + x=23, + y=9 + } + }, + SERVICE={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="SERVICE", + index=0, + statictext=true, + x=2, + y=7 + } + }, + SFKEYSs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SFKEYSs", + index=0, + statictext=false, + x=23, + y=3 + } + }, + SFKEYSs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SFKEYSs1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + SFKEYSs2={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SFKEYSs2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + SLASH1={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="SLASH1", + index=0, + statictext=true, + x=14, + y=9 + } + }, + SLASH2={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="SLASH2", + index=0, + statictext=true, + x=14, + y=10 + } + }, + SPHEROID={ + { + alignment="RGHT", + cdu_pages={ + "WPMENU" + }, + id="SPHEROID", + index=0, + statictext=false, + x=23, + y=9 + } + }, + SPU={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="SPU", + index=0, + statictext=true, + x=2, + y=3 + } + }, + SPU_STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="SPU_STATUS", + index=0, + statictext=true, + x=10, + y=3 + } + }, + ST3={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="ST3", + index=0, + statictext=true, + x=8, + y=7 + } + }, + ST5={ + { + alignment="LFT", + cdu_pages={ + "GPS" + }, + id="ST5", + index=0, + statictext=true, + x=8, + y=6 + } + }, + START={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1" + }, + id="START", + index=0, + statictext=true, + x=23, + y=5 + } + }, + STARTUPBIT={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT", + index=0, + statictext=false, + x=9, + y=3 + } + }, + STARTUPBIT1={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT1", + index=0, + statictext=false, + x=9, + y=3 + } + }, + STARTUPBIT10={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT10", + index=0, + statictext=false, + x=9, + y=6 + } + }, + STARTUPBIT11={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT11", + index=0, + statictext=false, + x=9, + y=6 + } + }, + STARTUPBIT12={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT12", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STARTUPBIT13={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT13", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STARTUPBIT14={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT14", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STARTUPBIT15={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT15", + index=0, + statictext=false, + x=23, + y=4 + } + }, + STARTUPBIT16={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT16", + index=0, + statictext=false, + x=23, + y=4 + } + }, + STARTUPBIT17={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT17", + index=0, + statictext=false, + x=23, + y=4 + } + }, + STARTUPBIT18={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT18", + index=0, + statictext=false, + x=23, + y=5 + } + }, + STARTUPBIT19={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT19", + index=0, + statictext=false, + x=23, + y=5 + } + }, + STARTUPBIT2={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT2", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT20={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT20", + index=0, + statictext=false, + x=23, + y=5 + } + }, + STARTUPBIT21={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT21", + index=0, + statictext=false, + x=23, + y=6 + } + }, + STARTUPBIT22={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT22", + index=0, + statictext=false, + x=23, + y=6 + } + }, + STARTUPBIT23={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT23", + index=0, + statictext=false, + x=23, + y=6 + } + }, + STARTUPBIT24={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT24", + index=0, + statictext=false, + x=9, + y=10 + } + }, + STARTUPBIT3={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT3", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT4={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT4", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT5={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT5", + index=0, + statictext=false, + x=9, + y=4 + } + }, + STARTUPBIT6={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT6", + index=0, + statictext=false, + x=9, + y=5 + } + }, + STARTUPBIT7={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT7", + index=0, + statictext=false, + x=9, + y=5 + } + }, + STARTUPBIT8={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT8", + index=0, + statictext=false, + x=9, + y=5 + } + }, + STARTUPBIT9={ + { + alignment="LFT", + cdu_pages={ + "STARTUP_BIT" + }, + id="STARTUPBIT9", + index=0, + statictext=false, + x=9, + y=6 + } + }, + START_SA={ + { + alignment="RGHT", + cdu_pages={ + "CDUTEST1" + }, + id="START_SA", + index=0, + statictext=false, + x=24, + y=5 + } + }, + STATUS={ + { + alignment="LFT", + cdu_pages={ + "EGI2" + }, + id="STATUS", + index=0, + statictext=true, + x=2, + y=8 + } + }, + STATUS_LINE={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="STATUS_LINE", + index=0, + statictext=true, + x=2, + y=3 + } + }, + STATUS_LINE1={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="STATUS_LINE1", + index=0, + statictext=true, + x=10, + y=3 + } + }, + STATUS_LINE2={ + { + alignment="LFT", + cdu_pages={ + "EGI1" + }, + id="STATUS_LINE2", + index=0, + statictext=true, + x=18, + y=3 + } + }, + STEER={ + { + alignment="LFT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="STEER", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "ATTRIB" + }, + id="STEER", + index=1, + statictext=true, + x=1, + y=7 + } + }, + STEERPOINT={ + { + alignment="LFT", + cdu_pages={ + "WPMENU" + }, + id="STEERPOINT", + index=0, + statictext=true, + x=1, + y=3 + } + }, + STEERPTIndicator={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="STEERPTIndicator", + index=0, + statictext=false, + x=7, + y=3 + } + }, + STEER_PT={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STEER_PT", + index=0, + statictext=true, + x=2, + y=7 + } + }, + STOP_MSN={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="STOP_MSN", + index=0, + statictext=true, + x=2, + y=9 + } + }, + STOP_SA={ + { + alignment="LFT", + cdu_pages={ + "EGITEST" + }, + id="STOP_SA", + index=0, + statictext=false, + x=1, + y=9 + } + }, + STRBRGRAD={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD1", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD2", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD3", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRAD4={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRAD4", + index=0, + statictext=false, + x=8, + y=7 + } + }, + STRBRGRADMode={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRADMode", + index=0, + statictext=false, + x=2, + y=7 + } + }, + STRBRGRADMode1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRADMode1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + STRBRGRADRotary={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRBRGRADRotary", + index=0, + statictext=true, + x=1, + y=7 + } + }, + STRDIS={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS", + index=0, + statictext=true, + x=2, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="STRDIS", + index=1, + statictext=false, + x=23, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STRDIS", + index=2, + statictext=false, + x=17, + y=4 + } + }, + STRDIS1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS1", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRDIS1", + index=1, + statictext=false, + x=6, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STRDIS1", + index=2, + statictext=false, + x=17, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDIS1", + index=3, + statictext=false, + x=23, + y=8 + } + }, + STRDIS2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS2", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRDIS2", + index=1, + statictext=false, + x=6, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDIS2", + index=2, + statictext=false, + x=23, + y=8 + } + }, + STRDIS3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDIS3", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDIS3", + index=1, + statictext=false, + x=23, + y=8 + } + }, + STRDISMH={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRDISMH", + index=0, + statictext=true, + x=5, + y=9 + } + }, + STRDMH={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH", + index=0, + statictext=true, + x=2, + y=4 + } + }, + STRDMH1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH1", + index=0, + statictext=false, + x=10, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDMH1", + index=1, + statictext=false, + x=23, + y=7 + } + }, + STRDMH2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH2", + index=0, + statictext=false, + x=10, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDMH2", + index=1, + statictext=false, + x=23, + y=7 + } + }, + STRDMH3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRDMH3", + index=0, + statictext=false, + x=10, + y=4 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRDMH3", + index=1, + statictext=false, + x=23, + y=7 + } + }, + STREL={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STREL", + index=0, + statictext=true, + x=2, + y=6 + }, + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="STREL", + index=1, + statictext=true, + x=17, + y=9 + } + }, + STREL1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL1", + index=0, + statictext=false, + x=10, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STREL1", + index=1, + statictext=false, + x=23, + y=9 + } + }, + STREL2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL2", + index=0, + statictext=false, + x=10, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "UPDATE" + }, + id="STREL2", + index=1, + statictext=false, + x=23, + y=9 + } + }, + STREL3={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL3", + index=0, + statictext=false, + x=10, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ACCREJ", + "UPDATE" + }, + id="STREL3", + index=1, + statictext=false, + x=23, + y=9 + } + }, + STREL4={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STREL4", + index=0, + statictext=false, + x=10, + y=6 + } + }, + STRGroundSpeed1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRGroundSpeed1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + STRIAS1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRIAS1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + STRIdent={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRIdent", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRIdent", + index=1, + statictext=false, + x=2, + y=5 + } + }, + STRIdent1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO", + "ANCHOR" + }, + id="STRIdent1", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRIdent1", + index=1, + statictext=false, + x=2, + y=5 + } + }, + STRIdent2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO", + "ANCHOR" + }, + id="STRIdent2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STRIdent3={ + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRIdent3", + index=0, + statictext=false, + x=23, + y=3 + } + }, + STRIdentEntry={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO", + "ANCHOR" + }, + id="STRIdentEntry", + index=0, + statictext=false, + x=24, + y=3 + } + }, + STRMH1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRMH1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + STRMH2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRMH2", + index=0, + statictext=false, + x=2, + y=9 + } + }, + STRNumber={ + { + alignment="LFT", + cdu_pages={ + "STRINFO", + "UPDATE" + }, + id="STRNumber", + index=0, + statictext=false, + x=2, + y=3 + } + }, + STRNumber1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO", + "UPDATE" + }, + id="STRNumber1", + index=0, + statictext=false, + x=2, + y=3 + } + }, + STRNumber2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + STRNumber3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRNumber3", + index=0, + statictext=false, + x=3, + y=3 + } + }, + STRNumberIncDec={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRNumberIncDec", + index=0, + statictext=false, + x=1, + y=3 + } + }, + STRReqGroundSpeed={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqGroundSpeed", + index=0, + statictext=false, + x=23, + y=7 + } + }, + STRReqIAS={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqIAS", + index=0, + statictext=false, + x=23, + y=7 + } + }, + STRReqSpeedMode={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedMode", + index=0, + statictext=false, + x=19, + y=7 + } + }, + STRReqSpeedMode1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedMode1", + index=0, + statictext=false, + x=19, + y=7 + } + }, + STRReqSpeedMode2={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedMode2", + index=0, + statictext=false, + x=19, + y=7 + } + }, + STRReqSpeedRotary={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRReqSpeedRotary", + index=0, + statictext=false, + x=24, + y=7 + } + }, + STRReqTAS={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRReqTAS", + index=0, + statictext=false, + x=23, + y=7 + } + }, + STRSpeedMode3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode3", + index=0, + statictext=false, + x=17, + y=9 + } + }, + STRSpeedMode4={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode4", + index=0, + statictext=false, + x=19, + y=9 + } + }, + STRSpeedMode5={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode5", + index=0, + statictext=false, + x=19, + y=9 + } + }, + STRSpeedMode6={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedMode6", + index=0, + statictext=false, + x=19, + y=9 + } + }, + STRSpeedRotary1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRSpeedRotary1", + index=0, + statictext=true, + x=24, + y=9 + } + }, + STRTAS1={ + { + alignment="RGHT", + cdu_pages={ + "STRINFO" + }, + id="STRTAS1", + index=0, + statictext=false, + x=23, + y=9 + } + }, + STRTOT={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT1", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT2", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT3", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTOT4={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTOT4", + index=0, + statictext=false, + x=16, + y=6 + } + }, + STRTTG={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG", + index=0, + statictext=true, + x=12, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG", + index=1, + statictext=true, + x=7, + y=6 + } + }, + STRTTG1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG1", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRTTG1", + index=1, + statictext=false, + x=2, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG1", + index=2, + statictext=false, + x=11, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG1", + index=3, + statictext=false, + x=23, + y=6 + } + }, + STRTTG2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG2", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRTTG2", + index=1, + statictext=false, + x=2, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG2", + index=2, + statictext=false, + x=11, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG2", + index=3, + statictext=false, + x=23, + y=6 + } + }, + STRTTG3={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG3", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="STRTTG3", + index=1, + statictext=false, + x=2, + y=8 + }, + { + alignment="LFT", + cdu_pages={ + "UPDATE" + }, + id="STRTTG3", + index=2, + statictext=false, + x=11, + y=6 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG3", + index=3, + statictext=false, + x=23, + y=6 + } + }, + STRTTG4={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG4", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG4", + index=1, + statictext=false, + x=23, + y=6 + } + }, + STRTTG5={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRTTG5", + index=0, + statictext=false, + x=16, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ANCHOR" + }, + id="STRTTG5", + index=1, + statictext=false, + x=23, + y=6 + } + }, + STRWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindDirection1", + index=0, + statictext=false, + x=17, + y=8 + } + }, + STRWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindDirection2", + index=0, + statictext=false, + x=17, + y=8 + } + }, + STRWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindSpeed1", + index=0, + statictext=false, + x=21, + y=8 + } + }, + STRWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="STRWindSpeed2", + index=0, + statictext=false, + x=21, + y=8 + } + }, + ST_ST={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="ST_ST", + index=0, + statictext=true, + x=2, + y=6 + } + }, + SUCCESSFUL={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="SUCCESSFUL", + index=0, + statictext=true, + x=11, + y=6 + } + }, + SUFKEYS={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="SUFKEYS", + index=0, + statictext=true, + x=13, + y=3 + } + }, + T={ + { + alignment="LFT", + cdu_pages={ + "ALIGN", + "ALTALGN" + }, + id="T", + index=0, + statictext=true, + x=4, + y=8 + } + }, + TAC={ + { + alignment="LFT", + cdu_pages={ + "FLDINFO" + }, + id="TAC", + index=0, + statictext=true, + x=2, + y=8 + } + }, + TARGET_MARK={ + { + alignment="RGHT", + cdu_pages={ + "OFFSET" + }, + id="TARGET_MARK", + index=0, + statictext=true, + x=24, + y=7 + } + }, + TAS={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TAS", + index=0, + statictext=true, + x=2, + y=6 + } + }, + TAS_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TAS_ST", + index=0, + statictext=false, + x=21, + y=6 + } + }, + TAS_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TAS_ST1", + index=0, + statictext=false, + x=21, + y=6 + } + }, + TAS_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="TAS_VAL", + index=0, + statictext=false, + x=15, + y=6 + } + }, + TEMP={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TEMP", + index=0, + statictext=true, + x=2, + y=9 + } + }, + TEMP_ST={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TEMP_ST", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TEMP_ST1={ + { + alignment="LFT", + cdu_pages={ + "CADC" + }, + id="TEMP_ST1", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TEMP_VAL={ + { + alignment="RGHT", + cdu_pages={ + "CADC" + }, + id="TEMP_VAL", + index=0, + statictext=false, + x=14, + y=9 + } + }, + TEST_MODE0={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE0", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_MODE1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE1", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_MODE2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE2", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_MODE4={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_MODE4", + index=0, + statictext=false, + x=2, + y=9 + } + }, + TEST_SA={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_SA", + index=0, + statictext=false, + x=1, + y=9 + } + }, + TEST_SA1={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_SA1", + index=0, + statictext=false, + x=1, + y=9 + } + }, + TEST_SA2={ + { + alignment="LFT", + cdu_pages={ + "LRUTEST" + }, + id="TEST_SA2", + index=0, + statictext=false, + x=1, + y=9 + } + }, + TGTSYM_NEW_WPT={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="TGTSYM_NEW_WPT", + index=0, + statictext=true, + x=24, + y=7 + } + }, + TIME={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="TIME", + index=0, + statictext=true, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "BITBALL" + }, + id="TIME", + index=1, + statictext=true, + x=2, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "GPS" + }, + id="TIME", + index=2, + statictext=true, + x=24, + y=7 + } + }, + TOT={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="TOT", + index=0, + statictext=true, + x=12, + y=6 + } + }, + TTG={ + { + alignment="LFT", + cdu_pages={ + "ANCHOR" + }, + id="TTG", + index=0, + statictext=true, + x=2, + y=6 + } + }, + TempC={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="TempC", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TempF={ + { + alignment="RGHT", + cdu_pages={ + "POSINFO" + }, + id="TempF", + index=0, + statictext=false, + x=21, + y=9 + } + }, + TempRotary={ + { + alignment="LFT", + cdu_pages={ + "POSINFO" + }, + id="TempRotary", + index=0, + statictext=true, + x=24, + y=9 + } + }, + UPDATE={ + { + alignment="LFT", + cdu_pages={ + "NAV" + }, + id="UPDATE", + index=0, + statictext=true, + x=1, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "INS" + }, + id="UPDATE", + index=1, + statictext=true, + x=24, + y=5 + } + }, + UTC={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="UTC", + index=0, + statictext=true, + x=2, + y=7 + } + }, + UTCs={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="UTCs", + index=0, + statictext=false, + x=11, + y=7 + } + }, + UTCs1={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT1" + }, + id="UTCs1", + index=0, + statictext=false, + x=11, + y=7 + } + }, + VANGLE={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLE", + index=0, + statictext=false, + x=24, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLE", + index=1, + statictext=false, + x=24, + y=5 + } + }, + VANGLEEntry={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEEntry", + index=0, + statictext=false, + x=24, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEEntry", + index=1, + statictext=false, + x=24, + y=7 + } + }, + VANGLEMode={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEMode", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEMode", + index=1, + statictext=false, + x=23, + y=6 + } + }, + VANGLEMode1={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEMode1", + index=0, + statictext=false, + x=23, + y=8 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEMode1", + index=1, + statictext=false, + x=23, + y=6 + } + }, + VANGLEValue={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VANGLEValue", + index=0, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VANGLEValue", + index=1, + statictext=false, + x=23, + y=7 + } + }, + VIEW1={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW1", + index=0, + statictext=true, + x=2, + y=3 + } + }, + VIEW2={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW2", + index=0, + statictext=true, + x=2, + y=5 + } + }, + VIEW3={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW3", + index=0, + statictext=true, + x=2, + y=7 + } + }, + VIEW4={ + { + alignment="LFT", + cdu_pages={ + "BBCTL" + }, + id="VIEW4", + index=0, + statictext=true, + x=2, + y=9 + } + }, + VIEW5={ + { + alignment="RGHT", + cdu_pages={ + "BBCTL" + }, + id="VIEW5", + index=0, + statictext=true, + x=23, + y=3 + } + }, + VNAV_MODE={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="VNAV_MODE", + index=0, + statictext=true, + x=24, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "ATTRIB" + }, + id="VNAV_MODE", + index=1, + statictext=true, + x=24, + y=3 + } + }, + VPU={ + { + alignment="LFT", + cdu_pages={ + "DTSAS" + }, + id="VPU", + index=0, + statictext=true, + x=2, + y=8 + } + }, + VRSN={ + { + alignment="LFT", + cdu_pages={ + "DTSSTAT" + }, + id="VRSN", + index=0, + statictext=true, + x=2, + y=4 + } + }, + WARCODE={ + { + alignment="LFT", + cdu_pages={ + "EGI3", + "EGI4" + }, + id="WARCODE", + index=0, + statictext=true, + x=17, + y=8 + } + }, + WARNING={ + { + alignment="LFT", + cdu_pages={ + "EGI3", + "EGI4" + }, + id="WARNING", + index=0, + statictext=true, + x=14, + y=7 + } + }, + WAYPOINT={ + { + alignment="LFT", + cdu_pages={ + "STRINFO" + }, + id="WAYPOINT", + index=0, + statictext=true, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WAYPOINT", + index=1, + statictext=true, + x=1, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WPMENU" + }, + id="WAYPOINT", + index=2, + statictext=true, + x=24, + y=3 + } + }, + WAYPTClass={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass10={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass10", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass11={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass11", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass12={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass12", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass13={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass13", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass14={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass14", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass15={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass15", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass16={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass16", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass17={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass17", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass18={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass18", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass19={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass19", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass2={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass2", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass20={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass20", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass21={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass21", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass3={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass3", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass4={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass4", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass5={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass5", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass6={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass6", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass7={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass7", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass8={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass8", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTClass9={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTClass9", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WAYPTCoordFormat={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTCoordFormat", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WAYPTCoordFormat1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTCoordFormat1", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WAYPTDATA_ENTRY={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTDATA_ENTRY", + index=0, + statictext=false, + x=1, + y=7 + } + }, + WAYPTDATA_ENTRY1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTDATA_ENTRY1", + index=0, + statictext=false, + x=1, + y=9 + } + }, + WAYPTIdent={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTIdent", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTIdent", + index=1, + statictext=false, + x=12, + y=2 + } + }, + WAYPTIdent1={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="WAYPTIdent1", + index=0, + statictext=false, + x=23, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTIdent1", + index=1, + statictext=false, + x=12, + y=2 + } + }, + WAYPTIdent2={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WAYPTIdent2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WAYPTLat={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLat", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WAYPTLatUTM={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLatUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WAYPTLong={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLong", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WAYPTLongMGRS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTLongMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WAYPTMGRS={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTMGRS", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WAYPTNumber={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTNumber", + index=0, + statictext=false, + x=2, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTNumber", + index=1, + statictext=false, + x=6, + y=2 + } + }, + WAYPTNumber1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="WAYPTNumber1", + index=0, + statictext=false, + x=2, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTNumber1", + index=1, + statictext=false, + x=6, + y=2 + } + }, + WAYPTNumber2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WAYPTNumber2", + index=0, + statictext=false, + x=2, + y=3 + } + }, + WAYPTScale={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale2", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale3={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale3", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTScale4={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTScale4", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WAYPTSteer={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTSteer1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTSteer2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer2", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTSteer4={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTSteer4", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPTUTM={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ", + "UPDATE", + "WAYPT1" + }, + id="WAYPTUTM", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WAYPTVNavMode={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTVNavMode", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WAYPTVNavMode1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTVNavMode1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WAYPTVNavMode2={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPTVNavMode2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WAYPTWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindDirection1", + index=0, + statictext=false, + x=17, + y=8 + } + }, + WAYPTWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindDirection2", + index=0, + statictext=false, + x=17, + y=8 + } + }, + WAYPTWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindSpeed1", + index=0, + statictext=false, + x=21, + y=8 + } + }, + WAYPTWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPTWindSpeed2", + index=0, + statictext=false, + x=21, + y=8 + } + }, + WAYPT_CR_FLAG={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_CR_FLAG", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPT_CR_FLAG1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_CR_FLAG1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WAYPT_DTOT={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_DTOT", + index=0, + statictext=false, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTOT", + index=1, + statictext=false, + x=8, + y=9 + } + }, + WAYPT_DTOT1={ + { + alignment="RGHT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_DTOT1", + index=0, + statictext=false, + x=18, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTOT1", + index=1, + statictext=false, + x=8, + y=9 + } + }, + WAYPT_DTTG={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTTG", + index=0, + statictext=false, + x=8, + y=7 + } + }, + WAYPT_DTTG1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT2" + }, + id="WAYPT_DTTG1", + index=0, + statictext=false, + x=7, + y=7 + } + }, + WAYPT_EL1={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_EL1", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WAYPT_EL2={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_EL2", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WAYPT_EL3={ + { + alignment="LFT", + cdu_pages={ + "WAYPT1" + }, + id="WAYPT_EL3", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WAYPT_INCR_DECR={ + { + alignment="LFT", + cdu_pages={ + "WPINFO", + "WAYPT1" + }, + id="WAYPT_INCR_DECR", + index=0, + statictext=true, + x=1, + y=3 + } + }, + WE={ + { + alignment="LFT", + cdu_pages={ + "ACCREJ" + }, + id="WE", + index=0, + statictext=true, + x=18, + y=6 + } + }, + WE_ERR={ + { + alignment="RGHT", + cdu_pages={ + "ACCREJ" + }, + id="WE_ERR", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WIND={ + { + alignment="RGHT", + cdu_pages={ + "LASTE" + }, + id="WIND", + index=0, + statictext=true, + x=24, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WIND", + index=1, + statictext=true, + x=24, + y=3 + } + }, + WINDALT={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDALT", + index=0, + statictext=false, + x=3, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT", + index=1, + statictext=false, + x=3, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDALT", + index=2, + statictext=false, + x=12, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT", + index=3, + statictext=false, + x=12, + y=3 + } + }, + WINDALT1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDALT1", + index=0, + statictext=false, + x=3, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT1", + index=1, + statictext=false, + x=3, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDALT1", + index=2, + statictext=false, + x=12, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT1", + index=3, + statictext=false, + x=12, + y=5 + } + }, + WINDALT2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDALT2", + index=0, + statictext=false, + x=3, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT2", + index=1, + statictext=false, + x=3, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDALT2", + index=2, + statictext=false, + x=12, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT2", + index=3, + statictext=false, + x=12, + y=7 + } + }, + WINDALT3={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDALT3", + index=0, + statictext=false, + x=3, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDALT3", + index=1, + statictext=false, + x=12, + y=9 + } + }, + WINDCLRMODE={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDCLRMODE", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WINDCLRMODE1={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDCLRMODE1", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WINDCLRMODE2={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDCLRMODE2", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WINDDATA_ENTRY={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY", + index=0, + statictext=false, + x=1, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY", + index=1, + statictext=false, + x=1, + y=3 + } + }, + WINDDATA_ENTRY1={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY1", + index=0, + statictext=false, + x=24, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY1", + index=1, + statictext=false, + x=24, + y=3 + } + }, + WINDDATA_ENTRY2={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY2", + index=0, + statictext=false, + x=1, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY2", + index=1, + statictext=false, + x=1, + y=5 + } + }, + WINDDATA_ENTRY3={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY3", + index=0, + statictext=false, + x=24, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY3", + index=1, + statictext=false, + x=24, + y=5 + } + }, + WINDDATA_ENTRY4={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY4", + index=0, + statictext=false, + x=1, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY4", + index=1, + statictext=false, + x=1, + y=7 + } + }, + WINDDATA_ENTRY5={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDATA_ENTRY5", + index=0, + statictext=false, + x=24, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY5", + index=1, + statictext=false, + x=24, + y=7 + } + }, + WINDDATA_ENTRY6={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY6", + index=0, + statictext=false, + x=1, + y=9 + } + }, + WINDDATA_ENTRY7={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDATA_ENTRY7", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WINDDIV={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDIV", + index=0, + statictext=false, + x=9, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV", + index=1, + statictext=false, + x=9, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDIV", + index=2, + statictext=false, + x=5, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV", + index=3, + statictext=false, + x=5, + y=3 + } + }, + WINDDIV1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDIV1", + index=0, + statictext=false, + x=9, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV1", + index=1, + statictext=false, + x=9, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDIV1", + index=2, + statictext=false, + x=5, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV1", + index=3, + statictext=false, + x=5, + y=5 + } + }, + WINDDIV2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDIV2", + index=0, + statictext=false, + x=9, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV2", + index=1, + statictext=false, + x=9, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDIV2", + index=2, + statictext=false, + x=5, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV2", + index=3, + statictext=false, + x=5, + y=7 + } + }, + WINDDIV3={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDIV3", + index=0, + statictext=false, + x=9, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDIV3", + index=1, + statictext=false, + x=5, + y=9 + } + }, + WINDDir={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDir", + index=0, + statictext=false, + x=6, + y=5 + } + }, + WINDDir1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDir1", + index=0, + statictext=false, + x=6, + y=5 + } + }, + WINDDirSpeed={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed", + index=1, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed", + index=2, + statictext=false, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed", + index=3, + statictext=false, + x=2, + y=3 + } + }, + WINDDirSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed1", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed1", + index=1, + statictext=false, + x=6, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed1", + index=2, + statictext=false, + x=2, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed1", + index=3, + statictext=false, + x=2, + y=3 + } + }, + WINDDirSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed2", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed2", + index=1, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed2", + index=2, + statictext=false, + x=2, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed2", + index=3, + statictext=false, + x=2, + y=5 + } + }, + WINDDirSpeed3={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDDirSpeed3", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed3", + index=1, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed3", + index=2, + statictext=false, + x=2, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed3", + index=3, + statictext=false, + x=2, + y=5 + } + }, + WINDDirSpeed4={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed4", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed4", + index=1, + statictext=false, + x=2, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed4", + index=2, + statictext=false, + x=2, + y=7 + } + }, + WINDDirSpeed5={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed5", + index=0, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDDirSpeed5", + index=1, + statictext=false, + x=2, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed5", + index=2, + statictext=false, + x=2, + y=7 + } + }, + WINDDirSpeed6={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed6", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed6", + index=1, + statictext=false, + x=2, + y=9 + } + }, + WINDDirSpeed7={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDDirSpeed7", + index=0, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDDirSpeed7", + index=1, + statictext=false, + x=2, + y=9 + } + }, + WINDMODE={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE", + index=0, + statictext=true, + x=24, + y=3 + } + }, + WINDMODE1={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE1", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDMODE2={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE2", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDMODE3={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE3", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDMODE4={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WINDMODE4", + index=0, + statictext=false, + x=23, + y=3 + } + }, + WINDSpeed={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed", + index=1, + statictext=false, + x=10, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed", + index=2, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed", + index=3, + statictext=false, + x=6, + y=3 + } + }, + WINDSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed1", + index=0, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed1", + index=1, + statictext=false, + x=10, + y=3 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed1", + index=2, + statictext=false, + x=6, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed1", + index=3, + statictext=false, + x=6, + y=3 + } + }, + WINDSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed2", + index=0, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed2", + index=1, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed2", + index=2, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed2", + index=3, + statictext=false, + x=6, + y=5 + } + }, + WINDSpeed3={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed3", + index=0, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed3", + index=1, + statictext=false, + x=10, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed3", + index=2, + statictext=false, + x=6, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed3", + index=3, + statictext=false, + x=6, + y=5 + } + }, + WINDSpeed4={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed4", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed4", + index=1, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed4", + index=2, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed4", + index=3, + statictext=false, + x=6, + y=7 + } + }, + WINDSpeed5={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDSpeed5", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed5", + index=1, + statictext=false, + x=10, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDSpeed5", + index=2, + statictext=false, + x=6, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed5", + index=3, + statictext=false, + x=6, + y=7 + } + }, + WINDSpeed6={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed6", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed6", + index=1, + statictext=false, + x=6, + y=9 + } + }, + WINDSpeed7={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDSpeed7", + index=0, + statictext=false, + x=10, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDSpeed7", + index=1, + statictext=false, + x=6, + y=9 + } + }, + WINDTemp={ + { + alignment="RGHT", + cdu_pages={ + "WIND", + "WNDEDIT" + }, + id="WINDTemp", + index=0, + statictext=false, + x=24, + y=2 + }, + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp", + index=2, + statictext=false, + x=13, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp", + index=3, + statictext=false, + x=23, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp", + index=4, + statictext=false, + x=23, + y=3 + } + }, + WINDTemp1={ + { + alignment="RGHT", + cdu_pages={ + "WIND", + "WNDEDIT" + }, + id="WINDTemp1", + index=0, + statictext=false, + x=24, + y=2 + }, + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp1", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp1", + index=2, + statictext=false, + x=13, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp1", + index=3, + statictext=false, + x=23, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp1", + index=4, + statictext=false, + x=23, + y=3 + } + }, + WINDTemp10={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp10", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp10", + index=1, + statictext=false, + x=23, + y=9 + } + }, + WINDTemp11={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp11", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp11", + index=1, + statictext=false, + x=23, + y=9 + } + }, + WINDTemp12={ + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp12", + index=0, + statictext=false, + x=23, + y=9 + } + }, + WINDTemp2={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp2", + index=0, + statictext=false, + x=13, + y=5 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp2", + index=1, + statictext=false, + x=13, + y=3 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp2", + index=2, + statictext=false, + x=23, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp2", + index=3, + statictext=false, + x=23, + y=3 + } + }, + WINDTemp3={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp3", + index=0, + statictext=false, + x=13, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp3", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp3", + index=2, + statictext=false, + x=23, + y=7 + } + }, + WINDTemp4={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp4", + index=0, + statictext=false, + x=13, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp4", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp4", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp4", + index=3, + statictext=false, + x=23, + y=5 + } + }, + WINDTemp5={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp5", + index=0, + statictext=false, + x=13, + y=7 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp5", + index=1, + statictext=false, + x=13, + y=5 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp5", + index=2, + statictext=false, + x=23, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp5", + index=3, + statictext=false, + x=23, + y=5 + } + }, + WINDTemp6={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp6", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp6", + index=1, + statictext=false, + x=13, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp6", + index=2, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp6", + index=3, + statictext=false, + x=23, + y=5 + } + }, + WINDTemp7={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp7", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp7", + index=1, + statictext=false, + x=13, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp7", + index=2, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp7", + index=3, + statictext=false, + x=23, + y=7 + } + }, + WINDTemp8={ + { + alignment="LFT", + cdu_pages={ + "WIND1" + }, + id="WINDTemp8", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp8", + index=1, + statictext=false, + x=13, + y=7 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT1" + }, + id="WINDTemp8", + index=2, + statictext=false, + x=23, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp8", + index=3, + statictext=false, + x=23, + y=7 + } + }, + WINDTemp9={ + { + alignment="LFT", + cdu_pages={ + "WIND2" + }, + id="WINDTemp9", + index=0, + statictext=false, + x=13, + y=9 + }, + { + alignment="RGHT", + cdu_pages={ + "WNDEDIT2" + }, + id="WINDTemp9", + index=1, + statictext=false, + x=23, + y=7 + } + }, + WIND_ALT_TEMP={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT1" + }, + id="WIND_ALT_TEMP", + index=0, + statictext=true, + x=2, + y=4 + } + }, + WND={ + { + alignment="LFT", + cdu_pages={ + "STRINFO", + "WAYPT1" + }, + id="WND", + index=0, + statictext=true, + x=13, + y=8 + } + }, + WNDDIV={ + { + alignment="LFT", + cdu_pages={ + "WIND", + "WNDEDIT" + }, + id="WNDDIV", + index=0, + statictext=false, + x=17, + y=2 + } + }, + WNDEDIT={ + { + alignment="RGHT", + cdu_pages={ + "WIND" + }, + id="WNDEDIT", + index=0, + statictext=true, + x=24, + y=5 + } + }, + WNDEDWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindDirection1", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDEDWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindDirection2", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDEDWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindSpeed1", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WNDEDWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WNDEDIT" + }, + id="WNDEDWindSpeed2", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WNDWindDirection1={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindDirection1", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDWindDirection2={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindDirection2", + index=0, + statictext=false, + x=14, + y=2 + } + }, + WNDWindSpeed1={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindSpeed1", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WNDWindSpeed2={ + { + alignment="LFT", + cdu_pages={ + "WIND" + }, + id="WNDWindSpeed2", + index=0, + statictext=false, + x=18, + y=2 + } + }, + WPActive={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive", + index=0, + statictext=false, + x=9, + y=5 + } + }, + WPActive1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive1", + index=0, + statictext=false, + x=9, + y=5 + } + }, + WPActive2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive2", + index=0, + statictext=false, + x=9, + y=6 + } + }, + WPActive3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive3", + index=0, + statictext=false, + x=9, + y=7 + } + }, + WPActive4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive4", + index=0, + statictext=false, + x=9, + y=7 + } + }, + WPActive5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive5", + index=0, + statictext=false, + x=9, + y=8 + } + }, + WPActive6={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive6", + index=0, + statictext=false, + x=9, + y=9 + } + }, + WPActive7={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPActive7", + index=0, + statictext=false, + x=9, + y=9 + } + }, + WPFPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPFPNumber", + index=0, + statictext=false, + x=2, + y=5 + } + }, + WPFPNumber1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPFPNumber1", + index=0, + statictext=false, + x=2, + y=7 + } + }, + WPFPNumber2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPFPNumber2", + index=0, + statictext=false, + x=2, + y=9 + } + }, + WPInput={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPInput", + index=0, + statictext=false, + x=1, + y=5 + } + }, + WPInput1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPInput1", + index=0, + statictext=false, + x=1, + y=7 + } + }, + WPInput2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPInput2", + index=0, + statictext=false, + x=1, + y=9 + } + }, + WPN_EVENTS={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="WPN_EVENTS", + index=0, + statictext=true, + x=2, + y=8 + } + }, + WPN_EVENTS1={ + { + alignment="RGHT", + cdu_pages={ + "LASTE" + }, + id="WPN_EVENTS1", + index=0, + statictext=false, + x=16, + y=8 + } + }, + WPName={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPName1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName1", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPName2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName2", + index=0, + statictext=false, + x=10, + y=6 + } + }, + WPName3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName3", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPName4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName4", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPName5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName5", + index=0, + statictext=false, + x=10, + y=8 + } + }, + WPName6={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName6", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPName7={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPName7", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPNewName={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPNewName1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName1", + index=0, + statictext=false, + x=10, + y=5 + } + }, + WPNewName2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName2", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPNewName3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName3", + index=0, + statictext=false, + x=10, + y=7 + } + }, + WPNewName4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName4", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPNewName5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNewName5", + index=0, + statictext=false, + x=10, + y=9 + } + }, + WPNumber={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WPNumber1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber1", + index=0, + statictext=false, + x=5, + y=5 + } + }, + WPNumber2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber2", + index=0, + statictext=false, + x=5, + y=6 + } + }, + WPNumber3={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber3", + index=0, + statictext=false, + x=5, + y=7 + } + }, + WPNumber4={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber4", + index=0, + statictext=false, + x=5, + y=7 + } + }, + WPNumber5={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber5", + index=0, + statictext=false, + x=5, + y=8 + } + }, + WPNumber6={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber6", + index=0, + statictext=false, + x=5, + y=9 + } + }, + WPNumber7={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPNumber7", + index=0, + statictext=false, + x=5, + y=9 + } + }, + WPT={ + { + alignment="LFT", + cdu_pages={ + "WPTATT", + "WAYPT2" + }, + id="WPT", + index=0, + statictext=false, + x=2, + y=2 + } + }, + WPTATT={ + { + alignment="RGHT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATT", + index=0, + statictext=false, + x=24, + y=4 + } + }, + WPTATTBranch={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATTBranch", + index=0, + statictext=false, + x=24, + y=5 + } + }, + WPTATTBranch1={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATTBranch1", + index=0, + statictext=false, + x=24, + y=7 + } + }, + WPTATTBranch2={ + { + alignment="LFT", + cdu_pages={ + "FPBUILD" + }, + id="WPTATTBranch2", + index=0, + statictext=false, + x=24, + y=9 + } + }, + WPTATTScale={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale1", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale2={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale2", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale3={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale3", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTScale4={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTScale4", + index=0, + statictext=false, + x=2, + y=4 + } + }, + WPTATTSteer={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTSteer1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer1", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTSteer2={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer2", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTSteer4={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTSteer4", + index=0, + statictext=false, + x=2, + y=6 + } + }, + WPTATTVNavMode={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTVNavMode", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WPTATTVNavMode1={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTVNavMode1", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WPTATTVNavMode2={ + { + alignment="RGHT", + cdu_pages={ + "WPTATT" + }, + id="WPTATTVNavMode2", + index=0, + statictext=false, + x=23, + y=6 + } + }, + WPTATT_DTOT={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTOT", + index=0, + statictext=false, + x=8, + y=9 + } + }, + WPTATT_DTOT1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTOT1", + index=0, + statictext=false, + x=8, + y=9 + } + }, + WPTATT_DTOT_ST={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTOT_ST", + index=0, + statictext=true, + x=1, + y=9 + } + }, + WPTATT_DTTG={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTTG", + index=0, + statictext=false, + x=7, + y=7 + } + }, + WPTATT_DTTG1={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTTG1", + index=0, + statictext=false, + x=7, + y=7 + } + }, + WPTATT_DTTG_ST={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_DTTG_ST", + index=0, + statictext=true, + x=1, + y=7 + } + }, + WPTATT_FP_Number={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_FP_Number", + index=0, + statictext=false, + x=22, + y=3 + } + }, + WPTATT_WPT_Name={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_WPT_Name", + index=0, + statictext=false, + x=11, + y=2 + } + }, + WPTATT_WPT_Number={ + { + alignment="LFT", + cdu_pages={ + "WPTATT" + }, + id="WPTATT_WPT_Number", + index=0, + statictext=false, + x=6, + y=2 + } + }, + WPTDIS1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTDIS1", + index=0, + statictext=false, + x=20, + y=5 + } + }, + WPTDIS2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTDIS2", + index=0, + statictext=false, + x=20, + y=5 + } + }, + WPTDISMH={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTDISMH", + index=0, + statictext=true, + x=19, + y=5 + } + }, + WPTMH1={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTMH1", + index=0, + statictext=false, + x=16, + y=5 + } + }, + WPTMH2={ + { + alignment="LFT", + cdu_pages={ + "WPINFO" + }, + id="WPTMH2", + index=0, + statictext=false, + x=16, + y=5 + } + }, + WPTTTG1={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WPTTTG1", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WPTTTG2={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WPTTTG2", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WPTTTG3={ + { + alignment="RGHT", + cdu_pages={ + "WPINFO" + }, + id="WPTTTG3", + index=0, + statictext=false, + x=23, + y=4 + } + }, + WRITE={ + { + alignment="LFT", + cdu_pages={ + "MXLOG" + }, + id="WRITE", + index=0, + statictext=true, + x=2, + y=9 + } + }, + YEAR={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="YEAR", + index=0, + statictext=true, + x=16, + y=3 + } + }, + YEAR_DE={ + { + alignment="LFT", + cdu_pages={ + "TIME" + }, + id="YEAR_DE", + index=0, + statictext=false, + x=24, + y=3 + } + }, + YEAR_TXT={ + { + alignment="RGHT", + cdu_pages={ + "TIME" + }, + id="YEAR_TXT", + index=0, + statictext=false, + x=23, + y=3 + } + }, + YES={ + { + alignment="LFT", + cdu_pages={ + "LASTE" + }, + id="YES", + index=0, + statictext=true, + x=11, + y=3 + } + }, + ZEROES1={ + { + alignment="LFT", + cdu_pages={ + "SYS2" + }, + id="ZEROES1", + index=0, + statictext=true, + x=1, + y=7 + } + }, + ZEROES2={ + { + alignment="RGHT", + cdu_pages={ + "SYS2" + }, + id="ZEROES2", + index=0, + statictext=true, + x=23, + y=7 + } + }, + ZEROIZE={ + { + alignment="LFT", + cdu_pages={ + "GPSKEYS" + }, + id="ZEROIZE", + index=0, + statictext=true, + x=1, + y=9 + } + }, + pName={ + { + alignment="LFT", + cdu_pages={ + "GPSSTAT2" + }, + id="pName", + index=0, + statictext=true, + x=2, + y=1 + } + }, + ScratchBorders={ + { + alignment="LFT", + x=1, + y=10 + } + }, + ScratchString={ + { + alignment="LFT", + x=2, + y=10 + } + }, + PAGE={ + { + alignment="LFT", + x=19, + y=10 + } + }, + PAGE_NUM={ + { + alignment="LFT", + x=20, + y=10 + } + } +} + +-- Unicode UTF-16 +function ExportScript.AF.replaceSymbols(s) + s = s:gsub(string.char(0xB0), "0x00B0") --DEGREE "°" + s = s:gsub(string.char(0xB1), "0x00B1") --INC_DEC "±" + s = s:gsub(string.char(0xA9), "0x2299") --INC_DEC (Circle with Dot) + s = s:gsub(string.char(0x3A), "0x003A") --Colon ":" + s = s:gsub(":" , "0x003A") --Colon ":" + s = s:gsub(string.char(0xBB), "0x2192") --Right Arrow "→" + s = s:gsub(string.char(0xAB), "0x2190") --Left Arrow "←" + s = s:gsub(string.char(0xB6), "0x2588") --Cursor "█" + s = s:gsub(string.char(0xA1), "0x2337") --DATA_ENTRY "⌷" + s = s:gsub(string.char(0xAE), "0x2195") --UpDown Arrow "↕" + s = s:gsub("*" , "0x002A") -- Asterisk "*" + return s +end + +function ExportScript.AF.preReplaceSymbols(s) + s = s:gsub(string.char(26), string.char(0xBB)) -- BRANCH_L + s = s:gsub(string.char(27), string.char(0xAB)) -- BRANCH_R + s = s:gsub(string.char(18), string.char(0xAE)) -- ROTARY + s = s:gsub(string.char(20), string.char(0xA1)) -- DATA_ENTRY + s = s:gsub("©" , string.char(0xA9)) -- SYS_ACTION + s = s:gsub("°" , string.char(0xB0)) -- DEGREE + s = s:gsub("ю" , string.char(0xB6)) -- FILLED + s = s:gsub("я" , string.char(0xB1)) -- INC_DEC + return s +end + +function ExportScript.AF.exportCDU() + local cdu = ExportScript.Tools.getListIndicatorValue(3) + + local cdu_lines = {} + local empty_line = " " -- 24 spaces + cdu_lines[1] = empty_line + cdu_lines[2] = empty_line + cdu_lines[3] = empty_line + cdu_lines[4] = empty_line + cdu_lines[5] = empty_line + cdu_lines[6] = empty_line + cdu_lines[7] = empty_line + cdu_lines[8] = empty_line + cdu_lines[9] = empty_line + cdu_lines[10] = empty_line + if not cdu then + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('keine cdu daten') + end + ExportScript.Tools.SendData(2030, cdu_lines[1]) + ExportScript.Tools.SendData(2031, cdu_lines[2]) + ExportScript.Tools.SendData(2032, cdu_lines[3]) + ExportScript.Tools.SendData(2033, cdu_lines[4]) + ExportScript.Tools.SendData(2034, cdu_lines[5]) + ExportScript.Tools.SendData(2035, cdu_lines[6]) + ExportScript.Tools.SendData(2036, cdu_lines[7]) + ExportScript.Tools.SendData(2037, cdu_lines[8]) + ExportScript.Tools.SendData(2038, cdu_lines[9]) + ExportScript.Tools.SendData(2039, cdu_lines[10]) + return + end + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu: '..ExportScript.Tools.dump(cdu)) + end + local cdu_page = list_cockpit_params():match('CDU_PAGE:"([0-9A-Za-z_]+)"') + local cursor_pos = 2 + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu_page: '..ExportScript.Tools.dump(cdu_page)) + end + if cdu.ScratchString then cursor_pos = cdu.ScratchString:len()+2 end + + ExportScript.AF.CDUIndicatorData["Cursor"]={ + [1]={ + alignment="LFT", + x=cursor_pos, + y=10 + } + } + + for k, v in pairs(cdu) do + local candidates = ExportScript.AF.CDUIndicatorData[k] + if candidates then + + v = ExportScript.AF.preReplaceSymbols(v) -- make sure that 1 char == 1 byte + + local render_instructions = nil + if #candidates == 1 then + render_instructions = candidates[1] + else + for _, ri in pairs(candidates) do + for _, page in pairs(ri.cdu_pages) do + if cdu_page == "CDU_"..page then + render_instructions = ri + break + end + end + end + end + if render_instructions then + local i + local ri = render_instructions + local old_line = cdu_lines[ri.y] + local replacements = {} + if ri.alignment == "LFT" then + for i = 1, v:len(), 1 do + local c = v:sub(i,i) + if c ~= " " then replacements[ri.x + i - 1] = c end + end + elseif ri.alignment == "RGHT" then + for i = 1, v:len(), 1 do + local c = v:sub(i,i) + if c ~= " " then replacements[ri.x - (v:len() - i)] = c end + end + end + local new_line = "" + for i = 1, 24, 1 do + new_line = new_line .. (replacements[i] or old_line:sub(i,i)) + end + cdu_lines[ri.y] = new_line + end + end + end + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu_lines 1: '..ExportScript.Tools.dump(cdu_lines)) + end + + cdu_lines[1] = ExportScript.AF.replaceSymbols(cdu_lines[1]) + cdu_lines[2] = ExportScript.AF.replaceSymbols(cdu_lines[2]) + cdu_lines[3] = ExportScript.AF.replaceSymbols(cdu_lines[3]) + cdu_lines[4] = ExportScript.AF.replaceSymbols(cdu_lines[4]) + cdu_lines[5] = ExportScript.AF.replaceSymbols(cdu_lines[5]) + cdu_lines[6] = ExportScript.AF.replaceSymbols(cdu_lines[6]) + cdu_lines[7] = ExportScript.AF.replaceSymbols(cdu_lines[7]) + cdu_lines[8] = ExportScript.AF.replaceSymbols(cdu_lines[8]) + cdu_lines[9] = ExportScript.AF.replaceSymbols(cdu_lines[9]) + cdu_lines[10] = ExportScript.AF.replaceSymbols(cdu_lines[10]) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('cdu_lines 2: '..ExportScript.Tools.dump(cdu_lines)) + end + ExportScript.Tools.SendData(2030, cdu_lines[1]) + ExportScript.Tools.SendData(2031, cdu_lines[2]) + ExportScript.Tools.SendData(2032, cdu_lines[3]) + ExportScript.Tools.SendData(2033, cdu_lines[4]) + ExportScript.Tools.SendData(2034, cdu_lines[5]) + ExportScript.Tools.SendData(2035, cdu_lines[6]) + ExportScript.Tools.SendData(2036, cdu_lines[7]) + ExportScript.Tools.SendData(2037, cdu_lines[8]) + ExportScript.Tools.SendData(2038, cdu_lines[9]) + ExportScript.Tools.SendData(2039, cdu_lines[10]) + +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/A-4E-C.lua b/Scripts/DCS-ExportScript/ExportsModules/A-4E-C.lua new file mode 100644 index 00000000..dc5c45a5 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/A-4E-C.lua @@ -0,0 +1,1163 @@ +-- A-4E-C + +ExportScript.FoundDCSModule = true +ExportScript.Version.A4EC = "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 +]] + --there may be precisely 1 duplicate arg + [16] = "%0.4f", --mirrors_draw + [26] = "%0.4f", --Canopy + [129] = "%0.4f", --CanopyLever + + [2] = "%0.4f", --StickPitch + [3] = "%0.4f", --StickBank + [4] = "%0.4f", --RudderPedals + [5] = "%0.4f", --LeftBrakePedal + [6] = "%0.4f", --RightBrakePedal + + [80] = "%0.4f", --Throttle + [870] = "%0.4f", --PitchTrim + [871] = "%0.4f", --RollTrim + [28] = "%0.4f", --PitchTrimKnob + [29] = "%0.4f", --RollTrimKnob + + [520] = "%0.4f", --Engine_RPM + [521] = "%0.4f", --Engine_RPMsub + + [526] = "%0.4f", --CM_bank1_Xx + [527] = "%0.4f", --CM_bank1_xX + [528] = "%0.4f", --CM_bank2_Xx + [529] = "%0.4f", --CM_bank2_xX + + [540] = "%0.4f", --EGT + [560] = "%0.4f", --Engine_Fuel_Flow + [152] = "%0.4f", --OilPressure + [151] = "%0.4f", --PressureRatio + [105] = "%0.4f", --ManualFuelControl_Warn + + [23] = "%0.2f", --FlapsIndicator + [10] = "%0.4f", --TailhookLever + [20] = "%0.4f", --GearNose + [21] = "%0.4f", --GearLeft + [22] = "%0.4f", --GearRight + [27] = "%0.4f", --GearLight + + [153] = "%0.4f", --HideStick + + [580] = "%0.4f", --FuelGauge + [665] = "%0.4f", --StandbyAttHorizon + [880] = "%0.4f", --IASGauge + [881] = "%0.4f", --MachDisc + [882] = "%0.4f", --IASIndex + [883] = "%0.4f", --MachIndex + [600] = "%0.4f", --RadarAltimeter + [601] = "%0.4f", --LAWS_indexer + [604] = "%0.4f", --LAWS_OFF + [605] = "%0.4f", --LAWS_light_gauge + [150] = "%0.4f", --Oil_light_gauge + [856] = "%0.4f", --INDICATOR_BRIGHTNESS + [857] = "%0.4f", --AOA_BRIGHTNESS + + [858] = "%0.4f", --Glareshield_BRIGHTNESS + [154] = "%0.4f", --Glareshield_WHEELS + [155] = "%0.4f", --Glareshield_LABS + [156] = "%0.4f", --Glareshield_LAWS + [157] = "%0.4f", --Glareshield_OBST + [158] = "%0.4f", --Glareshield_IFF + [159] = "%0.4f", --Glareshield_FIRE + + [780] = "%0.4f", --BDHI_Heading + [781] = "%0.4f", --BDHI_Needle1 + [782] = "%0.4f", --BDHI_Needle2 + [786] = "%0.4f", --BDHI_DME_Flag + [785] = "%0.4f", --BDHI_DME_Xxx + [784] = "%0.4f", --BDHI_DME_xXx + [783] = "%0.4f", --BDHI_DME_xxX + [381] = "%0.4f", --BDHI_ILS_GS + [382] = "%0.4f", --BDHI_ILS_LOC + + [820] = "%0.4f", --Altimeter Needle + [821] = "%0.4f", --Altimeter10K + [822] = "%0.4f", --Altimeter1K + [823] = "%0.4f", --Altimeter100s + [824] = "%0.4f", --AltAdjNNxx + [825] = "%0.4f", --AltAdjxxNx + [826] = "%0.4f", --AltAdjxxxN + + [710] = "%0.4f", --CabinAlt + [760] = "%0.4f", --LiquidOxygen + [761] = "%0.4f", --Oxygen_light_gauge + [762] = "%0.4f", --Oxygen_flag_gauge + + [360] = "%0.4f", --Accel_cur + [137] = "%0.4f", --Accel_max + [138] = "%0.4f", --Accel_min + + [800] = "%0.4f", --VerticalVelocity + + [383] = "%0.4f", --ADIPitch + [384] = "%0.4f", --ADIRoll + [385] = "%0.4f", --ADIHeading + [387] = "%0.4f", --ADIOFF + [388] = "%0.4f", --ADISlip + [389] = "%0.4f", --ADITurn + + [148] = "%0.4f", --BackupCompass + [660] = "%0.4f", --AttGyroStbyPitch + [661] = "%0.4f", --AttGyroStbyRoll + [664] = "%0.4f", --AttGyroStbyOFF + [741] = "%0.4f", --AWRSPower + [894] = "%0.4f", --GunsightReflector + + [859] = "%0.4f", --Ladder_Brightness + [860] = "%0.4f", --Ladder_FuelBoostCaution + [861] = "%0.4f", --Ladder_ControlHydraulicCaution + [862] = "%0.4f", --Ladder_UtilityHydraulicCaution + [863] = "%0.4f", --Ladder_FuelTransCaution + [864] = "%0.4f", --Ladder_SpdBrkCaution + [865] = "%0.4f", --Ladder_SpoilerCaution + + [866] = "%0.4f", --Advisory_InRange + [867] = "%0.4f", --Advisory_SetRange + [868] = "%0.4f", --Advisory_Dive + [147] = "%0.4f", --APCLight + + [840] = "%0.4f", --AngleOfAttack + [850] = "%0.4f", --AoA_Green + [851] = "%0.4f", --AoA_Yellow + [852] = "%0.4f", --AoA_Red + + [406] = "%0.4f", --APG53A_LeftRange + [407] = "%0.4f", --APG53A_BottomRange + [167] = "%0.1f", --AFCS_HDG_100s + [168] = "%0.1f", --AFCS_HDG_10s + [169] = "%0.1f", --AFCS_HDG_1s + [115] = "%0.4f", --APG53A_Glow + [171] = "%0.4f", --Doppler_MemoryLight + [172] = "%0.4f", --Doppler_Drift + [173] = "%0.1f", --Doppler_Speed_Xnn + [174] = "%0.1f", --Doppler_Speed_nXn + [175] = "%0.1f", --Doppler_Speed_nnX + + [178] = "%0.1f", --Nav_CurPos_Lat_Xnnnn + [179] = "%0.1f", --Nav_CurPos_Lat_nXnnn + [180] = "%0.1f", --Nav_CurPos_Lat_nnXnn + [181] = "%0.1f", --Nav_CurPos_Lat_nnnXn + [182] = "%0.1f", --Nav_CurPos_Lat_nnnnX + [184] = "%0.1f", --Nav_CurPos_Lon_Xnnnnn + [185] = "%0.1f", --Nav_CurPos_Lon_nXnnnn + [186] = "%0.1f", --Nav_CurPos_Lon_nnXnnn + [187] = "%0.1f", --Nav_CurPos_Lon_nnnXnn + [188] = "%0.1f", --Nav_CurPos_Lon_nnnnXn + [189] = "%0.1f", --Nav_CurPos_Lon_nnnnnX + [191] = "%0.1f", --Nav_Dest_Lat_Xnnnn + [192] = "%0.1f", --Nav_Dest_Lat_nXnnn + [193] = "%0.1f", --Nav_Dest_Lat_nnXnn + [194] = "%0.1f", --Nav_Dest_Lat_nnnXn + [195] = "%0.1f", --Nav_Dest_Lat_nnnnX + [197] = "%0.1f", --Nav_Dest_Lon_Xnnnnn + [198] = "%0.1f", --Nav_Dest_Lon_nXnnnn + [199] = "%0.1f", --Nav_Dest_Lon_nnXnnn + [200] = "%0.1f", --Nav_Dest_Lon_nnnXnn + [201] = "%0.1f", --Nav_Dest_Lon_nnnnXn + [202] = "%0.1f", --Nav_Dest_Lon_nnnnnX + + [210] = "%0.4f", --Nav_WindSpeed_Xxx + [211] = "%0.4f", --Nav_WindSpeed_xXx + [212] = "%0.4f", --Nav_WindSpeed_xxX + [214] = "%0.4f", --Nav_WindDir_Xxx + [215] = "%0.4f", --Nav_WindDir_xXx + [216] = "%0.4f", --Nav_WindDir_xxX + [204] = "%0.4f", --Nav_Magvar_Xxxxx + [205] = "%0.4f", --Nav_Magvar_xXxxx + [206] = "%0.4f", --Nav_Magvar_xxXxx + [207] = "%0.4f", --Nav_Magvar_xxxXx + [208] = "%0.4f", --Nav_Magvar_xxxxX + + [362] = "%0.2f", --ARC51_Freq_XXxxx + [363] = "%0.2f", --ARC51_Freq_xxXxx + [364] = "%0.2f", --ARC51_Freq_xxxXX + [371] = "%0.2f", --ARC51_Freq_Preset + + [111] = "%0.4f", --FloodWhite + [114] = "%0.4f", --FloodRed + [117] = "%0.4f", --InstLightsPrimary + [119] = "%0.4f", --ConsoleLights + [440] = "%0.4f", --CurrTime_hours + [441] = "%0.4f", --CurrTime_mins + [442] = "%0.4f", --CurrTime_secs + [144] = "%0.4f", --Stopwatch_mins + [145] = "%0.4f", --Stopwatch_secs + + [514] = "%0.4f", --ECM_TEST + [515] = "%0.4f", --ECM_GO + [516] = "%0.4f", --ECM_NO_GO + [517] = "%0.4f", --ECM_SAM + [518] = "%0.4f", --ECM_RPT + [519] = "%0.4f", --ECM_STBY + [500] = "%0.4f", --ECM_REC + [531] = "%0.4f", --ECM_Visibilty + + [260] = "%0.4f", --AFCS_TEST_ROLL + [261] = "%0.4f", --AFCS_TEST_YAW + [262] = "%0.4f", --AFCS_TEST_PITCH + [113] = "%0.4f", --TEST_PARAM_GAUGE +} + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" +]] + [8] = "%0.4f", --Landing Gear Handle {1,0,1} + [10] = "%0.4f", --Arresting Hook Handle {1,0,1} + [24] = "%0.4f", --Shoulder Harness Control Handle {1,0,1} + [25] = "%0.4f", --Alternate Ejection Handle {1,0,1} + [82] = "%0.4f", --Rudder Trim Switch {0,-1,1} + [83] = "%0.4f", --Master Exterior Lights Switch {1,-1,1} + [84] = "%0.4f", --Spoiler Arm Switch {1,0,1} + [85] = "%0.4f", --Speedbrake Switch {1,0,1} + [100] = "%0.4f", --Engine Starter Switch {1,0,1} + [101] = "%0.4f", --Drop Tank Pressurization Switch {1,-1,1} + [103] = "%0.4f", --Fuel Dump Switch {1,-1,1} + [104] = "%0.4f", --Fuel Control Switch {1,0,1} + [106] = "%0.4f", --Instrument Lights Control {0,0,1} + [107] = "%0.4f", --Console Lights Control {0,0,1} + [108] = "%0.4f", --Instrument Lights Brightness {1,-1,1} + [110] = "%0.4f", --White Floodlights Control {0,0,1} + [120] = "%0.4f", --AN/APG-53A Radar Mode Switch {0.1,0,0.4} + [121] = "%0.4f", --Radar AoA Compensation Switch {1,0,1} + [122] = "%0.4f", --Radar Antenna Tilt Switch {0.4,0,1} + [123] = "%0.4f", --Radar Obstacle Tone Volume {0,-1,1} + [125] = "%0.4f", --Oxygen Switch {1,0,1} + [128] = "%0.4f", --Emergency Speedbrake Knob {1,-1,1} + [130] = "%0.4f", --Manual Fuel Shutoff Control Lever {1,0,1} + [131] = "%0.4f", --Manual Fuel Shutoff Control Catch {1,0,1} + [132] = "%0.4f", --Flap Handle {1,-1,1} + [133] = "%0.4f", --JATO Arming Switch {1,0,1} + [134] = "%0.4f", --JATO Jettison Switch {1,0,1} + [135] = "%0.4f", --APC Power Switch {1,-1,1} + [136] = "%0.4f", --APC Temperature Switch {1,-1,1} + [139] = "%0.4f", --Accelerometer Reset {1,0,1} + [146] = "%0.4f", --Elapsed-Time Clock {1,0,1} + [160] = "%0.4f", --AFCS Standby Switch {1,0,1} + [161] = "%0.4f", --AFCS Engage Switch {1,0,1} + [162] = "%0.4f", --AFCS Heading Select Switch {1,0,1} + [163] = "%0.4f", --AFCS Altitude Switch {1,0,1} + [164] = "%0.4f", --AFCS Heading Select Pull-to-Set Knob {0,0,1} + [165] = "%0.4f", --AFCS Stability Augmentation Switch (Yaw Damper) {1,0,1} + [166] = "%0.4f", --AFCS Aileron Trim Switch (unimplemented) {1,0,1} + [170] = "%0.1f", --AN/APN-153 Doppler Navigation Radar Mode Switch {0.1,0,0.4} + [176] = "%0.1f", --AN/ASN-41 Function Selector Switch {0.1,0,0.4} + [177] = "%0.4f", --Present Latitude Push-to-Set Knob {1,0,1} + [183] = "%0.4f", --Present Longitude Push-to-Set Knob {1,0,1} + [190] = "%0.4f", --Destination Latitude Push-to-Set Knob {1,0,1} + [196] = "%0.4f", --Destination Longitude Push-to-Set Knob {1,0,1} + [203] = "%0.4f", --Magnetic Variation Push-to-Set Knob {1,0,1} + [209] = "%0.4f", --Wind Speed Push-to-Set Knob {1,0,1} + [213] = "%0.4f", --Wind Direction Push-to-Set Knob {1,0,1} + [217] = "%0.4f", --Probe Light Switch {1,-1,1} + [218] = "%0.4f", --Taxi Light Switch {1,0,1} + [219] = "%0.4f", --Anti-Collision Light Switch {1,0,1} + [220] = "%0.4f", --Fuselage Light Switch {1,-1,1} + [221] = "%0.4f", --Lighting Flash/Steady Switch {1,0,1} + [222] = "%0.4f", --Navigation Lights Switch {1,-1,1} + [223] = "%0.4f", --Tail Light Switch {1,-1,1} + [224] = "%0.4f", --Cabin Pressure Switch {1,0,1} + [225] = "%0.4f", --Windshield Defrost Switch {1,-1,1} + [226] = "%0.4f", --Cabin Temperature Knob {0,0,1} + [236] = "%0.4f", --Present Latitude Push-to-Set Knob {1,0,1} + [237] = "%0.4f", --Present Longitude Push-to-Set Knob {1,0,1} + [238] = "%0.4f", --Destination Latitude Push-to-Set Knob {1,0,1} + [239] = "%0.4f", --Destination Longitude Push-to-Set Knob {1,0,1} + [240] = "%0.4f", --Magnetic Variation Push-to-Set Knob {1,0,1} + [241] = "%0.4f", --Wind Speed Push-to-Set Knob {1,0,1} + [242] = "%0.4f", --Wind Direction Push-to-Set Knob {1,0,1} + [247] = "%0.4f", --AN/APN-153 Memory Light Test {1,0,1} + [248] = "%0.4f", --Destination Latitude Slew Knob {1,-1,1} + [249] = "%0.4f", --Destination Longitude Slew Knob {1,-1,1} + [250] = "%0.4f", --MCL Channel Selector Switch {0.05,0,0.95} + [251] = "%0.4f", --Seat Adjustment Switch (unimplemented) {1,-1,1} + [252] = "%0.4f", --Emergency Generator Switch {1,0,1} + [253] = "%0.4f", --AN/ARA-63 MCL Power Switch {1,-1,1} + [254] = "%0.4f", --TACAN Antenna Control Switch (unimplemented) {1,-1,1} + [255] = "%0.4f", --Navigation Dead Reckoning/Doppler Switch (unimplemented) {1,0,1} + [256] = "%0.4f", --Fuel Transfer Switch {1,0,1} + [257] = "%0.4f", --Rain Removal Switch (unimplemented) {1,0,1} + [258] = "%0.4f", --AFCS 1-N-2 Guard Switch {1,0,1} + [259] = "%0.4f", --AFCS 1-N-2 Switch {1,-1,1} + [361] = "%0.4f", --Radio Preset Channel Selector {0.05,0,0.95} + [365] = "%0.4f", --Radio Volume {0.5,0,1} + [366] = "%0.f", --Radio Frequency Mode {1,-1,1} + [367] = "%0.4f", --Radio Frequency 10 MHz {0.05,0,0.85} + [368] = "%0.4f", --Radio Frequency 1 MHz {0.1,0,0.9} + [369] = "%0.4f", --Radio Frequency 50 kHz {0.05,0,0.95} + [370] = "%0.4f", --Radio Squelch Disable {1,0,1} + [372] = "%0.1f", --AN/ARC-51A UHF Radio Mode Switch {0.1,0,0.3} + [390] = "%0.4f", --Gunpod Switch {1,-1,1} + [391] = "%0.4f", --Gunpod Station LH Switch {1,0,1} + [392] = "%0.4f", --Gunpod Station CTR Switch {1,0,1} + [393] = "%0.4f", --Gunpod Station RH Switch {1,0,1} + [400] = "%0.4f", --Radar Indicator Storage {0,0,1} + [401] = "%0.4f", --Radar Indicator Brilliance {0,0,1} + [402] = "%0.4f", --Radar Indicator Detail {0,0,1} + [403] = "%0.4f", --Radar Indicator Gain {0,0,1} + [404] = "%0.4f", --Radar Indicator Reticle {0,0,1} + [405] = "%0.4f", --Radar Indicator Filter Plate {1,0,1} + [501] = "%0.4f", --APR-27 Switch {1,0,1} + [502] = "%0.4f", --AN/APR-23 Function Selector Switch {0.33,0,0.99} + [503] = "%0.4f", --Audio ALQ Switch {1,0,1} + [504] = "%0.4f", --APR-25 Switch {1,0,1} + [505] = "%0.4f", --Missile Alert Volume {0,-0.8,0.8} + [506] = "%0.4f", --PRF Volume {0,-0.8,0.8} + [507] = "%0.4f", --APR-27 Test {1,0,1} + [509] = "%0.4f", --Compass Latitude Knob (unimplemented) {0,-1,1} + [510] = "%0.4f", --APR-27 Light {1,0,1} + [511] = "%0.4f", --Compass Heading Set Knob (unimplemented) {1,-1,1} + [512] = "%0.4f", --Compass Mode (unimplemented) {1,0,1} + [513] = "%0.4f", --Compass Push-to-Sync (unimplemented) {1,0,1} + [522] = "%0.4f", --Dispenser Select {1,-1,1} + [523] = "%0.4f", --Chaff AUTO Pushbutton (ALE-29A Salvo) {1,0,1} + [524] = "%0.4f", --Dispenser 1 Counter {0,0,1} + [525] = "%0.4f", --Dispenser 2 Counter {0,0,1} + [530] = "%0.4f", --Chaff Power Switch {1,0,1} + [602] = "%0.4f", --AN/APN-141 Radar Altimeter {0.5,0,1} + [603] = "%0.4f", --AN/APN-141 Radar Altimeter {1,-1,0} + [662] = "%0.4f", --Standby Attitude Horizon {0.5,0,1} + [663] = "%0.4f", --Standby Attitude Horizon {1,0,1} + [700] = "%0.4f", --Emergency Release Selector {0.1,0,0.6} + [701] = "%0.4f", --Guns Charging Switch {1,0,1} + [702] = "%0.4f", --Bomb Arm Switch {1,-1,1} + [703] = "%0.4f", --Station 1 Selector Switch {1,0,1} + [704] = "%0.4f", --Station 2 Selector Switch {1,0,1} + [705] = "%0.4f", --Station 3 Selector Switch {1,0,1} + [706] = "%0.4f", --Station 4 Selector Switch {1,0,1} + [707] = "%0.4f", --Station 5 Selector Switch {1,0,1} + [708] = "%0.4f", --Weapon Function Selector Switch {0.1,0,0.6} + [709] = "%0.4f", --Master Armament Switch {1,0,1} + [720] = "%0.4f", --Internal-External Fuel Switch {1,0,1} + [721] = "%0.4f", --Radar Terrain Clearance Switch {1,0,1} + [722] = "%0.4f", --Radar Range Switch {1,0,1} + [723] = "%0.4f", --Master Test Switch {1,0,1} + [724] = "%0.4f", --BDHI Switch {1,-1,1} + [725] = "%0.4f", --Shrike Selector Knob {0.1,0,0.4} + [726] = "%0.4f", --Shrike/Sidewinder Volume Knob {0,-1,1} + [740] = "%0.4f", --AWRS Quantity Selector Switch {0.05,0,0.55} + [742] = "%0.4f", --AWRS Drop Interval Knob {0,0,0.9} + [743] = "%0.4f", --AWRS Multiplier Switch {1,0,1} + [744] = "%0.4f", --AWRS Mode Selector Switch {0.1,0,0.5} + [827] = "%0.4f", --Altimeter Pressure {0,0,1} + [853] = "%0.4f", --AoA Indexer Dimming Wheel {1,-1,1} + [884] = "%0.4f", --IAS Index {0.5,0,1} + [885] = "%0.4f", --IAS Index {1,0,1} + [891] = "%0.4f", --Gunsight Day-Night Switch {1,0,1} + [895] = "%0.4f", --Gunsight Light Control {0,0,1} + [900] = "%0.1f", --AN/ARN-52 TACAN Mode Switch {0.1,0,0.3} + [901] = "%0.4f", --TACAN Channel 10s {0.05,0,0.6} + [902] = "%0.4f", --TACAN Channel 1s {0.1,0,0.9} + [903] = "%0.4f", --TACAN Volume {0,-1,1} + [1240] = "%0.4f", --Emergency Landing Gear Release Handle {1,0,1} + [1241] = "%0.4f", --Emergency Stores Release Handle {1,0,1} + [1242] = "%0.4f", --Manual Flight Control Handle {1,0,1} + [1243] = "%0.4f", --Emergency Generator Release Handle {1,0,1} + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] + ExportScript.TomTom(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to GlassCockpit + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] + + ExportScript.CockpitParametersFunction(mainPanelDevice) + ExportScript.UHF_radioPresets(mainPanelDevice) + ExportScript.TomTom(mainPanelDevice) + ExportScript.UHF_radio(mainPanelDevice) + ExportScript.Tacan_radio(mainPanelDevice) + ExportScript.AFCSpanel(mainPanelDevice) + ExportScript.FlightControls(mainPanelDevice) + ExportScript.FlightInstruments(mainPanelDevice) + ExportScript.radar_mode_and_tilt(mainPanelDevice) + ExportScript.drop_interval(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + every frame export to hardware + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] +end + +---------------------- +-- Custom Functions -- +---------------------- + + + +function ExportScript.CockpitParametersFunction(mainPanelDevice) + + +--[[ Interesting Parameters +ADI_HDG:169.449555\ +AFCS_HDG_100s:0.000000\ +AFCS_HDG_10s:0.000000\ +AFCS_HDG_1s:0.000000\ +ALT_ADJ_NNxx:29.000000\ +ALT_ADJ_xxNx:9.000000\ +ALT_ADJ_xxxN:2.000000\ +AOA_GREEN:0.000000\ +AOA_RED:0.000000\ +AOA_YELLOW:0.000000\ +APC_LIGHT:0.000000\ +API_TCN_VALID:0.000000\ +API_TCN_X:0.000000\ +API_TCN_Y:0.000000\ +API_TCN_Z:0.000000\ +APN153-DRIFT-GAUGE:0.000000\ +APN153-DRIFT:0.000000\ +APN153-GS:0.000000\ +APN153-MEMORYLIGHT:1.000000\ +APN153-SPEED-nnX:0.000000\ +APN153-SPEED-nXn:0.000000\ +APN153-SPEED-Xnn:0.000000\ +APN153-WIND-DIR:0.000000\ +APN153-WIND-SPEED:0.000000\ +ARC51-FREQ-PRESET:0.000000\ +ARC51-FREQ-XXxxx:0.150000\ +ARC51-FREQ-xxXxx:0.500000\ +ARC51-FREQ-xxxXX:0.500000\ +ASN41-BEARING:-96.528709\ +ASN41-MAGVAR-Xxxxx:0.000000\ +ASN41-MAGVAR-xXxxx:0.000000\ +ASN41-MAGVAR-xxxXx:0.700000\ +ASN41-MAGVAR-xxXxx:0.700000\ +ASN41-MAGVAR-xxxxX:1.000000\ +ASN41-RANGE:0.611110\ +ASN41-TRACK:263.471291\ +ASN41-VALID:1.000000\ +ASN41-WINDDIR-Xxx:0.000000\ +ASN41-WINDDIR-xXx:0.000000\ +ASN41-WINDDIR-xxX:0.000000\ +ASN41-WINDSPEED-xxX:0.000000\ +ASN41-WINDSPEED-Xxx:0.000000\ +ASN41-WINDSPEED-xXx:0.000000\ +BASE_SENSOR_BAROALT:32.168477\ +BASE_SENSOR_IAS:8.814941\ +BASE_SENSOR_RADALT:2.158444\ +BASE_SENSOR_TAS:8.828558\ +BDHI_DME_FLAG:0.000000\ +BDHI_DME_Xxx:0.000000\ +BDHI_DME_xxX:0.000000\ +BDHI_DME_xXx:0.000000\ +BDHI_HDG:259.449462\ +BDHI_ILS_GS:-1.000000\ +BDHI_ILS_LOC:-1.000000\ +BDHI_NEEDLE1:0.000000\ +BDHI_NEEDLE2:0.000000\ +COMPASS_HDG:190.550445\ +CURRTIME_HOURS:6.755694\ +CURRTIME_MINS:45.341667\ +CURRTIME_SECS:19.921767\ +D_ALT_100S:105.539620\ +D_ALT_10K:105.539620\ +D_ALT_1K:105.539620\ +D_FUEL:2716.651885\ +D_IAS:0.000000\ +FM_AIRSPEED:3.231500\ +FM_GFORCE:0.997350\ +OIL_PRESSURE:40.086509\ +RPM:55.773540\ +STOPWATCH_MINS:0.000000\ +STOPWATCH_SECS:0.000000\ +TACAN_CHANNEL:0.000000\ +UHF_FREQ:255.500000\ +VHF_AM_FREQ:124.000000\ +VVI:0.000013\ +WHEEL_CHOCKS_STATE:0.000000\ +WS_IR_MISSILE_LOCK:0.000000\ +NAV_CURPOS_LAT_nnnnX:0.000000\ +NAV_CURPOS_LAT_nnnXn:0.520457\ +NAV_CURPOS_LAT_nnXnn:0.000000\ +NAV_CURPOS_LAT_nXnnn:0.500000\ +NAV_CURPOS_LAT_Xnnnn:0.400000\ +NAV_CURPOS_LON_nnnnnX:0.500000\ +NAV_CURPOS_LON_nnnnXn:0.726362\ +NAV_CURPOS_LON_nnnXnn:0.500000\ +NAV_CURPOS_LON_nnXnnn:0.800000\ +NAV_CURPOS_LON_nXnnnn:0.300000\ +NAV_CURPOS_LON_Xnnnnn:0.000000\ +NAV_DEST_LAT_nnnnX:0.000000\ +NAV_DEST_LAT_nnnXn:0.521700\ +NAV_DEST_LAT_nnXnn:0.000000\ +NAV_DEST_LAT_nXnnn:0.500000\ +NAV_DEST_LAT_Xnnnn:0.400000\ +NAV_DEST_LON_nnnnnX:0.500000\ +NAV_DEST_LON_nnnnXn:0.639908\ +NAV_DEST_LON_nnnXnn:0.500000\ +NAV_DEST_LON_nnXnnn:0.800000\ +NAV_DEST_LON_nXnnnn:0.300000\ +NAV_DEST_LON_Xnnnnn:0.000000\ +]] + +end + +function ExportScript.TomTom(mainPanelDevice) +--this function will display the values seen on the Navigation computer + + local Nav_CurPos_Lat_Xnnnn = Round(math.floor(mainPanelDevice:get_argument_value(178)*10),0) + local Nav_CurPos_Lat_nXnnn = Round(math.floor(mainPanelDevice:get_argument_value(179)*10),0) + local Nav_CurPos_Lat_nnXnn = Round(math.floor(mainPanelDevice:get_argument_value(180)*10),0) + local Nav_CurPos_Lat_nnnXn = Round(math.floor(mainPanelDevice:get_argument_value(181)*10),0) + local Nav_CurPos_Lat_nnnnX = Round(math.floor(mainPanelDevice:get_argument_value(182)*10),0) + + if Nav_CurPos_Lat_nnnnX < 5 then + Nav_CurPos_Lat_nnnnX = "N" + else + Nav_CurPos_Lat_nnnnX = "S" + end + + local Nav_CurPos_Lat = Nav_CurPos_Lat_Xnnnn .. Nav_CurPos_Lat_nXnnn + .. Nav_CurPos_Lat_nnXnn .. Nav_CurPos_Lat_nnnXn .. Nav_CurPos_Lat_nnnnX + + ExportScript.Tools.SendData(2010, "PRESENT\n" .. Nav_CurPos_Lat) + + + local Nav_CurPos_Lon_Xnnnnn = Round(math.floor(mainPanelDevice:get_argument_value(184)*10),0) + local Nav_CurPos_Lon_nXnnnn = Round(math.floor(mainPanelDevice:get_argument_value(185)*10),0) + local Nav_CurPos_Lon_nnXnnn = Round(math.floor(mainPanelDevice:get_argument_value(186)*10),0) + local Nav_CurPos_Lon_nnnXnn = Round(math.floor(mainPanelDevice:get_argument_value(187)*10),0) + local Nav_CurPos_Lon_nnnnXn = Round(math.floor(mainPanelDevice:get_argument_value(188)*10),0) + local Nav_CurPos_Lon_nnnnnX = Round(math.floor(mainPanelDevice:get_argument_value(189)*10),0) + + + if Nav_CurPos_Lon_nnnnnX < 5 then + Nav_CurPos_Lon_nnnnnX = "W" + else + Nav_CurPos_Lon_nnnnnX = "E" + end + + local Nav_CurPos_Lon = Nav_CurPos_Lon_Xnnnnn .. Nav_CurPos_Lon_nXnnnn .. Nav_CurPos_Lon_nnXnnn + .. Nav_CurPos_Lon_nnnXnn .. Nav_CurPos_Lon_nnnnXn .. Nav_CurPos_Lon_nnnnnX + + ExportScript.Tools.SendData(2011, "POSIT\n" .. Nav_CurPos_Lon) + + + local Nav_Dest_Lat_Xnnnn = Round(math.floor(mainPanelDevice:get_argument_value(191)*10),0) + local Nav_Dest_Lat_nXnnn = Round(math.floor(mainPanelDevice:get_argument_value(192)*10),0) + local Nav_Dest_Lat_nnXnn = Round(math.floor(mainPanelDevice:get_argument_value(193)*10),0) + local Nav_Dest_Lat_nnnXn = Round(math.floor(mainPanelDevice:get_argument_value(194)*10),0) + local Nav_Dest_Lat_nnnnX = Round(math.floor(mainPanelDevice:get_argument_value(195)*10),0) + + if Nav_Dest_Lat_nnnnX < 5 then + Nav_Dest_Lat_nnnnX = "N" + else + Nav_Dest_Lat_nnnnX = "S" + end + + local Nav_Dest_Lat = Nav_Dest_Lat_Xnnnn .. Nav_Dest_Lat_nXnnn + .. Nav_Dest_Lat_nnXnn .. Nav_Dest_Lat_nnnXn .. Nav_Dest_Lat_nnnnX + + ExportScript.Tools.SendData(2012, "DESTI\n" .. Nav_Dest_Lat) + + local Nav_Dest_Lon_Xnnnnn = Round(math.floor(mainPanelDevice:get_argument_value(197)*10),0) + local Nav_Dest_Lon_nXnnnn = Round(math.floor(mainPanelDevice:get_argument_value(198)*10),0) + local Nav_Dest_Lon_nnXnnn = string.format("%.0f", mainPanelDevice:get_argument_value(199) * 10)--Round(math.floor(mainPanelDevice:get_argument_value(199)*10),0) + local Nav_Dest_Lon_nnnXnn = Round(math.floor(mainPanelDevice:get_argument_value(200)*10),0) + local Nav_Dest_Lon_nnnnXn = Round(math.floor(mainPanelDevice:get_argument_value(201)*10),0) + local Nav_Dest_Lon_nnnnnX = Round(math.floor(mainPanelDevice:get_argument_value(202)*10),0) + + if Nav_Dest_Lon_nnnnnX < 5 + then Nav_Dest_Lon_nnnnnX = "W" + else + Nav_Dest_Lon_nnnnnX = "E" + end + + local Nav_Dest_Lon = Nav_Dest_Lon_Xnnnnn .. Nav_Dest_Lon_nXnnnn .. Nav_Dest_Lon_nnXnnn + .. Nav_Dest_Lon_nnnXnn .. Nav_Dest_Lon_nnnnXn .. Nav_Dest_Lon_nnnnnX + + ExportScript.Tools.SendData(2013, "NATION\n" .. Nav_Dest_Lon) + + ExportScript.Tools.SendData(2014, "P POSTN\n" .. Nav_CurPos_Lat .. "\n" ..Nav_CurPos_Lon) + ExportScript.Tools.SendData(2015, "DEST\n" .. Nav_Dest_Lat .. "\n" ..Nav_Dest_Lon) + + + + + ------------------------------ + -- AN/APN-153 Radar Doppler -- + ------------------------------ + + local Doppler_Speed_Xnn = Round(math.floor(mainPanelDevice:get_argument_value(173)*10),0) + local Doppler_Speed_nXn = Round(math.floor(mainPanelDevice:get_argument_value(174)*10),0) + local Doppler_Speed_nnX = Round(math.floor(mainPanelDevice:get_argument_value(175)*10),0) + + local Doppler_Speed = Doppler_Speed_Xnn .. Doppler_Speed_nXn .. Doppler_Speed_nnX + + ExportScript.Tools.SendData(2016, "DOP Spd\n" .. Doppler_Speed .. "kts") + + + local Doppler_Drift = Round(math.floor(mainPanelDevice:get_argument_value(172)*40),0) + local Doppler_direction = "" + + if Doppler_Drift > 1 then --it is positive + Doppler_Drift = Doppler_Drift + Doppler_direction = "R" + elseif Doppler_Drift < -1 then --it is engative + Doppler_Drift = abs(Doppler_Drift) + Doppler_direction = "L" + else --it is close enough to be center aka 0 + Doppler_Drift = "0" + Doppler_direction = "" + end + + ExportScript.Tools.SendData(2017, "DOP Drift\n" .. Doppler_Drift .. " " .. Doppler_direction) + + ExportScript.Tools.SendData(2018, "DOPPLER\n" .. Doppler_Drift .. " " .. Doppler_direction .. "\n" .. Doppler_Speed .. "kts") + +end + +function ExportScript.UHF_radio(mainPanelDevice) +--This contains most of the actual UHF code + +--[[ + [362] = "%0.4f", --ARC51_Freq_XXxxx + [363] = "%0.4f", --ARC51_Freq_xxXxx + [364] = "%0.4f", --ARC51_Freq_xxxXX + [371] = "%0.4f", --ARC51_Freq_Preset + ]] + + local ARC51_Freq_XXxxx = Round(math.floor(mainPanelDevice:get_argument_value(362)*20), 0) + 22 + local ARC51_Freq_xxXxx = Round((mainPanelDevice:get_argument_value(363)*10),0) + local ARC51_Freq_xxxXX = Round(mainPanelDevice:get_argument_value(364)*100,0) + + -- Some edge cases because we are dealing with numbers instead of strings + if ARC51_Freq_xxxXX == 5 then + ARC51_Freq_xxxXX = "05" + end + if ARC51_Freq_xxxXX == 0 then + ARC51_Freq_xxxXX = "00" + end + + local ARC51_Freq_Preset = Round(math.floor((mainPanelDevice:get_argument_value(371) *100) / 4.75),0) +1 + + + ARC51_Freq = ARC51_Freq_XXxxx .. ARC51_Freq_xxXxx .. "." .. ARC51_Freq_xxxXX + + ExportScript.Tools.SendData(2019, "UHF MHz\n" .. ARC51_Freq) + ExportScript.Tools.SendData(2020, "UHF \n" .. "CH " .. ARC51_Freq_Preset) + + if mainPanelDevice:get_argument_value(366) > 0.5 then + ExportScript.Tools.SendData(2021, "UHF \n" .. "CH " .. ARC51_Freq_Preset) + elseif mainPanelDevice:get_argument_value(366) < -0.5 then + ExportScript.Tools.SendData(2021, "UHF\n" .. "GUARD") + else + ExportScript.Tools.SendData(2021, "UHF MHz\n" .. ARC51_Freq) + end + +end + +function ExportScript.UHF_radioPresets(mainPanelDevice) + +local a4_list_indication_4 = ExportScript.Tools.split(list_indication(4), "%c") + +--[[ Example return +{ + [1] = "-----------------------------------------", + [2] = "txt_chn[1]", + [3] = "255.50", + [4] = "-----------------------------------------", + [5] = "txt_chn[2]", + [6] = "237.30", + [7] = "-----------------------------------------", + [8] = "txt_chn[3]", + [9] = "251.00", + [10] = "-----------------------------------------", + [11] = "txt_chn[4]", + [12] = "254.00", + [13] = "-----------------------------------------", + [14] = "txt_chn[5]", + [15] = "250.00", + [16] = "-----------------------------------------", + [17] = "txt_chn[6]", + [18] = "270.00", + [19] = "-----------------------------------------", + [20] = "txt_chn[7]", + [21] = "257.00", + [22] = "-----------------------------------------", + [23] = "txt_chn[8]", + [24] = "258.00", + [25] = "-----------------------------------------", + [26] = "txt_chn[9]", + [27] = "262.00", + [28] = "-----------------------------------------", + [29] = "txt_chn[10]", + [30] = "259.00", + [31] = "-----------------------------------------", + [32] = "txt_chn[11]", + [33] = "268.00", + [34] = "-----------------------------------------", + [35] = "txt_chn[12]", + [36] = "269.00", + [37] = "-----------------------------------------", + [38] = "txt_chn[13]", + [39] = "260.00", + [40] = "-----------------------------------------", + [41] = "txt_chn[14]", + [42] = "263.00", + [43] = "-----------------------------------------", + [44] = "txt_chn[15]", + [45] = "261.00", + [46] = "-----------------------------------------", + [47] = "txt_chn[16]", + [48] = "267.00", + [49] = "-----------------------------------------", + [50] = "txt_chn[17]", + [51] = "251.00", + [52] = "-----------------------------------------", + [53] = "txt_chn[18]", + [54] = "253.00", + [55] = "-----------------------------------------", + [56] = "txt_chn[19]", + [57] = "266.00", + [58] = "-----------------------------------------", + [59] = "txt_chn[20]", + [60] = "252.00", +} +]] + + local UHF_ch1 = a4_list_indication_4[3] + local UHF_ch2 = a4_list_indication_4[6] + local UHF_ch3 = a4_list_indication_4[9] + local UHF_ch4 = a4_list_indication_4[12] + local UHF_ch5 = a4_list_indication_4[15] + local UHF_ch6 = a4_list_indication_4[18] + local UHF_ch7 = a4_list_indication_4[21] + local UHF_ch8 = a4_list_indication_4[24] + local UHF_ch9 = a4_list_indication_4[27] + local UHF_ch10 = a4_list_indication_4[30] + local UHF_ch11 = a4_list_indication_4[33] + local UHF_ch12 = a4_list_indication_4[36] + local UHF_ch13 = a4_list_indication_4[39] + local UHF_ch14 = a4_list_indication_4[42] + local UHF_ch15 = a4_list_indication_4[45] + local UHF_ch16 = a4_list_indication_4[48] + local UHF_ch17 = a4_list_indication_4[51] + local UHF_ch18 = a4_list_indication_4[54] + local UHF_ch19 = a4_list_indication_4[57] + local UHF_ch20 = a4_list_indication_4[60] + + ExportScript.Tools.SendData(2000, "U1 " .. UHF_ch1 + .. "\nU2 " .. UHF_ch2 + .. "\nU3 " .. UHF_ch3 + .. "\nU4 " .. UHF_ch4) + + ExportScript.Tools.SendData(2001, "U5 " .. UHF_ch5 + .. "\nU6 " .. UHF_ch6 + .. "\nU7 " .. UHF_ch7 + .. "\nU8 " .. UHF_ch8) + + ExportScript.Tools.SendData(2002, "U9 " .. UHF_ch9 + .. "\nU10 " .. UHF_ch10 + .. "\nU11 " .. UHF_ch11 + .. "\nU12 " .. UHF_ch12) + + ExportScript.Tools.SendData(2003, "U13 " .. UHF_ch13 + .. "\nU14 " .. UHF_ch14 + .. "\nU15 " .. UHF_ch15 + .. "\nU16 " .. UHF_ch16) + + ExportScript.Tools.SendData(2004, "U17 " .. UHF_ch17 + .. "\nU18 " .. UHF_ch18 + .. "\nU19 " .. UHF_ch19 + .. "\nU12 " .. UHF_ch20) + +end +--[[ notes +n = 1 +return list_indication(n) +list_indication(1) +-----------------------------------------\ +debug_screen\ +\ +children are {\ +-----------------------------------------\ +ias_{D093CE1E-4FB5-4690-B08C-20DD67DEAED3}\ + 0KIAS\ +-----------------------------------------\ +tas_{10829118-99FD-47e4-A037-1D4B1BECA9F5}\ + 0KTAS\ +-----------------------------------------\ +{32CC9A49-7C9D-44c0-9584-C132978873BD}\ +i 0.0\ +-----------------------------------------\ +{1657C7D5-D301-4684-8ABF-2E9E86698559}\ +M 0.00\ +-----------------------------------------\ +{8BAAF7F5-011D-4c7c-89EE-AFFDDCB48965}\ +G 0.0\ +-----------------------------------------\ +{39144282-FEA3-4162-9B00-C5711F7469F0}\ +TH:0.0\ +-----------------------------------------\ +{3DA17F46-CF15-4122-9856-9DC62D282A97}\ +(null)\ +-----------------------------------------\ +{7D0B208A-3549-4bf4-AB7C-55E425D5B18A}\ +(null)\ +-----------------------------------------\ +{E3785616-B6C1-45a2-88E5-ED3A97B33633}\ +(null)\ +-----------------------------------------\ +{3E04EAD0-9E85-4324-9B75-29566B80B5BB}\ +VV: 0\ +-----------------------------------------\ +{78E1D8C3-F18B-4e47-A6B0-072FE74F9CE2}\ +RPM:0.0%\ +}\ +list_indication(4) +-----------------------------------------\ +txt_chn[1]\ +255.50\ +-----------------------------------------\ +txt_chn[2]\ +237.30\ +-----------------------------------------\ +txt_chn[3]\ +251.00\ +-----------------------------------------\ +txt_chn[4]\ +254.00\ +-----------------------------------------\ +txt_chn[5]\ +250.00\ +-----------------------------------------\ +txt_chn[6]\ +270.00\ +-----------------------------------------\ +txt_chn[7]\ +257.00\ +-----------------------------------------\ +txt_chn[8]\ +258.00\ +-----------------------------------------\ +txt_chn[9]\ +262.00\ +-----------------------------------------\ +txt_chn[10]\ +259.00\ +-----------------------------------------\ +txt_chn[11]\ +268.00\ +-----------------------------------------\ +txt_chn[12]\ +269.00\ +-----------------------------------------\ +txt_chn[13]\ +260.00\ +-----------------------------------------\ +txt_chn[14]\ +263.00\ +-----------------------------------------\ +txt_chn[15]\ +261.00\ +-----------------------------------------\ +txt_chn[16]\ +267.00\ +-----------------------------------------\ +txt_chn[17]\ +251.00\ +-----------------------------------------\ +txt_chn[18]\ +253.00\ +-----------------------------------------\ +txt_chn[19]\ +266.00\ +-----------------------------------------\ +txt_chn[20]\ +252.00\ +]] + +function ExportScript.Tacan_radio(mainPanelDevice) + local TACAN_Channel_10s = Round(mainPanelDevice:get_argument_value(901)*20,0) + local TACAN_Channel_1s = Round(mainPanelDevice:get_argument_value(902)*10,0) + ExportScript.Tools.SendData(2022, "TACAN\n" .. TACAN_Channel_10s .. TACAN_Channel_1s) +end + + +function ExportScript.AFCSpanel(mainPanelDevice) + --[[required stuff +[167] = "%0.1f", --AFCS_HDG_100s +[168] = "%0.1f", --AFCS_HDG_10s +[169] = "%0.1f", --AFCS_HDG_1s +]] + local AFCS_HDG_100s = Round(mainPanelDevice:get_argument_value(167)*10,0) + local AFCS_HDG_10s = Round(mainPanelDevice:get_argument_value(168)*10,0) + local AFCS_HDG_1s = Round(mainPanelDevice:get_argument_value(169)*10,0) + ExportScript.Tools.SendData(2023, "AFCS\n" .. AFCS_HDG_100s .. AFCS_HDG_10s ..AFCS_HDG_1s .. "°") + +end + +function ExportScript.FlightControls(mainPanelDevice) + local flap_indicator = mainPanelDevice:get_argument_value(23) + + if flap_indicator < 0.27 then + flap_indicator = "UP" + elseif flap_indicator < 0.67 then + flap_indicator = "HALF" + else + flap_indicator = "DOWN" + end + ExportScript.Tools.SendData(2024, "FLAPS\n" .. flap_indicator) +end + +function ExportScript.FlightInstruments(mainPanelDevice) + -- AOA + local AngleOfAttack = Round(mainPanelDevice:get_argument_value(840)*30,0) + ExportScript.Tools.SendData(2025, "AOA\n" .. AngleOfAttack) + + -- Vertical Velocity + -- TODO: This is a not a linear function. You will have to find the formula. Using a placeholder + local verticalVelocity = Round(mainPanelDevice:get_argument_value(800)*30,0) + local multiplier_verticalVelocity = 6000 + ExportScript.Tools.SendData(2026, "VV\n" .. verticalVelocity*multiplier_verticalVelocity) + + --[[ altimeter stuff. where is the radar altimeter indication on the aircraft? + [600] = "%0.4f", --RadarAltimeter + [820] = "%0.4f", --Altimeter Needle + [821] = "%0.4f", --Altimeter10K + [822] = "%0.4f", --Altimeter1K + [823] = "%0.4f", --Altimeter100s + [602] = "%0.4f", --AN/APN-141 Radar Altimeter {0.5,0,1} + [603] = "%0.4f", --AN/APN-141 Radar Altimeter {1,-1,0} + ]] + + + local AltimeterNeedle = Round(mainPanelDevice:get_argument_value(820)*1000,0) + local Altimeter10K = math.floor(mainPanelDevice:get_argument_value(821)*10) + local Altimeter1K = math.floor(mainPanelDevice:get_argument_value(822)*10) + local Altimeter100s = Round(mainPanelDevice:get_argument_value(823)*100,0) + + AltimeterNeedle = AddZeros3(AltimeterNeedle) + + ExportScript.Tools.SendData(2027, AltimeterNeedle) + ExportScript.Tools.SendData(2028, Altimeter10K) + ExportScript.Tools.SendData(2029, Altimeter1K) + ExportScript.Tools.SendData(2030, Altimeter100s) + + local totalAltimeter = Altimeter10K .. Altimeter1K .. AltimeterNeedle + + --TODO: format the altitude readout so that it looks normal w/ commas and no leading 0s + ExportScript.Tools.SendData(2031, totalAltimeter) + --TODO: Have the radar altimeter active, but the baro kicks in when the radalt kicks out + --TODO: airspeed + --TODO: liquid oxygen + --TODO: fuel flow + --TODO: fuel quantity + --TODO: percent rpm + --TODO: exh temp + --TODO: P.R guage and number + --TODO: oil psi + --TODO: Clock + --TODO: G meter + --TODO: Countermeasure stuff + --TODO: full weapons panel + --TODO: warning lights + --TODO: buttons and switches + +end + +--TODO: make a LAWS indication that popts up on the kts display]] + +function ExportScript.radar_mode_and_tilt(mainPanelDevice) + --[120] = "%0.4f", --AN/APG-53A Radar Mode Switch {0.1,0,0.4} + --[122] = "%0.4f", --Radar Antenna Tilt Switch {0.4,0,1} + local radar_mode + if mainPanelDevice:get_argument_value(120) > 0 and mainPanelDevice:get_argument_value(120) < 0.2 then --0.1 + radar_mode = "STBY" + elseif mainPanelDevice:get_argument_value(120) > 0.1 and mainPanelDevice:get_argument_value(120) < 0.3 then --0.2 + radar_mode = "SRCH" + elseif mainPanelDevice:get_argument_value(120) > 0.2 and mainPanelDevice:get_argument_value(120) < 0.4 then --0.3 + radar_mode = "TC" + elseif mainPanelDevice:get_argument_value(120) > 0.3 then + radar_mode = "A/G" + else radar_mode = "OFF" + end + local radar_tilt = ExportScript.Tools.round(mainPanelDevice:get_argument_value(122), 1) * 5 + if radar_tilt == 1 then + radar_tilt = "+5" + elseif radar_tilt == 2 then + radar_tilt = "0" + elseif radar_tilt == 3 then + radar_tilt = "-5" + elseif radar_tilt == 4 then + radar_tilt = "-10" + elseif radar_tilt == 5 then + radar_tilt = "-15" + else radar_tilt = "+10" + end + + local radar_mode_and_tilt = "MODE" .. "\n" .. radar_mode .. "\n" .. "TILT" .. + "\n" .. radar_tilt + + ExportScript.Tools.SendData(1250, radar_mode_and_tilt) + +end + +function ExportScript.drop_interval(mainPanelDevice) + --[742] = "%0.2f", --AWRS Drop Interval Knob {0,0,0.9} + + local drop_interval = "DRP INTVL" .. "\n" .. ((ExportScript.Tools.round(mainPanelDevice:get_argument_value(742), 2) * 10) / 0.05) + 20 + + ExportScript.Tools.SendData(1251, drop_interval) + +end + +------------------------------ +-- General Helper Functions -- +------------------------------ + +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 + +-- split reference +function ExportScript.Tools.split(stringvalue, delimiter) + local result = {}; + for match in (stringvalue..delimiter):gmatch("(.-)"..delimiter) do + table.insert(result, match); + end + return result; +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/AH-64D_BLK_II.lua b/Scripts/DCS-ExportScript/ExportsModules/AH-64D_BLK_II.lua new file mode 100644 index 00000000..bd29c865 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/AH-64D_BLK_II.lua @@ -0,0 +1,1778 @@ +-- AH64D_BLK_II +-- https://github.com/asherao/DCS-ExportScripts + +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info + +ExportScript.FoundDCSModule = true +ExportScript.Version.AH64D_BLK_II = "1.2.1" + +ExportScript.exportAdditionalInfo = false +--[[ +If set to true, will add additional info on the low tick export: + - AirportInfo: Provides info on the two closest airports + - WindsAloft: Gets winds at the aircraft + - GroundRadar: Reports 2 closest friendlies and 2 enemies (Use in Single Player) + - AirRadar: Reports 2 closest friendlies and 2 enemies (Use in Single Player) + - IglaHunter: Locates closest Igla (Use in Single Player) +]] + +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 + ]] + + -- PILOT FLIGHT CONTROLS + [398] = "%0.4f", -- Left Throttle PLT Power Lever, (-1, 1) + [399] = "%0.4f", -- Right Throttle PLT Power Lever, (-1, 1) + [470] = "%0.4f", -- Stick Pitch PLT, (-1, 1) + [471] = "%0.4f", -- StickRoll PLT, (-1, 1) + [474] = "%0.4f", -- Collective PLT, (-1, 1) + [476] = "%0.4f", -- Rudder PLT, (-1, 1) + [480] = "%0.4f", -- Left Wheel Brake PLT, (0, 1) + [481] = "%0.4f", -- Right Wheel Brake PLT, (0, 1) + + -- CPG FLIGHT CONTROLS + [472] = "%0.4f", -- StickPitchCPG, (-1, 1) + [473] = "%0.4f", -- StickRollCPG, (-1, 1) + [475] = "%0.4f", -- CollectiveCPG, (-1, 1) + [478] = "%0.4f", -- RudderCPG, (-1, 1) + [482] = "%0.4f", -- LeftWheelBrakeCPG, (0, 1) + [483] = "%0.4f", -- RightWheelBrakeCPG, (0, 1) + [628] = "%0.4f", -- LeftThrottleCPG, (0, 1) + [629] = "%0.4f", -- RightThrottleCPG, (0, 1) + + -- Doors + [795] = "%0.4f", -- Pilot door, (0, 1) + [798] = "%0.4f", -- Copilot door, (0, 1) + + -- Standby Attitude Indicator Pilot + [622] = "%0.4f", -- saiPitch , (-0.95, 0.95) + [623] = "%0.4f", -- saiBank , (1.0, -1.0) + [624] = "%0.4f", -- saiOffFlag , (0, 1) + [625] = "%0.4f", -- saiArrowPointer , (-1.0, 1.0) + [626] = "%0.4f", -- saiSlipBall , (-1, 1) + [627] = "%0.4f", -- saiTurn , (-1.0, 1.0) + + -- Standby Airspeed Indicator + [469] = "%0.4f", -- ias, (-1, 1) + -- IASinput = (0.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 200.0, 230.0, 240.0, 250.0) + -- IASoutput = (0.0, 0.018, 0.05, 0.09, 0.142, 0.2, 0.27, 0.345, 0.394, 0.432, 0.465, 0.505, 0.543, 0.581, 0.623, 0.789, 0.896, 0.934, 0.967) + + --Standby Altimeter + [479] = "%0.4f", -- BaroAltimeterAltitude, (0.0, 1000.0), (0.0, 1.0) + [605] = "%0.4f", -- BaroAltimeterAltitude01000, (0.0, 10.0), (0.0, 1.0) + [606] = "%0.4f", -- BaroAltimeterAltitude10000, (0.0, 10.0), (0.0, 1.0) + [607] = "%0.4f", -- BaroAltimeterPressure1100, (26.0, 31.0), (0.0, 1.0) + [608] = "%0.4f", -- BaroAltimeterPressure0010, (0.0, 10.0), (0.0, 1.0) + [609] = "%0.4f", -- BaroAltimeterPressure0001, (0.0, 10.0), (0.0, 1.0) + + -- Free Air Temperature Gage + [636] = "%0.4f", -- FatGage + -- FATinput = (-70.0, -60.0, -50.0, -40.0, -30.0, 50.0) + -- FAToutput = ( 0.0, 0.0674, 0.1405, 0.22, 0.305, 1.0) + + -- Vibrations + [820] = "%0.4f", -- Vibration1 + [821] = "%0.4f", -- Vibration2 + [822] = "%0.4f", -- Vibration3 + [823] = "%0.4f", -- Vibration4 + [824] = "%0.4f", -- Vibration5 + + -- Misc + [635] = "%0.4f", -- Copilot mirror, (0, 1), 1 is on + +} + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + -- PILOT MFD LEFT + [10] = "%.4f", -- Left MPD Pushbutton WPN, (1, 0, 1) + [11] = "%.4f", -- Left MPD Pushbutton FCR, (1, 0, 1) + [12] = "%.4f", -- Left MPD Pushbutton L6, (1, 0, 1) + [13] = "%.4f", -- Left MPD Pushbutton L5, (1, 0, 1) + [14] = "%.4f", -- Left MPD Pushbutton L4, (1, 0, 1) + [15] = "%.4f", -- Left MPD Pushbutton L3, (1, 0, 1) + [16] = "%.4f", -- Left MPD Pushbutton L2, (1, 0, 1) + [17] = "%.4f", -- Left MPD Pushbutton L1, (1, 0, 1) + [18] = "%.4f", -- Left MPD Brightness Control Knob , (0, 0, 1) + [19] = "%.4f", -- Left MPD Video Control Knob , (0, 0, 1) + [20] = "%.4f", -- Left MPD Pushbutton T1, (1, 0, 1) + [21] = "%.4f", -- Left MPD Pushbutton T2, (1, 0, 1) + [22] = "%.4f", -- Left MPD Pushbutton T3, (1, 0, 1) + [23] = "%.4f", -- Left MPD Pushbutton T4, (1, 0, 1) + [24] = "%.4f", -- Left MPD Pushbutton T5, (1, 0, 1) + [25] = "%.4f", -- Left MPD Pushbutton T6, (1, 0, 1) + [26] = "%.4f", -- Left MPD Mode Knob DAY/NIGHT/MONO, (-0.5, 0, 1) + [27] = "%.4f", -- Left MPD Pushbutton Asterisk, (1, 0, 1) + [28] = "%.4f", -- Left MPD Pushbutton R1, (1, 0, 1) + [29] = "%.4f", -- Left MPD Pushbutton R2, (1, 0, 1) + [30] = "%.4f", -- Left MPD Pushbutton R3, (1, 0, 1) + [31] = "%.4f", -- Left MPD Pushbutton R4, (1, 0, 1) + [32] = "%.4f", -- Left MPD Pushbutton R5, (1, 0, 1) + [33] = "%.4f", -- Left MPD Pushbutton R6, (1, 0, 1) + [34] = "%.4f", -- Left MPD Pushbutton VID, (1, 0, 1) + [35] = "%.4f", -- Left MPD Pushbutton COM, (1, 0, 1) + [36] = "%.4f", -- Left MPD Pushbutton A/C, (1, 0, 1) + [37] = "%.4f", -- Left MPD Pushbutton B6, (1, 0, 1) + [38] = "%.4f", -- Left MPD Pushbutton B5, (1, 0, 1) + [39] = "%.4f", -- Left MPD Pushbutton B4, (1, 0, 1) + [40] = "%.4f", -- Left MPD Pushbutton B3, (1, 0, 1) + [41] = "%.4f", -- Left MPD Pushbutton B2, (1, 0, 1) + [42] = "%.4f", -- Left MPD Pushbutton B1/M(Menu), (1, 0, 1) + [43] = "%.4f", -- Left MPD Pushbutton TSD, (1, 0, 1) + + + --PILOT MFD RIGHT + [44] = "%.4f", -- Right MPD Pushbutton WPN, (1, 0, 1) + [45] = "%.4f", -- Right MPD Pushbutton FCR, (1, 0, 1) + [46] = "%.4f", -- Right MPD Pushbutton L6, (1, 0, 1) + [47] = "%.4f", -- Right MPD Pushbutton L5, (1, 0, 1) + [48] = "%.4f", -- Right MPD Pushbutton L4, (1, 0, 1) + [49] = "%.4f", -- Right MPD Pushbutton L3, (1, 0, 1) + [50] = "%.4f", -- Right MPD Pushbutton L2, (1, 0, 1) + [51] = "%.4f", -- Right MPD Pushbutton L1, (1, 0, 1) + [52] = "%.4f", -- Right MPD Brightness Control Knob , (0, 0, 1) + [53] = "%.4f", -- Right MPD Video Control Knob , (0, 0, 1) + [54] = "%.4f", -- Right MPD Pushbutton T1, (1, 0, 1) + [55] = "%.4f", -- Right MPD Pushbutton T2, (1, 0, 1) + [56] = "%.4f", -- Right MPD Pushbutton T3, (1, 0, 1) + [57] = "%.4f", -- Right MPD Pushbutton T4, (1, 0, 1) + [58] = "%.4f", -- Right MPD Pushbutton T5, (1, 0, 1) + [59] = "%.4f", -- Right MPD Pushbutton T6, (1, 0, 1) + [60] = "%.4f", -- Right MPD Mode Knob DAY/NIGHT/MONO, (-0.5, 0, 1) + [61] = "%.4f", -- Right MPD Pushbutton Asterisk, (1, 0, 1) + [62] = "%.4f", -- Right MPD Pushbutton R1, (1, 0, 1) + [63] = "%.4f", -- Right MPD Pushbutton R2, (1, 0, 1) + [64] = "%.4f", -- Right MPD Pushbutton R3, (1, 0, 1) + [65] = "%.4f", -- Right MPD Pushbutton R4, (1, 0, 1) + [66] = "%.4f", -- Right MPD Pushbutton R5, (1, 0, 1) + [67] = "%.4f", -- Right MPD Pushbutton R6, (1, 0, 1) + [68] = "%.4f", -- Right MPD Pushbutton VID, (1, 0, 1) + [69] = "%.4f", -- Right MPD Pushbutton COM, (1, 0, 1) + [70] = "%.4f", -- Right MPD Pushbutton A/C, (1, 0, 1) + [71] = "%.4f", -- Right MPD Pushbutton B6, (1, 0, 1) + [72] = "%.4f", -- Right MPD Pushbutton B5, (1, 0, 1) + [73] = "%.4f", -- Right MPD Pushbutton B4, (1, 0, 1) + [74] = "%.4f", -- Right MPD Pushbutton B3, (1, 0, 1) + [75] = "%.4f", -- Right MPD Pushbutton B2, (1, 0, 1) + [76] = "%.4f", -- Right MPD Pushbutton B1/M(Menu), (1, 0, 1) + [77] = "%.4f", -- Right MPD Pushbutton TSD, (1, 0, 1) + + -- CPG MFD LEFT + [78] = "%.4f", -- Left MPD Pushbutton WPN, (1, 0, 1) + [79] = "%.4f", -- Left MPD Pushbutton FCR, (1, 0, 1) + [80] = "%.4f", -- Left MPD Pushbutton L6, (1, 0, 1) + [81] = "%.4f", -- Left MPD Pushbutton L5, (1, 0, 1) + [82] = "%.4f", -- Left MPD Pushbutton L4, (1, 0, 1) + [83] = "%.4f", -- Left MPD Pushbutton L3, (1, 0, 1) + [84] = "%.4f", -- Left MPD Pushbutton L2, (1, 0, 1) + [85] = "%.4f", -- Left MPD Pushbutton L1, (1, 0, 1) + [86] = "%.4f", -- Left MPD Brightness Control Knob , (0, 0, 1) + [87] = "%.4f", -- Left MPD Video Control Knob , (0, 0, 1) + [88] = "%.4f", -- Left MPD Pushbutton T1, (1, 0, 1) + [89] = "%.4f", -- Left MPD Pushbutton T2, (1, 0, 1) + [90] = "%.4f", -- Left MPD Pushbutton T3, (1, 0, 1) + [91] = "%.4f", -- Left MPD Pushbutton T4, (1, 0, 1) + [92] = "%.4f", -- Left MPD Pushbutton T5, (1, 0, 1) + [93] = "%.4f", -- Left MPD Pushbutton T6, (1, 0, 1) + [94] = "%.4f", -- Left MPD Mode Knob DAY/NIGHT/MONO, (-0.5, 0, 1) + [95] = "%.4f", -- Left MPD Pushbutton Asterisk, (1, 0, 1) + [96] = "%.4f", -- Left MPD Pushbutton R1, (1, 0, 1) + [97] = "%.4f", -- Left MPD Pushbutton R2, (1, 0, 1) + [98] = "%.4f", -- Left MPD Pushbutton R3, (1, 0, 1) + [99] = "%.4f", -- Left MPD Pushbutton R4, (1, 0, 1) + [100] = "%.4f", -- Left MPD Pushbutton R5, (1, 0, 1) + [101] = "%.4f", -- Left MPD Pushbutton R6, (1, 0, 1) + [102] = "%.4f", -- Left MPD Pushbutton VID, (1, 0, 1) + [103] = "%.4f", -- Left MPD Pushbutton COM, (1, 0, 1) + [104] = "%.4f", -- Left MPD Pushbutton A/C, (1, 0, 1) + [105] = "%.4f", -- Left MPD Pushbutton B6, (1, 0, 1) + [106] = "%.4f", -- Left MPD Pushbutton B5, (1, 0, 1) + [107] = "%.4f", -- Left MPD Pushbutton B4, (1, 0, 1) + [108] = "%.4f", -- Left MPD Pushbutton B3, (1, 0, 1) + [109] = "%.4f", -- Left MPD Pushbutton B2, (1, 0, 1) + [110] = "%.4f", -- Left MPD Pushbutton B1/M(Menu), (1, 0, 1) + [111] = "%.4f", -- Left MPD Pushbutton TSD, (1, 0, 1) + + --CPG MFD RIGHT + [112] = "%.4f", -- Right MPD Pushbutton WPN, (1, 0, 1) + [113] = "%.4f", -- Right MPD Pushbutton FCR, (1, 0, 1) + [114] = "%.4f", -- Right MPD Pushbutton L6, (1, 0, 1) + [115] = "%.4f", -- Right MPD Pushbutton L5, (1, 0, 1) + [116] = "%.4f", -- Right MPD Pushbutton L4, (1, 0, 1) + [117] = "%.4f", -- Right MPD Pushbutton L3, (1, 0, 1) + [118] = "%.4f", -- Right MPD Pushbutton L2, (1, 0, 1) + [119] = "%.4f", -- Right MPD Pushbutton L1, (1, 0, 1) + [120] = "%.4f", -- Right MPD Brightness Control Knob , (0, 0, 1) + [121] = "%.4f", -- Right MPD Video Control Knob , (0, 0, 1) + [122] = "%.4f", -- Right MPD Pushbutton T1, (1, 0, 1) + [123] = "%.4f", -- Right MPD Pushbutton T2, (1, 0, 1) + [124] = "%.4f", -- Right MPD Pushbutton T3, (1, 0, 1) + [125] = "%.4f", -- Right MPD Pushbutton T4, (1, 0, 1) + [126] = "%.4f", -- Right MPD Pushbutton T5, (1, 0, 1) + [127] = "%.4f", -- Right MPD Pushbutton T6, (1, 0, 1) + [128] = "%.4f", -- Right MPD Mode Knob DAY/NIGHT/MONO, (-0.5, 0, 1) + [129] = "%.4f", -- Right MPD Pushbutton Asterisk, (1, 0, 1) + [130] = "%.4f", -- Right MPD Pushbutton R1, (1, 0, 1) + [131] = "%.4f", -- Right MPD Pushbutton R2, (1, 0, 1) + [132] = "%.4f", -- Right MPD Pushbutton R3, (1, 0, 1) + [133] = "%.4f", -- Right MPD Pushbutton R4, (1, 0, 1) + [134] = "%.4f", -- Right MPD Pushbutton R5, (1, 0, 1) + [135] = "%.4f", -- Right MPD Pushbutton R6, (1, 0, 1) + [136] = "%.4f", -- Right MPD Pushbutton VID, (1, 0, 1) + [137] = "%.4f", -- Right MPD Pushbutton COM, (1, 0, 1) + [138] = "%.4f", -- Right MPD Pushbutton A/C, (1, 0, 1) + [139] = "%.4f", -- Right MPD Pushbutton B6, (1, 0, 1) + [140] = "%.4f", -- Right MPD Pushbutton B5, (1, 0, 1) + [141] = "%.4f", -- Right MPD Pushbutton B4, (1, 0, 1) + [142] = "%.4f", -- Right MPD Pushbutton B3, (1, 0, 1) + [143] = "%.4f", -- Right MPD Pushbutton B2, (1, 0, 1) + [144] = "%.4f", -- Right MPD Pushbutton B1/M(Menu), (1, 0, 1) + [145] = "%.4f", -- Right MPD Pushbutton TSD, (1, 0, 1) + + -- TEDAC + [146] = "%.4f", -- EL Adjust Rocker Switch Up/Increase, (1, 0, 1) + [147] = "%.4f", -- R/F Rocker Switch Up/Increase, (1, 0, 1) + [148] = "%.4f", -- FLIR GAIN Control Knob , (0, 0, 1) + [149] = "%.4f", -- FLIR LEV Control Knob , (0, 0, 1) + [150] = "%.4f", -- TAD Video Select Button - Press to select TADS as the video source , (1, 0, 1) + [151] = "%.4f", -- FCR Video Select Button - Press to select FCR targeting format , (1, 0, 1) + [152] = "%.4f", -- PNV Video Select Button - Press to select PNVS as the video source , (1, 0, 1) + [153] = "%.4f", -- G/S Video Select Button - Press to activate grayscale for the video display , (1, 0, 1) + [154] = "%.4f", -- Display Mode Knob DAY/NT/OFF, (-0.5, 0, 1) + [155] = "%.4f", -- SYM Rocker Switch Up/Increase, (1, 0, 1) + [156] = "%.4f", -- BRT Rocker Switch Up/Increase, (1, 0, 1) + [157] = "%.4f", -- CON Rocker Switch Up/Increase, (1, 0, 1) + [158] = "%.4f", -- Asterisk (*) Button - Press to adjust the brightness and contrast to nominal settings , (1, 0, 1) + [159] = "%.4f", -- FILTER Button - Press to select filter in the TADS FLIR sensor , (1, 0, 1) + [160] = "%.4f", -- FREEZE Button - Press to freeze the video imaging on the TDU , (1, 0, 1) + [161] = "%.4f", -- ACM Button - Press to activate ACM , (1, 0, 1) + [162] = "%.4f", -- AZ/EL Boresight Enable Button - Press to enable boresight controls , (1, 0, 1) + [163] = "%.4f", -- AZ Adjust Rocker Switch Left, (-1, -1, 0) + + -- CPG KEYBOARD UNIT + [164] = "%.4f", -- KU Key A, (1, 0, 1) + [165] = "%.4f", -- KU Key B, (1, 0, 1) + [166] = "%.4f", -- KU Key C, (1, 0, 1) + [167] = "%.4f", -- KU Key D, (1, 0, 1) + [168] = "%.4f", -- KU Key E, (1, 0, 1) + [169] = "%.4f", -- KU Key F, (1, 0, 1) + [170] = "%.4f", -- KU Key 1, (1, 0, 1) + [171] = "%.4f", -- KU Key 2, (1, 0, 1) + [172] = "%.4f", -- KU Key 3, (1, 0, 1) + [173] = "%.4f", -- KU Key G, (1, 0, 1) + [174] = "%.4f", -- KU Key H, (1, 0, 1) + [175] = "%.4f", -- KU Key I, (1, 0, 1) + [176] = "%.4f", -- KU Key J, (1, 0, 1) + [177] = "%.4f", -- KU Key K, (1, 0, 1) + [178] = "%.4f", -- KU Key L, (1, 0, 1) + [179] = "%.4f", -- KU Key 4, (1, 0, 1) + [180] = "%.4f", -- KU Key 5, (1, 0, 1) + [181] = "%.4f", -- KU Key 6, (1, 0, 1) + [182] = "%.4f", -- KU Key M, (1, 0, 1) + [183] = "%.4f", -- KU Key N, (1, 0, 1) + [184] = "%.4f", -- KU Key O, (1, 0, 1) + [185] = "%.4f", -- KU Key P, (1, 0, 1) + [186] = "%.4f", -- KU Key Q, (1, 0, 1) + [187] = "%.4f", -- KU Key R, (1, 0, 1) + [188] = "%.4f", -- KU Key 7, (1, 0, 1) + [189] = "%.4f", -- KU Key 8, (1, 0, 1) + [190] = "%.4f", -- KU Key 9, (1, 0, 1) + [191] = "%.4f", -- KU Key S, (1, 0, 1) + [192] = "%.4f", -- KU Key T, (1, 0, 1) + [193] = "%.4f", -- KU Key U, (1, 0, 1) + [194] = "%.4f", -- KU Key V, (1, 0, 1) + [195] = "%.4f", -- KU Key W, (1, 0, 1) + [196] = "%.4f", -- KU Key X, (1, 0, 1) + [197] = "%.4f", -- KU Key ., (1, 0, 1) + [198] = "%.4f", -- KU Key 0, (1, 0, 1) + [199] = "%.4f", -- KU Key +/-, (1, 0, 1) + [200] = "%.4f", -- KU Key Y, (1, 0, 1) + [201] = "%.4f", -- KU Key Z, (1, 0, 1) + [202] = "%.4f", -- KU Key /, (1, 0, 1) + [203] = "%.4f", -- KU Key BKS, (1, 0, 1) + [204] = "%.4f", -- KU Key SPC, (1, 0, 1) + [205] = "%.4f", -- KU Key *, (1, 0, 1) + [206] = "%.4f", -- KU Key / ('divide'), (1, 0, 1) + [207] = "%.4f", -- KU Key +, (1, 0, 1) + [208] = "%.4f", -- KU Key -, (1, 0, 1) + [209] = "%.4f", -- KU Key CLR, (1, 0, 1) + [210] = "%.4f", -- KU Key Left, (1, 0, 1) + [211] = "%.4f", -- KU Key Right, (1, 0, 1) + [212] = "%.4f", -- KU Key ENTER, (1, 0, 1) + + -- PILOT KEYBOARD UNIT + [213] = "%.4f", -- KU Key A, (1, 0, 1) + [214] = "%.4f", -- KU Key B, (1, 0, 1) + [215] = "%.4f", -- KU Key C, (1, 0, 1) + [216] = "%.4f", -- KU Key D, (1, 0, 1) + [217] = "%.4f", -- KU Key E, (1, 0, 1) + [218] = "%.4f", -- KU Key F, (1, 0, 1) + [219] = "%.4f", -- KU Key 1, (1, 0, 1) + [220] = "%.4f", -- KU Key 2, (1, 0, 1) + [221] = "%.4f", -- KU Key 3, (1, 0, 1) + [222] = "%.4f", -- KU Key G, (1, 0, 1) + [223] = "%.4f", -- KU Key H, (1, 0, 1) + [224] = "%.4f", -- KU Key I, (1, 0, 1) + [225] = "%.4f", -- KU Key J, (1, 0, 1) + [226] = "%.4f", -- KU Key K, (1, 0, 1) + [227] = "%.4f", -- KU Key L, (1, 0, 1) + [228] = "%.4f", -- KU Key 4, (1, 0, 1) + [229] = "%.4f", -- KU Key 5, (1, 0, 1) + [230] = "%.4f", -- KU Key 6, (1, 0, 1) + [231] = "%.4f", -- KU Key M, (1, 0, 1) + [232] = "%.4f", -- KU Key N, (1, 0, 1) + [233] = "%.4f", -- KU Key O, (1, 0, 1) + [234] = "%.4f", -- KU Key P, (1, 0, 1) + [235] = "%.4f", -- KU Key Q, (1, 0, 1) + [236] = "%.4f", -- KU Key R, (1, 0, 1) + [237] = "%.4f", -- KU Key 7, (1, 0, 1) + [238] = "%.4f", -- KU Key 8, (1, 0, 1) + [239] = "%.4f", -- KU Key 9, (1, 0, 1) + [240] = "%.4f", -- KU Key S, (1, 0, 1) + [241] = "%.4f", -- KU Key T, (1, 0, 1) + [242] = "%.4f", -- KU Key U, (1, 0, 1) + [243] = "%.4f", -- KU Key V, (1, 0, 1) + [244] = "%.4f", -- KU Key W, (1, 0, 1) + [245] = "%.4f", -- KU Key X, (1, 0, 1) + [246] = "%.4f", -- KU Key ., (1, 0, 1) + [247] = "%.4f", -- KU Key 0, (1, 0, 1) + [248] = "%.4f", -- KU Key +/-, (1, 0, 1) + [249] = "%.4f", -- KU Key Y, (1, 0, 1) + [250] = "%.4f", -- KU Key Z, (1, 0, 1) + [251] = "%.4f", -- KU Key /, (1, 0, 1) + [252] = "%.4f", -- KU Key BKS, (1, 0, 1) + [253] = "%.4f", -- KU Key SPC, (1, 0, 1) + [254] = "%.4f", -- KU Key *, (1, 0, 1) + [255] = "%.4f", -- KU Key / (divide), (1, 0, 1) + [256] = "%.4f", -- KU Key +, (1, 0, 1) + [257] = "%.4f", -- KU Key -, (1, 0, 1) + [258] = "%.4f", -- KU Key CLR, (1, 0, 1) + [259] = "%.4f", -- KU Key Left, (1, 0, 1) + [260] = "%.4f", -- KU Key Right, (1, 0, 1) + [261] = "%.4f", -- KU Key ENTER, (1, 0, 1) + + -- CPG EUFD + [262] = "%.4f", -- IDM Rocker Switch Up, (1, 0, 1) + [263] = "%.4f", -- WCA Rocker Switch Up, (1, 0, 1) + [264] = "%.4f", -- RTS Rocker Switch Up, (1, 0, 1) + [265] = "%.4f", -- Brightness Control Knob , (0, 0, 1) + [266] = "%.4f", -- Preset Button - Press to toggle preset window , (1, 0, 1) + [267] = "%.4f", -- Enter Button , (1, 0, 1) + [268] = "%.4f", -- Stopwatch Button - Press to start/stop Hold to reset, (1, 0, 1) + [269] = "%.4f", -- Swap Button , (1, 0, 1) + + -- PILOT EUFD + [270] = "%.4f", -- IDM Rocker Switch Up, (1, 0, 1) + [271] = "%.4f", -- WCA Rocker Switch Up, (1, 0, 1) + [272] = "%.4f", -- RTS Rocker Switch Up, (1, 0, 1) + [273] = "%.4f", -- Brightness Control Knob , (0, 0, 1) + [274] = "%.4f", -- Preset Button - Press to toggle preset window , (1, 0, 1) + [275] = "%.4f", -- Enter Button , (1, 0, 1) + [276] = "%.4f", -- Stopwatch Button - Press to start/stop Hold to reset, (1, 0, 1) + [277] = "%.4f", -- Swap Button , (1, 0, 1) + + -- ELEC INTERFACE + [278] = "%.4f", -- IHADSS BRT Control Knob , (0, 0, 1) + [279] = "%.4f", -- IHADSS CON Control Knob , (0, 0, 1) + [280] = "%.4f", -- SYM BRT Control Knob , (0, 0, 1) + [281] = "%.4f", -- Automatic Contrast Mode Switch ACM/OFF, (-1, 0, 1) + [282] = "%.4f", -- FLIR LVL Control Knob , (0, 0, 1) + [283] = "%.4f", -- FLIR GAIN Control Knob , (0, 0, 1) + + -- ENGINE INTERFACE + [284] = "%.4f", -- ENG 1 Fire Pushbutton - Press to arm/safe ENG 1 area's fire extinguishing system , (1, 0, 1) + [285] = "%.4f", -- ENG 1 Fire Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + [286] = "%.4f", -- APU Fire Pushbutton - Press to arm/safe APU area's fire extinguishing system , (1, 0, 1) + [287] = "%.4f", -- APU Fire Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + [288] = "%.4f", -- ENG 2 Fire Pushbutton - Press to arm/safe ENG 2 area's fire extinguishing system , (1, 0, 1) + [289] = "%.4f", -- ENG 2 Fire Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + [290] = "%.4f", -- Primary Fire Extinguisher Discharge Pushbutton - Press to discharge primary fire bottle , (1, 0, 1) + [291] = "%.4f", -- Fire Detection Circuit Test Switch 1(LMB)/2(RMB), (-1, -1, 0) + [292] = "%.4f", -- Reserve Fire Extinguisher Discharge Pushbutton - Press to discharge reserve fire bottle , (1, 0, 1) + + -- ELEC INTERFACE + [293] = "%.4f", -- A/S Pushbutton ARM/SAFE, (1, 0, 1) + [294] = "%.4f", -- GND ORIDE Pushbutton ON/OFF, (1, 0, 1) + + -- ENGINE INTERFACE + [295] = "%.4f", -- ENG 1 Fire Pushbutton - Press to arm/safe ENG 1 area's fire extinguishing system , (1, 0, 1) + [296] = "%.4f", -- ENG 1 Fire Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + [297] = "%.4f", -- APU Fire Pushbutton - Press to arm/safe APU area's fire extinguishing system , (1, 0, 1) + [298] = "%.4f", -- APU Fire Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + [299] = "%.4f", -- ENG 2 Fire Pushbutton - Press to arm/safe ENG 2 area's fire extinguishing system , (1, 0, 1) + [300] = "%.4f", -- ENG 2 Fire Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + [301] = "%.4f", -- Primary Fire Extinguisher Discharge Pushbutton - Press to discharge primary fire bottle , (1, 0, 1) + [302] = "%.4f", -- Fire Detection Circuit Test Switch 1(LMB)/2(RMB), (-1, -1, 0) + [303] = "%.4f", -- Reserve Fire Extinguisher Discharge Pushbutton - Press to discharge reserve fire bottle , (1, 0, 1) + + -- PILOT LIGHTS SYSTEM + [304] = "%.4f", -- Master Warning Button , (1, 0, 1) + [305] = "%.4f", -- Master Caution Button , (1, 0, 1) + + -- ELEC INTERFACE + [306] = "%.4f", -- A/S Pushbutton ARM/SAFE, (1, 0, 1) + [307] = "%.4f", -- GND ORIDE Pushbutton ON/OFF, (1, 0, 1) + + -- HYDRO_INTERFACE + [308] = "%.4f", -- TAIL WHEEL Pushbutton LOCK/UNLOCK, (1, 0, 1) + + -- ELEC INTERFACE + [309] = "%1d", -- NVS MODE Switch FIXED/NORM/OFF, (-1, -1, 1) + + -- EMERGENCY_PANEL + [310] = "%.4f", -- Guard Button ON/OFF, (1, 0, 1) + [311] = "%.4f", -- XPNDR Button ON/OFF, (1, 0, 1) + [312] = "%.4f", -- Zeroize Switch ON/OFF, (-1, 0, 1) + + -- HYDRO_INTERFACE + [313] = "%.4f", -- EMERG HYD Pushbutton ON/OFF, (1, 0, 1) + [314] = "%0.1f", -- Rotor Brake Switch OFF/BRK/LOCK, (-1, -1, 1) + + -- ELEC INTERFACE + [315] = "%0.1f", -- Master Ignition Switch OFF/BATT/EXT PWR, (-0.5, 0, 1) + + -- PILOT KEYBOARD UNIT + [316] = "%.4f", -- KU Scratchpad Brightness Knob , (0, 0, 1) + + -- ENGINE INTERFACE + [317] = "%.4f", -- No.1 Engine Start Switch IGN ORIDE(LMB)/START(RMB), (1, 0, 1) + [318] = "%.4f", -- No.2 Engine Start Switch IGN ORIDE(LMB)/START(RMB), (1, 0, 1) + + -- PILOT JETTISON PANEL + [319] = "%.4f", -- L OUTBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [320] = "%.4f", -- L INBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [321] = "%.4f", -- R INBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [322] = "%.4f", -- R OUTBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [323] = "%.4f", -- L TIP Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [324] = "%.4f", -- JETT Pushbutton - Press to jettison stores from all armed stations , (1, 0, 1) + [325] = "%.4f", -- R TIP Station Select Pushbutton ARM/SAFE, (1, 0, 1) + + -- EXTERNAL LIGHT SYSTEM + [326] = "%.4f", -- Navigation Lights Switch BRT/OFF/DIM, (-1, -1, 1) + + -- CPTLIGHTS_SYSTEM + [327] = "%.4f", -- Signal Lights Control Knob , (0, 0, 1) + [328] = "%.4f", -- Primary Lights Control Knob , (0, 0, 1) + + -- EXTERNAL LIGHT SYSTEM + [329] = "%.4f", -- Formation Lights Control Knob , (0, 0, 1) + + -- CPTLIGHTS_SYSTEM + [330] = "%.4f", -- Flood Lights Control Knob , (0, 0, 1) + [331] = "%.4f", -- Standby Instrument Lights Control Knob , (0, 0, 1) + + -- EXTERNAL LIGHT SYSTEM + [332] = "%.4f", -- Anti-Collision Lights Switch WHT/OFF/RED, (-1, -1, 1) + + -- CPTLIGHTS_SYSTEM + [333] = "%.4f", -- Press To Test Button , (1, 0, 1) + + -- PILOT COMM PANEL + [334] = "%.4f", -- VHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [335] = "%.4f", -- UHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [336] = "%.4f", -- FM1 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [337] = "%.4f", -- FM2 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [338] = "%.4f", -- HF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [339] = "%.4f", -- VHF Squelch Switch ON/OFF, (-1, 0, 1) + [340] = "%.4f", -- UHF Squelch Switch ON/OFF, (-1, 0, 1) + [341] = "%.4f", -- FM1 Squelch Switch ON/OFF, (-1, 0, 1) + [342] = "%.4f", -- FM2 Squelch Switch ON/OFF, (-1, 0, 1) + [343] = "%.4f", -- HF Squelch Switch ON/OFF, (-1, 0, 1) + [344] = "%.4f", -- MASTER Volume Control Knob , (0, 0, 1) + [345] = "%.4f", -- SENS Control Knob , (0, 0, 1) + [346] = "%.4f", -- ICS Mode Switch HOT MIC/VOX/PTT, (-1, -1, 1) + [347] = "%.4f", -- IDENT Button , (1, 0, 1) + [348] = "%.4f", -- IFF Volume Control Knob Rotate to adjust volume, (0, 0, 1) + [349] = "%.4f", -- RLWR Volume Control Knob Rotate to adjust volume, (0, 0, 1) + [350] = "%.4f", -- ATA Volume Control Knob Rotate to adjust volume, (0, 0, 1) + [351] = "%.4f", -- VCR Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [352] = "%.4f", -- ADF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + + -- ENGINE INTERFACE + [353] = "%.4f", -- CKT A Check Overspeed Test Switch ENG 2(LMB)/ENG 1(RMB), (1, 0, 1) + [354] = "%.4f", -- CKT B Check Overspeed Test Switch ENG 2(LMB)/ENG 1(RMB), (1, 0, 1) + + -- ELEC INTERFACE + [355] = "%.4f", -- Generator Reset Switch GEN 1(LMB)/GEN 2(RMB), (-1, -1, 0) + + -- CPT MECH + [356] = "%.4f", -- Defog Button - Press to defog the canopy side panels , (1, 0, 1) + [357] = "%.4f", -- Wiper Control Switch PARK/OFF/LO/HI, (-0.1, 0, 0.3) + + -- EMERGENCY PANEL + [358] = "%.4f", -- Guard Button ON/OFF, (1, 0, 1) + [359] = "%.4f", -- XPNDR Button ON/OFF, (1, 0, 1) + [360] = "%.4f", -- Zeroize Switch ON/OFF, (-1, 0, 1) + + -- HYDRO_INTERFACE + [361] = "%.4f", -- EMERG HYD Pushbutton ON/OFF, (1, 0, 1) + [362] = "%.4f", -- TAIL WHEEL Pushbutton LOCK/UNLOCK, (1, 0, 1) + + -- ELEC INTERFACE + [363] = "%.4f", -- NVS MODE Switch FIXED/NORM/OFF, (-1, -1, 1) + + -- CPTLIGHTS_SYSTEM + [364] = "%.4f", -- Signal Lights Control Knob , (0, 0, 1) + [365] = "%.4f", -- Primary Lights Control Knob , (0, 0, 1) + [366] = "%.4f", -- Flood Lights Control Knob , (0, 0, 1) + [367] = "%.4f", -- Press To Test Button , (1, 0, 1) + + -- CPG JETTISON PANEL + [368] = "%.4f", -- L OUTBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [369] = "%.4f", -- L INBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [370] = "%.4f", -- R INBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [371] = "%.4f", -- R OUTBD Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [372] = "%.4f", -- L TIP Station Select Pushbutton ARM/SAFE, (1, 0, 1) + [373] = "%.4f", -- JETT Pushbutton - Press to jettison stores from all armed stations , (1, 0, 1) + [374] = "%.4f", -- R TIP Station Select Pushbutton ARM/SAFE, (1, 0, 1) + + -- CPG COMM PANEL + [375] = "%.4f", -- VHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [376] = "%.4f", -- UHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [377] = "%.4f", -- FM1 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [378] = "%.4f", -- FM2 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [379] = "%.4f", -- HF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [380] = "%.4f", -- VHF SQL Switch ON/OFF, (-1, 0, 1) + [381] = "%.4f", -- UHF SQL Switch ON/OFF, (-1, 0, 1) + [382] = "%.4f", -- FM1 SQL Switch ON/OFF, (-1, 0, 1) + [383] = "%.4f", -- FM2 SQL Switch ON/OFF, (-1, 0, 1) + [384] = "%.4f", -- HF SQL Switch ON/OFF, (-1, 0, 1) + [385] = "%.4f", -- MASTER Volume Control Knob , (0, 0, 1) + [386] = "%.4f", -- SENS Control Knob , (0, 0, 1) + [387] = "%.4f", -- ICS Mode Switch HOT MIC/VOX/PTT, (-1, -1, 1) + [388] = "%.4f", -- IDENT Button , (1, 0, 1) + [389] = "%.4f", -- IFF Volume Control Knob Rotate to adjust volume, (0, 0, 1) + [390] = "%.4f", -- RLWR Volume Control Knob Rotate to adjust volume, (0, 0, 1) + [391] = "%.4f", -- ATA Volume Control Knob Rotate to adjust volume, (0, 0, 1) + [392] = "%.4f", -- VCR Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + [393] = "%.4f", -- ADF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (1, 0, 1) + + -- CPT MECH + [394] = "%.4f", -- Defog Button - Press to defog the canopy side panels , (1, 0, 1) + [395] = "%.4f", -- Wiper Control Switch PARK/OFF/LO/HI, (-0.1, 0, 0.3) + + -- ELEC INTERFACE + [397] = "%.4f", -- Processor Select Switch SP 1/AUTO/SP 2, (-1, -1, 1) + + -- ENGINE INTERFACE + [400] = "%.4f", -- APU Pushbutton - Press to start/stop APU , (1, 0, 1) + [401] = "%.4f", -- APU Pushbutton Cover OPEN/CLOSE, (-1, 0, 1) + + -- BARO ALTIMETER + [447] = "%.4f", -- Altimeter Pressure Setting Knob , (0, 0, 1) + + -- PILOT COMM PANEL + [449] = "%.4f", -- VHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [450] = "%.4f", -- UHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [451] = "%.4f", -- FM1 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [452] = "%.4f", -- FM2 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [453] = "%.4f", -- HF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [457] = "%.4f", -- VCR Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [458] = "%.4f", -- ADF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + + -- CPG COMM PANEL + [459] = "%.4f", -- VHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [460] = "%.4f", -- UHF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [461] = "%.4f", -- FM1 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [462] = "%.4f", -- FM2 Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [463] = "%.4f", -- HF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [467] = "%.4f", -- VCR Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + [468] = "%.4f", -- ADF Volume Control Knob (LMB) Pull to disable / (MW) Rotate to adjust volume, (-1, 0, 1) + + -- TEDAC + [487] = "%.4f", -- Cursor Controller Up, (1, 0, 1) + [488] = "%.4f", -- Cursor Controller Left, (-1, -1, 0) + [489] = "%.4f", -- Cursor Controller Enter, (1, 0, 1) + [490] = "%.4f", -- Cursor Display Select (L/R) Button - Press to move the cursor to the center of the opposite MPD , (1, 0, 1) + [491] = "%.4f", -- Image AutoTrack/Offset Switch OFS(LMB)/IAT(RMB), (1, 0, 1) + [492] = "%.4f", -- TADS FOV Select Switch Z (Zoom), (1, 0, 1) + [493] = "%.4f", -- TADS FOV Select Switch N (Narrow), (-1, -1, 0) + [494] = "%.4f", -- TADS Sensor Select Switch FLIR/TV/DVO, (-1, -1, 1) + [495] = "%.4f", -- STORE/Update Switch UPDT(LMB)/STORE(RMB), (1, 0, 1) + [496] = "%.4f", -- Linear Motion Compensation (LMC) Button - Press to toggle LMC mode , (1, 0, 1) + [498] = "%.4f", -- FCR Mode Switch GTM (Ground Targeting Mode), (1, 0, 1) + [499] = "%.4f", -- FCR Mode Switch TPM (Terrain Profile Mode), (-1, -1, 0) + [500] = "%.4f", -- FCR Scan Switch C (Continuous)(LMB)/S (Single)(RMB), (1, 0, 1) + [501] = "%.4f", -- CUED Search Button - Press to orient the FCR centerline , (1, 0, 1) + [502] = "%.4f", -- Weapons Action (WAS) Switch GUN, (1, 0, 1) + [503] = "%.4f", -- Weapons Action (WAS) Switch RKT, (-1, -1, 0) + [504] = "%.4f", -- FLIR Polarity Button - Press to change polarity , (1, 0, 1) + [505] = "%.4f", -- HDD/HOD Select Button - currently not used , (1, 0, 1) + [507] = "%.4f", -- Image Auto Tracker (IAT) Polarity Switch W (White)/A (Auto)/B (Black), (-1, -1, 1) + [508] = "%.4f", -- Sight Select Switch HMD, (1, 0, 1) + [509] = "%.4f", -- Sight Select Switch FCR, (-1, -1, 0) + [510] = "%.4f", -- Laser Tracker Mode (LT) Switch A (Automatic)/O (Off)/M (Manual), (-1, -1, 1) + [511] = "%.4f", -- FCR Scan Size Switch Z (Zoom), (1, 0, 1) + [512] = "%.4f", -- FCR Scan Size Switch N (Narrow), (-1, -1, 0) + [513] = "%.4f", -- C-Scope Button , (1, 0, 1) + [514] = "%.4f", -- Sight Slave Button - Press to slave TADS or FCR to the selected acquisition source , (1, 0, 1) + [515] = "%.4f", -- Sight Manual Tracker (MAN TRK) Controller Up, (1, 0, 1) + [516] = "%.4f", -- Sight Manual Tracker (MAN TRK) Controller Left, (-1, -1, 0) + [517] = "%.4f", -- Display Zoom Button - Press to view FCR targeting information on the NTS target , (1, 0, 1) + [518] = "%.4f", -- Cursor Enter Button - Press to enter , (1, 0, 1) + [519] = "%.4f", -- Spare Switch PREVIOUS(LMB)/NEXT(RMB), (1, 0, 1) + + -- CMWS + [610] = "%.4f", -- CMWS PWR Switch OFF/ON/TEST(momentarily), (-1, -1, 0) + [611] = "%.4f", -- CMWS Audio Volume Knob , (0, 0, 1) + [612] = "%.4f", -- CMWS Lamp Knob , (0, 0, 1) + [614] = "%.4f", -- CMWS Flare Squibs Switch ARM/SAFE, (-1, 0, 1) + [615] = "%.4f", -- CMWS Mode Switch CMWS/NAV, (-1, 0, 1) + [616] = "%.4f", -- CMWS Operation Switch BYPASS/AUTO, (-1, 0, 1) + [617] = "%.4f", -- CMWS Flare Jettison Switch Cover OPEN/CLOSE, (-1, 0, 1) + [618] = "%.4f", -- CMWS Flare Jettison Switch , (-1, 0, 1) + + -- SAI + [619] = "%.4f", -- SAI Cage Knob (LMB) Pull to cage /(MW) Adjust aircraft reference symbol, (1, 0, 1) + [620] = "%.4f", -- SAI Cage Knob (LMB) Pull to cage /(MW) Adjust aircraft reference symbol, (1, 0, 1) + + -- CPG KEYBOARD UNIT + [621] = "%.4f", -- KU Scratchpad Brightness Knob , (0, 0, 1) + + -- GEAR INTERFACE + [634] = "%.4f", -- Parking Brake Handle Pull/Stow, (-1, 0, 1) + + -- CPT MECH + [796] = "%.4f", -- PLT canopy OPEN/CLOSE, (0, 0, 1) + [799] = "%.4f", -- CPG canopy OPEN/CLOSE, (0, 0, 1) + + -- EMERGENCY PANEL + [801] = "%.4f", -- Master Zeroize Switch Cover OPEN/CLOSE, (-1, 0, 1) + [802] = "%.4f", -- Master Zeroize Switch ON/OFF, (-1, 0, 1) + [803] = "%.4f", -- Master Zeroize Switch Cover OPEN/CLOSE, (-1, 0, 1) + [804] = "%.4f", -- Master Zeroize Switch ON/OFF, (-1, 0, 1) + + -- CPTLIGHTS_SYSTEM + [805] = "%.4f", -- Master Warning Button , (1, 0, 1) + [807] = "%.4f", -- Master Caution Button , (1, 0, 1) + + -- Preston AI ?????????????????? + [809] = "%.4f", -- Stick Folding UP/DOWN, (-1, 0, 1) + + -- CPT MECH + [825] = "%.4f", -- CPG M4 Trigger , (1, 0, 1) + [826] = "%.4f", -- CPG M4 Safety , (-1, -1, 1) + [827] = "%.4f", -- PLT M4 Trigger , (1, 0, 1) + [828] = "%.4f", -- PLT M4 Safety , (-1, -1, 1) + + -- Warning Lights and Button Lights + [424] = "%0.1f", -- MasterWarningPLT + [425] = "%0.1f", -- MasterCautionPLT + [416] = "%0.1f", -- FireEng1PLT + [418] = "%0.1f", -- FireApuPLT + [420] = "%0.1f", -- FireEng2PLT + [417] = "%0.1f", -- RdyEng1PLT + [419] = "%0.1f", -- RdyApuPLT + [421] = "%0.1f", -- RdyEng2PLT + [422] = "%0.1f", -- DischPriPLT + [423] = "%0.1f", -- DischResPLT + [403] = "%0.1f", -- EmergencyGuardPLT + [404] = "%0.1f", -- EmergencyXpndrPLT + [405] = "%0.1f", -- EmergencyEmergHydPLT + [402] = "%0.1f", -- TailWheelUnlockPLT + [411] = "%0.1f", -- ArmLTipPLT + [407] = "%0.1f", -- ArmLOutbdPLT + [408] = "%0.1f", -- ArmLInbdPLT + [409] = "%0.1f", -- ArmRInbdPLT + [410] = "%0.1f", -- ArmROutbdPLT + [412] = "%0.1f", -- ArmRTipPLT + [413] = "%0.1f", -- ArmamentASArmPLT + [414] = "%0.1f", -- ArmamentASSafePLT + [415] = "%0.1f", -- ArmamentGndOrideOnPLT + [406] = "%0.1f", -- APUPLT + [806] = "%0.1f", -- MasterWarningCPG + [808] = "%0.1f", -- MasterCautionCPG + [441] = "%0.1f", -- FireEng1CPG + [443] = "%0.1f", -- FireApuCPG + [445] = "%0.1f", -- FireEng2CPG + [442] = "%0.1f", -- RdyEng1CPG + [444] = "%0.1f", -- RdyApuCPG + [446] = "%0.1f", -- RdyEng2CPG + [447] = "%0.1f", -- DischPriCPG + [448] = "%0.1f", -- DischResCPG + [427] = "%0.1f", -- EmergencyGuardCPG + [428] = "%0.1f", -- EmergencyXpndrCPG + [429] = "%0.1f", -- EmergencyEmergHydCPG + [426] = "%0.1f", -- TailWheelUnlockCPG + [434] = "%0.1f", -- ArmLTipCPG + [430] = "%0.1f", -- ArmLOutbdCPG + [431] = "%0.1f", -- ArmLInbdCPG + [432] = "%0.1f", -- ArmRInbdCPG + [433] = "%0.1f", -- ArmROutbdCPG + [435] = "%0.1f", -- ArmRTipCPG + [438] = "%0.1f", -- ArmamentASArmCPG + [439] = "%0.1f", -- ArmamentASSafeCPG + [440] = "%0.1f", -- ArmamentGndOrideOnCPG + [436] = "%0.1f", -- ProcessorSelectSp1CPG + [437] = "%0.1f", -- ProcessorSelectSp2CPG + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + ExportScript.ScratchPad(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --ExportScript.DeviceMetaTableLogDump(mainPanelDevice) -- comment this to prevent log flooding + --ExportScript.ListIndicationLogDump(mainPanelDevice) -- comment this to prevent log flooding + + ExportScript.CountermeasureReadouts(mainPanelDevice) + --ExportScript.MfdReadouts(mainPanelDevice) --Testing in progress + --ExportScript.TSD(mainPanelDevice) -- Disabled: see note in Function + + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + if ExportScript.exportAdditionalInfo then + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end + end +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + + --===================================================================================== + ExportScript.Tools.WriteToLog('CMSP ') + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get tehe value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + ]] +--[[ + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +-------------------------- +--- Apache KU Readouts --- +-------------------------- + +function ExportScript.ScratchPad(mainPanelDevice) + + -- pilot ku + local lScratchPadGet_pilot = ExportScript.Tools.getListIndicatorValue(16) + local lScratchPad_pilot = ExportScript.Tools.coerce_nil_to_string(lScratchPadGet_pilot.Standby_text) -- .. lScratchPad.Scratch_PAD_Mode + -- https://www.tutorialspoint.com/string-gsub-function-in-lua-programming + lScratchPad_pilot = string.gsub(lScratchPad_pilot,':','-') -- - prevents errors from the colon in Lat/Long display + + if lScratchPad_pilot == '' then lScratchPad_pilot = '[KU] [PLT]' end -- abbreviation for scratch due to 7 charPerLine later + + local lScratchPadStacked_pilot = lScratchPad_pilot .. '' -- add a space at the end + + lScratchPadStacked_pilot = splitLines(lScratchPadStacked_pilot, 6) -- splits into newlines + + -- Logic for the blinking cursor + if string.sub(lScratchPadStacked_pilot, -1) == '#' then -- normal case + lScratchPadStacked_pilot = string.sub(lScratchPadStacked_pilot, 1, -2) + lScratchPadStacked_pilot = lScratchPadStacked_pilot .. '█' + elseif string.sub(lScratchPadStacked_pilot, -2) == '#\n' then -- case for near end lines. + lScratchPadStacked_pilot = string.sub(lScratchPadStacked_pilot, 1, -3) + lScratchPadStacked_pilot = lScratchPadStacked_pilot .. '█' + elseif string.sub(lScratchPadStacked_pilot, -1) == '\n' then -- just new line (? is this used) + lScratchPadStacked_pilot = string.sub(lScratchPadStacked_pilot, 1, -2) + lScratchPadStacked_pilot = lScratchPadStacked_pilot .. '\n ' + --elseif string.sub(lScratchPadStacked, -1) ~= '#' then -- for back edits + -- don't add a space + -- catches when there are mid edits but makes the text shift if the selected edit is the rightmost text + else + lScratchPadStacked_pilot = lScratchPadStacked_pilot .. ' ' + end + -- catches when there are mid edits but makes the text shift if the selected edit is the rightmost text + lScratchPadStacked_pilot = string.gsub(lScratchPadStacked_pilot,'#','█') + + ExportScript.Tools.SendData(3007, lScratchPadStacked_pilot) + + -- copilot ku + local lScratchPadGet_Copilot = ExportScript.Tools.getListIndicatorValue(15) + local lScratchPad_Copilot = ExportScript.Tools.coerce_nil_to_string(lScratchPadGet_Copilot.Standby_text) -- .. lScratchPad.Scratch_PAD_Mode + -- https://www.tutorialspoint.com/string-gsub-function-in-lua-programming + lScratchPad_Copilot = string.gsub(lScratchPad_Copilot,':','-') -- - prevents errors from the colon in Lat/Long display + + if lScratchPad_Copilot == '' then lScratchPad_Copilot = '[KU] [CPLT]' end -- abbreviation for scratch due to 7 charPerLine later + + local lScratchPadStacked_Copilot = lScratchPad_Copilot .. '' -- add a space at the end + + lScratchPadStacked_Copilot = splitLines(lScratchPadStacked_Copilot, 6) -- splits into newlines + + -- Logic for the blinking cursor + if string.sub(lScratchPadStacked_Copilot, -1) == '#' then -- normal case + lScratchPadStacked_Copilot = string.sub(lScratchPadStacked_Copilot, 1, -2) + lScratchPadStacked_Copilot = lScratchPadStacked_Copilot .. '█' + elseif string.sub(lScratchPadStacked_Copilot, -2) == '#\n' then -- case for near end lines. + lScratchPadStacked_Copilot = string.sub(lScratchPadStacked_Copilot, 1, -3) + lScratchPadStacked_Copilot = lScratchPadStacked_Copilot .. '█' + elseif string.sub(lScratchPadStacked_Copilot, -1) == '\n' then -- just new line (? is this used) + lScratchPadStacked_Copilot = string.sub(lScratchPadStacked_Copilot, 1, -2) + lScratchPadStacked_Copilot = lScratchPadStacked_Copilot .. '\n ' + --elseif string.sub(lScratchPadStacked, -1) ~= '#' then -- for back edits + -- don't add a space + -- catches when there are mid edits but makes the text shift if the selected edit is the rightmost text + else + lScratchPadStacked_Copilot = lScratchPadStacked_Copilot .. ' ' + end + -- catches when there are mid edits but makes the text shift if the selected edit is the rightmost text + lScratchPadStacked_Copilot = string.gsub(lScratchPadStacked_Copilot,'#','█') + + ExportScript.Tools.SendData(3008, lScratchPadStacked_Copilot) +end + +------------------------------------- +--- Apache Flare and Chaff Counts --- +------------------------------------- + +function ExportScript.CountermeasureReadouts(mainPanelDevice) + + local CmwsInfo_24 = ExportScript.Tools.split(list_indication(25), "%c")--this contains the formated table of the kneeboard + + -- New way of detecting the counts, borrowed from Wizard and the F16 + local txt_FLARES_Count + + for k,v in pairs(CmwsInfo_24) do + if v == "#85#" then + txt_FLARES_Count = CmwsInfo_24[k+1] + end + end + + local txt_CHAFFS_Count + + for k,v in pairs(CmwsInfo_24) do + if v == "#86#" then + txt_CHAFFS_Count = CmwsInfo_24[k+1] + end + end + + ExportScript.Tools.SendData(3000, string.format(txt_FLARES_Count)) + ExportScript.Tools.SendData(3001, string.format(txt_CHAFFS_Count)) + ExportScript.Tools.SendData(3002, string.format("F " .. txt_FLARES_Count)) + ExportScript.Tools.SendData(3003, string.format("C " .. txt_CHAFFS_Count)) + ExportScript.Tools.SendData(3004, string.format("F " .. txt_FLARES_Count .. "\nC " .. txt_CHAFFS_Count)) + ExportScript.Tools.SendData(3005, string.format("FLARE\n" .. txt_FLARES_Count)) + ExportScript.Tools.SendData(3006, string.format("CHAFF\n" .. txt_CHAFFS_Count)) + ExportScript.Tools.SendData(3999, string.format(ExportScript.Tools.dump(CmwsInfo_24))) +end + +------------------------- +-- Apache MFD Readouts -- +------------------------- + +function ExportScript.MfdReadouts(mainPanelDevice) + --[[ This can be tested by creating three "Momentary Button/Displays" + -- Change the Title Text Change on DCS Update Settings DCS ID to 5000, 5001, and 5002. + -- When in cockpit the values will populate. + -- Press the FCR, WPN, and TSD buttons to see them change. + -- You can remove this comment from your code.]] + + --this contains the formated table of the Pilot Left MFD + local MfdPltLeftInfo_6 = ExportScript.Tools.split(list_indication(6), "%c") + + -- init the names of the containers for the variables + local button_T1 + local button_T2 + + for k,v in pairs(MfdPltLeftInfo_6) do -- start searching through the list_indication + + if v == "PB1_1" then -- reference the list_indication to get the correct entry + button_T1 = MfdPltLeftInfo_6[k+1] + end + + if v == "PB2_3" or v == "PB2_1" then -- this one seems to change depending on the screen... + button_T2 = MfdPltLeftInfo_6[k+1] + end + + end + + -- if a value was not present, it wasn't populated + -- fill it with something else to indicate that to the user + -- otherwise, keep its value + -- Don't forget to add the NilOrEmpty() function in the General Helper Functions section + button_T1 = NilOrEmpty(button_T1) + button_T2 = NilOrEmpty(button_T2) + + ExportScript.Tools.SendData(5000, string.format(button_T1)) + ExportScript.Tools.SendData(5001, string.format(button_T2)) + +end + +--------------------- +-- Apache TSD Info -- +--------------------- + +function ExportScript.TSD(mainPanelDevice) + -- Note: Unfortunately, this info does not update unless the TSD is visible. + -- Therefore, implementation of this fucntion is on hold. + + local list_indication_8 = ExportScript.Tools.split(list_indication(8), "%c")--this contains the formated table of the kneeboard + + for k,v in pairs(list_indication_8) do + if v == "NextWaypointStatusWindow_text_1" then + NextWptReadout1 = list_indication_8[k+1] + end + end + + for k,v in pairs(list_indication_8) do + if v == "NextWaypointStatusWindow_text_2" then + NextWptReadout2 = list_indication_8[k+1] + end + end + + for k,v in pairs(list_indication_8) do + if v == "NextWaypointStatusWindow_text_3" then + NextWptReadout3 = list_indication_8[k+1] + end + end + + for k,v in pairs(list_indication_8) do + if v == "NextWaypointStatusWindow_text_4" then + NextWptReadout4 = list_indication_8[k+1] + end + end + + -- TODO: Debug endurance readout + -- possible issue may be due to the colon in string + for k,v in pairs(list_indication_8) do + if v == "EnduranceStatusWindow_text_1" then + Endurance = list_indication_8[k+1] + end + end + + for k,v in pairs(list_indication_8) do + if v == "WindStatusWindow_CALM_text" then + WindStatus = list_indication_8[k+1] + end + end + + NextWptReadout1 = trim(NextWptReadout1) + NextWptReadout2 = trim(NextWptReadout2) + NextWptReadout3 = trim(NextWptReadout3) + NextWptReadout4 = trim(NextWptReadout4) + Endurance = trim(Endurance) + WindStatus = trim(WindStatus) + + + ExportScript.Tools.SendData(3007, string.format(NextWptReadout1)) + ExportScript.Tools.SendData(3008, string.format(NextWptReadout2)) + ExportScript.Tools.SendData(3009, string.format(NextWptReadout3)) + ExportScript.Tools.SendData(3010, string.format(NextWptReadout4)) + ExportScript.Tools.SendData(3011, string.format(Endurance)) +end + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their popperties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the extimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the prefered runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +function ExportScript.DeviceMetaTableLogDump(mainPanelDevice) + local ltmp1 = 0 + for ltmp2 = 1, 30, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 .. ': ' .. ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2 ..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +end + +function ExportScript.ListIndicationLogDump(mainPanelDevice) + local ltmp1 = 0 + for ltmp2 = 0, 70, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 ..': '..ExportScript.Tools.dump(ltmp1)) + end +end + +---------------------- +-- Helper Functions -- +---------------------- + +-- formats the string by putting newlines in the appropriate places +function splitLines(stringIn, charPerLine) + local rows = DIV(#stringIn,charPerLine) + for i = 1, rows, 1 do -- the i's represent the displacement and multipliers needed for the self iterations + stringIn = string.insert(stringIn, '\n', (charPerLine * i) + (i-1)) + end + return stringIn +end + +-- workaround for floor division. typically // +-- http://lua-users.org/wiki/SimpleRound +function DIV(a,b) + return (a - a % b) / b +end + +-- used to insert newlines at the right areas +-- https://stackoverflow.com/questions/59561776/how-do-i-insert-a-string-into-another-string-in-lua +function string.insert(str1, str2, pos) + return str1:sub(1,pos)..str2..str1:sub(pos+1) +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end + +function isNilOrEmpty(value) + if value == "" or value == nil then + return true + else + return false + end +end + +function NilOrEmpty(value) + if value == "" then + return 'empty' + elseif value == nil then + return 'empty' + else + return value + end +end + diff --git a/Scripts/DCS-ExportScript/ExportsModules/AJS37.lua b/Scripts/DCS-ExportScript/ExportsModules/AJS37.lua index 37d9f6f1..94c1c03e 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/AJS37.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/AJS37.lua @@ -241,7 +241,7 @@ ExportScript.ConfigArguments = [208] = "%1d", -- Restart [203] = "%1d", -- Main Electric Power [207] = "%1d", -- Generator - [209] = "%1d", -- Master Mode Selector + [209] = "%0.1f",-- Master Mode Selector Bailey [446] = "%1d", -- Master Caution Reset [323] = "%1d", -- Slav SI [324] = "%1d", -- HÖJD CISI @@ -420,6 +420,9 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) local lKHz = string.sub(string.format("%0.3f", string.format("%.3f", lFR22Radio:get_frequency()/1000000) - lMHz), 3) ExportScript.Tools.SendData(2501, lMHz) -- slice frequency MHz ExportScript.Tools.SendData(2502, lKHz) -- slice frequency KHz + + local TotalMhz = string.format(lMHz .. ".".. lKHz) + ExportScript.Tools.SendData(2503, TotalMhz) -- Total Frequency Bailey -- 1,2,3 Lamps --[405] = "%.1f", -- Afterburner zone indicator 0.0=off, >= 0.3=1, >= 0.6=2, >= 0.9=3 @@ -431,7 +434,7 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) ExportScript.Tools.SendData(2512, 1) -- Afterburner 3 elseif lAfterburnerZoneIndicator >= 0.6 then ExportScript.Tools.SendData(2510, 1) - ExportScript.Tools.SendData(2511, 2) + ExportScript.Tools.SendData(2511, 1)--ExportScript.Tools.SendDataDAC(2511, 2) ExportScript.Tools.SendData(2512, 0) elseif lAfterburnerZoneIndicator >= 0.3 then ExportScript.Tools.SendData(2510, 1) @@ -446,6 +449,13 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) -- Cockpit Light ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {392, 393, 394}) -- Panel Lights, Flood Lights, Instrument Lights + + --AoA in Units Bailey + local AoaUnitValue = 30 * mainPanelDevice:get_argument_value(120) + AoaUnitValue = string.format("%0.1f", AoaUnitValue) + AoaUnitValue= string.format("AoA" .. "\n" .. AoaUnitValue) + ExportScript.Tools.SendData(2520, AoaUnitValue) -- AoA in Units + end function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) @@ -468,6 +478,9 @@ function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) local lKHz = string.sub(string.format("%0.3f", string.format("%.3f", lFR22Radio:get_frequency()/1000000) - lMHz), 3) ExportScript.Tools.SendData(2501, lMHz) -- slice frequency MHz ExportScript.Tools.SendData(2502, lKHz) -- slice frequency KHz + + local TotalMhz = string.format(lMHz .. ".".. lKHz) + ExportScript.Tools.SendData(2503, TotalMhz) -- Total Frequency Bailey -- 1,2,3 Lamps --[405] = "%.1f", -- Afterburner zone indicator 0.0=off, >= 0.3=1, >= 0.6=2, >= 0.9=3 @@ -479,7 +492,7 @@ function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) ExportScript.Tools.SendDataDAC(2512, 1) -- Afterburner 3 elseif lAfterburnerZoneIndicator >= 0.6 then ExportScript.Tools.SendDataDAC(2510, 1) - ExportScript.Tools.SendDataDAC(2511, 2) + ExportScript.Tools.SendDataDAC(2511, 1)--ExportScript.Tools.SendDataDAC(2511, 2) ExportScript.Tools.SendDataDAC(2512, 0) elseif lAfterburnerZoneIndicator >= 0.3 then ExportScript.Tools.SendDataDAC(2510, 1) @@ -490,6 +503,12 @@ function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) ExportScript.Tools.SendDataDAC(2511, 0) ExportScript.Tools.SendDataDAC(2512, 0) end + + --AoA in Units Bailey + local AoaUnitValue = 30 * mainPanelDevice:get_argument_value(120) + AoaUnitValue = string.format("%0.1f", AoaUnitValue) + AoaUnitValue= string.format("AoA" .. "\n" .. AoaUnitValue) + ExportScript.Tools.SendData(2520, AoaUnitValue) -- AoA in Units --===================================================================================== --[[ diff --git a/Scripts/DCS-ExportScript/ExportsModules/Bf-109K-4.lua b/Scripts/DCS-ExportScript/ExportsModules/Bf-109K-4.lua index 5284bfbf..d62d0015 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Bf-109K-4.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Bf-109K-4.lua @@ -129,7 +129,7 @@ ExportScript.ConfigArguments = -- R 101 ZSK 244 A Bomb Panel Master Switch -- Operated internally via ZSK 244 A Mode Control -- R 101 ZSK 244 A Mode Selector - [64] = "%.1f", -- Bomb Fusing Selector (DIVE (INSTANT), DIVE (DELAYED), OFF, LEVEL (DELAYED), LEVEL (INSTANT)) {0.0, 0.25, 0.5, 0.75, 1.0} + [64] = "%.2f", -- Bomb Fusing Selector (DIVE (INSTANT), DIVE (DELAYED), OFF, LEVEL (DELAYED), LEVEL (INSTANT)) {0.0, 0.25, 0.5, 0.75, 1.0} -- Illumination Controls -- C 102 LH UV Lamp Rheostat [80] = "%.1f", -- Left UV Lamp Brightness (axis) {0.0 - 0.5} diff --git a/Scripts/DCS-ExportScript/ExportsModules/Bronco-OV-10A.lua b/Scripts/DCS-ExportScript/ExportsModules/Bronco-OV-10A.lua new file mode 100644 index 00000000..038f3378 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Bronco-OV-10A.lua @@ -0,0 +1,198 @@ +-- Module Name Export + +ExportScript.FoundDCSModule = true +ExportScript.Version.BroncoOV10A = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + [400] = "%.2f", + [401] = "%.2f", + [402] = "%.2f", + [403] = "%.2f", + [404] = "%.2f", + [405] = "%.2f", + [406] = "%.2f", + [407] = "%.2f", + [410] = "%.2f", + [411] = "%.2f", + [412] = "%.2f", + [413] = "%.2f", + [414] = "%.2f", + [415] = "%.2f", + [416] = "%.2f", + [420] = "%.2f", + [421] = "%.2f", + [422] = "%.2f", + [423] = "%.2f", + [424] = "%.2f", + [425] = "%.2f", + [426] = "%.2f", + [430] = "%.2f", + [431] = "%.2f", + [432] = "%.2f", + [433] = "%.2f", + [434] = "%.2f", + [435] = "%.2f", + [440] = "%.2f", + [441] = "%.2f", + [442] = "%.2f", + [443] = "%.2f", + [500] = "%.2f", + [501] = "%.2f", + [502] = "%.2f", + [503] = "%.2f", + [510] = "%.2f", + [511] = "%.2f", + [512] = "%.2f", + [4000] = "%.2f", + [4001] = "%.2f", + [4002] = "%.2f", + [4003] = "%.2f", + [4004] = "%.2f", + [4005] = "%.2f", + [4006] = "%.2f", + [4007] = "%.2f", + [4008] = "%.2f", + [4009] = "%.2f", + [4010] = "%.2f", + [4011] = "%.2f", + [4012] = "%.2f", + [6000] = "%.2f", + [6001] = "%.2f", + [6002] = "%.2f", + [6003] = "%.2f", +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + ExportScript.HudMil(mainPanelDevice) + + + --------------- + -- Log Dumps -- + --------------- +--[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.HudMil(mainPanelDevice) + local hudMil = mainPanelDevice:get_argument_value(435) -- -1 to 1, so normalize + hudMil = hudMil + 1 -- 0 to 2, so, 0 = 1 and 1 = 12.5 and 2 = 26 + hudMil = (hudMil * 12.5) + 1 -- via excel + hudMil = ExportScript.Tools.round(hudMil, 0) * 10 -- round to decimal only + ExportScript.Tools.SendData(8000, 'HUD\nMIL ' .. hudMil) -- format export +--[[ + ------------------- + -- Bombing Table -- + ------------------- + + -- Straight and level + IAS ALT MIL + --- --- --- + 200 200 60 + 200 400 30 + 150 400 Hud Tint Frame +]] +end + +---------------------- +-- Helper Functions -- +---------------------- \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Empty-DCS.lua b/Scripts/DCS-ExportScript/ExportsModules/Empty-DCS.lua index d288d038..0af5c497 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Empty-DCS.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Empty-DCS.lua @@ -1,117 +1,103 @@ --- Module Name Export - -ExportScript.FoundDCSModule = true -ExportScript.Version. = "1.2.X" - -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 - ]] -} -ExportScript.ConfigArguments = -{ - --[[ - arguments for export in low tick interval - based on "clickabledata.lua" - ]] -} - ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ - --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] -end - -function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] -end - ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance -function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] -end - -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - --===================================================================================== - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) - - -- list_indication get tehe value of cockpit displays - local ltmp1 = 0 - for ltmp2 = 0, 20, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - end - ]] ---[[ - -- getmetatable get function name from devices - local ltmp1 = 0 - for ltmp2 = 1, 70, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end -]] -end - ------------------------------ --- Custom functions -- ------------------------------ \ No newline at end of file +-- Module Name Export + +ExportScript.FoundDCSModule = true +ExportScript.Version. = "1.2.X" + +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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.4f", -- Example +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) + ]] + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-14B.lua b/Scripts/DCS-ExportScript/ExportsModules/F-14B.lua new file mode 100644 index 00000000..43eb03b7 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-14B.lua @@ -0,0 +1,2367 @@ +-- F-14B Tomacat + +ExportScript.FoundDCSModule = true +ExportScript.Version.F14 = "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 + ]] + + --Lamps +[10] = "%.1f", -- RADAR DDD WCS PSRCH +[11] = "%.1f", -- RADAR DDD_WCS TWSMAN +[12] = "%.1f", -- RADAR DDD WCS TWSAUTO +[13] = "%.1f", -- RADAR_DDD_WCS_RWS +[14] = "%.1f", -- RADAR_DDD_WCS_PDSRCH +[15] = "%.1f", -- RADAR_DDD_WCS_PSTT +[9916] = "%.1f", -- RADAR_DDD_WCS_PDSTT +[17] = "%.1f", -- RADAR_DDD_display_IFF +[18] = "%.1f", -- RADAR_DDD_display_IR +[19] = "%.1f", -- RADAR_DDD_display_radar +[20] = "%.1f", -- RADAR_IR_gain +[21] = "%.1f", -- RADAR_IR_volume +[22] = "%.1f", -- RADAR_IR_threshold +[23] = "%.1f", -- RADAR_DDD_bright +[24] = "%.1f", -- RADAR_DDD_pulse_vid +[25] = "%.1f", -- RADAR_DDD_erase +[26] = "%.1f", -- RADAR_DDD_pulse_gain +[27] = "%.1f", -- RADAR_ACM_thresh +[28] = "%.1f", -- RADAR_jamjet +[29] = "%.1f", -- RADAR_PD_thresh_clutter +[30] = "%.1f", -- RADAR_PD_thresh_clear + +[31] = "%.1f", -- VDI_Light_Color +[32] = "%.1f", -- HUD_Light_Color + +[33] = "%.1f", -- HIDE_Stick + +[9945] = "%.1f", -- DATA_ADF_Switch + +[403] = "%.1f", -- INT_CANOPY_Open +[404] = "%.1f", -- Pilot_Seat_Safety +[405] = "%.1f", -- RIO_UHF_REMOTE_TEST +[406] = "%.1f", -- RIO_UHF_REMOTE_DIM +[407] = "%.1f", -- HCU_POWER_RESET_LIGHT +[408] = "%.1f", -- HCU_WCS_POWER_LIGHT +[409] = "%.1f", -- HCU_IR_STBY_LIGHT +[410] = "%.1f", -- RIO_LOD +[411] = "%.1f", -- PILOT_LOD +[412] = "%.1f", -- COMP_IND_SYNC_NEEDLE +[413] = "%.1f", -- DATALINK_ON_OFF_SW + +[414] = "%.1f", -- TACAN_NFO_RIO_INDICATOR + +[1800] = "%.1f", -- PILOT_FloodLights +[1801] = "%.1f", -- PILOT_PanelLights +[1802] = "%.1f", -- PILOT_InstrumentLights +[1803] = "%.1f", -- PILOT_WhiteFloodLights + +[1804] = "%.1f", -- RIO_FloodLights +[1805] = "%.1f", -- RIO_PanelLights +[1806] = "%.1f", -- RIO_InstrumentLights +[1807] = "%.1f", -- RIO_WhiteFloodLights + +[1808] = "%.1f", -- PILOT_Cockpit_LeanForward +[1809] = "%.1f", -- PILOT_Cockpit_LeanLeftRight + +[1810] = "%.1f", -- RIO_Cockpit_LeanForward +[1811] = "%.1f", -- RIO_Cockpit_LeanLeftRight + +[1812] = "%.1f", -- CCM_SPL +[1813] = "%.1f", -- CCM_ALT_DIFF +[1814] = "%.1f", -- CCM_VGS + +[6501] = "%.1f", -- ACM_TurnIndicator +[6500] = "%.1f", -- ACM_SlipBall + +[6502] = "%.1f", -- COMPASSBALL_ROTATE +[6503] = "%.1f", -- COMPASSBALL_ROTATE_VERTICAL + +[8000] = "%.1f", -- MIRROR_Shake_FrontTop +[8001] = "%.1f", -- MIRROR_Shake_FrontLeft +[8002] = "%.1f", -- MIRROR_Shake_FrontRight + +[15012] = "%.1f", -- SPOILER_FLR_ORIDE_Left +[15013] = "%.1f", -- SPOILER_FLR_ORIDE_Right + +[15014] = "%.1f", -- Light_RFIRE +[15015] = "%.1f", -- Light_LFIRE + + + +[1044] = "%.1f", -- Fire_Ext_Handle_Right +[15081] = "%.1f", -- Fire_Ext_Handle_Left +[15082] = "%.1f", -- Fire_Ext_Button_Right +[15083] = "%.1f", -- Fire_Ext_Button_Left + + +[34] = "%.1f", -- RADAR_DDD_aspect +[35] = "%.1f", -- RADAR_DDD_Vc_scale +[36] = "%.1f", -- RADAR_DDD_tgts +[37] = "%.1f", -- RADAR_DDD_MLC +[38] = "%.1f", -- RADAR_DDD_AGC +[3900] = "%.1f", -- RADAR_DDD_paramp +[40] = "%.1f", -- RADAR_DDD_range_5 +[41] = "%.1f", -- RADAR_DDD_range_10 +[42] = "%.1f", -- RADAR_DDD_range_20 +[43] = "%.1f", -- RADAR_DDD_range_50 +[44] = "%.1f", -- RADAR_DDD_range_100 +[45] = "%.1f", -- RADAR_DDD_range_200 + +[48] = "%.1f", -- TID_bright +[49] = "%.1f", -- TID_contrast + +[52] = "%.1f", -- TID_CLSN +[53] = "%.1f", -- TID_trackhold + +[54] = "%.1f", -- PEDALS_Yaw +[55] = "%.1f", -- PEDALS_Brake_Left + +[58] = "%.1f", -- WEAP_Elec_Fuse +[59] = "%.4f", -- WEAP_Type_Wheel + +[60] = "%.1f", -- WEAP_Bomb_SinglePairs +[61] = "%.1f", -- WEAP_Bomb_StepRipple +[62] = "%.1f", -- WEAP_AG_Gun +[63] = "%.1f", -- WEAP_Mech_Fuse +[64] = "%.1f", -- WEAP_Jett_Station6 +[65] = "%.1f", -- WEAP_Jett_Station3 +[66] = "%.1f", -- WEAP_Jett_RackWeapons +[67] = "%.1f", -- WEAP_Jett_RightTank +[68] = "%.1f", -- WEAP_Jett_Station1 +[69] = "%.1f", -- WEAP_Jett_Station4 +[70] = "%.1f", -- WEAP_Jett_Station5 +[71] = "%.1f", -- WEAP_Jett_Station8 +[72] = "%.1f", -- WEAP_MSL_SPD_Gate +[73] = "%.1f", -- WEAP_Jett_LeftTank +[74] = "%.1f", -- WEAP_AA_Launch +[75] = "%.1f", -- WEAP_Missile_Option + +[78] = "%.1f", -- WEAP_Selective_Jett +[79] = "%.5f", -- RADAR_elevation_bars_knob +[80] = "%.5f", -- RADAR_azimuth_scan_knob +[81] = "%.1f", -- RADAR_elevation_center_knob +[82] = "%.1f", -- RADAR_azimuth_center_knob +[83] = "%.1f", -- RADAR_stab_switch +[84] = "%.1f", -- RADAR_VSL_switch + +[87] = "%.1f", -- TCS_ACQ_switch +[88] = "%.1f", -- TCS_FOV_button +[89] = "%.1f", -- TCS_Slave_switch +[90] = "%.1f", -- RECORD_power +[91] = "%.1f", -- RECORD_mode +[92] = "%.1f", -- RECORD_standby_lamp +[93] = "%.1f", -- RECORD_rec_lamp +[94] = "%.1f", -- RECORD_endoftape_lamp +[95] = "%.1f", -- LIQUID_cooling_switch +[96] = "%.1f", -- BEACON_power_switch + +[98] = "%.1f", -- CAP_category + + +[104] = "%.1f", -- ALTI_NeedleBaro +[20104] = "%.1f", -- RIOALTI_NeedleBaro + +[106] = "%.1f", -- VSI_needle + +[228] = "%.1f", -- ACCEL_Reset +[110] = "%.1f", -- ACCEL_AccelerometerNeedle +[15076] = "%.1f", -- ACCEL_AccelerometerNeedle2 +[15077] = "%.1f", -- ACCEL_AccelerometerNeedle3 + +[15078] = "%.1f", -- HOOK_EmergencyDown + +[15079] = "%.1f", -- HSI_Flag_NukeThing + +[112] = "%.1f", -- ALTI_ThousandsL + +[117] = "%.1f", -- BEACON_ACLS_test_button +[118] = "%.1f", -- BEACON_mode_knob + +[20112] = "%.1f", -- RIOALTI_ThousandsL + +[123] = "%.1f", -- CAP_button5 -- note: 4 and 5 are swapped +[124] = "%.1f", -- CAP_button4 +[125] = "%.1f", -- CAP_button3 +[126] = "%.1f", -- CAP_button2 +[127] = "%.1f", -- CAP_button1 +[128] = "%.1f", -- CAP_tng_nbr +[129] = "%.1f", -- CAP_button10 +[130] = "%.1f", -- CAP_button9 +[131] = "%.1f", -- CAP_button8 +[132] = "%.1f", -- CAP_button7 +[133] = "%.1f", -- CAP_button6 +[134] = "%.1f", -- CAP_program_restart + +[136] = "%.1f", -- CAP_LONG_6 +[137] = "%.1f", -- CAP_LAT_1 +[138] = "%.1f", -- CAP_NBR_2 +[139] = "%.1f", -- CAP_7 +[140] = "%.1f", -- CAP_HDG_8 +[141] = "%.1f", -- CAP_SPD_3 +[143] = "%.1f", -- CAP_ALT_4 +[142] = "%.1f", -- CAP_9 +[144] = "%.1f", -- CAP_BRG_0 +[145] = "%.1f", -- CAP_RNG_5 +[146] = "%.1f", -- CAP_NE +[147] = "%.1f", -- CAP_SW +[148] = "%.1f", -- CAP_clear +[149] = "%.1f", -- CAP_enter + + + +[156] = "%.1f", -- ECMD_Override_SW +[168] = "%.1f", -- ECMD_Corr_SW +[189] = "%.1f", -- ECMD_Mode_SW +[190] = "%.1f", -- ECMD_Data_ADF_SW + +[2023] = "%.1f", -- ECMD_Knob_Brightness +[2024] = "%.1f", -- ECMD_Btn_Test + + +[151] = "%.1f", -- DECM_Mode_Knob +[9950] = "%.1f", -- DECM_Vol_Knob + + +[174] = "%.1f", -- RCP45_Power_SW +[173] = "%.1f", -- RCP45_AAA_Mode_SW + + + +[175] = "%.1f", -- DATALINK_Antenna +[176] = "%.1f", -- DATALINK_Reply +[177] = "%.1f", -- DATALINK_Cains +[191] = "%.1f", -- DATALINK_antijam +[196] = "%.1f", -- DATALINK_freq_10s +[195] = "%.1f", -- DATALINK_freq_1s +[197] = "%.1f", -- DATALINK_freq_tenths + +[161] = "%.1f", -- IFF_audiolight_switch +[162] = "%.1f", -- IFF_M1_switch +[163] = "%.1f", -- IFF_M2_switch +[164] = "%.1f", -- IFF_M3A_switch +[165] = "%.1f", -- IFF_MC_switch +[166] = "%.1f", -- IFF_RAD_switch +[167] = "%.1f", -- IFF_ident_switch +[181] = "%.1f", -- IFF_M4_switch +[183] = "%.1f", -- IFF_code_knob +[184] = "%.1f", -- IFF_master_knob +[185] = "%.1f", -- IFF_test_button +[186] = "%.1f", -- IFF_reply_button + +[2262] = "%.1f", -- IFF_M3code_1s +[2261] = "%.1f", -- IFF_M3code_10s +[198] = "%.1f", -- IFF_M3code_100s +[199] = "%.1f", -- IFF_M3code_1000s +[200] = "%.1f", -- IFF_M1code_1s +[201] = "%.1f", -- IFF_M1code_10s + -- see also RIO_IFF_TEST_LIGHT and RIO_IFF_REPLY_LIGHT + + -- ALR-67 RWR Control Panel +[16011] = "%.1f", -- RWR_Brightness_Pilot +[376] = "%.1f", -- RWR_Brightness_RIO + + -- CMDS ALE-39 +[390] = "%.1f", -- CMDS_Master_Mode_SW +[389] = "%.1f", -- CMDS_Chaff_Oper_SW +[388] = "%.1f", -- CMDS_Flare_Oper_SW +[387] = "%.1f", -- CMDS_Jammer_Oper_SW +[391] = "%.1f", -- CMDS_Flare_Salvo_SW +[398] = "%.1f", -- CMDS_Flare_Mode_SW + +[392] = "%.1f", -- CMDS_Chaff_Counter_Roller_10 +[393] = "%.1f", -- CMDS_Chaff_Counter_Roller_1 +[394] = "%.1f", -- CMDS_Flare_Counter_Roller_10 +[395] = "%.1f", -- CMDS_Flare_Counter_Roller_1 +[396] = "%.1f", -- CMDS_Jammer_Counter_Roller_10 +[397] = "%.1f", -- CMDS_Jammer_Counter_Roller_1 + +[386] = "%.1f", -- CMDS_Chaff_Counter_Control +[385] = "%.1f", -- CMDS_Flare_Counter_Control +[399] = "%.1f", -- CMDS_Jammer_Counter_Control + +[206] = "%.1f", -- CMDS_L10_Wheel +[207] = "%.1f", -- CMDS_L20_Wheel +[209] = "%.1f", -- CMDS_R10_Wheel +[208] = "%.1f", -- CMDS_R20_Wheel + +[211] = "%.1f", -- CMDS_JAMR_Intv_1 +[212] = "%.1f", -- CMDS_JAMR_Intv_10 +[213] = "%.1f", -- CMDS_JAMR_Intv_100 +[204] = "%.1f", -- CMDS_JAMR_Qty + +[216] = "%.1f", -- CMDS_Programmer_Reset + +[214] = "%.1f", -- CMDS_Chaff_Burst_Qty_Wheel +[215] = "%.1f", -- CMDS_Chaff_Burst_Intv_Wheel +[203] = "%.1f", -- CMDS_Chaff_Salvo_Qty_Wheel +[202] = "%.1f", -- CMDS_Chaff_Salvo_Intv_Wheel + +[205] = "%.1f", -- CMDS_Flare_Qty_Wheel +[210] = "%.1f", -- CMDS_Flare_Intv_Wheel + +[999] = "%.1f", -- CMDS_RIO_Left_Grip_Hat +[999] = "%.1f", -- CMDS_RIO_Right_Grip_Hat + +[222] = "%.1f", -- DATALINK_addr_hi +[223] = "%.1f", -- DATALINK_addr_lo + +[225] = "%.1f", -- FLAP_Lever +[226] = "%.1f", -- TID_NON_ATTK + +[229] = "%.1f", -- STICK_Weaponselect +[230] = "%.1f", -- STICK_Weaponselectbutton +[231] = "%.1f", -- STICK_Hatswitch +[232] = "%.1f", -- STICK_RightRed +[233] = "%.1f", -- STICK_Wheel_Rotate +[234] = "%.1f", -- STICK_Wheel_Push +[235] = "%.1f", -- STICK_Button_Left +[236] = "%.1f", -- STICK_Button_RedBehind +[240] = "%.1f", -- STICK_Lever +[241] = "%.1f", -- STICK_Trigger + +[237] = "%.1f", -- BRAKE_ParkingBrake +[238] = "%.1f", -- HOOK_Handle +[239] = "%.1f", -- WEAP_Emer_Jettison + +[39] = "%.1f", -- BODY_Pilot_Left_Right +[99] = "%.1f", -- BODY_Pilot_Up_Down +[1600] = "%.1f", -- BODY_Pilot_Salute +[1700] = "%.1f", -- BODY_Pilot + +[1701] = "%.1f", -- BODY_RIO +[1601] = "%.1f", -- BODY_RIO_Lean_And_Grab +[1603] = "%.1f", -- BODY_RIO_Hold_On +[1605] = "%.1f", -- BODY_RIO_Right_Left +[1607] = "%.1f", -- BODY_RIO_Up_Down + + +[2129] = "%.1f", -- AIRSPD_Needle +[2128] = "%.1f", -- AIRSPD_Inner +[2125] = "%.1f", -- AIRSPD_Bug1 +[2126] = "%.1f", -- AIRSPD_Bug2 +[2127] = "%.1f", -- AIRSPD_KnobPush +[310] = "%.1f", -- AIRSPD_Knob + +[250] = "%.1f", -- AIRSPD_Needle_RIO +[251] = "%.1f", -- AIRSPD_Inner_RIO +[252] = "%.1f", -- AIRSPD_Bug1_RIO +[253] = "%.1f", -- AIRSPD_Bug2_RIO +[254] = "%.1f", -- AIRSPD_KnobPush_RIO +[255] = "%.1f", -- AIRSPD_Knob_RIO + +[290] = "%.1f", -- PILOT_TACAN_Indicator_PLT +[291] = "%.1f", -- PILOT_TACAN_Indicator_NFO +[292] = "%.1f", -- PILOT_TACAN_Button + +[934] = "%.1f", -- BIT_Selector +[923] = "%.1f", -- --BIT_SelectorPush --temp for testing + +[152] = "%.1f", -- ACM_Light_Intensity +[153] = "%.1f", -- INDEXER_Light_Intensity + +[103] = "%.1f", -- ALTI_NeedleRadar +[19107] = "%.1f", -- ALTI_Radar_WarningLight +[19108] = "%.1f", -- ALTI_Radar_TestLight +[2124] = "%.1f", -- ALTI_Radar_OffFlag +[2123] = "%.1f", -- ALTI_Radar_Bug +[308] = "%.1f", -- ALTI_Radar_Knob +[16020] = "%.1f", -- ALTI_Radar_KnobPush +[16021] = "%.1f", -- Brake_Pedal_Left + +[262] = "%.1f", -- ALTI_ThousandsR +[300] = "%.1f", -- ALTI_HundredsWhite +[301] = "%.1f", -- ALTI_HundredsSmall1 +[302] = "%.1f", -- ALTI_HundredsSmall2 +[303] = "%.1f", -- ALTI_HundredsSmall3 +[304] = "%.1f", -- ALTI_HundredsSmall4 +[305] = "%.1f", -- ALTI_STDBYcard +[306] = "%.1f", -- ALTI_LeftKnob +[307] = "%.1f", -- ALTI_RightKnob + + + +[20262] = "%.1f", -- RIOALTI_ThousandsR +[20300] = "%.1f", -- RIOALTI_HundredsWhite +[20301] = "%.1f", -- RIOALTI_HundredsSmall1 +[20302] = "%.1f", -- RIOALTI_HundredsSmall2 +[20303] = "%.1f", -- RIOALTI_HundredsSmall3 +[20304] = "%.1f", -- RIOALTI_HundredsSmall4 +[20305] = "%.1f", -- RIOALTI_STDBYcard +[20306] = "%.1f", -- RIOALTI_LeftKnob +[20307] = "%.1f", -- RIOALTI_RightKnob + + + + + +[310] = "%.1f", -- Mach_MeterKnob + +[317] = "%.1f", -- WINGSWEEP_EmergencySweepCover + +[326] = "%.1f", -- GEAR_Handle +[16015] = "%.1f", -- GEAR_HandleEmergency +[1075] = "%.1f", -- GEAR_Strut + +[384] = "%.1f", -- WINGSWEEP_EmergencySweepLever + +[623] = "%.1f", -- HYD_PRESS +[1064] = "%.1f", -- HYD_CombinedHydraulicSystemPressure +[1063] = "%.1f", -- HYD_FlightHydraulicSystemPressure +[629] = "%.1f", -- HYD_TRANSFER_PUMP_Switch +[630] = "%.1f", -- HYD_TRANSFER_PUMP_SwitchCover +[631] = "%.1f", -- HYD_ISOLATION_Switch +[928] = "%.1f", -- HYD_EMERGENCY_FLT_Switch +[615] = "%.1f", -- HYD_EMERGENCY_FLT_SwitchCover +[632] = "%.1f", -- HYD_EMERG_PUMP + + + + + +[2] = "%.1f", -- STICK_Pitch +[1] = "%.1f", -- STICK_Roll + +[19109] = "%.1f", -- BDHI_CompassRing_Pilot +[19105] = "%.1f", -- BDHI_CompassFlag_Pilot +[19106] = "%.1f", -- BDHI_CompassRoller_Pilot +[699] = "%.1f", -- BDHI_NeedleTCN_Pilot +[700] = "%.1f", -- BDHI_NeedleADF_Pilot + +[701] = "%.1f", -- PILOT_JETT_Light + +[702] = "%.1f", -- BDHI_PILOT_Roller1 +[703] = "%.1f", -- BDHI_PILOT_Roller2 +[704] = "%.1f", -- BDHI_PILOT_Roller3 + +[705] = "%.1f", -- BDHI_RIO_Roller1 +[706] = "%.1f", -- BDHI_RIO_Roller2 +[707] = "%.1f", -- BDHI_RIO_Roller3 + + + + + +[29109] = "%.1f", -- BDHI_CompassRing_RIO +[29105] = "%.1f", -- BDHI_CompassFlag_RIO +[29106] = "%.1f", -- BDHI_CompassRoller_RIO +[20699] = "%.1f", -- BDHI_NeedleTCN_RIO +[20700] = "%.1f", -- BDHI_NeedleADF_RIO + +[15016] = "%.1f", -- WARN_LGen +[15017] = "%.1f", -- WARN_LOilHot +[15018] = "%.1f", -- WARN_LFuelPress +[15019] = "%.1f", -- WARN_EngFireExt +[15020] = "%.1f", -- WARN_RGen +[15021] = "%.1f", -- WARN_RFuelPress +[15022] = "%.1f", -- WARN_ROilHot +[15023] = "%.1f", -- WARN_WingSweep +[15024] = "%.1f", -- WARN_AuxFireExt +[15025] = "%.1f", -- WARN_YawStabOp +[15026] = "%.1f", -- WARN_YawStabOut +[15027] = "%.1f", -- WARN_Canopy +[15028] = "%.1f", -- WARN_CADC +[15029] = "%.1f", -- WARN_LFuelLow +[15030] = "%.1f", -- WARN_WShieldHot +[15031] = "%.1f", -- WARN_EmergJett +[15032] = "%.1f", -- WARN_OxyLow +[15033] = "%.1f", -- WARN_Bingo +[15034] = "%.1f", -- WARN_HydPress +[15035] = "%.1f", -- WARN_RFuelLow +[15036] = "%.1f", -- WARN_MachTrim +[15037] = "%.1f", -- WARN_PitchStab1 +[15038] = "%.1f", -- WARN_BleedDirty +[15039] = "%.1f", -- WARN_RollStab1 +[15040] = "%.1f", -- WARN_PitchStab2 +[15041] = "%.1f", -- WARN_AutoPilot +[15042] = "%.1f", -- WARN_LOvspValve +[15043] = "%.1f", -- WARN_ROvspValve +[15044] = "%.1f", -- WARN_RRamp +[15045] = "%.1f", -- WARN_LaunchBar +[15046] = "%.1f", -- WARN_Flap +[15047] = "%.1f", -- WARN_HzTailAuth +[15048] = "%.1f", -- WARN_OilPress +[15049] = "%.1f", -- WARN_LRamp +[15050] = "%.1f", -- WARN_Ladder +[15051] = "%.1f", -- WARN_RInlet +[15052] = "%.1f", -- WARN_InletIce +[15053] = "%.1f", -- WARN_RudderAuth +[15054] = "%.1f", -- WARN_LInlet +[15055] = "%.1f", -- WARN_ANRS +[15056] = "%.1f", -- WARN_RollStab2 +[15057] = "%.1f", -- WARN_Spoilers +[15058] = "%.1f", -- WARN_TransRect +[15059] = "%.1f", -- WARN_ReduceSpeed +[15060] = "%.1f", -- WARN_InterTrim +[15061] = "%.1f", -- WARN_LEngSec +[15062] = "%.1f", -- WARN_Rats +[15063] = "%.1f", -- WARN_StartValve +[15064] = "%.1f", -- WARN_REngSec + + + + + + + + +[752] = "%.1f", -- ENGINE_RightThrottle +[753] = "%.1f", -- ENGINE_LeftThrottle + +[902] = "%.1f", -- SPOIL_Inboard_Override_Cover +[903] = "%.1f", -- SPOIL_Outboard_Override_Cover +[907] = "%.1f", -- SPOIL_Outboard_Override +[908] = "%.1f", -- SPOIL_Inboard_Override + +[16014] = "%.1f", -- AHRS_HDG_PushButton +[904] = "%.1f", -- AHRS_HDG_Rotate +[905] = "%.1f", -- AHRS_ModeSwitch +[906] = "%.1f", -- AHRS_NorthSouth +[909] = "%.1f", -- AHRS_LatCorrection +[1026] = "%.1f", -- AHRS_LatCorrectionDial + +[915] = "%.1f", -- AoA_HookBypass + +[918] = "%.1f", -- LIGHT_Taxi +[924] = "%.1f", -- LIGHT_RedFloodSwitch +[921] = "%.1f", -- LIGHT_WhiteFloodSwitch +[913] = "%.1f", -- LIGHTS_PositionWings +[916] = "%.1f", -- LIGHTS_PositionTail +[919] = "%.1f", -- LIGHTS_PositionFlash +[923] = "%.1f", -- LIGHTS_AntiCol + +[194] = "%.1f", -- LIGHT_RedFloodSwitch_RIO +[159] = "%.1f", -- LIGHT_WhiteFloodSwitch_RIO + + +[926] = "%.1f", -- ELEC_EMERG_GEN_Switch +[936] = "%.1f", -- ELEC_MASTER_GEN_RightSwitch +[937] = "%.1f", -- ELEC_MASTER_GEN_LeftSwitch + +[9260] = "%.1f", -- Brake_Pressure_Left +[9261] = "%.1f", -- Brake_Pressure_Right + +[941] = "%.1f", -- ENGINE_Probe_Anti_Ice +[942] = "%.1f", -- WINDSHIELD_AIR +[950] = "%.1f", -- TEMPERATURE +[938] = "%.1f", -- RAMAIR +[940] = "%.1f", -- TEMPMANAUTO + +[927] = "%.1f", -- ELEC_EMERG_GEN_SwitchCover +[56] = "%.1f", -- PEDALS_Brake_Right +[999] = "%.1f", -- GEAR_WheelsWarningLight +[999] = "%.1f", -- ELEC_R_GEN_CautionLight +[999] = "%.1f", -- BRAKE_PressureGauge +[999] = "%.1f", -- ELEC_TRANS_RECT_AdvisoryLight +[999] = "%.1f", -- GEAR_TransitionLight +[999] = "%.1f", -- ELEC_L_GEN_CautionLight + +[2273] = "%.1f", -- WEAP_Gun_Elevation_PlusMinus + +[1001] = "%.1f", -- FUELSYSTEM_WingExt_Trans + +[1002] = "%.1f", -- NAV_Btn_Steer_TCN +[1003] = "%.1f", -- NAV_Btn_Steer_DEST +[1004] = "%.1f", -- NAV_Btn_Steer_AWL_PCD +[1005] = "%.1f", -- NAV_Btn_Steer_VEC +[1006] = "%.1f", -- NAV_Btn_Steer_MAN + +[1007] = "%.1f", -- DISP_HUD_pitch_bright +[1008] = "%.1f", -- DISP_HSD_ECMD_power +[1009] = "%.1f", -- DISP_HUD_power +[1010] = "%.1f", -- DISP_VDI_power +[1011] = "%.1f", -- DISP_mode_landing +[1012] = "%.1f", -- DISP_mode_air2ground +[1013] = "%.1f", -- DISP_mode_air2air +[1014] = "%.1f", -- DISP_mode_cruise +[1015] = "%.1f", -- DISP_mode_takeoff + +--[1016] = "%.1f", -- HSD_Display_Mode_Cycle +[1017] = "%.1f", -- HSD_ECM_Override + +[1018] = "%.1f", -- DISP_VDI_landing_mode +--[1019] = "%.1f", -- DISP_VDI_display_mode +[1020] = "%.1f", -- DISP_HUD_AWL_mode +--[1021] = "%.1f", -- DISP_HUD_declutter + +[1022] = "%.1f", -- WEAP_Gun_Ammo_adjust + +[1023] = "%.1f", -- HYD_SPOIL_FLAG +[1024] = "%.1f", -- HYD_EMER_HI_FLAG +[1025] = "%.1f", -- HYD_EMER_LO_FLAG + +[1026] = "%.1f", -- COMP_DIAL + +[1031] = "%.1f", -- RADIO_UHF_Remote_DISP_BRT_Pilot +[1030] = "%.1f", -- RADIO_VHF_Remote_DISP_BRT_Pilot + +[1071] = "%.1f", -- MASTER_Reset + +[19100] = "%.1f", -- STDBYADI_off +[19101] = "%.1f", -- STDBYADI_trim + +[6155] = "%.1f", -- STDBYADI_RIO_uncage +[6156] = "%.1f", -- STDBYADI_RIO_trim +[19900] = "%.1f", -- STDBYADI_RIO_off +[3333] = "%.1f", -- STDBYADI_RIO_Pitch +[19901] = "%.1f", -- STDBYADI_RIO_Roll + + + + +[1033] = "%.1f", -- VDIG_VDI_handle +[1034] = "%.1f", -- VDIG_HUD_trim +[1035] = "%.1f", -- VDIG_VSDI_trim +[1036] = "%.1f", -- VDIG_VSDI_bright +[1037] = "%.1f", -- VDIG_HUD_bright +[1038] = "%.1f", -- VDIG_VDI_contrast + +[1039] = "%.1f", -- HSD_Knob_Heading +[1040] = "%.1f", -- HSD_Knob_Course +[1041] = "%.1f", -- HSD_Test +[1043] = "%.1f", -- HSD_Knob_Brightness + +[1044] = "%.1f", -- FUELSYSTEM_Shutoff_R + +[1046] = "%.1f", -- WEAP_Master_Arm_Cover +[1047] = "%.1f", -- WEAP_Master_Arm +[1048] = "%.1f", -- WEAP_ACM_Jettison +[1049] = "%.1f", -- WEAP_ACM_Cover + +[1050] = "%.1f", -- FUELSYSTEM_Bingo_Knob + +[1051] = "%.1f", -- CLOCK_Wind +[1000] = "%.1f", -- CLOCK_Timer + +[1052] = "%.1f", -- CLOCK_RIO_WIND +[1053] = "%.1f", -- CLOCK_RIO_TIMER + +[1054] = "%.1f", -- FUEL_AftL +[1055] = "%.1f", -- FUEL_FwdR + +[1057] = "%.1f", -- ENGINE_RpmL +[1058] = "%.1f", -- ENGINE_RpmR +[1059] = "%.1f", -- ENGINE_TitL +[1060] = "%.1f", -- ENGINE_TitR +[1061] = "%.1f", -- ENGINE_FfL +[1062] = "%.1f", -- ENGINE_FFR +[1065] = "%.1f", -- ENGINE_OilPressureR +[1066] = "%.1f", -- ENGINE_OilPressureL +[1067] = "%.1f", -- ENGINE_NozzleR +[1068] = "%.1f", -- ENGINE_NozzleL + +[1069] = "%.1f", -- SEL_JETT_GUARD + + + +[15005] = "%.1f", -- LIGHTS_ACM +[15006] = "%.1f", -- LIGHTS_INDEXER +[15007] = "%.1f", -- LIGHTS_INSTRUMENT +[15008] = "%.1f", -- LIGHTS_CONSOLE +[15009] = "%.1f", -- LIGHTS_FORMATION + +[193] = "%.1f", -- LIGHTS_INSTRUMENT_RIO +[192] = "%.1f", -- LIGHTS_CONSOLE_RIO + +[15010] = "%.1f", -- MASTER_TEST_Go +[15011] = "%.1f", -- MASTER_TEST_NoGo + +[1070] = "%.1f", -- FUELSYSTEM_Shutoff_L + +[1072] = "%.1f", -- BRAKE_AntiSkidAndSpoilerBrake + +[1073] = "%.1f", -- FUELSYSTEM_Refuel_Probe +[1074] = "%.1f", -- FUELSYSTEM_Dump +[1076] = "%.1f", -- FUELSYSTEM_Fuel_Qty_Sel + +[4150] = "%.1f", -- RIO_CLOCK_Hours +[4151] = "%.1f", -- RIO_CLOCK_Minutes +[4152] = "%.1f", -- RIO_CLOCK_TimerSeconds +[4153] = "%.1f", -- RIO_CLOCK_Timer + +[4154] = "%.1f", -- RADAR_Altimeter_Bug + +[1096] = "%.1f", -- CLOCK_Hours +[1097] = "%.1f", -- CLOCK_Minutes +[1098] = "%.1f", -- CLOCK_TimerSeconds +[1099] = "%.1f", -- CLOCK_Timer + +[1094] = "%.1f", -- FUELSYSTEM_Fuel_Feed_Cover +[1095] = "%.1f", -- FUELSYSTEM_Fuel_Feed + +[2000] = "%.1f", -- CLOCK_TimerMinutes + +[2047] = "%.1f", -- SWEEP_MinimumIndex +[2001] = "%.1f", -- SWEEP_Commanded +[2002] = "%.1f", -- SWEEP_Position +[2003] = "%.1f", -- AoA_slider + +[1117] = "%.1f", -- TID_DATA_LINK +[1116] = "%.1f", -- TID_SYM_ELEM +[1115] = "%.1f", -- TID_ALT_NUM +[1118] = "%.1f", -- TID_JAM_STROBE +[2004] = "%.1f", -- TID_RID_DSBL -- doesn't seem to work +[2005] = "%.5f", -- TID_mode_knob +[2006] = "%.1f", -- TID_range_knob + +[50] = "%.1f", -- TID_nav_mode +[51] = "%.1f", -- TID_dest_mode + +[2007] = "%.1f", -- HCU_IR_TV +[2008] = "%.1f", -- HCU_RDR +[2009] = "%.1f", -- HCU_DDD_cursor +[2010] = "%.1f", -- HCU_TID_cursor +[2011] = "%.1f", -- HCU_TVIR_enable +[2012] = "%.1f", -- HCU_WCS_enable +[2013] = "%.1f", -- HCU_POWER_RESET_BUTTON +[2014] = "%.1f", -- HCU_LIGHT_TEST_BUTTON + +[2016] = "%.1f", -- ACLS_TEST_LIGHT + +[2031] = "%.1f", -- RADIO_UHF_VOL_Pilot +[383] = "%.1f", -- RADIO_UHF_VOL_RIO +[2035] = "%.1f", -- RADIO_UHF_SQL_Pilot +[2030] = "%.1f", -- RADIO_UHF_FREQ_HUNDRED_TEN_Pilot +[2029] = "%.1f", -- RADIO_UHF_FREQ_UNIT_Pilot +[2028] = "%.1f", -- RADIO_UHF_FREQ_TEHTH_Pilot +[2026] = "%.1f", -- RADIO_UHF_FREQ_HUNDREDTH_Pilot +[2027] = "%.1f", -- RADIO_UHF_BRT_Pilot +[2034] = "%.1f", -- RADIO_UHF_FUNC_Pilot +[2032] = "%.1f", -- RADIO_UHF_CHAN_Pilot +[2033] = "%.1f", -- RADIO_UHF_FREQ_MODE_Pilot +[8115] = "%.1f", -- RADIO_UHF_READ_Pilot +[16009] = "%.1f", -- RADIO_UHF_LOAD_Pilot +[16010] = "%.1f", -- RADIO_UHF_TONE_Pilot + +[350] = "%.1f", -- RADIO_VHF_VOL_RIO +[2038] = "%.1f", -- RADIO_VHF_VOL_PILOT +[351] = "%.1f", -- RADIO_VHF_SQL_RIO +[354] = "%.1f", -- RADIO_VHF_FREQ_HUNDRED_TEN_RIO +[355] = "%.1f", -- RADIO_VHF_FREQ_UNIT_RIO +[356] = "%.1f", -- RADIO_VHF_FREQ_TEHTH_RIO +[357] = "%.1f", -- RADIO_VHF_FREQ_HUNDREDTH_RIO +[360] = "%.1f", -- RADIO_VHF_BRT_RIO +[358] = "%.1f", -- RADIO_VHF_FUNC_RIO +[352] = "%.1f", -- RADIO_VHF_CHAN_RIO +[353] = "%.1f", -- RADIO_VHF_FREQ_MODE_RIO +[359] = "%.1f", -- RADIO_VHF_FM_AM_RIO +[106] = "%.1f", -- --RADIO_VHF_TOD_RIO +[100] = "%.1f", -- --RADIO_VHF_NORM_AJ_RIO + + + +[2040] = "%.1f", -- RADIO_ICS_Vol_ALR45 +[2039] = "%.1f", -- RADIO_ICS_Vol_ALR50 +[2040] = "%.1f", -- RADIO_ICS_Vol_ALR67_Pilot +[2039] = "%.1f", -- RADIO_ICS_Vol_Sidewinder + +[2048] = "%.1f", -- RADIO_ICS_Vol_Pilot +[2045] = "%.1f", -- RADIO_ICS_Ampl_Pilot +[2044] = "%.1f", -- RADIO_ICS_Func_Pilot + +[8109] = "%.1f", -- RADIO_ICS_HotMic_Pilot + +[400] = "%.1f", -- RADIO_ICS_Vol_RIO +[401] = "%.1f", -- RADIO_ICS_Ampl_RIO +[402] = "%.1f", -- RADIO_ICS_Func_RIO + +[490] = "%.1f", -- TID_STBY_LIGHT +[491] = "%.1f", -- TID_READY_LIGHT + +[492] = "%.1f", -- RIO_LAUNCH_LIGHT + +[493] = "%.1f", -- DECM_LIGHT + +[494] = "%.1f", -- CANOPY_VISIBILITY_INT + +[495] = "%.1f", -- RIO_Ejection_Seat_Visibility + + + +[116] = "%.1f", -- RADIO_KY28_POWER_MODE +[115] = "%.1f", -- RADIO_KY28_RADIO_SELECTOR +[361] = "%.1f", -- RADIO_KY28_ZEROIZE +[150] = "%.1f", -- RADIO_KY28_ZEROIZE_COVER + +[2049] = "%.1f", -- EJECT_CMD_Lever + +[2100] = "%.1f", -- INLET_RAMPS_LeftSwitch +[2101] = "%.1f", -- INLET_RAMPS_RightSwitch + +[2102] = "%.1f", -- ENGINE_Crank +[2103] = "%.1f", -- ENGINE_Throttle_Temp +[2104] = "%.1f", -- ENGINE_Throttle_Mode +[2105] = "%.1f", -- ENGINE_Air_Start + +--[2106] = "%.1f", -- AFCS_Stability_Pitch +--[2107] = "%.1f", -- AFCS_Stability_Roll +--[2108] = "%.1f", -- AFCS_Stability_Yaw + +--[2109] = "%.1f", -- AP_Vector +--[2110] = "%.1f", -- AP_Altitude +--[2111] = "%.1f", -- AP_Heading +--[2112] = "%.1f", -- AP_Engage +[2113] = "%.1f", -- TID_LAUNCH_ZONE +[2114] = "%.1f", -- TID_VEL_VECTOR + +[2114] = "%.1f", -- --Pilot Stdby ADI Pullout (Cage) +[2115] = "%.1f", -- --RIO Stdby ADI Twist +[2116] = "%.1f", -- --RIO Stdby ADI pullout + +[8114] = "%.1f", -- ENVIRO_PilotOxygenOn +[119] = "%.1f", -- ENVIRO_RIOOxygenOn +[939] = "%.1f", -- ENVIRO_CabinPressureDump +[929] = "%.1f", -- ENVIRO_AirSourceRam +[933] = "%.1f", -- ENVIRO_AirSourceOff +[930] = "%.1f", -- ENVIRO_AirSourceLEng +[931] = "%.1f", -- ENVIRO_AirSourceREng +[932] = "%.1f", -- ENVIRO_AirSourceBoth +[935] = "%.1f", -- ENVIRO_CabinPressureNeedle +[2999] = "%.1f", -- ENVIRO_LiquidOxygen_OFF_Flag + +[910] = "%.1f", -- ARA63_Power_Switch +[911] = "%.1f", -- ARA63_BIT_Btn +[912] = "%.1f", -- ARA63_Chnl_Knob + + +[135] = "%.1f", -- TACAN_CMD_Btn_RIO + +[2022] = "%.1f", -- WEAP_ATTK_Mode + + +[2199] = "%.1f", -- rAnnunc_OXYLOW +[2200] = "%.1f", -- rAnnunc_MCAUT +[2201] = "%.1f", -- rAnnunc_IFF +[2202] = "%.1f", -- rAnnunc_RCV +[2203] = "%.1f", -- rAnnunc_XMIT +[2204] = "%.1f", -- rAnnunc_SAM +[2205] = "%.1f", -- rAnnunc_AAA +[2206] = "%.1f", -- rAnnunc_CW +[2208] = "%.1f", -- rAnnunc_AI + +[2209] = "%.1f", -- rAnnunc_CDHOT +[2210] = "%.1f", -- rAnnunc_CABINPRESS +[2211] = "%.1f", -- rAnnunc_FUELLOW +[2212] = "%.1f", -- rAnnunc_CANOPY +[2213] = "%.1f", -- rAnnunc_FUZEHV +[2214] = "%.1f", -- rAnnunc_RDRENABLED +[2215] = "%.1f", -- rAnnunc_COOLINGAIR +[2216] = "%.1f", -- rAnnunc_MSLCOND +[2217] = "%.1f", -- rAnnunc_AWG9COND +[2218] = "%.1f", -- rAnnunc_NAVCOMP +[2219] = "%.1f", -- rAnnunc_FILMLOW +[2220] = "%.1f", -- rAnnunc_IMU +[2221] = "%.1f", -- rAnnunc_AHRS + +[2222] = "%.1f", -- rAnnunc_WAVEOFF +[2223] = "%.1f", -- rAnnunc_LANDCHK +[2224] = "%.1f", -- rAnnunc_ACLBEAC +[2225] = "%.1f", -- rAnnunc_ACLRDY +[2226] = "%.1f", -- rAnnunc_APCPLR +[2227] = "%.1f", -- rAnnunc_10SEC +[2228] = "%.1f", -- rAnnunc_ADJAC +[2229] = "%.1f", -- rAnnunc_VOICE +[2230] = "%.1f", -- rAnnunc_TILT +[2231] = "%.1f", -- rAnnunc_CMDCHG +[2232] = "%.1f", -- rAnnunc_ALTCHG +[2233] = "%.1f", -- rAnnunc_MONALT +[2234] = "%.1f", -- rAnnunc_MANUAL +[2235] = "%.1f", -- rAnnunc_SPDCHG +[2236] = "%.1f", -- rAnnunc_MONSPD +[2237] = "%.1f", -- rAnnunc_CMDCTRL +[2238] = "%.1f", -- rAnnunc_CHGCHN +[2239] = "%.1f", -- rAnnunc_HDGCHN +[2240] = "%.1f", -- rAnnunc_CANCRPY +[2241] = "%.1f", -- rAnnunc_FWDVEC +[2242] = "%.1f", -- rAnnunc_AFTVEC +[2243] = "%.1f", -- rAnnunc_COIVEC +[2244] = "%.1f", -- rAnnunc_NOMSG +[2245] = "%.1f", -- rAnnunc_TOWAYPT +[2246] = "%.1f", -- rAnnunc_HANDOVER +[2247] = "%.1f", -- rAnnunc_ORBIT +[2248] = "%.1f", -- rAnnunc_CHALNGE +[2249] = "%.1f", -- rAnnunc_ARM1 +[2250] = "%.1f", -- rAnnunc_ARM2 +[2251] = "%.1f", -- rAnnunc_ARM3 +[2252] = "%.1f", -- rAnnunc_NOTCMD +[2253] = "%.1f", -- rAnnunc_FRELAN +[2254] = "%.1f", -- rAnnunc_DISGAGE +[2255] = "%.1f", -- rAnnunc_ABORT +[2256] = "%.1f", -- rAnnunc_BEACON +[2257] = "%.1f", -- rAnnunc_BEACDUB +[2258] = "%.1f", -- rAnnunc_DROP +[2259] = "%.1f", -- rAnnunc_BEACOFF +[2260] = "%.1f", -- rAnnunc_RETBASE + + + + +[2036] = "%.1f", -- TACAN_Knob_Vol_Pilot +[2041] = "%.1f", -- TACAN_Knob_Func_Pilot +[2042] = "%.1f", -- TACAN_Mode_Norm_Inv_Pilot +[2043] = "%.1f", -- TACAN_Mode_X_Y_Pilot +[2115] = "%.1f", -- TACAN_Btn_BIT_Pilot + +[375] = "%.1f", -- TACAN_Knob_Vol_RIO +[374] = "%.1f", -- TACAN_Knob_Func_RIO +[373] = "%.1f", -- TACAN_Mode_Norm_Inv_RIO +[372] = "%.1f", -- TACAN_Mode_X_Y_RIO +[371] = "%.1f", -- TACAN_Btn_BIT_RIO + +[380] = "%.1f", -- RIO_UHF_UPR_LWR +[381] = "%.1f", -- RADIO_ICS_XMTR_SEL_RIO +[382] = "%.1f", -- RIO_KY_MODE + + +[2121] = "%.1f", -- RADAR_Elevation_arrow +[2122] = "%.1f", -- TCS_Elevation_arrow +[2117] = "%.4f", -- FUEL_TotalFuelRIO10k +[2118] = "%.1f", -- FUEL_TotalFuelRIO1k +[2119] = "%.1f", -- FUEL_TotalFuelRIO100 +[2120] = "%.1f", -- FUEL_TotalFuelRIO10 +[2135] = "%.1f", -- FUEL_TotalFuelRIO1 + +[2136] = "%.1f", -- ALR67_RIO_RWR_DISPLAY_TYPE +[2137] = "%.1f", -- ALR67_RIO_RWR_MODE +[2138] = "%.1f", -- ALR67_RIO_RWR_VOL +[2139] = "%.1f", -- ALR67_RIO_RWR_PWR +[2140] = "%.1f", -- ALR67_RIO_RWR_TEST + +[3001] = "%.1f", -- STDBYADI_Pitch +[3002] = "%.1f", -- STDBYADI_Roll + +[3450] = "%.1f", -- TID_Light + +[3760] = "%.1f", -- AOA_Slow +[3761] = "%.1f", -- AOA_Optimum +[3762] = "%.1f", -- AOA_Fast + +[4001] = "%.1f", -- CockpitRandomArg1 +[4002] = "%.1f", -- CockpitRandomArg2 +[4003] = "%.1f", -- CockpitRandomArg3 +[4004] = "%.1f", -- CockpitRandomArg4 +[4005] = "%.1f", -- CockpitRandomArg5 + +[4060] = "%.1f", -- AMMO_Hundreds +[4061] = "%.1f", -- AMMO_Tens +[4062] = "%.1f", -- AMMO_Ones +[2270] = "%.1f", -- WEAP_Gun_lead_Hundreds +[2271] = "%.1f", -- WEAP_Gun_lead_Tens +[2272] = "%.1f", -- WEAP_Gun_lead_Ones + + +[5550] = "%.1f", -- CAP_light_CLEAR +[5551] = "%.1f", -- CAP_light_SW +[5552] = "%.1f", -- CAP_light_NE +[5553] = "%.1f", -- CAP_light_ENTER +[5554] = "%.1f", -- CAP_light_1 +[5555] = "%.1f", -- CAP_light_2 +[5556] = "%.1f", -- CAP_light_3 +[5557] = "%.1f", -- CAP_light_4 +[5558] = "%.1f", -- CAP_light_5 +[5559] = "%.1f", -- CAP_light_6 +[5560] = "%.1f", -- CAP_light_7 +[5561] = "%.1f", -- CAP_light_8 +[5562] = "%.1f", -- CAP_light_9 +[5563] = "%.1f", -- CAP_light_0 +[5564] = "%.1f", -- CAP_light_msg_btn6 +[5565] = "%.1f", -- CAP_light_msg_btn7 +[5566] = "%.1f", -- CAP_light_msg_btn8 +[5567] = "%.1f", -- CAP_light_msg_btn9 +[5568] = "%.1f", -- CAP_light_msg_btn1 +[5569] = "%.1f", -- CAP_light_msg_btn2 +[5570] = "%.1f", -- CAP_light_msg_btn3 +[5571] = "%.1f", -- CAP_light_msg_btn4 +[5572] = "%.1f", -- CAP_light_msg_btn5 +[5573] = "%.1f", -- CAP_light_TNG_NBR +[5574] = "%.1f", -- CAP_light_PGM_RESTART + +[5590] = "%.1f", -- CAP_light_msg_btn10 + +[6000] = "%.1f", -- FUEL_LFuelDial1k +[6001] = "%.1f", -- FUEL_LFuelDial100 +[6002] = "%.1f", -- FUEL_LFuelDial10 +[6003] = "%.1f", -- FUEL_LFuelDial1 +[6004] = "%.1f", -- FUEL_RFuelDial1k +[6005] = "%.1f", -- FUEL_RFuelDial100 +[6006] = "%.1f", -- FUEL_RFuelDial10 +[6007] = "%.1f", -- FUEL_RFuelDial1 +[6010] = "%.4f", -- FUEL_TotalFuel10k +[6011] = "%.1f", -- FUEL_TotalFuel1k +[6012] = "%.1f", -- FUEL_TotalFuel100 +[6013] = "%.1f", -- FUEL_TotalFuel10 +[6014] = "%.1f", -- FUEL_TotalFuel1 +[6020] = "%.4f", -- FUEL_BingoFuel10k +[6021] = "%.1f", -- FUEL_BingoFuel1k +[6022] = "%.1f", -- FUEL_BingoFuel100 +[6023] = "%.1f", -- FUEL_BingoFuel10 +[6024] = "%.1f", -- FUEL_BingoFuel1 + +[1032] = "%.1f", -- STDBY_ADI_Push +[1042] = "%.1f", -- STDBY_ADI_Twist + + + +[6100] = "%.1f", -- DDD_range_roller +[6101] = "%.1f", -- TID_readout_src_roller +[6102] = "%.1f", -- DDD_radar_mode +[6103] = "%.1f", -- TID_steering_roller + +[6111] = "%.1f", -- DDD_mode_light_rdr +[6112] = "%.1f", -- DDD_mode_light_ir +[6113] = "%.1f", -- DDD_mode_light_iff +[6114] = "%.1f", -- DDD_mode_light_pdstt +[6115] = "%.1f", -- DDD_mode_light_pstt +[6116] = "%.1f", -- DDD_mode_light_pdsearch +[6117] = "%.1f", -- DDD_mode_light_rws +[6118] = "%.1f", -- DDD_mode_light_tws_auto +[6119] = "%.1f", -- DDD_mode_light_tws_man +[6120] = "%.1f", -- DDD_mode_light_psearch +[6121] = "%.1f", -- CCM_mode_light_spl +[6122] = "%.1f", -- CCM_mode_light_altoff +[6123] = "%.1f", -- CCM_mode_light_vgs + +[6125] = "%.1f", -- TID_trackhold_light +[6126] = "%.1f", -- TID_CLSN_light +[6127] = "%.1f", -- TID_option_light_riddsbl +[6128] = "%.1f", -- TID_option_light_altnum +[6129] = "%.1f", -- TID_option_light_symelem +[6130] = "%.1f", -- TID_option_light_datalink +[6131] = "%.1f", -- TID_option_light_jam +[6132] = "%.1f", -- TID_option_light_nonattk +[6133] = "%.1f", -- TID_option_light_LZ +[6134] = "%.1f", -- TID_option_light_velvec +[6135] = "%.1f", -- HCU_mode_light_TVIR +[6136] = "%.1f", -- HCU_mode_light_RDR +[6137] = "%.1f", -- HCU_mode_light_DDD +[6138] = "%.1f", -- HCU_mode_light_TID + +[8050] = "%.1f", -- TACAN_LIGHT_GO_Pilot +[8051] = "%.1f", -- TACAN_LIGHT_NOGO_Pilot + +[8052] = "%.1f", -- RIO_IFF_TEST_LIGHT +[8053] = "%.1f", -- RIO_IFF_REPLY_LIGHT + +[8300] = "%.1f", -- NOSEGEAR_OffFlag +[8301] = "%.1f", -- NOSEGEAR_Indicator + +[8302] = "%.1f", -- L_GEAR_Indicator +[8303] = "%.1f", -- L_GEAR_OffFlag + +[8304] = "%.1f", -- R_GEAR_OffFlag +[8305] = "%.1f", -- R_GEAR_Indicator + +[15001] = "%.1f", -- Landing_Gear_Light +[15002] = "%.1f", -- Refuel_probe_light +[15004] = "%.1f", -- UHF_Test_Button_Pilot +[15003] = "%.1f", -- VHF_Test_Button_Pilot + +[15090] = "%.1f", -- Hook_Light + +[15091] = "%.1f", -- Wingsweep_Flag_OFF +[15092] = "%.1f", -- Wingsweep_Flag_AUTO +[15093] = "%.1f", -- Wingsweep_Flag_MAN +[15094] = "%.1f", -- Wingsweep_Flag_EMER +[15095] = "%.1f", -- Wingsweep_Flag_OVER + +[15096] = "%.1f", -- Wingsweep_Lever_Popout + +[15097] = "%.1f", -- Stdby_Compass_Roll +[15098] = "%.1f", -- Master_test_knob_push + + +[8306] = "%.1f", -- SPDBRK_OffFlag +[8307] = "%.1f", -- SPDBRK_In_and_Partial +[8308] = "%.1f", -- SPDBRK_Full + +[8309] = "%.1f", -- SLATS_OffFlag +[8310] = "%.1f", -- SLATS_Indicator + +[8311] = "%.1f", -- FLAPS_Indicator + +[8315] = "%.1f", -- SPOILER_DN_OuterLeft +[8316] = "%.1f", -- SPOILER_DN_InnerLeft +[8317] = "%.1f", -- SPOILER_DN_InnerRight +[8318] = "%.1f", -- SPOILER_DN_OuterRight +[8319] = "%.1f", -- SPOILER_Indicator_OuterLeft +[8320] = "%.1f", -- SPOILER_Indicator_InnerLeft +[8321] = "%.1f", -- SPOILER_Indicator_OuterRight +[8322] = "%.1f", -- SPOILER_Indicator_InnterRight + +[1090] = "%.1f", -- STABILATOR_Indicator_Left +[1091] = "%.1f", -- STABILATOR_Indicator_Right + +[1092] = "%.1f", -- RUDDER_Indicator_Left +[1093] = "%.1f", -- RUDDER_Indicator_Right + +--[[ +[8888] = "%.1f", -- TACAN_Dial_Outer_Pilot +[8889] = "%.1f", -- TACAN_Dial_Inner_Pilot +[8890] = "%.1f", -- TACAN_Dial_Inner_RIO +[8891] = "%.1f", -- TACAN_Dial_Outer_RIO +]] +[8892] = "%.1f", -- TACAN_LIGHT_NOGO_RIO +[8893] = "%.1f", -- TACAN_LIGHT_GO_RIO + +[9199] = "%.1f", -- WEAP_Master_Caution_Button + +[9200] = "%.1f", -- WEAP_Master_Caution +[9201] = "%.1f", -- WEAP_Hot_Trig +[9202] = "%.1f", -- WEAP_Collision +[9203] = "%.1f", -- WEAP_SEAM_lock +[9204] = "%.1f", -- WEAP_gunrate_high +[9205] = "%.1f", -- WEAP_gunrate_low +[9206] = "%.1f", -- WEAP_SW_Cool_on +[9207] = "%.1f", -- WEAP_SW_Cool_off +[9208] = "%.1f", -- WEAP_MSL_Prep_on +[9209] = "%.1f", -- WEAP_MSL_Prep_off +[9210] = "%.1f", -- WEAP_MSL_Mode_norm +[9211] = "%.1f", -- WEAP_MSL_Mode_boresight +[9221] = "%.2f", -- WEAP_store_1a +[9222] = "%.2f", -- WEAP_store_1b +[9223] = "%.2f", -- WEAP_store_3 +[9224] = "%.2f", -- WEAP_store_4 +[9225] = "%.2f", -- WEAP_store_5 +[9226] = "%.2f", -- WEAP_store_6 +[9227] = "%.2f", -- WEAP_store_8b +[9228] = "%.2f", -- WEAP_store_8a +[16000] = "%.1f", -- WEAP_GunRateButton +[16001] = "%.1f", -- WEAP_SWCoolButton +[16002] = "%.1f", -- WEAP_MSLPrepButton +[16003] = "%.1f", -- WEAP_ModeSTPButton + +[16004] = "%.1f", -- AOA_Indicator_OFF_Flag + +[16005] = "%.1f", -- ASYM_Limiter_Flipcover +[16006] = "%.1f", -- ASYM_Limiter_Switch + +[16007] = "%.1f", -- ENG_Mode_L +[16008] = "%.1f", -- ENG_Mode_R + +[16012] = "%.1f", -- VDI_Realtime_Light +[16013] = "%.1f", -- HUD_Realtime_Light + +[260] = "%.1f", -- DDD_Realtime_Light +[3450] = "%.1f", -- TID_Realtime_Light + +[16015] = "%.1f", -- Gear_emergency_down + +[16016] = "%.1f", -- RECORD_Knob_Reset + + +[9360] = "%.1f", -- ADV_ADJAC +[9361] = "%.1f", -- ADV_LandingChk +[9362] = "%.1f", -- ADV_ACLReady +[9363] = "%.1f", -- ADV_APCPLR +[9364] = "%.1f", -- ADV_CMDControl +[9365] = "%.1f", -- ADV_TenSeconds +[9366] = "%.1f", -- ADV_TILT +[9367] = "%.1f", -- ADV_Voice +[9368] = "%.1f", -- ADV_AutoThrottle +[9369] = "%.1f", -- ADV_APRef + + + +[15070] = "%.1f", -- LIGHT_WAVE_OFF +[15071] = "%.1f", -- LIGHT_WING_SWEEP +[15072] = "%.1f", -- LIGHT_REDUCESPD +[15073] = "%.1f", -- LIGHT_ALTLOW + + +[9350] = "%.1f", -- HUD_Wheels +[9351] = "%.1f", -- HUD_Brakes +[9352] = "%.1f", -- HUD_ACLAP +[9353] = "%.1f", -- HUD_NWSEnga +[9354] = "%.1f", -- HUD_AutoThrottle + +[9355] = "%.1f", -- HUD_RStall +[9356] = "%.1f", -- HUD_LStall + +[9357] = "%.1f", -- HUD_SAM +[9358] = "%.1f", -- HUD_AAA +[9359] = "%.1f", -- HUD_AI + + + +[9960] = "%.1f", -- WEAP_Interval_10s +[9961] = "%.1f", -- WEAP_Interval_100s +[9962] = "%.1f", -- WEAP_Quantity_10s +[9963] = "%.1f", -- WEAP_Quantity_1s +[9964] = "%.1f", -- WEAP_Next_launch + +[11500] = "%.1f", -- HCU_joystick_rightleft +[11501] = "%.1f", -- HCU_joystick_backfore + +[11503] = "%.1f", -- DDD_ANT_TRK_light +[11504] = "%.1f", -- DDD_RDROT_light +[11505] = "%.1f", -- DDD_JAT_light +[11506] = "%.1f", -- DDD_IROT_light + +[11600] = "%.1f", -- RECORD_minutes_hi +[11601] = "%.1f", -- RECORD_minutes_med +[11602] = "%.1f", -- RECORD_minutes_low + +[224] = "%.1f", -- CANOPY_Jettison +[122] = "%.1f", -- RIO_STORAGE_BOX + + +[497] = "%.1f", -- GEAR_LaunchBarAbort +[496] = "%.1f", -- GEAR_LaunchBarAbortCover + +[498] = "%.1f", -- RIO_SEAT_SAFETY + +[666] = "%.1f", -- LANTIRN_Panel_Visibility + +[667] = "%.1f", -- LANTIRN_RotaryKnob +[668] = "%.1f", -- LANTIRN_Laser +[669] = "%.1f", -- LANTIRN_MODE +[670] = "%.1f", -- LANTIRN_Video +[671] = "%.1f", -- LANTIRN_Button + +[672] = "%.1f", -- LANTIRN_RedButton + +[673] = "%.1f", -- LANTIRN_OPERSTBY +[674] = "%.1f", -- LANTIRN_IMUGPS +[675] = "%.1f", -- LANTIRN_LGPFLIR +[676] = "%.1f", -- LANTIRN_MUXEGU +[677] = "%.1f", -- LANTIRN_LASERSERVO +[678] = "%.1f", -- LANTIRN_FLIRTCS +[679] = "%.1f", -- LANTIRN_IBIT +[680] = "%.1f", -- LANTIRN_LASERARMED + +[38] = "%.1f", -- CANOPY_Open + +[404] = "%.1f", -- WINGS_LeftSweep + +[1022] = "%.1f", -- CONTROL_LeftOuterSlats +[509] = "%.1f", -- CONTROL_LeftRudder + + +[25] = "%.1f", -- GEARHOOK_Hook +[1305] = "%.1f", -- GEARHOOK_Visual + +[28] = "%.1f", -- ENGINE_RightAB_Dummy +[435] = "%.1f", -- ENGINE_RightAB +[500] = "%.1f", -- ENGINE_RightAB_Stage4 +[29] = "%.1f", -- ENGINE_LeftAB_Dummy +[436] = "%.1f", -- ENGINE_LeftAB +[501] = "%.1f", -- ENGINE_LeftAB_Stage4 +[434] = "%.1f", -- ENGINE_LeftNozzle +[433] = "%.1f", -- ENGINE_RightNozzle +[5353] = "%.1f", -- ENGINE_LeftFan +[5352] = "%.1f", -- ENGINE_RightFan + +[85] = "%.1f", -- GEARHOOK_LaunchBar + +[400] = "%.1f", -- CONTROL_TopSpeedBrake +[401] = "%.1f", -- CONTROL_BottomLeftSpeedBrake +[402] = "%.1f", -- CONTROL_BottomRightSpeedBrake + +[405] = "%.1f", -- WINGS_RightSweep +[507] = "%.1f", -- WINGS_LeftOverSweep +[508] = "%.1f", -- WINGS_RightOverSweep + +[450] = "%.1f", -- CONTROL_LeftStabilator +[406] = "%.1f", -- CONTROL_RightStabilator + +[1609] = "%.1f", -- AICS_LeftRamp1 --500 +[1610] = "%.1f", -- AICS_LeftRamp2 --501 +[1611] = "%.1f", -- AICS_RightRamp1 --502 +[1612] = "%.1f", -- AICS_RightRamp2 --503 + +[600] = "%.1f", -- WEAP_Front_Phoenix_rails +[601] = "%.1f", -- WEAP_Front_Phoenix_left_plug +[602] = "%.1f", -- WEAP_Front_Phoenix_right_plug +[603] = "%.1f", -- WEAP_Rear_Phoenix_left_plug +[604] = "%.1f", -- WEAP_Rear_Phoenix_right_plug +[605] = "%.1f", -- WEAP_Rear_Phoenix_rails +[606] = "%.1f", -- WEAP_LANTIRN +[607] = "%.1f", -- WEAP_LANTIRN_Rotate1 +[608] = "%.1f", -- WEAP_LANTIRN_Rotate2 + +[999] = "%.1f", -- FUEL_FuelDumpTorchHor +[999] = "%.1f", -- FUEL_FuelDumpTorchVert +[22] = "%.1f", -- FUEL_FuelProbe +[999] = "%.1f", -- FUEL_FuelDump +[999] = "%.1f", -- FUEL_FuelDumpTorch + +[999] = "%.1f", -- CONTROL_LeftInnerSlats +[999] = "%.1f", -- CONTROL_RightInnerSlats +[1004] = "%.1f", -- CONTROL_LeftAuxFlaps +[1001] = "%.1f", -- CONTROL_LeftMainFlaps +[1003] = "%.1f", -- CONTROL_RightMainFlaps +[1002] = "%.1f", -- CONTROL_RightAuxFlaps + +[1500] = "%.1f", -- WINGS_LeftFlex +[1501] = "%.1f", -- WINGS_RightFlex + +[1010] = "%.1f", -- CONTROL_LeftOuterSpoiler +[1011] = "%.1f", -- CONTROL_LeftInnerSpoiler +[1012] = "%.1f", -- CONTROL_RightInnerSpoiler +[1013] = "%.1f", -- CONTROL_RightOuterSpoiler +[1020] = "%.1f", -- CONTROL_RightRudder +--[1021] = "%.1f", -- CONTROL_RightOuterSlats + +[6000] = "%.1f", -- PILOT_Left_Right +[6001] = "%.1f", -- PILOT_Up_Down +[1600] = "%.1f", -- PILOT_Salute +[6002] = "%.1f", -- PILOT_LeanSideways + +[1601] = "%.1f", -- RIO_Lean_And_Grab +[1603] = "%.1f", -- RIO_Hold_On +[1605] = "%.1f", -- RIO_Right_Left +[1607] = "%.1f", -- RIO_Up_Down +[6003] = "%.1f", -- RIO_LeanSideways +[6004] = "%.1f", -- RIO_LeanForward + +[1608] = "%.1f", -- DDD_Lamp + +[1614] = "%.1f", -- PILOT_Lean_Forward +[1615] = "%.1f", -- PILOT_Lean_Back + +[16] = "%.1f", -- DUMMY_LeftElevator +[15] = "%.1f", -- DUMMY_RightElevator +[12] = "%.1f", -- DUMMY_LeftAileron +[11] = "%.1f", -- DUMMY_RightAileron + +[3600] = "%.1f", -- Sync1 +[3601] = "%.1f", -- Sync2 +[3602] = "%.1f", -- Sync3 +[3603] = "%.1f", -- Sync4 + +[51] = "%.1f", -- LIGHTS_Taxi +[200] = "%.1f", -- LIGHTS_Formation +[84] = "%.1f", -- LIGHTS_Approach +[609] = "%.1f", -- LIGHTS_Approach_Bright_Dim_Switch +[610] = "%.1f", -- LIGHTS_Fuel_Probe +[611] = "%.1f", -- LIGHTS_Position_Wing +[612] = "%.1f", -- LIGHTS_Position_Glove +[613] = "%.1f", -- LIGHTS_Position_Tail +[620] = "%.1f", -- LIGHTS_Anticollision +[614] = "%.1f", -- LIGHTS_Anticollision_Bottom +[615] = "%.1f", -- LIGHTS_External_Dummy +[621] = "%.1f", -- LIGHTS_Disable_Ext +[625] = "%.1f", -- LIGHTS_External_Dummy2 + +[626] = "%.1f", -- RIO_Right_Left_Dummy +[627] = "%.1f", -- RIO_Up_Down_Dummy + + +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] +[15082] = "%1d", -- Fire Ext Bottle - Right, (1, 0, 1) +[15083] = "%1d", -- Fire Ext Bottle - Left, (1, 0, 1) +-- ACCELEROMETER(24) +[228] = "%1d", -- Accelerometer Reset, (1, 0, 1) +-- AFCS(21) +[2112] = "%1d", -- Autopilot - Engage, (-2, -1, 1) Shold be -2 and 2 -Bailey +[2106] = "%1d", -- AFCS Stability Augmentation - Pitch, (-1, 0, 1) +[2107] = "%1d", -- AFCS Stability Augmentation - Roll, (-1, 0, 1) +[2108] = "%1d", -- AFCS Stability Augmentation - Yaw, (-1, 0, 1) +[2109] = "%1d", -- Autopilot - Vector / Automatic Carrier Landing, (-1, -1, 1) +[2110] = "%1d", -- Autopilot - Altitude Hold, (-1, 0, 1) +[2111] = "%1d", -- Autopilot - Heading / Ground Track, (-1, -1, 1) +--[2106] = "%1d", -- AFCS Stability Augmentation - Pitch, (1, 0, 1) +--[2107] = "%1d", -- AFCS Stability Augmentation - Roll, (1, 0, 1) +--[2108] = "%1d", -- AFCS Stability Augmentation - Yaw, (1, 0, 1) +--[2109] = "%1d", -- Autopilot - Vector / Automatic Carrier Landing, (1, -1, 1) +--[2110] = "%1d", -- Autopilot - Altitude Hold, (1, 0, 1) +--[2111] = "%1d", -- Autopilot - Heading / Ground Track, (1, -1, 1) +--[2112] = "%1d", -- Autopilot - Engage, (2, -1, 1) +-- AHRS(51) +[905] = "%1d", -- Compass Mode, (-1, -1, 1) +[906] = "%1d", -- Compass N-S Hemisphere, (-1, 0, 1) +[909] = "%1d", -- Compass LAT Correction, (0, 0, 1) +[904] = "%1d", -- Compass HDG Slave Knob/nPush (Left Mouse Button) and rotate (Right Mouse Button), (1, -1, 1) +[905] = "%1d", -- Compass Mode, (1, -1, 1) +[906] = "%1d", -- Compass N-S Hemisphere, (1, 0, 1) +[16014] = "%1d", -- Compass HDG Slave Knob/nPush (Left Mouse Button) and rotate (Right Mouse Button), (1, 0, 1) +-- AICS(13) +[2100] = "%1d", -- Stow Inlet Ramps Left Switch, (-1, 0, 1) +[2101] = "%1d", -- Stow Inlet Ramps Right Switch, (-1, 0, 1) +[2100] = "%1d", -- Stow Inlet Ramps Left Switch, (1, 0, 1) +[2101] = "%1d", -- Stow Inlet Ramps Right Switch, (1, 0, 1) +-- AOASYSTEM(25) +[915] = "%1d", -- Hook Bypass, (-1, 0, 1) +[915] = "%1d", -- Hook Bypass, (1, 0, 1) +[15006] = "%.4f", -- AoA Indexer Light Intensity, (0.125, 0, 1) +[15006] = "%.4f", -- AoA Indexer Light Intensity, (-0.125, 0, 1) +-- ARC159(3) +[2026] = "%1d", -- UHF ARC-159 0.025MHz, (-1, -1, 0) +[2028] = "%1d", -- UHF ARC-159 0.1MHz, (-1, -1, 0) +[2029] = "%1d", -- UHF ARC-159 1MHz, (-1, -1, 0) +[2030] = "%1d", -- UHF ARC-159 100MHz & 10MHz, (-1, -1, 0) +[2035] = "%1d", -- UHF ARC-159 Squelch Switch, (-1, 0, 1) +[383] = "%1d", -- UHF ARC-159 Volume RIO, (0, 0, 1) +[2027] = "%1d", -- UHF ARC-159 Display Brightness, (0, 0, 1) +[2031] = "%1d", -- UHF ARC-159 Volume Pilot, (0, 0, 1) +[405] = "%1d", -- UHF Radio Remote Display Test, (1, 0, 1) +[406] = "%1d", -- UHF Radio Remote Display Brightness, (1, 0, 1) +[1031] = "%1d", -- UHF Radio Remote Display Brightness, (1, 0, 1) +[2026] = "%1d", -- UHF ARC-159 0.025MHz, (1, 1, 0) +[2028] = "%1d", -- UHF ARC-159 0.1MHz, (1, 1, 0) +[2029] = "%1d", -- UHF ARC-159 1MHz, (1, 1, 0) +[2030] = "%1d", -- UHF ARC-159 100MHz & 10MHz, (1, 1, 0) +[2035] = "%1d", -- UHF ARC-159 Squelch Switch, (1, 0, 1) +[8115] = "%1d", -- UHF ARC-159 Read, (1, 0, 1) +[15004] = "%1d", -- UHF Radio Remote Display Test, (1, 0, 1) +[16009] = "%1d", -- UHF ARC-159 Load, (1, 0, 1) +[16010] = "%1d", -- UHF ARC-159 Tone, (1, 0, 1) +[2032] = "%.4f", -- UHF ARC-159 Preset Channel Selector, (0.0833333333, 0, 0.9166666663) +[2032] = "%.4f", -- UHF ARC-159 Preset Channel Selector, (-0.0833333333, 0, 0.9166666663) +[2034] = "%.4f", -- UHF ARC-159 Function, (0.333333, 0, 0.999999) +[2034] = "%.4f", -- UHF ARC-159 Function, (-0.333333, 0, 0.999999) +[2033] = "%.1f", -- UHF ARC-159 Freq Mode, (0.5, 0, 1) +[2033] = "%.1f", -- UHF ARC-159 Freq Mode, (-0.5, 0, 1) +-- ARC182(4) +[351] = "%1d", -- VHF/UHF ARC-182 Squelch Switch, (-1, 0, 1) +[354] = "%1d", -- VHF/UHF ARC-182 100MHz & 10MHz, (-1, -1, 0) +[355] = "%1d", -- VHF/UHF ARC-182 1MHz, (-1, -1, 0) +[356] = "%1d", -- VHF/UHF ARC-182 0.1MHz, (-1, -1, 0) +[357] = "%1d", -- VHF/UHF ARC-182 0.025MHz, (-1, -1, 0) +[359] = "%1d", -- VHF/UHF ARC-182 FM/AM Switch, (-1, 0, 1) +[350] = "%1d", -- VHF/UHF ARC-182 Volume RIO, (0, 0, 1) +[360] = "%1d", -- VHF/UHF ARC-182 Display Brightness, (0, 0, 1) +[2038] = "%1d", -- VHF/UHF ARC-182 Volume Pilot, (0, 0, 1) +[351] = "%1d", -- VHF/UHF ARC-182 Squelch Switch, (1, 0, 1) +[354] = "%1d", -- VHF/UHF ARC-182 100MHz & 10MHz, (1, 1, 0) +[355] = "%1d", -- VHF/UHF ARC-182 1MHz, (1, 1, 0) +[356] = "%1d", -- VHF/UHF ARC-182 0.1MHz, (1, 1, 0) +[357] = "%1d", -- VHF/UHF ARC-182 0.025MHz, (1, 1, 0) +[359] = "%1d", -- VHF/UHF ARC-182 FM/AM Switch, (1, 0, 1) +[1030] = "%1d", -- VHF/UHF Radio Remote Display Brightness, (1, 0, 1) +[15003] = "%1d", -- VHF/UHF Radio Remote Display Test, (1, 0, 1) +[352] = "%.4f", -- VHF/UHF ARC-182 Preset Channel Selector, (0.0833333333, 0, 0.9166666663) +[352] = "%.4f", -- VHF/UHF ARC-182 Preset Channel Selector, (-0.0833333333, 0, 0.9166666663) +[353] = "%.1f", -- VHF/UHF ARC-182 Freq Mode, (0.2, 0, 1) +[353] = "%.1f", -- VHF/UHF ARC-182 Freq Mode, (-0.2, 0, 1) +[358] = "%.2f", -- VHF/UHF ARC-182 MODE, (0.25, 0, 1) +[358] = "%.2f", -- VHF/UHF ARC-182 MODE, (-0.25, 0, 1) +-- BAROALTIMETER(28) +[307] = "%1d", -- Altimeter Mode Switch, (-1, -1, 0) +[20307] = "%1d", -- Altimeter Mode Switch, (-1, -1, 0) +[306] = "%1d", -- Altimeter Pressure Setting, (0, 0, 1) +[20306] = "%1d", -- Altimeter Pressure Setting, (0, 0, 1) +[307] = "%1d", -- Altimeter Mode Switch, (1, 1, 0) +[20307] = "%1d", -- Altimeter Mode Switch, (1, 1, 0) +-- BITPANEL(10) +[15098] = "%1d", -- Master Test Selector (LB to rotate, (1, 0, 1) +[934] = "%.4f", -- Master Test Selector (LB to rotate, (0.090909090909091, 0, 0.90909090909091) +-- CADC(22) +[1071] = "%1d", -- MASTER RESET, (1, 0, 1) +-- CAP(23) +[123] = "%1d", -- CAP btn 5, (1, 0, 1) +[124] = "%1d", -- CAP btn 4, (1, 0, 1) +[125] = "%1d", -- CAP btn 3, (1, 0, 1) +[126] = "%1d", -- CAP btn 2, (1, 0, 1) +[127] = "%1d", -- CAP btn 1, (1, 0, 1) +[128] = "%1d", -- CAP TNG NBR, (1, 0, 1) +[129] = "%1d", -- CAP btn 10, (1, 0, 1) +[130] = "%1d", -- CAP btn 9, (1, 0, 1) +[131] = "%1d", -- CAP btn 8, (1, 0, 1) +[132] = "%1d", -- CAP btn 7, (1, 0, 1) +[133] = "%1d", -- CAP btn 6, (1, 0, 1) +[134] = "%1d", -- CAP PGM RSTRT, (1, 0, 1) +[136] = "%1d", -- CAP LONG 6, (1, 0, 1) +[137] = "%1d", -- CAP LAT 1, (1, 0, 1) +[138] = "%1d", -- CAP NBR 2, (1, 0, 1) +[139] = "%1d", -- CAP 7, (1, 0, 1) +[140] = "%1d", -- CAP HDG 8, (1, 0, 1) +[141] = "%1d", -- CAP SPD 3, (1, 0, 1) +[142] = "%1d", -- CAP 9, (1, 0, 1) +[143] = "%1d", -- CAP ALT 4, (1, 0, 1) +[144] = "%1d", -- CAP BRG 0, (1, 0, 1) +[145] = "%1d", -- CAP RNG 5, (1, 0, 1) +[146] = "%1d", -- CAP N+E, (1, 0, 1) +[147] = "%1d", -- CAP S-W, (1, 0, 1) +[148] = "%1d", -- CAP clear, (1, 0, 1) +[149] = "%1d", -- CAP enter, (1, 0, 1) +[98] = "%.1f", -- CAP category, (0.2, 0, 1) +[98] = "%.1f", -- CAP category, (-0.2, 0, 1) +-- CLOCK(26) +[1099] = "%1d", -- Clock Timer Start/Stop/Reset, (1, 0, 1) +[4153] = "%1d", -- Clock Timer Start/Stop/Reset, (1, 0, 1) +[1051] = "%.1f", -- Clock Wind, (0.5, 0, 1) +--[] = "%.1f", -- Clock Wind, (0.5, 0, 1) +-- COCKPITMECHANICS(11) +[119] = "%1d", -- RIO Oxygen On, (-1, 0, 1) +[159] = "%1d", -- White Flood Light, (-1, -1, 1) +[194] = "%1d", -- Red Flood Light, (-1, -1, 1) +[913] = "%1d", -- Position Lights Wing, (-1, -1, 1) +[916] = "%1d", -- Position Lights Tail, (-1, -1, 1) +[918] = "%1d", -- Taxi Light, (-1, 0, 1) +[919] = "%1d", -- Position Lights Flash, (-1, 0, 1) +[921] = "%1d", -- White Flood Light, (-1, -1, 1) +[923] = "%1d", -- Anti-Collision Lights, (-1, 0, 1) +[924] = "%1d", -- Red Flood Light, (-1, -1, 1) +[929] = "%1d", -- Air Source Ram, (-1, 0, 1) +[930] = "%1d", -- Air Source Left Engine, (-1, 0, 1) +[931] = "%1d", -- Air Source Right Engine, (-1, 0, 1) +[932] = "%1d", -- Air Source Both Engines, (-1, 0, 1) +[933] = "%1d", -- Air Source Off, (-1, 0, 1) +[938] = "%1d", -- Ram Air, (-1, 0, 1) +[939] = "%1d", -- Cabin Pressure Dump, (-1, 0, 1) +[940] = "%1d", -- Temp Auto / Man, (-1, 0, 1) +[942] = "%1d", -- Wind Shield Air, (-1, -1, 1) +[8114] = "%1d", -- Pilot Oxygen On, (-1, 0, 1) +[122] = "%1d", -- Storage, (0, 0, 1) +[224] = "%1d", -- Canopy Jettison, (0, 0, 1) +[224] = "%1d", -- Canopy Jettison, (0, 0, 1) +[404] = "%1d", -- Ejection Seat Safety, (0, 0, 1) +[498] = "%1d", -- Ejection Seat Safety, (0, 0, 1) +[2049] = "%1d", -- Ejection CMD Lever, (0, 0, 1) +[119] = "%1d", -- RIO Oxygen On, (1, 0, 1) +[122] = "%1d", -- Storage, (1, 0, 1) +[159] = "%1d", -- White Flood Light, (1, -1, 1) +[194] = "%1d", -- Red Flood Light, (1, -1, 1) +[224] = "%1d", -- Canopy Jettison, (1, 0, 1) +[224] = "%1d", -- Canopy Jettison, (1, 0, 1) +[404] = "%1d", -- Ejection Seat Safety, (1, 0, 1) +[498] = "%1d", -- Ejection Seat Safety, (1, 0, 1) +[913] = "%1d", -- Position Lights Wing, (1, -1, 1) +[916] = "%1d", -- Position Lights Tail, (1, -1, 1) +[918] = "%1d", -- Taxi Light, (1, 0, 1) +[919] = "%1d", -- Position Lights Flash, (1, 0, 1) +[921] = "%1d", -- White Flood Light, (1, -1, 1) +[923] = "%1d", -- Anti-Collision Lights, (1, 0, 1) +[924] = "%1d", -- Red Flood Light, (1, -1, 1) +[929] = "%1d", -- Air Source Ram, (1, 0, 1) +[930] = "%1d", -- Air Source Left Engine, (1, 0, 1) +[931] = "%1d", -- Air Source Right Engine, (1, 0, 1) +[932] = "%1d", -- Air Source Both Engines, (1, 0, 1) +[933] = "%1d", -- Air Source Off, (1, 0, 1) +[938] = "%1d", -- Ram Air, (1, 0, 1) +[939] = "%1d", -- Cabin Pressure Dump, (1, 0, 1) +[940] = "%1d", -- Temp Auto / Man, (1, 0, 1) +[942] = "%1d", -- Wind Shield Air, (1, -1, 1) +[2049] = "%1d", -- Ejection CMD Lever, (1, 0, 1) +[8114] = "%1d", -- Pilot Oxygen On, (1, 0, 1) +[192] = "%.4f", -- Console Light Intensity, (0.125, 0, 1) +[193] = "%.4f", -- Instrument Light Intensity, (0.125, 0, 1) +[950] = "%.4f", -- Temperature, (0.125, 0, 1) +[15005] = "%.4f", -- ACM Panel Light Intensity, (0.125, 0, 1) +[15007] = "%.4f", -- Instrument Light Intensity, (0.125, 0, 1) +[15008] = "%.4f", -- Console Light Intensity, (0.125, 0, 1) +[15009] = "%.4f", -- Formation Light Intensity, (0.125, 0, 1) +[192] = "%.4f", -- Console Light Intensity, (-0.125, 0, 1) +[193] = "%.4f", -- Instrument Light Intensity, (-0.125, 0, 1) +[950] = "%.4f", -- Temperature, (-0.125, 0, 1) +[15005] = "%.4f", -- ACM Panel Light Intensity, (-0.125, 0, 1) +[15007] = "%.4f", -- Instrument Light Intensity, (-0.125, 0, 1) +[15008] = "%.4f", -- Console Light Intensity, (-0.125, 0, 1) +[15009] = "%.4f", -- Formation Light Intensity, (-0.125, 0, 1) +-- COUNTERMEASURES(5) +[387] = "%1d", -- AN/ALE-37 Jammer Dispense, (-1, -1, 0) +[388] = "%1d", -- AN/ALE-37 Flare Dispense, (-1, -1, 0) +[389] = "%1d", -- AN/ALE-37 Chaff Dispense, (-1, -1, 0) +[390] = "%1d", -- AN/ALE-37 Power/Mode, (-1, -1, 1) +[398] = "%1d", -- AN/ALE-37 Flare Mode, (-1, -1, 1) +[216] = "%1d", -- AN/ALE-37 Programmer Reset, (1, 0, 1) +[385] = "%1d", -- AN/ALE-37 Flare Counter, (1, 0, 1) +[386] = "%1d", -- AN/ALE-37 Chaff Counter, (1, 0, 1) +[387] = "%1d", -- AN/ALE-37 Jammer Dispense, (1, 1, 0) +[388] = "%1d", -- AN/ALE-37 Flare Dispense, (1, 1, 0) +[389] = "%1d", -- AN/ALE-37 Chaff Dispense, (1, 1, 0) +[390] = "%1d", -- AN/ALE-37 Power/Mode, (1, -1, 1) +[391] = "%1d", -- AN/ALE-37 Flare Salvo, (1, 0, 1) +[398] = "%1d", -- AN/ALE-37 Flare Mode, (1, -1, 1) +[399] = "%1d", -- AN/ALE-37 Jammer Counter, (1, 0, 1) +[211] = "%.4f", -- AN/ALE-37 Jammer Interval Units, (0.11111111111111, 0, 1) +[212] = "%.4f", -- AN/ALE-37 Jammer Interval Tens, (0.11111111111111, 0, 1) +[213] = "%.4f", -- AN/ALE-37 Jammer Interval Hundreds, (0.11111111111111, 0, 1) +[211] = "%.4f", -- AN/ALE-37 Jammer Interval Units, (-0.11111111111111, 0, 1) +[212] = "%.4f", -- AN/ALE-37 Jammer Interval Tens, (-0.11111111111111, 0, 1) +[213] = "%.4f", -- AN/ALE-37 Jammer Interval Hundreds, (-0.11111111111111, 0, 1) +[203] = "%.4f", -- AN/ALE-37 Chaff Salvo Quantity, (0.16666666666667, 0, 1) +[203] = "%.4f", -- AN/ALE-37 Chaff Salvo Quantity, (-0.16666666666667, 0, 1) +[205] = "%.1f", -- AN/ALE-37 Flare Quantity, (0.2, 0, 1) +[214] = "%.1f", -- AN/ALE-37 Chaff Burst Quantity, (0.2, 0, 1) +[215] = "%.1f", -- AN/ALE-37 Chaff Burst Interval, (0.2, 0, 1) +[205] = "%.1f", -- AN/ALE-37 Flare Quantity, (-0.2, 0, 1) +[214] = "%.1f", -- AN/ALE-37 Chaff Burst Quantity, (-0.2, 0, 1) +[215] = "%.1f", -- AN/ALE-37 Chaff Burst Interval, (-0.2, 0, 1) +[202] = "%.2f", -- AN/ALE-37 Chaff Salvo Interval, (0.25, 0, 1) +[210] = "%.2f", -- AN/ALE-37 Flare Interval, (0.25, 0, 1) +[202] = "%.2f", -- AN/ALE-37 Chaff Salvo Interval, (-0.25, 0, 1) +[210] = "%.2f", -- AN/ALE-37 Flare Interval, (-0.25, 0, 1) +[204] = "%.4f", -- AN/ALE-37 Jammer Quantity, (0.33333333333333, 0, 1) +[204] = "%.4f", -- AN/ALE-37 Jammer Quantity, (-0.33333333333333, 0, 1) +[206] = "%.1f", -- AN/ALE-37 L10 Load Type, (0.5, 0, 1) +[207] = "%.1f", -- AN/ALE-37 L20 Load Type, (0.5, 0, 1) +[208] = "%.1f", -- AN/ALE-37 R20 Load Type, (0.5, 0, 1) +[209] = "%.1f", -- AN/ALE-37 R10 Load Type, (0.5, 0, 1) +[206] = "%.1f", -- AN/ALE-37 L10 Load Type, (-0.5, 0, 1) +[207] = "%.1f", -- AN/ALE-37 L20 Load Type, (-0.5, 0, 1) +[208] = "%.1f", -- AN/ALE-37 R20 Load Type, (-0.5, 0, 1) +[209] = "%.1f", -- AN/ALE-37 R10 Load Type, (-0.5, 0, 1) +-- DATALINK(52) +[96] = "%1d", -- Beacon Power, (-1, -1, 1) +[175] = "%1d", -- Datalink Antenna (no function), (-1, 0, 1) +[176] = "%1d", -- Datalink Reply (no function), (-1, 0, 1) +[177] = "%1d", -- Datalink CAINS/TAC, (-1, 0, 1) +[191] = "%1d", -- Datalink Antijam (no function), (-1, -1, 1) +[413] = "%1d", -- Datalink Power, (-1, -1, 1) +[96] = "%1d", -- Beacon Power, (1, -1, 1) +[117] = "%1d", -- ACLS test, (1, 0, 1) +[175] = "%1d", -- Datalink Antenna (no function), (1, 0, 1) +[176] = "%1d", -- Datalink Reply (no function), (1, 0, 1) +[177] = "%1d", -- Datalink CAINS/TAC, (1, 0, 1) +[191] = "%1d", -- Datalink Antijam (no function), (1, -1, 1) +[413] = "%1d", -- Datalink Power, (1, -1, 1) +[195] = "%.4f", -- Datalink freq 1MHz, (0.11111111111111, 0, 1) +[196] = "%.4f", -- Datalink freq 10MHz, (0.11111111111111, 0, 1) +[197] = "%.4f", -- Datalink freq 100kHz, (0.11111111111111, 0, 1) +[222] = "%.4f", -- Datalink address high, (0.11111111111111, 0, 1) +[223] = "%.4f", -- Datalink address low, (0.11111111111111, 0, 1) +[195] = "%.4f", -- Datalink freq 1MHz, (-0.11111111111111, 0, 1) +[196] = "%.4f", -- Datalink freq 10MHz, (-0.11111111111111, 0, 1) +[197] = "%.4f", -- Datalink freq 100kHz, (-0.11111111111111, 0, 1) +[222] = "%.4f", -- Datalink address high, (-0.11111111111111, 0, 1) +[223] = "%.4f", -- Datalink address low, (-0.11111111111111, 0, 1) +[118] = "%.4f", -- Beacon mode, (0.166667, 0, 1.000002) +[118] = "%.4f", -- Beacon mode, (-0.166667, 0, 1.000002) +-- DECM(53) +[9950] = "%1d", -- DECM ALQ-100 Volume, (0, 0, 1) +[151] = "%.1f", -- DECM ALQ-100 Power/Mode, (0.2, 0, 1) +[151] = "%.1f", -- DECM ALQ-100 Power/Mode, (-0.2, 0, 1) +-- ECMD(44) +[2023] = "%1d", -- ECMD Brightness, (0, 0, 1) +[2024] = "%1d", -- ECMD Test, (1, 0, 1) +-- ELECTRICS(14) +[902] = "%1d", -- Inboard Spoiler Override Cover, (-1, 0, 1) +[903] = "%1d", -- Outboard Spoiler Override Cover, (-1, 0, 1) +[907] = "%1d", -- Outboard Spoiler Override, (-1, 0, 1) +[908] = "%1d", -- Inboard Spoiler Override, (-1, 0, 1) +[926] = "%1d", -- Emergency Generator Switch, (-1, 0, 1) +[927] = "%1d", -- Emergency Generator Switch Cover, (-1, 0, 1) +[936] = "%1d", -- Right Generator Switch, (-1, -1, 1) +[937] = "%1d", -- Left Generator Switch, (-1, -1, 1) +[902] = "%1d", -- Inboard Spoiler Override Cover, (1, 0, 1) +[903] = "%1d", -- Outboard Spoiler Override Cover, (1, 0, 1) +[907] = "%1d", -- Outboard Spoiler Override, (1, 0, 1) +[908] = "%1d", -- Inboard Spoiler Override, (1, 0, 1) +[926] = "%1d", -- Emergency Generator Switch, (1, 0, 1) +[927] = "%1d", -- Emergency Generator Switch Cover, (1, 0, 1) +[936] = "%1d", -- Right Generator Switch, (1, -1, 1) +[937] = "%1d", -- Left Generator Switch, (1, -1, 1) +-- ENGINE(19) +[941] = "%1d", -- Engine/Probe Anti-Ice, (-1, -1, 1) +[2102] = "%1d", -- Engine Crank, (-1, -1, 1) +[2103] = "%1d", -- Throttle Temp, (-1, -1, 1) +[2104] = "%1d", -- Throttle Mode, (-1, -1, 1) +[2105] = "%1d", -- Engine Airstart, (-1, 0, 1) +[12300] = "%1d", -- Left Engine Fuel Cutoff, (-1, 0, 1) +[12301] = "%1d", -- Right Engine Fuel Cutoff, (-1, 0, 1) +[16005] = "%1d", -- Asymmetric Thrust Limiter Cover, (-1, 0, 1) +[16006] = "%1d", -- Asymmetric Thrust Limiter, (-1, 0, 1) +[16007] = "%1d", -- Left Engine Mode, (-1, 0, 1) +[16008] = "%1d", -- Right Engine Mode, (-1, 0, 1) +[941] = "%1d", -- Engine/Probe Anti-Ice, (1, -1, 1) +[2102] = "%1d", -- Engine Crank, (1, -1, 1) +[2103] = "%1d", -- Throttle Temp, (1, -1, 1) +[2104] = "%1d", -- Throttle Mode, (1, -1, 1) +[2105] = "%1d", -- Engine Airstart, (1, 0, 1) +[12300] = "%1d", -- Left Engine Fuel Cutoff, (1, 0, 1) +[12301] = "%1d", -- Right Engine Fuel Cutoff, (1, 0, 1) +[16005] = "%1d", -- Asymmetric Thrust Limiter Cover, (1, 0, 1) +[16006] = "%1d", -- Asymmetric Thrust Limiter, (1, 0, 1) +[16007] = "%1d", -- Left Engine Mode, (1, 0, 1) +[16008] = "%1d", -- Right Engine Mode, (1, 0, 1) +-- FLAPS(18) +[225] = "%1d", -- Flaps Lever, (1, 0, 1) +-- FUELSYSTEM(20) +[1001] = "%1d", -- Wing/Ext Trans, (-1, -1, 1) +[1073] = "%1d", -- Refuel Probe, (-1, -1, 1) +[1074] = "%1d", -- Fuel Dump, (-1, 0, 1) +[1076] = "%1d", -- Fuel Quantity Selector, (-1, -1, 0) +[1094] = "%1d", -- Fuel Feed Cover, (-1, 0, 1) +[1095] = "%1d", -- Fuel Feed, (-1, -1, 1) +[1044] = "%1d", -- Fuel Shutoff - Right, (0, 0, 1) +[15081] = "%1d", -- Fuel Shutoff - Left, (0, 0, 1) +[1001] = "%1d", -- Wing/Ext Trans, (1, -1, 1) +[1044] = "%1d", -- Fuel Shutoff - Right, (1, 0, 1) +[1050] = "%1d", -- BINGO Fuel Level Knob, (1, 0, 1) +[1073] = "%1d", -- Refuel Probe, (1, -1, 1) +[1074] = "%1d", -- Fuel Dump, (1, 0, 1) +[1076] = "%1d", -- Fuel Quantity Selector, (1, 1, 0) +[1094] = "%1d", -- Fuel Feed Cover, (1, 0, 1) +[1095] = "%1d", -- Fuel Feed, (1, -1, 1) +[15081] = "%1d", -- Fuel Shutoff - Left, (1, 0, 1) +-- GEARHOOK(17) +[496] = "%1d", -- Launch Bar Abort Switch Cover, (-1, 0, 1) +[1072] = "%1d", -- Anti-Skid Spoiler BK Switch, (-1, -1, 1) +[1075] = "%1d", -- Nose Strut Compression Switch, (-1, -1, 0) +[237] = "%1d", -- Parking Brake Handle, (0, 0, 1) +[237] = "%1d", -- Parking Brake Handle, (1, 0, 1) +[238] = "%1d", -- Hook Extension Handle (RB cycle emergency mode), (1, 0, 1) +[326] = "%1d", -- Landing Gear Lever (RB emergency extend), (1, 0, 1) +[496] = "%1d", -- Launch Bar Abort Switch Cover, (1, 0, 1) +[497] = "%1d", -- Launch Bar Abort, (1, 0, 1) +[1072] = "%1d", -- Anti-Skid Spoiler BK Switch, (1, -1, 1) +[1075] = "%1d", -- Nose Strut Compression Switch, (1, 1, 0) +[15078] = "%1d", -- Hook Extension Handle (RB cycle emergency mode), (1, 0, 1) +[16015] = "%1d", -- Landing Gear Lever (RB emergency extend), (1, 0, 1) +-- HCU(58) +[2007] = "%1d", -- HCU TCS mode, (-1, 0, 1) +[2008] = "%1d", -- HCU radar mode, (-1, 0, 1) +[2009] = "%1d", -- HCU DDD mode, (-1, 0, 1) +[2010] = "%1d", -- HCU TID mode, (-1, 0, 1) +[2007] = "%1d", -- HCU TCS mode, (1, 0, 1) +[2008] = "%1d", -- HCU radar mode, (1, 0, 1) +[2009] = "%1d", -- HCU DDD mode, (1, 0, 1) +[2010] = "%1d", -- HCU TID mode, (1, 0, 1) +-- HSD(41) +[1008] = "%1d", -- HSD/ECMD Power On/Off, (-1, 0, 1) +[1016] = "%1d", -- HSD Display Mode, (-1, 0, 1) +[1017] = "%1d", -- HSD ECM Override, (-1, 0, 1) +[1039] = "%1d", -- HSD Selected Heading, (0, 0, 1) +[1040] = "%1d", -- HSD Selected Course, (0, 0, 1) +[1043] = "%1d", -- HSD Brightness, (0, 0, 1) +[1008] = "%1d", -- HSD/ECMD Power On/Off, (1, 0, 1) +--[1016] = "%1d", -- HSD Display Mode, (1, 0, 1) +[1017] = "%1d", -- HSD ECM Override, (1, 0, 1) +[1041] = "%1d", -- HSD Test, (1, 0, 1) +-- HUD(40) +[1009] = "%1d", -- HUD Power On/Off, (-1, 0, 1) +[1011] = "%1d", -- HUD Landing Mode, (-1, 0, 1) +[1012] = "%1d", -- HUD Air-to-Ground Mode, (-1, 0, 1) +[1013] = "%1d", -- HUD Air-to-Air Mode, (-1, 0, 1) +[1014] = "%1d", -- HUD Cruise Mode, (-1, 0, 1) +[1015] = "%1d", -- HUD Take-Off Mode, (-1, 0, 1) +[1020] = "%1d", -- HUD AWL Mode, (-1, 0, 1) +[1021] = "%1d", -- HUD De-clutter On/Off, (-1, 0, 1) +[1033] = "%1d", -- HUD filter, (0, 0, 1) +[1007] = "%1d", -- HUD Pitch Ladder Brightness, (1, 0, 1) +[1009] = "%1d", -- HUD Power On/Off, (1, 0, 1) +[1011] = "%1d", -- HUD Landing Mode, (1, 0, 1) +[1012] = "%1d", -- HUD Air-to-Ground Mode, (1, 0, 1) +[1013] = "%1d", -- HUD Air-to-Air Mode, (1, 0, 1) +[1014] = "%1d", -- HUD Cruise Mode, (1, 0, 1) +[1015] = "%1d", -- HUD Take-Off Mode, (1, 0, 1) +[1020] = "%1d", -- HUD AWL Mode, (1, 0, 1) +--[1021] = "%1d", -- HUD De-clutter On/Off, (1, 0, 1) +[1033] = "%1d", -- HUD filter, (1, 0, 1) +[1034] = "%1d", -- HUD Trim, (1, 0, 1) +[1037] = "%1d", -- HUD Brightness, (1, 0, 1) +-- HYDRAULICS(12) +[615] = "%1d", -- Hydraulic Emergency Flight Control Switch Cover, (-1, 0, 1) +[629] = "%1d", -- Hydraulic Transfer Pump Switch, (-1, 0, 1) +[630] = "%1d", -- Hydraulic Transfer Pump Switch Cover, (-1, 0, 1) +[631] = "%1d", -- Hydraulic Isolation Switch, (-1, 0, 1) +[928] = "%1d", -- Hydraulic Emergency Flight Control Switch, (-1, -1, 1) +[632] = "%1d", -- Hydraulic Hand Pump, (0, 0, 1) +[615] = "%1d", -- Hydraulic Emergency Flight Control Switch Cover, (1, 0, 1) +[629] = "%1d", -- Hydraulic Transfer Pump Switch, (1, 0, 1) +[630] = "%1d", -- Hydraulic Transfer Pump Switch Cover, (1, 0, 1) +[631] = "%1d", -- Hydraulic Isolation Switch, (1, 0, 1) +[632] = "%1d", -- Hydraulic Hand Pump, (1, 0, 1) +[928] = "%1d", -- Hydraulic Emergency Flight Control Switch, (1, -1, 1) +-- ICS(2) +[150] = "%1d", -- KY-28 ZEROIZE Cover, (-1, 0, 1) +[380] = "%1d", -- V/UHF 2 ANT Switch, (-1, 0, 1) +[381] = "%1d", -- XMTR SEL Switch, (-1, -1, 1) +[382] = "%1d", -- KY MODE Switch, (-1, -1, 1) +[402] = "%1d", -- ICS Function Selector, (-1, -1, 1) +[2044] = "%1d", -- ICS Function Selector, (-1, -1, 1) +[400] = "%1d", -- ICS Volume, (0, 0, 1) +[2039] = "%1d", -- Sidewinder Volume, (0, 0, 1) +[2040] = "%1d", -- ALR-67 Volume, (0, 0, 1) +[2048] = "%1d", -- ICS Volume, (0, 0, 1) +[150] = "%1d", -- KY-28 ZEROIZE Cover, (1, 0, 1) +[361] = "%1d", -- KY-28 ZEROIZE, (1, 0, 1) +[380] = "%1d", -- V/UHF 2 ANT Switch, (1, 0, 1) +[381] = "%1d", -- XMTR SEL Switch, (1, -1, 1) +[382] = "%1d", -- KY MODE Switch, (1, -1, 1) +[402] = "%1d", -- ICS Function Selector, (1, -1, 1) +[2044] = "%1d", -- ICS Function Selector, (1, -1, 1) +[2138] = "%1d", -- AN/ALR-67 Volume, (1, 0, 1) +[115] = "%.1f", -- KY-28 Radio Selector, (0.5, 0, 1) +[116] = "%.1f", -- KY-28 Power Mode, (0.5, 0, 1) +[401] = "%.1f", -- ICS Amplifier Selector, (0.5, 0, 1) +[2045] = "%.1f", -- ICS Amplifier Selector, (0.5, 0, 1) +[115] = "%.1f", -- KY-28 Radio Selector, (-0.5, 0, 1) +[116] = "%.1f", -- KY-28 Power Mode, (-0.5, 0, 1) +[401] = "%.1f", -- ICS Amplifier Selector, (-0.5, 0, 1) +[2045] = "%.1f", -- ICS Amplifier Selector, (-0.5, 0, 1) +-- IFF(64) +[161] = "%1d", -- IFF audio/light (no function), (-1, -1, 1) +[162] = "%1d", -- IFF M1 (no function), (-1, -1, 1) +[163] = "%1d", -- IFF M2 (no function), (-1, -1, 1) +[164] = "%1d", -- IFF M3/A (no function), (-1, -1, 1) +[165] = "%1d", -- IFF MC (no function), (-1, -1, 1) +[166] = "%1d", -- IFF RAD (no function), (-1, -1, 1) +[167] = "%1d", -- IFF Ident (no function), (-1, -1, 1) +[181] = "%1d", -- IFF M4 (no function), (-1, 0, 1) +[161] = "%1d", -- IFF audio/light (no function), (1, -1, 1) +[162] = "%1d", -- IFF M1 (no function), (1, -1, 1) +[163] = "%1d", -- IFF M2 (no function), (1, -1, 1) +[164] = "%1d", -- IFF M3/A (no function), (1, -1, 1) +[165] = "%1d", -- IFF MC (no function), (1, -1, 1) +[166] = "%1d", -- IFF RAD (no function), (1, -1, 1) +[167] = "%1d", -- IFF Ident (no function), (1, -1, 1) +[181] = "%1d", -- IFF M4 (no function), (1, 0, 1) +[185] = "%1d", -- IFF test (no function), (1, 0, 1) +[186] = "%1d", -- IFF reply (no function), (1, 0, 1) +[198] = "%.4f", -- IFF M3 code -x-- (no function), (0.11111, 0, 0.77777) +[199] = "%.4f", -- IFF M3 code x--- (no function), (0.11111, 0, 0.77777) +[200] = "%.4f", -- IFF M1 code -x (no function), (0.11111, 0, 0.33333) +[201] = "%.4f", -- IFF M1 code x- (no function), (0.11111, 0, 0.77777) +[2261] = "%.4f", -- IFF M3 code --x- (no function), (0.11111, 0, 0.77777) +[2262] = "%.4f", -- IFF M3 code ---x (no function), (0.11111, 0, 0.77777) +[198] = "%.4f", -- IFF M3 code -x-- (no function), (-0.11111, 0, 0.77777) +[199] = "%.4f", -- IFF M3 code x--- (no function), (-0.11111, 0, 0.77777) +[200] = "%.4f", -- IFF M1 code -x (no function), (-0.11111, 0, 0.33333) +[201] = "%.4f", -- IFF M1 code x- (no function), (-0.11111, 0, 0.77777) +[2261] = "%.4f", -- IFF M3 code --x- (no function), (-0.11111, 0, 0.77777) +[2262] = "%.4f", -- IFF M3 code ---x (no function), (-0.11111, 0, 0.77777) +[184] = "%.2f", -- IFF master (no function), (0.25, 0, 1) +[184] = "%.2f", -- IFF master (no function), (-0.25, 0, 1) +[183] = "%.4f", -- IFF code (no function), (0.33333333333333, 0, 1) +[183] = "%.4f", -- IFF code (no function), (-0.33333333333333, 0, 1) +-- ILS(48) +[910] = "%1d", -- AN/ARA-63 Power Switch, (-1, 0, 1) +[910] = "%1d", -- AN/ARA-63 Power Switch, (1, 0, 1) +[911] = "%1d", -- AN/ARA-63 BIT Button, (1, 0, 1) +[912] = "%.4f", -- AN/ARA-63 Channel Knob, (0.052631578947368, 0, 1) +[912] = "%.4f", -- AN/ARA-63 Channel Knob, (-0.052631578947368, 0, 1) +-- INS(50) +[50] = "%.4f", -- Navigation Mode, (0.1666667, 0, 1.0000002) +[50] = "%.4f", -- Navigation Mode, (-0.1666667, 0, 1.0000002) +-- LANTIRN(38) +[668] = "%1d", -- LANTIRN Laser Arm Switch, (-1, 0, 1) +[668] = "%1d", -- LANTIRN Laser Arm Switch, (1, 0, 1) +[669] = "%1d", -- LANTIRN Operate Mode (Unstow), (1, 0, 1) +[671] = "%1d", -- LANTIRN IBIT, (1, 0, 1) +[667] = "%.1f", -- LANTIRN Power, (0.5, 0, 1) +[667] = "%.1f", -- LANTIRN Power, (-0.5, 0, 1) +-- MACHANDAIRSPEED(27) +[2127] = "%1d", -- Airspeed Indicator Bug Knob, (1, 0, 1) +[310] = "%.1f", -- Airspeed Indicator Bug Knob, (0.5, 0, 1) +-- NAV_INTERFACE(46) +[1002] = "%1d", -- Navigation Steer Commands: TACAN, (-1, 0, 1) +[1003] = "%1d", -- Navigation Steer Commands: Destination, (-1, 0, 1) +[1004] = "%1d", -- Navigation Steer Commands: AWL PCD, (-1, 0, 1) +[1005] = "%1d", -- Navigation Steer Commands: Vector, (-1, 0, 1) +[1006] = "%1d", -- Navigation Steer Commands: Manual, (-1, 0, 1) +[1002] = "%1d", -- Navigation Steer Commands: TACAN, (1, 0, 1) +[1003] = "%1d", -- Navigation Steer Commands: Destination, (1, 0, 1) +[1004] = "%1d", -- Navigation Steer Commands: AWL PCD, (1, 0, 1) +[1005] = "%1d", -- Navigation Steer Commands: Vector, (1, 0, 1) +[1006] = "%1d", -- Navigation Steer Commands: Manual, (1, 0, 1) +[51] = "%.4f", -- Destination Mode, (0.142857, 0, 0.999999) +[51] = "%.4f", -- Destination Mode, (-0.142857, 0, 0.999999) +-- RADAR(39) +[38] = "%1d", -- Automatic Gain Control (no function), (-2, -1, 1) +[3900] = "%1d", -- Parametric amplifier (no function), (-2, -1, 1) +[34] = "%.1f", -- Aspect, (-1, -1, 1) +[35] = "%.1f", -- Closing Velocity scale, (-1, -1, 1) +[36] = "%.1f", -- Target size (no function), (-1, -1, 1) +[37] = "%.1f", -- Main Lobe Clutter filter, (-1, -1, 1) +[83] = "%1d", -- Stabilize, (-1, 0, 1) +[84] = "%1d", -- VSL switch, (-1, -1, 0) +[95] = "%1d", -- Liquid cooling, (-1, -1, 1) +[2012] = "%1d", -- WCS switch, (-1, -1, 1) +[81] = "%1d", -- Radar elevation center, (0, -1, 1) +[82] = "%1d", -- Radar azimuth center, (0, -1, 1) +[-1] = "%1d", -- DDD filter, (1, 0, 1) +[10] = "%1d", -- RADAR pulse search, (1, 0, 1) +[11] = "%1d", -- RADAR track while scan manual, (1, 0, 1) +[12] = "%1d", -- RADAR track while scan auto, (1, 0, 1) +[13] = "%1d", -- RADAR range while scan, (1, 0, 1) +[14] = "%1d", -- RADAR pulse doppler search, (1, 0, 1) +[15] = "%1d", -- RADAR pulse single target track, (1, 0, 1) +[17] = "%1d", -- DDD Interrogate Friend or Foe, (1, 0, 1) +[18] = "%1d", -- DDD Infrared (no function), (1, 0, 1) +[19] = "%1d", -- DDD RADAR, (1, 0, 1) +[34] = "%.1f", -- Aspect, (1, -1, 1) +[35] = "%.1f", -- Closing Velocity scale, (1, -1, 1) +[36] = "%.1f", -- Target size (no function), (1, -1, 1) +[37] = "%.1f", -- Main Lobe Clutter filter, (1, -1, 1) +[40] = "%1d", -- RADAR 5 NM, (1, 0, 1) +[41] = "%1d", -- RADAR 10 NM, (1, 0, 1) +[42] = "%1d", -- RADAR 20 NM, (1, 0, 1) +[43] = "%1d", -- RADAR 50 NM, (1, 0, 1) +[44] = "%1d", -- RADAR 100 NM, (1, 0, 1) +[45] = "%1d", -- RADAR 200 NM, (1, 0, 1) +[83] = "%1d", -- Stabilize, (1, 0, 1) +[84] = "%1d", -- VSL switch, (1, 1, 0) +[95] = "%1d", -- Liquid cooling, (1, -1, 1) +[1812] = "%1d", -- CCM SPL (no function), (1, 0, 1) +[1813] = "%1d", -- CCM ALT DIFF (no function), (1, 0, 1) +[1814] = "%1d", -- CCM VGS (no function), (1, 0, 1) +[2012] = "%1d", -- WCS switch, (1, -1, 1) +[2013] = "%1d", -- Power reset, (1, 0, 1) +[2014] = "%1d", -- Light test, (1, 0, 1) +[9916] = "%1d", -- RADAR pulse doppler single target track, (1, 0, 1) +[38] = "%1d", -- Automatic Gain Control (no function), (2, -1, 1) +[3900] = "%1d", -- Parametric amplifier (no function), (2, -1, 1) +[79] = "%.5f", -- Radar elevation scan, (0.33333, 0, 0.99999) +[80] = "%.5f", -- Radar azimuth scan, (0.33333, 0, 0.99999) +[79] = "%.5f", -- Radar elevation scan, (-0.33333, 0, 0.99999) +[80] = "%.5f", -- Radar azimuth scan, (-0.33333, 0, 0.99999) +[20] = "%.1f", -- IR gain (no function), (0.5, 0, 1) +[21] = "%.1f", -- IR volume (no function), (0.5, 0, 1) +[22] = "%.1f", -- IR threshold (no function), (0.5, 0, 1) +[23] = "%.1f", -- Brightness, (0.5, 0, 1) +[24] = "%.1f", -- Pulse video, (0.5, 0, 1) +[25] = "%.1f", -- Erase, (0.5, 0, 1) +[26] = "%.1f", -- Pulse gain, (0.5, 0, 1) +[27] = "%.1f", -- ACM threshold (no function), (0.5, 0, 1) +[28] = "%.1f", -- JAM/JET (no function), (0.5, 0, 1) +[29] = "%.1f", -- PD threshold clutter, (0.5, 0, 1) +[30] = "%.1f", -- PD threshold clear (no function), (0.5, 0, 1) +-- RADARALTIMETER(29) +[16020] = "%1d", -- Radar Altimeter Control Knob, (1, 0, 1) +[308] = "%.1f", -- Radar Altimeter Control Knob, (0.5, 0, 1) +-- RWR(54) +[2137] = "%1d", -- AN/ALR-67 Mode, (-1, -1, 0) +[2139] = "%1d", -- AN/ALR-67 Power, (-1, 0, 1) +[2140] = "%1d", -- AN/ALR-67 Test, (-1, -1, 0) +[376] = "%1d", -- AN/ALR-67 Display Brightness, (1, 0, 1) +[2137] = "%1d", -- AN/ALR-67 Mode, (1, 1, 0) +[2139] = "%1d", -- AN/ALR-67 Power, (1, 0, 1) +[2140] = "%1d", -- AN/ALR-67 Test, (1, 1, 0) +[16011] = "%1d", -- AN/ALR-67 Display Brightness, (1, 0, 1) +[2136] = "%.2f", -- AN/ALR-67 Display Type, (0.25, 0, 1) +[2136] = "%.2f", -- AN/ALR-67 Display Type, (-0.25, 0, 1) +-- STDBYAI(30) +[6155] = "%1d", -- Standby ADI Knob, (1, 0, 1) +--[] = "%1d", -- Standby ADI Knob, (1, 0, 1) +[6156] = "%.1f", -- Standby ADI Knob, (0.5, 0, 1) +[19101] = "%.1f", -- Standby ADI Knob, (0.5, 0, 1) +-- TACAN(47) +[2042] = "%1d", -- TACAN Mode Normal/Inverse, (-2, -1, 1) +[2043] = "%1d", -- TACAN Channel X/Y, (-2, -1, 1) +[372] = "%1d", -- TACAN Channel X/Y, (-1, 0, 1) +[373] = "%1d", -- TACAN Mode Normal/Inverse, (-1, 0, 1) +[375] = "%1d", -- TACAN Volume, (0, 0, 1) +[2036] = "%1d", -- TACAN Volume, (0, 0, 1) +[135] = "%1d", -- TACAN CMD Button, (1, 0, 1) +[292] = "%1d", -- TACAN CMD Button, (1, 0, 1) +[371] = "%1d", -- TACAN BIT, (1, 0, 1) +[372] = "%1d", -- TACAN Channel X/Y, (1, 0, 1) +[373] = "%1d", -- TACAN Mode Normal/Inverse, (1, 0, 1) +[2115] = "%1d", -- TACAN BIT, (1, 0, 1) +[2042] = "%1d", -- TACAN Mode Normal/Inverse, (2, -1, 1) +[2043] = "%1d", -- TACAN Channel X/Y, (2, -1, 1) +[8888] = "%.4f", -- TACAN Channel Wheel (Tens), (0.083333333333333, 0, 1) +[8891] = "%.4f", -- TACAN Channel Wheel (Tens), (0.083333333333333, 0, 1) +--[8888] = "%.4f", -- TACAN Channel Wheel (Tens), (-0.083333333333333, 0, 1) +--[8891] = "%.4f", -- TACAN Channel Wheel (Tens), (-0.083333333333333, 0, 1) +[8889] = "%.4f", -- TACAN Channel Lever (Ones), (0.11111111111111, 0, 1) +[8890] = "%.4f", -- TACAN Channel Lever (Ones), (0.11111111111111, 0, 1) +--[8889] = "%.4f", -- TACAN Channel Lever (Ones), (-0.11111111111111, 0, 1) +--[8890] = "%.4f", -- TACAN Channel Lever (Ones), (-0.11111111111111, 0, 1) +[374] = "%.2f", -- TACAN Mode, (0.25, 0, 1) +[2041] = "%.2f", -- TACAN Mode, (0.25, 0, 1) +[374] = "%.2f", -- TACAN Mode, (-0.25, 0, 1) +[2041] = "%.2f", -- TACAN Mode, (-0.25, 0, 1) +-- TCS(37) +[88] = "%1d", -- TCS FOV, (-2, -1, 1) +[87] = "%1d", -- TCS Acquisition, (-1, -1, 1) +[89] = "%1d", -- TCS Slave, (-1, -1, 1) +[90] = "%1d", -- Record power (no function), (-1, -1, 1) +[2011] = "%1d", -- TV/IR switch, (-1, -1, 1) +[87] = "%1d", -- TCS Acquisition, (1, -1, 1) +[89] = "%1d", -- TCS Slave, (1, -1, 1) +[90] = "%1d", -- Record power (no function), (1, -1, 1) +[2011] = "%1d", -- TV/IR switch, (1, -1, 1) +[16016] = "%1d", -- Record reset (no function), (1, 0, 1) +[88] = "%1d", -- TCS FOV, (2, -1, 1) +[91] = "%.2f", -- Record mode (no function), (0.25, 0, 1) +[91] = "%.2f", -- Record mode (no function), (-0.25, 0, 1) +-- TID(43) +[48] = "%1d", -- TID Brightness, (1, 0, 1) +[49] = "%1d", -- TID Contrast, (1, 0, 1) +[52] = "%1d", -- collision steering, (1, 0, 1) +[53] = "%1d", -- TID track hold, (1, 0, 1) +[226] = "%1d", -- TID Non attack, (1, 0, 1) +[670] = "%1d", -- Video Output Toggle (TCS/LANTIRN), (1, 0, 1) +[1115] = "%1d", -- TID Alt num, (1, 0, 1) +[1116] = "%1d", -- TID Sym Elem, (1, 0, 1) +[1117] = "%1d", -- TID Data link, (1, 0, 1) +[1118] = "%1d", -- TID Jam strobe, (1, 0, 1) +[2004] = "%1d", -- TID Reject Image Device disable (no function), (1, 0, 1) +[2113] = "%1d", -- TID Launch zone, (1, 0, 1) +[2114] = "%1d", -- TID Velocity vector, (1, 0, 1) +[9964] = "%1d", -- Next Launch, (1, 0, 1) +[2005] = "%.5f", -- TID Mode, (0.33333, 0, 0.99999) +[2005] = "%.5f", -- TID Mode, (-0.33333, 0, 0.99999) +[2006] = "%.1f", -- TID Range, (0.5, -1, 1) +[2006] = "%.1f", -- TID Range, (-0.5, -1, 1) +-- VDI(42) +[1010] = "%1d", -- VDI Power On/Off, (-1, 0, 1) +[1018] = "%1d", -- VDI Landing Mode, (-1, 0, 1) +[1019] = "%1d", -- VDI Display Mode, (-1, 0, 1) +--[-1] = "%1d", -- VDI filter, (1, 0, 1) +[1010] = "%1d", -- VDI Power On/Off, (1, 0, 1) +[1018] = "%1d", -- VDI Landing Mode, (1, 0, 1) +--[1019] = "%1d", -- VDI Display Mode, (1, 0, 1) +[1035] = "%1d", -- VSDI Screen Trim, (1, 0, 1) +[1036] = "%1d", -- VSDI Screen Brightness, (1, 0, 1) +[1038] = "%1d", -- VDI Screen Contrast, (1, 0, 1) +-- WARNINGLIGHTS(34) +[9199] = "%1d", -- Master Caution Reset, (1, 0, 1) +-- WEAPONS(55) +[60] = "%1d", -- Bomb single/pairs, (-1, 0, 1) +[61] = "%1d", -- Bomb step/ripple, (-1, 0, 1) +[62] = "%1d", -- A/G gun mode, (-1, 0, 1) +[63] = "%1d", -- Mech fuse, (-1, -1, 1) +[64] = "%1d", -- Jettison station 6, (-1, 0, 1) +[65] = "%1d", -- Jettison station 3, (-1, 0, 1) +[66] = "%1d", -- Jettison racks/weapons, (-1, 0, 1) +[67] = "%1d", -- Jettison right tank, (-1, 0, 1) +[68] = "%1d", -- Jettison station 1, (-1, -1, 1) +[69] = "%1d", -- Jettison station 4, (-1, 0, 1) +[70] = "%1d", -- Jettison station 5, (-1, 0, 1) +[71] = "%1d", -- Jettison station 8, (-1, -1, 1) +[73] = "%1d", -- Jettison left tank, (-1, 0, 1) +[75] = "%1d", -- Missile option, (-1, -1, 1) +[78] = "%1d", -- Selective jettison, (-1, -1, 0) +[1047] = "%1d", -- Master Arm Switch, (-1, -1, 1) +[1046] = "%1d", -- Master Arm Cover, (0, 0, 1) +[1049] = "%1d", -- ACM Cover, (0, 0, 1) +[1069] = "%1d", -- Jettison aux guard, (0, 0, 1) +[60] = "%1d", -- Bomb single/pairs, (1, 0, 1) +[61] = "%1d", -- Bomb step/ripple, (1, 0, 1) +[62] = "%1d", -- A/G gun mode, (1, 0, 1) +[63] = "%1d", -- Mech fuse, (1, -1, 1) +[64] = "%1d", -- Jettison station 6, (1, 0, 1) +[65] = "%1d", -- Jettison station 3, (1, 0, 1) +[66] = "%1d", -- Jettison racks/weapons, (1, 0, 1) +[67] = "%1d", -- Jettison right tank, (1, 0, 1) +[68] = "%1d", -- Jettison station 1, (1, -1, 1) +[69] = "%1d", -- Jettison station 4, (1, 0, 1) +[70] = "%1d", -- Jettison station 5, (1, 0, 1) +[71] = "%1d", -- Jettison station 8, (1, -1, 1) +[73] = "%1d", -- Jettison left tank, (1, 0, 1) +[74] = "%1d", -- A/A Launch, (1, 0, 1) +[75] = "%1d", -- Missile option, (1, -1, 1) +[78] = "%1d", -- Selective jettison, (1, 1, 0) +[239] = "%1d", -- Emergency stores jettison, (1, 0, 1) +[1022] = "%1d", -- Gun Ammunition Counter Adjustment, (1, 0, 1) +[1046] = "%1d", -- Master Arm Cover, (1, 0, 1) +[1047] = "%1d", -- Master Arm Switch, (1, -1, 1) +[1048] = "%1d", -- ACM Jettison, (1, 0, 1) +[1049] = "%1d", -- ACM Cover, (1, 0, 1) +[1069] = "%1d", -- Jettison aux guard, (1, 0, 1) +[16000] = "%1d", -- Gun rate, (1, 0, 1) +[16001] = "%1d", -- Sidewinder cool, (1, 0, 1) +[16002] = "%1d", -- Missile prepare, (1, 0, 1) +[16003] = "%1d", -- Missile mode, (1, 0, 1) +--[] = "%1d", -- Gun Elevation Lead Adjustment, (1, 0, 1) +--[59] = "%.4f", -- Weapon type wheel, (0.023255813953488, 0, 1) +[59] = "%.4f", -- Weapon type wheel, (-0.023255813953488, 0, 1) +[9960] = "%.4f", -- Weapon Interval x10ms, (0.11111111111111, 0, 1) +[9961] = "%.4f", -- Weapon Interval x100ms, (0.11111111111111, 0, 1) +[9962] = "%.4f", -- Weapon Quantity 10s, (0.11111111111111, , ) +[9963] = "%.4f", -- Weapon Quantity 1s, (0.11111111111111, 0, 1) +[9960] = "%.4f", -- Weapon Interval x10ms, (-0.11111111111111, 0, 1) +[9961] = "%.4f", -- Weapon Interval x100ms, (-0.11111111111111, 0, 1) +[9962] = "%.4f", -- Weapon Quantity 10s, (-0.11111111111111, 0, 0.3333) +[9963] = "%.4f", -- Weapon Quantity 1s, (-0.11111111111111, 0, 1) +[72] = "%.1f", -- Missile speed gate, (0.2, 0, 1) +[72] = "%.1f", -- Missile speed gate, (-0.2, 0, 1) +[58] = "%.2f", -- Elec fuse, (0.25, 0, 1) +[2022] = "%.2f", -- Attack mode, (0.25, 0, 1) +[58] = "%.2f", -- Elec fuse, (-0.25, 0, 1) +[2022] = "%.2f", -- Attack mode, (-0.25, 0, 1) +-- WINGSWEEP(16) +[15096] = "%1d", -- Emergency Wing Sweep Handle (Click to pop out), (-1, 0, 1) +[317] = "%1d", -- Emergency Wing Sweep Handle Cover, (0, 0, 1) +[317] = "%1d", -- Emergency Wing Sweep Handle Cover, (1, 0, 1) +[384] = "%1d", -- Emergency Wing Sweep Handle (Click to pop out), (1, 0, 1) +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + -- every frame export to Ikarus + + -- A9 - Pilot Cockpit Right Knee Panel + ExportScript.displayFuel(mainPanelDevice) -- Set of 5 different fuel gauges and a nice multi-gauge (ID's 52117 / 56000 / 56004 / 56010 / 56020 / 56024) Cus. Func. + ExportScript.displayAccel(mainPanelDevice) -- Display Accellerometer Gauge Custom Function + ExportScript.clockAndTimer(mainPanelDevice) -- Display Clock and Timer in digital format on same gauge Custom Function + ExportScript.stationStatusFlags(mainPanelDevice) -- Air Combat Maneuver Panel + -- end A9 + ExportScript.flareAndChaffCounters(mainPanelDevice) + ExportScript.displayAltitude(mainPanelDevice) --Display Altitude in Feet + + 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))) + +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + -- every frame export to DAC +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + -- export in low tick interval to Ikarus +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + -- export in low tick interval to DAC +end + +--______________________________________________________________________________________________________________________________________ +--###################################################################################################################################### +--# [ Custom functions ] # +--###################################################################################################################################### + +function ExportScript.flareAndChaffCounters(mainPanelDevice) -- It seems like the roller rolls and jitters way too much for calculations + --[392] = "%.1f", -- CMDS_Chaff_Counter_Roller_10 + --[393] = "%.1f", -- CMDS_Chaff_Counter_Roller_1 + --[394] = "%.1f", -- CMDS_Flare_Counter_Roller_10 + --[395] = "%.1f", -- CMDS_Flare_Counter_Roller_1 + + --local chaffCount = math.floor((mainPanelDevice:get_argument_value(392) * 10) + 0.5) .. math.floor((mainPanelDevice:get_argument_value(393) * 10) + 0.5) + + --[[ Method 1 + local chaffCountFirstDigit = round(mainPanelDevice:get_argument_value(392) * 10) + + if chaffCountFirstDigit < 0.5 then + chaffCountFirstDigit = 0 + elseif chaffCountFirstDigit >= 0.5 and chaffCountFirstDigit < 1.5 then + chaffCountFirstDigit = 1 + elseif chaffCountFirstDigit >= 1.5 and chaffCountFirstDigit < 2.5 then + chaffCountFirstDigit = 2 + elseif chaffCountFirstDigit >= 2.5 and chaffCountFirstDigit < 3.5 then + chaffCountFirstDigit = 3 + elseif chaffCountFirstDigit >= 3.5 and chaffCountFirstDigit < 4.5 then + chaffCountFirstDigit = 4 + elseif chaffCountFirstDigit >= 4.5 and chaffCountFirstDigit < 5.5 then + chaffCountFirstDigit = 5 + elseif chaffCountFirstDigit >= 5.5 and chaffCountFirstDigit < 6.5 then + chaffCountFirstDigit = 6 + elseif chaffCountFirstDigit >= 6.5 and chaffCountFirstDigit < 7.5 then + chaffCountFirstDigit = 7 + elseif chaffCountFirstDigit >= 7.5 and chaffCountFirstDigit < 8.5 then + chaffCountFirstDigit = 8 + elseif chaffCountFirstDigit >= 8.5 and chaffCountFirstDigit < 9.5 then + chaffCountFirstDigit = 9 + else + chaffCountFirstDigit = 0 + end + + local chaffCountSecondDigit = round(mainPanelDevice:get_argument_value(393),1) + if chaffCountSecondDigit < 0.070 then + chaffCountSecondDigit = 0 + elseif chaffCountSecondDigit >= 0.070 and chaffCountSecondDigit < 0.147 then + chaffCountSecondDigit = 1 + elseif chaffCountSecondDigit >= 0.147 and chaffCountSecondDigit < 0.256 then + chaffCountSecondDigit = 2 + elseif chaffCountSecondDigit >= 0.256 and chaffCountSecondDigit < 0.349 then + chaffCountSecondDigit = 3 + elseif chaffCountSecondDigit >= 0.349 and chaffCountSecondDigit < 0.442 then + chaffCountSecondDigit = 4 + elseif chaffCountSecondDigit >= 0.442 and chaffCountSecondDigit < 0.535 then + chaffCountSecondDigit = 5 + elseif chaffCountSecondDigit >= 0.535 and chaffCountSecondDigit < 0.628 then + chaffCountSecondDigit = 6 + elseif chaffCountSecondDigit >= 0.628 and chaffCountSecondDigit < 0.736 then + chaffCountSecondDigit = 7 + elseif chaffCountSecondDigit >= 0.736 and chaffCountSecondDigit < 0.829 then + chaffCountSecondDigit = 8 + elseif chaffCountSecondDigit >= 0.829 and chaffCountSecondDigit < 0.938 then + chaffCountSecondDigit = 9 + else + chaffCountSecondDigit = 0 + end + ]]-- + + + --[[ Method 2 + local chaffCountFirstDigitTenths = round(mainPanelDevice:get_argument_value(392) * 10,1) + local chaffCountFirstDigit = math.floor(chaffCountFirstDigitTenths) + + local differenceFirst = chaffCountFirstDigitTenths - chaffCountFirstDigit -- this number should be somewhere between 0.0 and 0.9 + if differenceFirst > 0.5 then --round up + chaffCountFirstDigit = math.ceil(chaffCountFirstDigitTenths) + else + chaffCountFirstDigit = math.floor(chaffCountFirstDigitTenths) + end + + local chaffCountSecondDigitTenths = round(mainPanelDevice:get_argument_value(393) * 10,1) + local chaffCountSecondDigit = math.floor(chaffCountSecondDigitTenths) + + local differenceSecond = chaffCountSecondDigitTenths - chaffCountSecondDigit -- this number should be somewhere between 0.0 and 0.9 + if differenceSecond > 0.5 then --round up + chaffCountSecondDigit = math.ceil(chaffCountSecondDigitTenths) + else + chaffCountSecondDigit = math.floor(chaffCountSecondDigitTenths) + end + --]] + + --[[ + --ExportScript.Tools.SendData(5, chaffCount) + ExportScript.Tools.SendData(6, chaffCountFirstDigit) + ExportScript.Tools.SendData(7, chaffCountSecondDigit) + ExportScript.Tools.SendData(8, mainPanelDevice:get_argument_value(392)) + ExportScript.Tools.SendData(9, mainPanelDevice:get_argument_value(393)) + ExportScript.Tools.SendData(4, differenceFirst) + ExportScript.Tools.SendData(5, differenceSecond) + ]]-- +end + +function ExportScript.clockAndTimer(mainPanelDevice) -- Clock and timer on panel A9 ---------------------------------------------------- + local minutes = string.format("%d", mainPanelDevice:get_argument_value(1097) * 60) + if string.len(minutes) < 2 then + minutes = "0" .. minutes + end + local timerMinutes = string.format("%d", mainPanelDevice:get_argument_value(2000) * 60) + local timerSeconds = string.format("%d", mainPanelDevice:get_argument_value(1098) * 60) + local clockNTimer = "Clock\n" .. string.format("%d", mainPanelDevice:get_argument_value(1096) * 12) .. string.char(32) .. minutes .. "\nTimer\n" .. timerMinutes .. "m " .. timerSeconds .. "s" + ExportScript.Tools.SendData(51096, clockNTimer) +end + + +function ExportScript.displayAccel(mainPanelDevice) -- Accelerometer gauge formatted --------------------------------------------------- + -- Accelerometer Gauge A9 + local needle = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(110)) + local needlePos = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(15076)) + local needleNeg = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(15077)) + accelGauge = "Accel.G\n+" .. string.format("%.1f", needlePos) .. " G\n-| " .. string.format("%.1f", needle) .. " G |-\n" .. string.format("%.1f", needleNeg) .. " G" + ExportScript.Tools.SendData(50110, accelGauge) +end +function ExportScript.displayAccelCheckValue(accelValue) -- Called from ExportScript.displayAccel() ------------------------------------ + if accelValue >= 0 then + return accelValue * 10 + elseif accelValue < 0 then + return accelValue * 5 + end +end + +function ExportScript.dualTapeString(title, leftTape, rightTape) -- Creates a dual vertical bar tape for custom gauge + -- Receives title as string + -- Receives a value from 0.00 to 1.00 that represents a percentage from 0% to 100% of the tape, 0.25 is 1/4 up the tape etc.. + -- Returns a string that shows 2 tapes in a "somewhat" graphical format using extended ascii characters. + local a = 5 + local b = 0 + leftTape = tonumber(string.format("%.1f", (leftTape * 10) / 2 )) + rightTape = tonumber(string.format("%.1f", (rightTape * 10) / 2 )) + local buildDisplay = title .. "\n" + repeat + b = a - 0.5 + if leftTape >= a then buildDisplay = buildDisplay .. "█ " elseif leftTape >= b then buildDisplay = buildDisplay .. "▄ " else buildDisplay = buildDisplay .. "_ " end + if rightTape >= a then buildDisplay = buildDisplay .. "█" elseif rightTape >= (a - 0.5) then buildDisplay = buildDisplay .. "▄" else buildDisplay = buildDisplay .. "_" end + buildDisplay = buildDisplay .. "\n" + a = a - 1 + until( a < 1 ) + return buildDisplay +end +function ExportScript.drawStationStatusFlags(flagValue) -- Takes a 0/1/0.45 and draws nothing/white/checker flag and returns + local returnString + if flagValue > 0.5 then returnString = "█████\n▀▀▀▀▀\n\n." elseif flagValue > 0.4 then returnString = "▀▄▀▄▀\n▀ ▀ ▀\n\n." else returnString = "" end + return returnString +end + +function ExportScript.stationStatusFlags(mainPanelDevice) -- Display Station status flags 1 to 8 on ACM panel + local b + local a = 9221 + repeat + b = "5" .. a + ExportScript.Tools.SendData(b, ExportScript.drawStationStatusFlags(mainPanelDevice:get_argument_value(a))) + a = a + 1 + until( a == 9229) +end + +function ExportScript.displayFuel(mainPanelDevice) -- Fuel Gauges and output on A9 and B7 ---------------------------------------------- +--[[FUEL Exports Formatted + + NOTE: In case you are wondering to the weird methodology used below to derive fuel totals, I'll try to explain. + A combination of how the f-14 module is using this fuel data (e.g. 0.9 might mean 900 lbs, 0.0 would mean 000 lbs and 1.0 would mean 000 lbs + also which effects the total if you use math to add them all together, so we can't use a simple method) + Essentially DCS gives you the fuel dial position rather than the actual fuel available. Although this sounds like the same value, it is not. + And also playing into this is the non-existance of certain math functions in lua language like concatenation or rounding. You need to convert + to string and back which is slow + + Because of this (not fully explained) it will create strange output for the total fuel when it rolls between whole values e.g. 15000 to 14900. + So instead we convert them to strings right away and extract the portion of the string (3'rd charachter) that is always correct + (e.g. 1.0 is always 0 and 0.0 is also 0 and 0.4 is 4 etc...) + + we then take the 10k, 1k, 100's etc.. 3'rd charachter and combine them like 15000 + There is still a strange behaviour at first site that is exhibited, that is not so strange once explained: + When rolling over from 15000 to 14900, it will show 15000, then 15900 for a second or two, and then 14900. The reason is that the hundreds dial + on the f-14 rolls quicker than the thousands dial therefore getting updated first instead of at the same time. + the above strange behaviour cannot be corrected unless there is a variable that stores the total fuel value instead of the fuel cockpit dial + value which are two different things. (In my experience most dcs mods only give you access to the latter) + Therefore, we first concatenate the number to 0.X by converting it to a string and formatting it as such, and then extract the 3'rd character + (I get it, nasty work around, If you have a better solution I'd love to hear it.) + +]] + local aftAndL = string.format("%d", mainPanelDevice:get_argument_value(1054) * 7000) + local fwdAndR = string.format("%d", mainPanelDevice:get_argument_value(1055) * 7000) + local RIOFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2117)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2118)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2119)), 3, 3) .. "00" + local leftFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6000)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6001)), 3, 3) .. "00" + local rightFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6004)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6005)), 3, 3) .. "00" + local totalFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6010)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6011)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6012)), 3, 3) .. "00" + local bingoFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6020)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6021)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6022)), 3, 3) .. "00" + + ExportScript.Tools.SendData(51054, "AFT & L\n" .. aftAndL .. "\nLBS") + ExportScript.Tools.SendData(51055, "FWD & R\n" .. fwdAndR .. "\nLBS") + ExportScript.Tools.SendData(52117, "TOTAL\nFUEL QTY\n" .. RIOFuel .. "\nLBS") -- Return Total RIO Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56000, "L\n" .. leftFuel) -- Return Total Left Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56004, "R\n" .. rightFuel) -- Return Total Right Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56010, "FUEL\n" .. totalFuel .. "\nQTY") -- Return Total Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56020, "BINGO\n" .. bingoFuel) -- Return Total Bingo Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56024, "BINGO " .. bingoFuel .. "\nTOTAL " .. totalFuel .. "\n" .. aftAndL .. " | " .. fwdAndR .. "\n L | R \n" .. leftFuel .. " | " .. rightFuel) -- Nice Multi Gauge +end + +function ExportScript.displayAltitude(mainPanelDevice) -- Altitude A4 ---------------------------------------------- + + local AltPlt = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(112)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(262)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(300)), 3, 3) .. "00" + + --ExportScript.Tools.SendData(52262, "Altitude\n(MSL)\n" .. AltPlt .. "\nFT") -- Return Altitude Formatted like F-14 Servopneumatic Altitude + ExportScript.Tools.SendData(52262, AltPlt .. "\nFT") -- Return Altitude Formatted like F-14 Servopneumatic Altitude +end + +----------------------- +-- General Functions -- +----------------------- + +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 diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-14B_nosaMtrevoC.lua b/Scripts/DCS-ExportScript/ExportsModules/F-14B_nosaMtrevoC.lua new file mode 100644 index 00000000..29968078 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-14B_nosaMtrevoC.lua @@ -0,0 +1,1448 @@ +--[[ + ,d ,d + 88 88 +MM88MMM ,adPPYba, 88,dPYba,,adPYba, ,adPPYba, ,adPPYYba, MM88MMM + 88 a8" "8a 88P' "88" "8a a8" "" "" `Y8 88 + 88 8b d8 88 88 88 8b ,adPPPPP88 88 + 88, "8a, ,a8" 88 88 88 "8a, ,aa 88, ,88 88, + "Y888 `"YbbdP"' 88 88 88 `"Ybbd8"' `"8bbdP"Y8 "Y888 F-14B Tomcat Export Script DCS World +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ version: 0.11 █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Created by: nosaMtrevoC of ED Forums (dt1) + +If you find any errors/ommissions or have any questions in general and for updates, please see this thread on ED Forums: +https://forums.eagle.ru/showthread.php?p=4387597#post4387597 + +For use with DCS-ExportScripts plugin https://github.com/charlestytler/streamdeck-dcs-interface (Awesome work) +Special ID's for ctytler's Stream Deck plugin (requires ExportScripts) at https://github.com/charlestytler/streamdeck-dcs-interface (Also Awesome) + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ ŦЋānk Ȳōū █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Thanks GunSlingerAUS & Phoenix FR of ED Forums for providing me with the F-14 Module to make this possible, it was a nice jester (sic). + +Testers (if you would like to help make this better, please see: https://forums.eagle.ru/showthread.php?p=4387597#post4387597 for more info) + +[TESTER]____________________ [Description]_________________________________________________________________________________________________________ +Arbil Approach Indexer Lights, ACM Panel gauges and lights for full ACM +Chacal IX ACM Panel Testing + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Changelog █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Version 0.11 - Matched most of the missing ID's, fixed error in ACM Panel (Chacal IX) +Version 0.10 - Matched many more ID's (not tested) for panels: A6b/A6c/A7, Created All Graphic Icons for panel A6a ACM Panel, App. Indexer Icons + Custom Station Weap. Flags output for ACM, ACM Switch, Master Arm Switch, Gun Rate Code, code for SW Cool/MSL Prep/MODE stp switch + testing ACM Panel items on Stream deck and creating profiles, Triple Indicator code and icons, Master Caution Button/Light, + L & R Fire Lights, Slip/Ball Indicator Gauge, fill icons for stream deck, testing, A6a ACM Panel completed w/StmDeck Prof. & Icons +Version 0.09 - Created 298 conifg Arguments and documentation for all pilot panels Left: A1a/A1b/A2/A4/A5/A6a/A6b/A6c/A6d/A7/A8/A10/A11a/A11b/12 + Formatting, Matched most DCS ID's (not tested) for panels: A1a/A1b/A2/A6a +Version 0.08 - Formatting, Arresting Hook handle/emerg.Handle/Light, Gun Ammun. Counter knob, gun rounds counter +Version 0.07 - Create tape function for vertical tape displays, created engine RPM Tape and BG Icon, EIG Eng. Temp on A3, EIG Fuel Flow on A3 +Version 0.06 - 2 Hydraulic Press. Gauges on A3 (51023 & 51063), added Engine Nozzle Tape A3, engine oil press. gauge +Version 0.05 - Formatting, Added Bingo Knob, Accelerometer Reset, Clock Wind, Clock Start/Stop/Reset, fixed error in Timer, A9 Panel Complete +Version 0.04 - More formatting, added Aft&L/Fwd&R fuselage fuel info, added Accelerometer gauge, added clock and timer gauge, Added Cockpit Refs. +Version 0.03 - Organization of Cockpit and RIO areas in this file for organizational purposes (ease of use) +Version 0.02 - Added formatted fuel output for location A9 +Version 0.01 - Initial Layout and formatting of .lua file along with organization outside this file of all functions ID's calls etc.. + +[Currently working on]_____________________________________________________________________________________________________________________________ +Pilot Cockpit config arguments + +[To-Do] +Fuel Warning indicators (example low fuel / Bingo fuel) for multi-gauge and fuel gauges +Background images for EIG TIT and FF tapes +Problem with Title string not showing in ExportScript.dualTapeString() +Installation instructions + VS Code + copy .lua to proper directory + load and test script (with special id for testing) + how-to display a stream deck gauge (custom id) background image in folder and font size + how to setup a button or switch for a panel + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Formatted for Stream Deck █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Extra ID's created for nice formatted output on Stream Deck See ID Guide Below: + +[ID]______ [Ref]__ [Description]__________________________ [Status]_______ [Output e.g.]___________________________________________________________ + +51057 A3 EIG - Engine RPM L & R tape working NOTE: need "F-14B_A3_RPM.png" included as background (shows vert. tape) +51059 A3 EIG - Engine Exhaust Temperature working NOTE: need "F-14B_A3_TIT.png" included as background (shows vert. tape) +51061 A3 EIG - Fuel flow tape working NOTE: need "F-14B_A3_FF.png" included as background (shows vert. tape) +51023 A3 Hydraulic Pressure Gauge and Flags 1 working +51063 A3 Hydraulic Pressure Gauge and Flags 2 working +51065 A3 Engine Oil Pressure Gauges working L 42 psi | Eng. Oil | R 42 psi +51068 A3 Engine Nozzle position gauge (tape) working (shows a graphical vertical tape) +--------------------------------------------------------------------------------------------------------------------------------------------------- + A4 Radar Altimiter w/Bug & Flag & inHg █ In Development █ + A4 Servopneumatic Altimiter █ TODO █ +--------------------------------------------------------------------------------------------------------------------------------------------------- +51047 A6a Master Arm 3 way switch working outputs a graphical 3 way switch to be used with included icons (font9) +56501 A6a Slip/Ball Indicator working outputs slip and ball gauge +59201 A6a ACM seam/coll./hot trig light working outputs masks to show/hide triple warning light in one button +59204 A6a Gun Rate HIGH|LOW Light working outputs 1 or 0 to monitor HIGH|LOW Gun Rate light (usually two IDs) +59206 A6a SW Cool Light ON|OFF working outputs 1 or 0 to monitor light (usually two IDs) +59208 A6a MSL Prep Light ON|OFF working outputs 1 or 0 to monitor light (usually two IDs) +59210 A6a MSL Mode Light NORM|BRSIT working outputs 1 or 0 to monitor light (usually two IDs) +59221 A6a Station Status Flag 1A working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59222 A6a Station Status Flag 1B working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59223 A6a Station Status Flag 3 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59224 A6a Station Status Flag 4 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59225 A6a Station Status Flag 5 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59226 A6a Station Status Flag 6 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59227 A6a Station Status Flag 8B working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59228 A6a Station Status Flag 8A working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +--------------------------------------------------------------------------------------------------------------------------------------------------- +50110 A9 Accelerometer Gauge +/- G & current G working 5 G | 1 G | -2G +51096 A9 Clock and Timer Gauge working Clock | 10 15 | Timer | 4 23 21 +51054 A9 Aft & L-left feed & aft fuselage Thanks working AFT & L | 6500 | LBS +51055 A9 Fwd & R-right feed & fwd fuselage tanks working FWD & R | 6500 | LBS +56000 A9 Left Fuel Gauge in lbs working 4000 lbs +56004 A9 Right Fuel Gauge in lbs working 4000 lbs +56010 A9 Total Fuel Gauge in lbs working 15200 lbs +56020 A9 Bingo Fuel Guage in lbs working 04000 lbs +56024 A9 Multi Fuel Guage Custom working Shows all relevant fuel output totals in a single stream deck button +--------------------------------------------------------------------------------------------------------------------------------------------------- +54060 A10 Gun Rounds Ammunition Counter working ROUNDS | 670 +--------------------------------------------------------------------------------------------------------------------------------------------------- +52117 B7 RIO Total Fuel Gauge in lbs working 15000 lbs + + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Stream Deck References █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +The following references (with a picture) can be found (as of June 15, 2020) in Chapter 2 (Cockpit Overview) first 2 pages (pg10 and pg11) of +the F-14B manual. This manual is located in the C:\Program Files\Eagle Dynamics\DCS World OpenBeta\Mods\aircraft\F14\Docs Directory as a .pdf +Can also be found in the official thread for this script at: https://forums.eagle.ru/showthread.php?p=4387597#post4387597 + +Anywhere the following Descriptors can be found, they refer to this table in that portion of the manual +e.g. [A9] Pilot-Right Knee Panel describes A as Pilot Cockpit (instead of B RIO Cockpit) and 9 in the table on pg 10 (also below) which is the Right +Knee Panel where the fuel and accelerometer and clock are. + + ________________________________________________________________________________________________________ + | | + | [Ref]_ [Position]_ [Description]__________________| [Ref]_ [Position]_ [Description]___________________| + | | | + | A1 Pilot Left Side Console | B1 RIO Left Side Console | + | A2 Pilot Left Vertical Console | B2 RIO Left Vertical Console | + | A3 Pilot Left Knee Panel | B3 RIO Left Instrument Panel | + | A4 Pilot Left Instrument Panel | B4 RIO Center Panel | + | A5 Pilot Left Windshield Frame | B5 RIO Center Console | + | A6 Pilot Center Panel | B6 RIO Left and Right Footwells | + | A7 Pilot Right Windshield Frame | B7 RIO Right Instrument Panel | + | A8 Pilot Right Instrument Panel | B8 RIO Right Knee Panel | + | A9 Pilot Right Knee Panel | B9 RIO Right Vertical Console | + | A10 Pilot Right Vertical Console | B10 RIO Right Side Console | + | A11 Pilot Right Side Console | B11 RIO Canopy Control Handle | + | A12 Pilot Canopy Control Handle | | + |___________________________________________________|____________________________________________________| + + +Description Guide:__________________________________________________________________________________________________________________________________ +[BUTTON ID: 3043 / DEVICE ID: 26] - Clock Timer Start/Stop/Reset Button - {28.1, 31.0}{0.0, 1.0} +Button ID: Used in Stream Deck "Button ID:" +Device ID: Used in Stream Deck "Device ID" Note: this is not DCS ID +- Description of button - +{min gauge value, max gauge value}{stored/variable min value, stored/variable max value} + + +]] +ExportScript.FoundDCSModule = true +ExportScript.Version.F14 = "1.2.1" + +ExportScript.ConfigEveryFrameArguments = +{ + --[[ + [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 + ]] +-- PILOT COCKPIT ------------------------------------------------------------------------------ + + -- [NEEDS TESTING] ------------------------------------------------------------------------ + + + -- [END NEEDS TESTING] -------------------------------------------------------------------- + + + -- [In Development / Testing] ------------------------------------------------------------- + +-- A1a + -- Volume/TACAN Command Panel + [2040] = "%.4f", -- ALR-67 Knob controls audio volume to pilot + [2039] = "%.4f", -- SW knob volume of sidewinder audio tone to pilot + [2038] = "%.4f", -- V/UHF 2 knob audio from AN/ARC-182 to pilot + [0] = "%.4f", -- TACAN CMD switch sets crew member in command of Tacan + + -- ICS Control Panel + [2048] = "%.4f", -- VOL knob from RIO to pilot + [2045] = "%.4f", -- AMP selection knob (B/U|NORM|EMER) + [2044] = "%.4f", -- ICS switch (RADIO OVERRIDE|HOT MIC|COLD MIC) + + -- AFCS Control Panel + [2106] = "%.4f", -- PITCH switch enables stability augmentation + [2107] = "%.4f", -- ROLL switch enables stability augmentation + [2108] = "%.4f", -- YAW switch enables stability augmentation + [2109] = "%.4f", -- VEC/PCD/ACL switch (VEC/PCD|OFF|ACL) + [2110] = "%.4f", -- ALT switch (ON|OFF) + [2111] = "%.4f", -- HDG switch (HDG|OFF|GT) + [2112] = "%.4f", -- ENGAGE switch (ENGAGE|OFF) + + -- ASYM Limiter/Engine Mode Select + [16006] = "%.4f", -- ASYM LIMITER switch (ON|OFF) + [16005] = "%.4f", -- ASYM LIMITER cover + [16007] = "%.4f", -- L ENG MODE SELECT (PRI|SEC) + [16008] = "%.4f", -- R ENG MODE SELECT (PRI|SEC) + + [0] = "%.4f", -- Target Designate swith to designate ground targ. on HUD (up/down/forward designate) + + -- Inlet Ramps/Throttle Control Panel + [2104] = "%.4f", -- THROTTLE MODE (AUTO|BOOST|MAN) + [2103] = "%.4f", -- THROTTLE TEMP (HOT|NORM|COLD) + [2100] = "%.4f", -- L INLET RAMP (STOW|AUTO) + [2101] = "%.4f", -- R INLET RAMP (STOW|AUTO) + [2102] = "%.4f", -- ENG CRANK (L|R) + [0] = "%.4f", -- BACK UP IGNITION (ON|NORM) + [0] = "%.4f", -- RUDDER TRIM (L|R) + + + + +-- A1b + -- Oxygen Vent Airflow Control Panel + [0] = "%.4f", -- VENT AIRFLOW dial + [8114] = "%.4f", -- OXYGEN switch (ON|OFF) + + -- TACAN Control Panel + [8888] = "%.4f", -- Dual rotary switch Outer Dial + [8889] = "%.4f", -- Dual rotary switch Inner Dial + [0] = "%.4f", -- TACAN channel 3 digit + [8050] = "%.4f", -- Status Go + [8051] = "%.4f", -- Status NO-GO + [2115] = "%.4f", -- BIT button initiating TACAN BIT + [2043] = "%.4f", -- NORMAL MODE switche (X|Y) + [2036] = "%.4f", -- VOL knob for TACAN audio to pilot + [2041] = "%.4f", -- MODE konb (OFF|REC|T/R|A/A|BCN) + [2042] = "%.4f", -- MODE (NORMAL|INVERSE) + + -- UHF 1 (AN/ARC-159) Radio + [2031] = "%.4f", -- VOL knob controls radio to pilot vol. + [2035] = "%.4f", -- SQL switch squelch (ON|OFF) + [2030] = "%.4f", -- Freq. Select Switch 1 + [2029] = "%.4f", -- Freq. Select Switch 2 + [2028] = "%.4f", -- Freq. Select Switch 3 + [2026] = "%.4f", -- Freq. Select Switch 4 + [0] = "%.4f", -- FREQ/(CHAN) display ??? (maybe the switch values above???) + [8115] = "%.4f", -- READ button + [2027] = "%.4f", -- BRT knob display brightness + [16009] = "%.4f", -- LOAD button + [2034] = "%.4f", -- Function selector knob (ADF|BOTH|MAIN|OFF) + [2032] = "%.4f", -- CHAN SEL knob selects preset channels + [2033] = "%.4f", -- Mode selector knob (GUARD|MANUAL|PRESET) + [16010] = "%.4f", -- TONE button transmits tone on freq. + + -- Throttle Buttons + [0] = "%.4f", -- Speed Brake switch (EXT|RET) + [0] = "%.4f", -- Wing Sweep switch (AUTO|FWD|AFT|BOMB) + [0] = "%.4f", -- PLM button lockon + [0] = "%.4f", -- CAGE/SEAM button lockon + [0] = "%.4f", -- Exterior Light switch (ON|OFF) + [0] = "%.4f", -- ICS PIT switch (ICS|BOTH|UHF1|UHF2) + + + + +-- A2 + -- Fuel Management Panel + [1076] = "%.4f", -- QTY SEL Switch (FEED|WING|EXT) + [1095] = "%.4f", -- Select Fuel Feed to engines (FWD|NORM|AFT) + [1094] = "%.4f", -- Fuel feed cover + [1001] = "%.4f", -- WING/EXT Transfer (ORIDE|AUTO|OFF) + [15002] = "%.4f", -- Refueling Probe Indicator Light + [1074] = "%.4f", -- Fuel Dump Switch (OFF|DUMP) + [1073] = "%.4f", -- Refuel Probe Switch (ALL EXTD|FUS EXTD|RET) + [1072] = "%.4f", -- Anti skid spoiler bk switch (BOTH|OFF|SPOILER BK) + [1071] = "%.4f", -- MASTER RESET button resets CADC failure + + -- Control surface position indicator + [0] = "%.4f", -- L SPOILER DN-Down/flush | Up-Arrow-Above wing | Down-Arrow-Below Wing 8315-8322 + [0] = "%.4f", -- C SPOILER DN-Down/flush | Up-Arrow-Above wing | Down-Arrow-Below Wing + [0] = "%.4f", -- R SPOILER DN-Down/flush | Up-Arrow-Above wing | Down-Arrow-Below Wing + [1092] = "%.4f", -- RUDDER position indicators Left + [1093] = "%.4f", -- RUDDER position indicators Right + [1090] = "%.4f", -- HORIZ. STAB. Position indicator Left + [1091] = "%.4f", -- HORIZ. STAB. Position indicator Right + + -- Landing Gear Control Panel + [326] = "%.4f", -- Landing Gear Handle (UP|DOWN) + [16015] = "%.4f", -- Landing Gear Emer. Extension + [631] = "%.4f", -- HYD ISOL (FLT|T.O.LDG) + [999] = "%.4f", -- Transition Light + [0] = "%.4f", -- EMERG STORES button (illuminates when pressed) + [0] = "%.4f", -- EMERG STORES light ??? + [1075] = "%.4f", -- NOSE STRUT switch (EXTD|OFF|KNEEL) + [237] = "%.4f", -- Brake Pull Handle + [2049] = "%.4f", -- EJECT CMD Indicator (PILOT|MCO) + + -- Wheels-Flaps Pisition Indicator + [8302] = "%.4f", -- Left Landing Gear Indicator + [8305] = "%.4f", -- Right Landing Gear Indicator + [8301] = "%.4f", -- Nose Landing Gear Indicator + [0] = "%.4f", -- SPD BK Indicator + [8310] = "%.4f", -- Slats Indicator + [8311] = "%.4f", -- Flaps Indicator + + + + + +-- A4 + -- Radar Altimiter + [103] = "%.4f", -- Radar Altimeter needle + [308] = "%.4f", -- Radar Altimeter Control Knob + [2123] = "%.4f", -- Radar Altimeter Bug + [2124] = "%.4f", -- Radar Altimeter OFF Flag + [4154] = "%.4f", -- Radar Altimeter Bug + [16020] = "%.4f", -- Radar Altimeter Knob Push + [19108] = "%.4f", -- Radar Altimeter Test Light + + -- Servopneumatic Altimeter + [0] = "%.4f", -- Altimeter readout 112/262/300-304 + [104] = "%.4f", -- Altimeter Baro readout + [306] = "%.4f", -- Baroset knob sets local press. in in.Hg + [0] = "%.4f", -- Local barometric pressure (Kollsman Window) + [307] = "%.4f", -- Mode switch + + -- Airspeed Mach Indicator + [0] = "%.4f", -- Airspeed dial ??? + [0] = "%.4f", -- Indicated airspeed scale (outer) ??? + [0] = "%.4f", -- Indicated airspeed scale (inner) ??? + [0] = "%.4f", -- Mach number scale ??? + [0] = "%.4f", -- Indicated airspeed index pointer ??? + [0] = "%.4f", -- Mach Number index pointer ??? + [0] = "%.4f", -- Safe Mach number index pointer ??? + [0] = "%.4f", -- Index knob pushed in ??? + [0] = "%.4f", -- Index knob pulled out ??? + + [0] = "%.4f", -- Vertical Velocity Indicator + [0] = "%.4f", -- Left Engine Fuel Shutoff Handle + [0] = "%.4f", -- Angle of Attack Indicator + + + + + +-- A5 + [9356] = "%.4f", -- LEFT Eng. Stall Indicator + + [9350] = "%.4f", -- WHEELS warning + [9351] = "%.4f", -- BRAKES warning - antiskid or brake fail / parking break + [9352] = "%.4f", -- ACLS/AP - ACLS or AP disengaged + [9353] = "%.4f", -- NWS ENGA - nosewheel steering engaged + [9354] = "%.4f", -- AUTO THROT - disengagement of auto throttle + + + + + + +-- 6b + -- Vertical Display Indicator (VDI) + [1037] = "%.4f", -- HUD Brightness Control + [1036] = "%.4f", -- VDI Brightness Control + [1038] = "%.4f", -- VDI Contrast Control + [1033] = "%.4f", -- FILTER Handle when pulled inserts filter for night ops + [1034] = "%.4f", -- HUD Trim control for pitch lines + [1035] = "%.4f", -- VDI Trim adjustment of pitch lines on VDI + + -- VDI Caution Lights (also check 2222 id range if below not working) + [9360] = "%.4f", -- ADJ A/C Advisory light indicating other aircraft close to own traffic pattern. + [9361] = "%.4f", -- LANDING CHK Advisory light indicating carrier has a channel + [9362] = "%.4f", -- ACL READY indicating CATCC has aquired aircraft + [9363] = "%.4f", -- A/P CPLR indicating CATCC is ready to control aircraft. + [9364] = "%.4f", -- CMD CONTROL aircraft is under data link control for landing. + [9365] = "%.4f", -- 10 SECONDS waypoint and carrier motion info + [9366] = "%.4f", -- TILT no data link command received for the last 2 sec + [9367] = "%.4f", -- VOICE - CATCC not ready for ACL + [9368] = "%.4f", -- AUTO Throttle + [9369] = "%.4f", -- A/P REF autopilot selected but not engaged. + [15070] = "%.4f", -- WAVEOFF Warning light indicating waveoff commanded. 2222/15070 + [15071] = "%.4f", -- WING SWEEP failure in both wing-sweep channels + [15072] = "%.4f", -- REDUCE SPEED flap retraction failure + [15073] = "%.4f", -- ALT LOW Non functional, light on radar altimeter is used instead + + + + +-- 6c + -- Horizontal Situation Display Indicator (HSD) + [1043] = "%.4f", -- BRT controls HSD Brightness + [1039] = "%.4f", -- HDG controls heading reference bug in TACAN mode + [1040] = "%.4f", -- CRS controls cour in MAN and TACAN mode + [1041] = "%.4f", -- TEST allows reset of HSD + + [0] = "%.4f", -- BIT indicator failure in HSD (shows flags ???) + [0] = "%.4f", -- Bit Indicator knob ??? + + + + +-- 6d + -- Center Panel at bottom + [0] = "%.4f", -- Cabin Pressure Altimeter in 1,000 foot increments (0-50,000') 935|2210 + [0] = "%.4f", -- Emerg. Brake Press. Indicator Park (2150-3000 psi green / red is 1900-2150 psi) 999|9260 + [0] = "%.4f", -- Emerg. Aux Press. Indicator Park (2150-3000 psi green / red is 1900-2150 psi) 9261 + + + + +-- A7 + [9355] = "%.4f", -- Right Eng. STALL + + -- ECM Warning Lights + [9357] = "%.4f", -- SAM - steady when lock from SAM / Flashes when missle launch + [9358] = "%.4f", -- AAA - steady when lock from AAA / Flashes on missle launch + [9359] = "%.4f", -- AI - steady when lock from airborne radar + + [15097] = "%.4f", -- Standby Compass + + + + +-- A8 + [0] = "%.4f", -- Wing Sweep Indicator 404|405|507|508|2001|2002 flags: 15091-15095 + [0] = "%.4f", -- Right Engine Fuel Shutoff Handle + [0] = "%.4f", -- Standby Attitude Indicator ?? + + -- UHF/VHF Remote Indicators + [0] = "%.4f", -- UHF 1 frequency display + [0] = "%.4f", -- UHF 1 TEST button displays 888.888 if good + [0] = "%.4f", -- UHF 1 DIM controls display brightness + [0] = "%.4f", -- V/UHF 2 frequency display + [0] = "%.4f", -- V/UHF 2 TEST button displays 888.888 if good + [0] = "%.4f", -- V/UHF 2 BRT controls display brightness + + [353] = "%0.1f", -- VHF/UHF ARC-182 Freq Mode (UHF GUARD|V/UHF|V/UHF GUARD|PRESET|V/UHF|LOAD?) -- Bailey + + -- Bearing Distance Heading Indicator BDHI + [0] = "%.4f", -- No. 2 Bearing Pointer magnetic course to TACAN station + [0] = "%.4f", -- Compass Rose magnetic heading + [0] = "%.4f", -- No. 1 bearing pointer magnetic course to UHF/ADF station + [0] = "%.4f", -- Distance Counter in nautical miles + + -- ALR-67 Indicator + [0] = "%.4f", -- INT knob intensity brightness + + [224] = "%.4f", -- Canopy Jettison Handle + + + + + +-- A10 + -- Displays Control Panel + -- Steering Commands Selectors + [1002] = "%.4f", -- TACAN - Selects TACAN as steering command source + [1003] = "%.4f", -- DEST - Selects RIO set waypoint as steering command source + [1004] = "%.4f", -- AWL/PCD - All weather landing/prec. course direction + [1005] = "%.4f", -- VEC - Vector, selects data link deviation steering as source + [1006] = "%.4f", -- MAN - Manual, selects manually selected course and heading + + -- Mode Selectors + [1015] = "%.4f", -- T.O. Takeoff mode + [1014] = "%.4f", -- CRUISE mode + [1013] = "%.4f", -- A/A Air-to-Air mode + [1012] = "%.4f", -- A/G Air-to-Ground mode + [1011] = "%.4f", -- LDG Landing Mode + + -- HUD + [1021] = "%.4f", -- DeClutter Mode for HUD (ON|OFF) + [1020] = "%.4f", -- Which AWL to display on HUD Switch (ILS|ACL) + + -- VDI + [1019] = "%.4f", -- TV Displays video from TCS or LANTIRN or NORM (TV|NORM) + [1018] = "%.4f", -- Which AWL to display on VDI (ILS|ACL) + + -- HSD + [1016] = "%.4f", -- HSD Mode (NAV|TID) nav display or TID repeats RIO TID Info + [1017] = "%.4f", -- ECM (ORIDE|OFF) [NOT USED/MODELED] + + -- Power Switches + [1010] = "%.4f", -- VDI (ON|OFF) + [1009] = "%.4f", -- HUD (ON|OFF) + [1008] = "%.4f", -- HSD/ECMD (ON|OFF) + + -- Pitch LAD BRT Knob + [1007] = "%.4f", -- Controls brightness of pitch ladder on HUD + -- END Displays Control Panel + + -- gun elevation lead in mils + [2270] = "%.4f", -- Hundreds Counter in mils for the manual A/A and A/G gun modes. Limits are -263 and +87 mils + [2271] = "%.4f", -- Tens Counter in mils for the manual A/A and A/G gun modes. Limits are -263 and +87 mils + [2272] = "%.4f", -- Ones Counter in mils for the manual A/A and A/G gun modes. Limits are -263 and +87 mils + [2273] = "%.4f", -- Knob adjust counter + + + + +-- 11a + -- Spoiler Failure Override + [902] = "%.4f", -- Inboard spoiler override (ORIDE|NORM) COVER + [903] = "%.4f", -- Outboard spoiler override (ORIDE|NORM) COVER + [908] = "%.4f", -- Inboard spoiler override (ORIDE|NORM) + [907] = "%.4f", -- Outboard spoiler override (ORIDE|NORM) + + -- Caution Advisory Indicator + [15037] = "%.1f", -- PITCH STAB 1 - inoperative pitch channel + [15040] = "%.1f", -- PITCH STAB 2 - inoperative pitch channel + [15039] = "%.1f", -- ROLL STAB 1 - inoperative roll channel + [15056] = "%.1f", -- ROLL STAB 2 - inoperative roll channel + [15025] = "%.1f", -- YAW STAB OP - one inoperative yaw channel + [15026] = "%.1f", -- YAW STAB OUT - two inoperative yaw channels + [15031] = "%.1f", -- EMERG JETT - caution activation of emerg stores jett button + [15050] = "%.1f", -- LADDER - boarding ladder not correctly stowed + [15052] = "%.1f", -- INLET ICE - accumulation of ice on ice detector in L eng. + [15046] = "%.1f", -- FLAP - failure in flap system or flaps down & speed > 225k + [15047] = "%.1f", -- HZ TAIL AUTH - failure of lateral tail auth. actuator + [15053] = "%.1f", -- RUDDER AUTH - failure of rudder auth. actuator + [15057] = "%.1f", -- SPOILERS - spoiler sys failure + [15041] = "%.1f", -- AUTO PILOT - A/P failure + [15054] = "%.1f", -- Left INLET - AICS programmer and/or system failure + [15051] = "%.1f", -- Right INLET - AICS programmer and/or system failure + [15048] = "%.1f", -- OIL PRESS - left or right engine oil press. < 11psi + [15038] = "%.1f", -- BLEED DUCT - high temp air leak in engine comp. + [15049] = "%.1f", -- LEFT RAMPS - ramps not locked in pos. + [15044] = "%.1f", -- RIGHT RAMPS - ramps not locked in pos. + [15063] = "%.1f", -- START VALVE - starter solenoid air valve is open + [15061] = "%.1f", -- LEFT ENG SEC - engin AFTC is in secondary mode + [15064] = "%.1f", -- RIGHT ENG SEC - engin AFTC is in secondary mode + [15016] = "%.1f", -- LEFT GEN - respective engine generator inoperative + [15020] = "%.1f", -- RIGHT GEN - respective engine generator inoperative + [15027] = "%.1f", -- CANOPY - canopy is not own and locked + [15033] = "%.1f", -- BINGO - aircraft fuel qty at or below set bingo + [15017] = "%.1f", -- LEFT OIL HOT - respective eng. oil is too hot + [15022] = "%.1f", -- RIGHT OIL HOT - respective eng. oil is too hot + [15028] = "%.1f", -- CADC - air data computer failure + [15034] = "%.1f", -- HYD PRESS - press. in either engine hyd. < 2,100 psi + [15018] = "%.1f", -- LEFT FUEL PRESS - press. < 9 psi in respective fuel pump + [15021] = "%.1f", -- RIGHT FUEL PRESS - press. < 9 psi in respective fuel pump + [15029] = "%.1f", -- LEFT FUEL LOW - fuel < 1000 lbs in aft and left tank + [15035] = "%.1f", -- RIGHT FUEL LOW - fuel < 1000 lbs in fwd and righ tank + [15023] = "%.1f", -- WING SWEEP - failure of a single channel in wing sweep + [15062] = "%.1f", -- RATS - RATS enabled + [15058] = "%.1f", -- TRANS/RECT - transformer rectifier failure + [15036] = "%.1f", -- MACH TRIM - failure in Mach trim actuator + [15030] = "%.1f", -- WSHLD HOT - central windshield overheat + [15045] = "%.1f", -- LAUNCH BAR - weight on wheels + [15060] = "%.1f", -- INTEG TRIM - trim failure + [15055] = "%.1f", -- AHRS - unreliable attitude or hdg info from AHRS + [15019] = "%.1f", -- ENG FIRE EXT - low press. in fire extenguisher + [15024] = "%.1f", -- AUX FIRE EXT - low press. in Aux. fire ext. + + -- Master Generator Control Panel + [937] = "%.4f", -- LEFT MASTER GEN switch (NORM|OFF/RESET|TEST) + [936] = "%.4f", -- RIGHT MASTER GEN switch (NORM|OFF/RESET|TEST) + [927] = "%.4f", -- EMERG switch (EMERG|NORM|OFF/RESET) COVER + [926] = "%.4f", -- EMERG switch (EMERG|NORM|OFF/RESET) + + -- Air Condition Control Panel + [940] = "%.4f", -- TEMP switch (AUTO|MAN) + [939] = "%.4f", -- CABIN PRESS switch (NORM|DUMP) + [938] = "%.4f", -- RAM AIR switch (INCR|DECR) + [929] = "%.4f", -- AIR SOURCE selection (RAM) + [930] = "%.4f", -- AIR SOURCE selection (L ENG.) + [931] = "%.4f", -- AIR SOURCE selection (R ENG.) + [932] = "%.4f", -- AIR SOURCE selection BOTH ENG.) + [933] = "%.4f", -- AIR SOURCE selection (OFF) + [950] = "%.4f", -- TEMP thumbwheel (1-14 COOL-WARM) + + -- External Environmental Control Panel + [942] = "%.4f", -- WIND SHIELD switch (AIR|OFF) + [941] = "%.4f", -- ANTI-ICE switch (ORIDE|AUTO|OFF) + + -- Hydraulic Transfer Pump Switch + [630] = "%.4f", -- Transfer Pump switch cover + [629] = "%.4f", -- HYD TRANSFER PUMP switch (NORMAL|SHUTOFF) + + + + + +-- 11b + -- Compass Control Panel + [0] = "%.4f", -- SYNC Indicator 2221? + [906] = "%.4f", -- N-S Switch hemisphere (N|S) + [909] = "%.4f", -- Lat Knob (0-90) + [1026] = "%.4f", -- Lat Knob (0-90) + [905] = "%.4f", -- Mode Switch AHRS Hdg Info (COMP|SLAVED|DG) + [904] = "%.4f", -- HDG Knob + [16014] = "%.4f", -- HDG Button + + -- ARA-63 Control Panel + [912] = "%.4f", -- Channel Selector (1 of 20 available ICLS channels) + [911] = "%.4f", -- BIT button + [910] = "%.4f", -- Power Switch (ON|OFF) + [910] = "%.4f", -- Power ON Light for ARA-63 (taken from power on/off switch) + + -- Master Light Control Panel + [923] = "%.4f", -- ANTI COLLISION switch (ON|OFF) + [919] = "%.4f", -- POSITION switch (FLASH|STEADY) + [916] = "%.4f", -- TAIL POSITION switch (DIM|OFF|BRT) + [913] = "%.4f", -- WING POSITION switch (DIM|OFF|BRT) + [15005] = "%.4f", -- ACM thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15006] = "%.4f", -- INDEXER thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15007] = "%.4f", -- INSTRUMENT thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15008] = "%.4f", -- CONSOLE thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15009] = "%.4f", -- FORMATION thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [915] = "%.4f", -- HOOK BYPASS (FIELD|CARRIER) + [918] = "%.4f", -- TAXI lights switch (ON|OFF) + [921] = "%.4f", -- WHITE FLOOD switch (OFF|DIM|BRT) + [924] = "%.4f", -- RED FLOOD switch (DIM|MED|BRT) + + -- Master Test Panel + [934] = "%.4f", -- MASTER TEST SELECTOR (OFF|LTS|FIRE DET/EXT|INST|OBC|EMERG GEN|MACH LEV|WG SWP|FLT GR DN|FLT GR UP|D/L RAD|STICK SW) + [15098] = "%.4f", -- MASTER TEST SELECTOR Knob Push + [15010] = "%.4f", -- GO light - light used in test to indicate go/no-go conditions of that system + [15011] = "%.4f", -- NO-GO light - light used in test to indicate go/no-go conditions of that system + [928] = "%.4f", -- EMERG FLT HYD (HIGH|LOW|AUTO(LOW)) + [615] = "%.4f", -- EMERG FLT HYD switch cover + + -- Canopy Defog/Cabin Air Lever + [0] = "%.4f", -- CABIN AIR + [0] = "%.4f", -- CANOPY DEFOG + + + + +-- 12 + [0] = "%.4f", -- Canopy Control Handle (BOOST|CLOSE|HOLD|OPEN|AUX OPEN) + + + -- [END In Development] ------------------------------------------------------------------- + -- ################################################################################################################################################################### + -- ################################################################################################################################################################### + + + + + + + + + + + + + -- [A1 Pilot - Left Side Console] --------------------------------------------------------- + -- [END A1] ------------------------------------------------------------------------------- + + -- [A2 Pilot - Left Vertical Console] ----------------------------------------------------- + -- [END A2] ------------------------------------------------------------------------------- + + -- [A3 Pilot - Left Knee Panel] ----------------------------------------------------------- + + -- Electronic Instrument Group + [1057] = "%.4f", -- Engine RPM Left [STREAM DECK FORMAT: 51057] + [1058] = "%.4f", -- Engine RPM Right [STREAM DECK FORMAT: 51057] + [1059] = "%.4f", -- Engine TIT (Exhaust Gas Temp) Left [STREAM DECK FORMAT: 51059] + [1060] = "%.4f", -- Engine TIT (Exhaust Gas Temp) Right [STREAM DECK FORMAT: 51059] + [1061] = "%.4f", -- Engine Fuel Flow Left [STREAM DECK FORMAT: 51061] + [1062] = "%.4f", -- Engine Fuel Flow Right [STREAM DECK FORMAT: 51061] + + -- Hydraulic Pressure Indicator + [1063] = "%.4f", -- HYD_FlightHydraulicSystemPressure [STREAM DECK FORMAT: 51023 OR 51063] + [1064] = "%.4f", -- HYD_CombinedHydraulicSystemPressure [STREAM DECK FORMAT: 51023 OR 51063] + + -- Engine Oil Pressure Gauges + [1065] = "%.4f", -- Right Engine Oil Pressure [STREAM DECK FORMAT: 51065] + [1066] = "%.4f", -- Left Engine Oil Pressure [STREAM DECK FORMAT: 51065] + + -- Engine Exhaust Nozzle Position + [1067] = "%.1f", -- Right Nozzle [STREAM DECK FORMAT: 51068] + [1068] = "%.1f", -- Left Nozzle [STREAM DECK FORMAT: 51068] + + -- [END A3] ------------------------------------------------------------------------------- + + -- [A4 Pilot - Left Instrument Panel] ----------------------------------------------------- + + -- [END A4] ------------------------------------------------------------------------------- + + -- [A5 Pilot - Left Windshield Frame] ----------------------------------------------------- + + -- Approach Indexer + [3760] = "%d", -- Approach Indexer AOA Slow green light - {0, 1}{0, 1} + [3761] = "%d", -- Approach Indexer AOA optimum yellow light - {0, 1}{0, 1} + [3762] = "%d", -- Approach Indexer AOA fast red light - {0, 1}{0, 1} + + -- [END A5] ------------------------------------------------------------------------------- + + -- [A6a Pilot - Center Panel] ------------------------------------------------------------- + + -- ACM Switch + [1049] = "%d", -- ACM Switch Cover actives the ACM mode - {0, 1}{0, 1} [BUTTON ID:3133 / DEVICE ID:55 ] + [1048] = "%d", -- ACM JETT button jettison stores - {0, 1}{0, 1} [BUTTON ID:3138 / DEVICE ID:55 ] + + -- Master Arm Switch + [1046] = "%d", -- MASTER ARM cover - {0, 1}{0, 1} [BUTTON ID:3135 / DEVICE ID:55 ] + [1047] = "%d", -- MASTER ARM switch (OFF|ON|TNG) - {-1, 1}{-1, 1} [BUTTON ID:3136 / DEVICE ID:55 ] + + -- Turn and Slip Indicator 6a (Not sure how to do this at the moment) + [6500] = "%.4f", -- Slip Ball + [6501] = "%.4f", -- Turn Indicator + + -- Master Caution light + [9200] = "%d", -- MASTER CAUTION Light - flashes - {0, 1}{0, 1} + + -- [END A6a] ------------------------------------------------------------------------------ + + -- [A6b Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6b] ------------------------------------------------------------------------------ + + -- [A6c Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6c] ------------------------------------------------------------------------------ + + -- [A6d Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6d] ------------------------------------------------------------------------------ + + -- [A7 Pilot - Right Windshield Frame] ---------------------------------------------------- + -- [END A7] ------------------------------------------------------------------------------- + + -- [A8 Pilot - Right Instrument Panel] ---------------------------------------------------- + -- [END A8] ------------------------------------------------------------------------------- + + -- [A9 Pilot - Right Knee Panel] ---------------------------------------------------------- + + -- FUS & FEED tapes Shows fuel qty in fuselage tanks + [1054] = "%.4f", -- Left feed and aft fuselage tanks [STREAM DECK FORMAT: 51054] + [1055] = "%.4f", -- Right feed and forward fuselage tanks [STREAM DECK FORMAT: 51055] + + -- Total Left Fuel Qty (main fuel guage at bottom left) + [6000] = "%.1f", -- FUEL_LFuelDial1k [STREAM DECK FORMAT: 56000] + [6001] = "%.1f", -- FUEL_LFuelDial100 [STREAM DECK FORMAT: 56000] + [6002] = "%.1f", -- FUEL_LFuelDial10 [STREAM DECK FORMAT: 56000] + [6003] = "%.1f", -- FUEL_LFuelDial1 [STREAM DECK FORMAT: 56000] + + -- Total Right Fuel Qty (main fuel guage at bottom right) + [6004] = "%.1f", -- FUEL_RFuelDial1k [STREAM DECK FORMAT: 56004] + [6005] = "%.1f", -- FUEL_RFuelDial100 [STREAM DECK FORMAT: 56004] + [6006] = "%.1f", -- FUEL_RFuelDial10 [STREAM DECK FORMAT: 56004] + [6007] = "%.1f", -- FUEL_RFuelDial1 [STREAM DECK FORMAT: 56004] + + -- Total Fuel Qty in all aircraft tanks (main fuel guage in center shows "Fuel 15000 Qty") + [6010] = "%.1f", -- FUEL_TotalFuel10k [STREAM DECK FORMAT: 56010] + [6011] = "%.1f", -- FUEL_TotalFuel1k [STREAM DECK FORMAT: 56010] + [6012] = "%.1f", -- FUEL_TotalFuel100 [STREAM DECK FORMAT: 56010] + [6013] = "%.1f", -- FUEL_TotalFuel10 [STREAM DECK FORMAT: 56010] + [6014] = "%.1f", -- FUEL_TotalFuel1 [STREAM DECK FORMAT: 56010] + + -- Currently set BINGO fuel quantity (main fuel guage in center at top shows "Bingo 4000") + [6020] = "%.1f", -- FUEL_BingoFuel10k [STREAM DECK FORMAT: 56020] + [6021] = "%.1f", -- FUEL_BingoFuel1k [STREAM DECK FORMAT: 56020] + [6022] = "%.1f", -- FUEL_BingoFuel100 [STREAM DECK FORMAT: 56020] + [6023] = "%.1f", -- FUEL_BingoFuel10 [STREAM DECK FORMAT: 56020] + [6024] = "%.1f", -- FUEL_BingoFuel1 [STREAM DECK FORMAT: 56020] + + -- Accelerometer (3 needles) + [110] = "%.4f", -- Needle - Current G (+10 to -6) [STREAM DECK FORMAT: 50110] + [15076] = "%.4f", -- Needle 2 - Max Postive G pulled (max 10) [STREAM DECK FORMAT: 50110] + [15077] = "%.4f", -- Needle 3 - Max Negative G Pulled (max -6) [STREAM DECK FORMAT: 50110] + + -- [END A9] ------------------------------------------------------------------------------- + + -- [A10 Pilot - Right Vertical Console] --------------------------------------------------- + + -- Gun Ammunition Rounds Counter + [4060] = "%.1f", -- Gun Ammunition Rounds Counter Hundreds [STREAM DECK FORMAT: 54060] + [4061] = "%.1f", -- Gun Ammunition Rounds Counter Tens [STREAM DECK FORMAT: 54060] + [4062] = "%.1f", -- Gun Ammunition Rounds Counter Ones [F-14 DOESN'T DISPLAY] + + -- [END A10] ------------------------------------------------------------------------------ + + -- [A11 Pilot - Right Side Console] ------------------------------------------------------- + -- [END A11] ------------------------------------------------------------------------------ + + -- [A12 Pilot - Canopy Control Handle] ---------------------------------------------------- + -- [END A12] ------------------------------------------------------------------------------ +-- END PILOT COCKPIT -------------------------------------------------------------------------- + + +-- RIO OFFICER COCKPIT ------------------------------------------------------------------------ + -- [B1 RIO - Left Side Console] ----------------------------------------------------------- + -- [END B1] ------------------------------------------------------------------------------- + + -- [B2 RIO - Left Vertical Console] ------------------------------------------------------- + -- [END B2] ------------------------------------------------------------------------------- + + -- [B3 RIO - Left Instrument Panel] ------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B4 RIO - Center Panel] ---------------------------------------------------------------- + -- [END B4] ------------------------------------------------------------------------------- + + -- [B5 RIO - Center Console] -------------------------------------------------------------- + -- [END B5] ------------------------------------------------------------------------------- + + -- [B6 RIO - Left and Right Footwells] ---------------------------------------------------- + -- [END B6] ------------------------------------------------------------------------------- + + -- [B7 RIO - Right Instrument Panel] ------------------------------------------------------ + + -- Total RIO Fuel Qty (Radar Officer Fuel Dial) + [2117] = "%.1f", -- FUEL_TotalFuelRIO10k (10's of thousands in decimal 0.1 = 10,000 lbs) [STREAM DECK FORMAT: 56010] + [2118] = "%.1f", -- FUEL_TotalFuelRIO1k (thousands of lbs in decimal 0.4 = 1,000 lbs) [STREAM DECK FORMAT: 56010] + [2119] = "%.1f", -- FUEL_TotalFuelRIO100 (hundreds of lbs in decimal 0.3 = 300 lbs) [STREAM DECK FORMAT: 56010] + [2120] = "%.1f", -- FUEL_TotalFuelRIO10 (ten lbs of fuel in decimal 0.7 = 70 lbs) [F-14 DOESN'T DISPLAY TENS OF LBS] + [2135] = "%.1f", -- FUEL_TotalFuelRIO1 (lbs of fuel in decimal 0.2 = 2 lbs) [F-14 DOESN'T DISPLAY] + + -- [END B7] ------------------------------------------------------------------------------- + + -- [B8 RIO - Right Knee Panel] ------------------------------------------------------------ + -- [END B1] ------------------------------------------------------------------------------- + + -- [B9 RIO - Right Vertical Console] ------------------------------------------------------ + -- [END B2] ------------------------------------------------------------------------------- + + -- [B10 RIO - Right Side Console] --------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B11 RIO - Canopy Control Handle] ------------------------------------------------------ + -- [END B4] ------------------------------------------------------------------------------- +-- END RIO OFFICER COCKPIT -------------------------------------------------------------------- +} + + +ExportScript.ConfigArguments = +{ + -- arguments for export in low tick interval + +-- PILOT COCKPIT ------------------------------------------------------------------------------ + -- [A1 Pilot - Left Side Console] --------------------------------------------------------- + -- [END A1] ------------------------------------------------------------------------------- + + -- [A2 Pilot - Left Vertical Console] ----------------------------------------------------- + -- [END A2] ------------------------------------------------------------------------------- + + -- [A3 Pilot - Left Knee Panel] ----------------------------------------------------------- + + -- Hydraulic Pressure Indicator Flags + [1023] = "%d", -- Pressure availability to the spoilers flag - {0, 1}{0, 1} [STREAM DECK FORMAT: 51023 OR 51063] + [1024] = "%d", -- Emer. Flight hyd. pump operating on High - {0, 1}{0, 1} [STREAM DECK FORMAT: 51023 OR 51063] + [1025] = "%d", -- Emer. Flight hyd. pump operating on LOW - {0, 1}{0, 1} [STREAM DECK FORMAT: 51023 OR 51063] + + -- [END A3] ------------------------------------------------------------------------------- + + -- [A4 Pilot - Left Instrument Panel] ----------------------------------------------------- + -- [END A4] ------------------------------------------------------------------------------- + + -- [A5 Pilot - Left Windshield Frame] ----------------------------------------------------- + -- [END A5] ------------------------------------------------------------------------------- + + -- [A6a Pilot - Center Panel] ------------------------------------------------------------- + + -- Master Caution Button (light in high tik) + [9199] = "%d", -- MASTER CAUTION Button - press to reset - {0, 1}{0, 1} [BUTTON ID:3056 / DEVICE ID:34 ] + + -- Triple Indicator Lights + [9203] = "%d", -- SEAM LOCK light - sidewinder acquisition in progress.. + [9202] = "%d", -- COLLISION light - collision steering has been selected + [9201] = "%d", -- HOT TRIG light - when lit trigger will release a weapon + + -- Gun Rate Switch and Lights + [9204] = "%d", -- GUN RATE light HIGH (HIGH|LOW) - {0, 1}{0, 1} + [9205] = "%d", -- GUN RATE light LOW (HIGH|LOW) - {0, 1}{0, 1} + [16000] = "%d", -- GUN RATE switch (HIGH|LOW) - {0, 1}{0, 1} [BUTTON ID:3130 / DEVICE ID:55 ] + + -- Sidewinder Cooling + [9206] = "%d", -- SW COOL Switch light On - {0, 1}{0, 1} + [9207] = "%d", -- SW COOL Switch light Off - {0, 1}{0, 1} + [16001] = "%d", -- SW COOL switch (ON|OFF) - {0, 1}{0, 1} [BUTTON ID:3139 / DEVICE ID:55 ] + + -- MSL Preperation Switch + [9208] = "%d", -- MSL PREP switch light On - {0, 1}{0, 1} + [9209] = "%d", -- MSL PREP switch light Off - {0, 1}{0, 1} + [16002] = "%d", -- MSL PREP switch (ON|OFF) - {0, 1}{0, 1} [BUTTON ID:3140 / DEVICE ID:55 ] + + -- MSL Mode Switch + [9210] = "%d", -- MSL Mode switch light Norm - {0, 1}{0, 1} + [9211] = "%d", -- MSL Mode switch light Boresight - {0, 1}{0, 1} + [16003] = "%d", -- MSL Mode switch (NORM|BRSIT) - {0, 1}{0, 1} [BUTTON ID:3141 / DEVICE ID:55 ] + + -- Weapon Station Status Flags + [9221] = "%.2f", -- Station Status Flag 1A (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9222] = "%.2f", -- Station Status Flag 1B (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9223] = "%.2f", -- Station Status Flag 3 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9224] = "%.2f", -- Station Status Flag 4 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9225] = "%.2f", -- Station Status Flag 5 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9226] = "%.2f", -- Station Status Flag 6 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9227] = "%.2f", -- Station Status Flag 8B (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9228] = "%.2f", -- Station Status Flag 8A (OFF|WHITE|CHECK) - {0, 1}{0, 1} + + -- Engine Fire Lights + [15014] = "%d", -- Left Engine FIRE Light - {0, 1}{0, 1} + [15015] = "%d", -- Right Engine FIRE Light - {0, 1}{0, 1} + + -- [END A6a] ------------------------------------------------------------------------------ + + -- [A6b Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6b] ------------------------------------------------------------------------------ + + -- [A6c Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6c] ------------------------------------------------------------------------------ + + -- [A6d Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6d] ------------------------------------------------------------------------------ + + -- [A7 Pilot - Right Windshield Frame] ---------------------------------------------------- + -- [END A7] ------------------------------------------------------------------------------- + + -- [A8 Pilot - Right Instrument Panel] ---------------------------------------------------- + -- [END A8] ------------------------------------------------------------------------------- + + -- [A9 Pilot - Right Knee Panel] ---------------------------------------------------------- + + -- Accelerometer + [228] = "%.4f", -- Accelerometer Reset knob - {0, 1}{0, 1} [BUTTON ID: 3488 / DEVICE ID: 24] + + -- Bingo Set Knob + [1050] = "%.4f", -- Knob used to set BINGO fuel Qty - +/- 1 per step is 100 lbs of fuel [BUTTON ID: 3069 / DEVICE ID: 20] + + -- Clock and Timer + [1051] = "%.4f", -- Clock Timer wind - +/- 0.06 per step is 1 Minute [BUTTON ID: 3042 / DEVICE ID: 26] + [1096] = "%.4f", -- Clock Hours - {0, 12}{0.0000, 1.0000} e.g. 0.5000 * 12 = 6pm [STREAM DECK FORMAT: 51096] + [1097] = "%.4f", -- Clock Minutes - {0, 60}{0.0000, 1.0000} e.g. 0.5000 * 60 = 30 Minutes [STREAM DECK FORMAT: 51096] + [1098] = "%.4f", -- Clock Timer Seconds - {0, 60}{0.0000, 1.0000} e.g. 0.5000 * 60 = 30 Seconds [STREAM DECK FORMAT: 51096] + [1099] = "%d", -- Clock Timer Start/Stop/Reset Button - {0, 1}{0, 1} [BUTTON ID: 3043 / DEVICE ID: 26] + [2000] = "%.4f", -- Clock Timer Minutes - {0, 60}{0.0000, 1.0000} e.g. 0.5000 * 60 = 30 Minutes [STREAM DECK FORMAT: 51096] + + -- [END A9] ------------------------------------------------------------------------------- + + -- [A10 Pilot - Right Vertical Console] --------------------------------------------------- + + -- Arresting Hook + [238] = "%d", -- HOOK_Handle Arresting hook handle down/up - {0, 1}{0, 1} [BUTTON ID: 3021 / DEVICE ID: 17] + [15078] = "%d", -- HOOK_EmergencyDown Emergency release - {0, 1}{0, 1} [BUTTON ID: 3022 / DEVICE ID: 17] + [15090] = "%d", -- Hook_Light Arresting Hook Light - {0, 1}{0, 1} [LIGHT/LAMP] + + -- Gun Rounds and Knob + [1022] = "%.4f", -- Gun Ammunition Counter Adj. Knob - {0, 1}{increase or decrease by 0.1 to inc/dec. by 10 rounds} [BUTTON ID: 3132 / DEVICE ID: 55] + + -- [END A10] ------------------------------------------------------------------------------ + + -- [A11a Pilot - Right Side Console] ------------------------------------------------------ + -- [END A11a] ----------------------------------------------------------------------------- + + -- [A11b Pilot - Right Side Console] ------------------------------------------------------ + + -- HUD Video Control Panel (Not Implemented in DCS) + --[0] = "%.4f", -- HUD CAM(E)RA switch (TRG|NORMAL|OFF|RUN) + --[0] = "%.4f", -- VTR Power (ON|OFF) + --[0] = "%.4f", -- VTR (RECORD|STANDBY) + + -- [END A11b] ----------------------------------------------------------------------------- + + + -- [A12 Pilot - Canopy Control Handle] ---------------------------------------------------- + -- [END A12] ------------------------------------------------------------------------------ +-- END PILOT COCKPIT -------------------------------------------------------------------------- + + + + +-- RIO OFFICER COCKPIT ------------------------------------------------------------------------ + -- [B1 RIO - Left Side Console] ----------------------------------------------------------- + -- [END B1] ------------------------------------------------------------------------------- + + -- [B2 RIO - Left Vertical Console] ------------------------------------------------------- + -- [END B2] ------------------------------------------------------------------------------- + + -- [B3 RIO - Left Instrument Panel] ------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B4 RIO - Center Panel] ---------------------------------------------------------------- + -- [END B4] ------------------------------------------------------------------------------- + + -- [B5 RIO - Center Console] -------------------------------------------------------------- + -- [END B5] ------------------------------------------------------------------------------- + + -- [B6 RIO - Left and Right Footwells] ---------------------------------------------------- + -- [END B6] ------------------------------------------------------------------------------- + + -- [B7 RIO - Right Instrument Panel] ------------------------------------------------------ + -- [END B7] ------------------------------------------------------------------------------- + + -- [B8 RIO - Right Knee Panel] ------------------------------------------------------------ + -- [END B1] ------------------------------------------------------------------------------- + + -- [B9 RIO - Right Vertical Console] ------------------------------------------------------ + -- [END B2] ------------------------------------------------------------------------------- + + -- [B10 RIO - Right Side Console] --------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B11 RIO - Canopy Control Handle] ------------------------------------------------------ + -- [END B4] ------------------------------------------------------------------------------- +-- END RIO OFFICER COCKPIT -------------------------------------------------------------------- + +} + + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + -- every frame export to Ikarus + + -- A3 - Pilot Cockpit Left Knee Panel + ExportScript.hydPressGauge(mainPanelDevice) -- Hydraulic Pressure Indicator Gauges and Flags + ExportScript.engNozzle(mainPanelDevice) -- Engine Nozzle position gauge + ExportScript.engOilPressure(mainPanelDevice) -- Engine Oil Pressure gauges + ExportScript.EIG(mainPanelDevice) -- Electronic Instrument Group + -- end A3 + + -- A6a - ACM Panel + ExportScript.stationStatusFlags(mainPanelDevice) -- Air Combat Maneuver Panel + ExportScript.ACMButtons(mainPanelDevice) -- 4 different ACM Buttons + ExportScript.masterArmSwitch(mainPanelDevice) -- Master Arm Switch + ExportScript.ACMTriple(mainPanelDevice) -- ACM Triple Indicator + ExportScript.ACMSlip(mainPanelDevice) -- Slip/Ball Gauge + -- end A6a + + -- A9 - Pilot Cockpit Right Knee Panel + ExportScript.displayFuel(mainPanelDevice) -- Set of 5 different fuel gauges and a nice multi-gauge (ID's 52117 / 56000 / 56004 / 56010 / 56020 / 56024) Cus. Func. + ExportScript.displayAccel(mainPanelDevice) -- Accellerometer Gauge Custom Function + ExportScript.clockAndTimer(mainPanelDevice) -- Clock and Timer in digital format on same gauge Custom Function + -- end A9 + + -- A10 - Pilot Right Vertical Console + ExportScript.gunCounter(mainPanelDevice) -- Gun Ammunition Counter / Rounds left + -- end A10 + + ----------------------------------- + -----Get F14 Radio Frequencies----- Bailey + ----------------------------------- + + -----UHF----- + + --[[ + 1. Get the state of the switch to determine if presets or freqs are being used + 2. Get the channel or freq + 3. Using the above logic, present the Channel or Freq + 4. Preceede channels with "CH ". + 5. Dont preceede freqs with anything. + ]] + + --[[ + [2033] = "%.4f", -- Mode selector knob (GUARD|MANUAL|PRESET) + 0.0000 = preset + 0.5000 = MANUAL + 1.0000 = GUARD + ]] + + local UHF_ARC159_infoBase = ExportScript.Tools.split(list_indication(8), "%c")--this contains the formated table of the base radio + local UHF_ARC159_readoutBase = UHF_ARC159_infoBase[10] -- so far it has always been 10 in both channel and freq modes + local UHF_ARC159_FreqMode = string.format("%0.1f", mainPanelDevice:get_argument_value(2033)) + + if UHF_ARC159_FreqMode == "1.0" or UHF_ARC159_FreqMode == "0.5" then + ExportScript.Tools.SendData(60000, string.format("ARC-159\n" .. UHF_ARC159_readoutBase:sub(1,3) .. "." .. UHF_ARC159_readoutBase:sub(4,6))) + ExportScript.Tools.SendData(60001, string.format(UHF_ARC159_readoutBase:sub(1,3) .. "." .. UHF_ARC159_readoutBase:sub(4,6))) + elseif UHF_ARC159_FreqMode == "0.0" then + ExportScript.Tools.SendData(60000, string.format("ARC-159\n" .. "CH " .. UHF_ARC159_readoutBase:sub(4,6))) + ExportScript.Tools.SendData(60001, string.format("CH " .. UHF_ARC159_readoutBase:sub(4,6))) + end + + + local UHF_ARC159_infoPilot = ExportScript.Tools.split(list_indication(9), "%c")--this contains the formated table of the Pilot radio + local UHF_ARC159_readoutPilot = UHF_ARC159_infoPilot[16] -- so far it has always been 10 in both channel and freq modes + local UHF_ARC159_FreqMode = string.format("%0.1f", mainPanelDevice:get_argument_value(2033)) + + if UHF_ARC159_FreqMode == "1.0" or UHF_ARC159_FreqMode == "0.5" then + ExportScript.Tools.SendData(60002, string.format("ARC-159\n" .. UHF_ARC159_readoutPilot:sub(1,3) .. "." .. UHF_ARC159_readoutPilot:sub(4,6))) + ExportScript.Tools.SendData(60003, string.format(UHF_ARC159_readoutPilot:sub(1,3) .. "." .. UHF_ARC159_readoutPilot:sub(4,6))) + elseif UHF_ARC159_FreqMode == "0.0" then + ExportScript.Tools.SendData(60002, string.format("ARC-159\n" .. "CH " .. UHF_ARC159_readoutPilot:sub(4,6))) + ExportScript.Tools.SendData(60003, string.format("CH " .. UHF_ARC159_readoutPilot:sub(4,6))) + end + + + local UHF_ARC159_infoRio = ExportScript.Tools.split(list_indication(9), "%c")--this contains the formated table of the Rio radio + local UHF_ARC159_readoutRio = UHF_ARC159_infoRio[16] -- so far it has always been 10 in both channel and freq modes + local UHF_ARC159_FreqMode = string.format("%0.1f", mainPanelDevice:get_argument_value(2033)) + + if UHF_ARC159_FreqMode == "1.0" or UHF_ARC159_FreqMode == "0.5" then + ExportScript.Tools.SendData(60004, string.format("ARC-159\n" .. UHF_ARC159_readoutRio:sub(1,3) .. "." .. UHF_ARC159_readoutRio:sub(4,6))) + ExportScript.Tools.SendData(60005, string.format(UHF_ARC159_readoutRio:sub(1,3) .. "." .. UHF_ARC159_readoutRio:sub(4,6))) + elseif UHF_ARC159_FreqMode == "0.0" then + ExportScript.Tools.SendData(60004, string.format("ARC-159\n" .. "CH " .. UHF_ARC159_readoutRio:sub(4,6))) + ExportScript.Tools.SendData(60005, string.format("CH " .. UHF_ARC159_readoutRio:sub(4,6))) + end + + -----V/UHF ARC182----- + + --[[ + [353] = "%0.1f", -- VHF/UHF ARC-182 Freq Mode (UHF GUARD|V/UHF|V/UHF GUARD|PRESET|V/UHF|LOAD?) + 0.0 = UHF GUARD + 0.2 = V/UHF + 0.4 = V/UHF GUARD + 0.6 = PRESET + 0.8 = V/UHF + 1.0 = LOAD? + ]] + + local VHF_ARC182_infoBase = ExportScript.Tools.split(list_indication(12), "%c")--this contains the formated table of the base radio + local VHF_ARC182_readoutBase = VHF_ARC182_infoBase[10] -- so far it has always been 10 in both channel and freq modes + local VHF_ARC182_FreqMode = string.format("%0.1f", mainPanelDevice:get_argument_value(353)) + + if VHF_ARC182_FreqMode == "0.0" or VHF_ARC182_FreqMode == "0.2" then + ExportScript.Tools.SendData(60006, string.format("ARC-182\n" .. VHF_ARC182_readoutBase:sub(1,3) .. "." .. VHF_ARC182_readoutBase:sub(4,6))) + ExportScript.Tools.SendData(60007, string.format(VHF_ARC182_readoutBase:sub(1,3) .. "." .. VHF_ARC182_readoutBase:sub(4,6))) + elseif VHF_ARC182_FreqMode == "0.4" or VHF_ARC182_FreqMode == "0.8" then + ExportScript.Tools.SendData(60006, string.format("ARC-182\n" .. VHF_ARC182_readoutBase:sub(1,3) .. "." .. VHF_ARC182_readoutBase:sub(4,6))) + ExportScript.Tools.SendData(60007, string.format(VHF_ARC182_readoutBase:sub(1,3) .. "." .. VHF_ARC182_readoutBase:sub(4,6))) + elseif VHF_ARC182_FreqMode == "1.0" then + ExportScript.Tools.SendData(60006, string.format("ARC-182\n" .. VHF_ARC182_readoutBase:sub(1,3) .. "." .. VHF_ARC182_readoutBase:sub(4,6))) + ExportScript.Tools.SendData(60007, string.format(VHF_ARC182_readoutBase:sub(1,3) .. "." .. VHF_ARC182_readoutBase:sub(4,6))) + elseif VHF_ARC182_FreqMode == "0.6" then + ExportScript.Tools.SendData(60006, string.format("ARC-182\n" .. "CH " .. VHF_ARC182_readoutBase:sub(4,6))) + ExportScript.Tools.SendData(60007, string.format("CH " .. VHF_ARC182_readoutBase:sub(4,6))) + end + +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + -- every frame export to DAC +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + -- export in low tick interval to Ikarus +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + -- export in low tick interval to DAC +end --[[ + + + + + + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Custom functions █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + █ ExportScript.onff(switch) - Receives a binary and returns string OFF|ON + █ ExportScript.dualTapeString(leftTape, rightTape) - Receives two values (percent of tape) and returns a string tape display (e.g. RPM) + █ ExportScript.rotaryCounter(fp) - receives a fp like 0.1 and returns a string 1 (third charachter), handles negatives and 0 gracefully + █ ExportScript.drawStationStatusFlags(flagValue) - Draws Station Flags for Weapons on ACM A6a]] + +function ExportScript.dualTapeString(title, leftTape, rightTape) -- Creates a dual vertical bar tape for custom gauge + -- Receives title as string + -- Receives a value from 0.00 to 1.00 that represents a percentage from 0% to 100% of the tape, 0.25 is 1/4 up the tape etc.. + -- Returns a string that shows 2 tapes in a "somewhat" graphical format using extended ascii characters. + local a = 5 + local b = 0 + leftTape = tonumber(string.format("%.1f", (leftTape * 10) / 2 )) + rightTape = tonumber(string.format("%.1f", (rightTape * 10) / 2 )) + local buildDisplay = title .. "\n" + repeat + b = a - 0.5 + if leftTape >= a then buildDisplay = buildDisplay .. "█ " elseif leftTape >= b then buildDisplay = buildDisplay .. "▄ " else buildDisplay = buildDisplay .. "_ " end + if rightTape >= a then buildDisplay = buildDisplay .. "█" elseif rightTape >= (a - 0.5) then buildDisplay = buildDisplay .. "▄" else buildDisplay = buildDisplay .. "_" end + buildDisplay = buildDisplay .. "\n" + a = a - 1 + until( a < 1 ) + return buildDisplay +end + + +function ExportScript.onff(switch) -- Takes a binary 1(on) or 0(off) and returns string "ON" or "OFF" + if switch == 1 then returnString = "ON" elseif switch == 0 then returnString = "OFF" end + return returnString +end + + +function ExportScript.rotaryCounter(fp) -- Takes a value as floating point like 0.1324 and returns 1 as a string or 0.4 as 4 as a string (3'rd character including decimal) + local returnString + if fp == 1 or fp <= 0 then returnString = "0" else returnString = string.sub(string.format("%.1f", fp), 3, 3) end + return returnString +end + + +function ExportScript.drawStationStatusFlags(flagValue) -- Takes a 0/1/0.45 and draws nothing/white/checker flag and returns + local returnString + if flagValue > 0.5 then returnString = "█████\n▀▀▀▀▀\n\n." elseif flagValue > 0.4 then returnString = "▀▄▀▄▀\n▀ ▀ ▀\n\n." else returnString = "" end + return returnString +end +--[[ + + + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Custom Gauges functions █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀]] + +function ExportScript.ACMSlip(mainPanelDevice) -- Slip/Ball Gauge + local turn + local turnL + local turnR + local turnIndicator = mainPanelDevice:get_argument_value(6501) + local turnLString = "" + local turnRString = "" + local ball + local ballL + local ballR + local ballIndicator = mainPanelDevice:get_argument_value(6500) + local ballLString = "" + local ballRString = "" + local stringOutput = "" + if turnIndicator < 0 then -- negative 12 on left and right + if turnIndicator < -0.9 then turn = 9 else turn = tonumber(string.sub(turnIndicator, 4, 4)) end + turnL = 12 - turn + turnR = 12 + turn + repeat + turnLString = turnLString .. " " + turnL = turnL - 1 + until( turnL == 1) + repeat + turnRString = turnRString .. " " + turnR = turnR - 1 + until( turnR == 1) + stringOutput = stringOutput .. turnLString + stringOutput = stringOutput .. "█" + stringOutput = stringOutput .. turnRString + elseif turnIndicator > 0 then -- positive + if turnIndicator > 0.9 then turn = 9 else turn = tonumber(string.sub(turnIndicator, 3, 3)) end + turnL = 12 + turn + turnR = 12 - turn + repeat + turnLString = turnLString .. " " + turnL = turnL - 1 + until( turnL == 1) + repeat + turnRString = turnRString .. " " + turnR = turnR - 1 + until( turnR == 1) + stringOutput = stringOutput .. turnLString + stringOutput = stringOutput .. "█" + stringOutput = stringOutput .. turnRString + else + turn = 0 + stringOutput = " █ " + end + + stringOutput = stringOutput .. "\n ■ █ ■ \n" + + if ballIndicator < 0 then -- negative 12 on left and right + if ballIndicator < -0.9 then ball = 9 else ball = tonumber(string.sub(ballIndicator, 4, 4)) end + ballL = 12 - ball + ballR = 12 + ball + repeat + ballLString = ballLString .. " " + ballL = ballL - 1 + until( ballL == 1) + repeat + ballRString = ballRString .. " " + ballR = ballR - 1 + until( ballR == 1) + stringOutput = stringOutput .. ballLString + stringOutput = stringOutput .. "O" + stringOutput = stringOutput .. ballRString + elseif ballIndicator > 0 then -- positive + if ballIndicator > 0.9 then ball = 9 else ball = tonumber(string.sub(ballIndicator, 3, 3)) end + ballL = 12 + ball + ballR = 12 - ball + repeat + ballLString = ballLString .. " " + ballL = ballL - 1 + until( ballL == 1) + repeat + ballRString = ballRString .. " " + ballR = ballR - 1 + until( ballR == 1) + stringOutput = stringOutput .. ballLString + stringOutput = stringOutput .. "O" + stringOutput = stringOutput .. ballRString + else + ball = 0 + stringOutput = " O " + end + ExportScript.Tools.SendData(56501, stringOutput) +end + + +function ExportScript.ACMTriple(mainPanelDevice) -- Triple indicator lights for ACM (Seam/Collision/Hot Trig) + local stringOutput = "" + if mainPanelDevice:get_argument_value(9203) == 1 then stringOutput = stringOutput .. "\n\n" else stringOutput = stringOutput .. "██████████\n\n" end + if mainPanelDevice:get_argument_value(9202) == 1 then stringOutput = stringOutput .. "\n\n\n" else stringOutput = stringOutput .. "▄▄▄▄▄▄▄▄▄▄\n▀▀▀▀▀▀▀▀▀▀\n\n" end + if mainPanelDevice:get_argument_value(9201) == 1 then stringOutput = stringOutput .. "." else stringOutput = stringOutput .. "██████████" end + ExportScript.Tools.SendData(59201, stringOutput) +end + + +function ExportScript.masterArmSwitch(mainPanelDevice) -- Output Master Arm Position + if mainPanelDevice:get_argument_value(1047) == -1 then stringOutput = " ███\n |\n |\n\n ." + elseif mainPanelDevice:get_argument_value(1047) == 0 then stringOutput = " |\n ███\n |\n\n ." + else stringOutput = " |\n |\n ███\n\n ." + end + ExportScript.Tools.SendData(51047, stringOutput) +end + + +function ExportScript.ACMButtons(mainPanelDevice) -- Monitors two lights on diff. id's and outputs 1 or 0 to one id for (gun rate/SW cool/MSL prep/Mode stp) + if mainPanelDevice:get_argument_value(9204) == 1 then ExportScript.Tools.SendData(59204, 1) else ExportScript.Tools.SendData(59204, 0) end -- gun rate light + if mainPanelDevice:get_argument_value(9206) == 1 then ExportScript.Tools.SendData(59206, 1) else ExportScript.Tools.SendData(59206, 0) end -- sw cool light + if mainPanelDevice:get_argument_value(9208) == 1 then ExportScript.Tools.SendData(59208, 1) else ExportScript.Tools.SendData(59208, 0) end -- msl prep light + if mainPanelDevice:get_argument_value(9210) == 1 then ExportScript.Tools.SendData(59210, 1) else ExportScript.Tools.SendData(59210, 0) end -- msl mode stp light +end + + +function ExportScript.stationStatusFlags(mainPanelDevice) -- Display Station status flags 1 to 8 on ACM panel + local b + local a = 9221 + repeat + b = "5" .. a + ExportScript.Tools.SendData(b, ExportScript.drawStationStatusFlags(mainPanelDevice:get_argument_value(a))) + a = a + 1 + until( a > 9228) +end + + +function ExportScript.gunCounter(mainPanelDevice) -- Gun Counter + local gunCounter = ExportScript.rotaryCounter(mainPanelDevice:get_argument_value(4060)) .. ExportScript.rotaryCounter(mainPanelDevice:get_argument_value(4061)) .. ExportScript.rotaryCounter(mainPanelDevice:get_argument_value(4062)) + ExportScript.Tools.SendData(54060, "ROUNDS\n" .. gunCounter) +end + + +function ExportScript.EIG(mainPanelDevice) -- Electronic Instrument Group EIG + local EIGrpm = ExportScript.dualTapeString("RPM % x10", mainPanelDevice:get_argument_value(1057), mainPanelDevice:get_argument_value(1058)) + local EIGegt = ExportScript.dualTapeString("TIT C x100", mainPanelDevice:get_argument_value(1059), mainPanelDevice:get_argument_value(1060)) + local EIGff = ExportScript.dualTapeString("FF PPH x1000", mainPanelDevice:get_argument_value(1061), mainPanelDevice:get_argument_value(1062)) + ExportScript.Tools.SendData(51057, EIGrpm) -- Engine RPM + ExportScript.Tools.SendData(51059, EIGegt) -- Engine TIT (Exhaust Gas Temp) + ExportScript.Tools.SendData(51061, EIGff) -- Engine Fuel Flow +end + + +function ExportScript.engOilPressure(mainPanelDevice) + local rOilPress = mainPanelDevice:get_argument_value(1065) * 90 -- Right Engine Oil Pressure + local lOilPress = mainPanelDevice:get_argument_value(1066) * 90 -- Left Engine Oil Pressure + ExportScript.Tools.SendData(51065, "L " .. string.format("%d", lOilPress) .. " psi\nEng. Oil\n" .. "R " .. string.format("%d", rOilPress) .. " psi") +end + + +function ExportScript.engNozzle(mainPanelDevice) -- Engine Nozzle position gauge (tape) ------------------------------------------------ + local lNoz = tonumber(string.format("%.1f", mainPanelDevice:get_argument_value(1068) * 5)) + local rNoz = tonumber(string.format("%.1f", mainPanelDevice:get_argument_value(1067) * 5)) + local a = 5 + local b = 0 + local buildDisplay = "Exh. Nozz.\n" + repeat + b = a - 0.5 + buildDisplay = buildDisplay .. (a - 1) + if lNoz >= a then buildDisplay = buildDisplay .. " █ " elseif lNoz >= b then buildDisplay = buildDisplay .. " ▄ " else buildDisplay = buildDisplay .. " _ " end + if rNoz >= a then buildDisplay = buildDisplay .. "█" elseif rNoz >= (a - 0.5) then buildDisplay = buildDisplay .. "▄" else buildDisplay = buildDisplay .. "_" end + buildDisplay = buildDisplay .. "\n" + a = a - 1 + until( a < 1 ) + ExportScript.Tools.SendData(51068, buildDisplay) +end + + +function ExportScript.hydPressGauge(mainPanelDevice) -- Hydraulic pressure indicator A3 ------------------------------------------------ + local hydComb = string.format("%d", (mainPanelDevice:get_argument_value(1063) * 4000)) + local hydFlt = string.format("%d", (mainPanelDevice:get_argument_value(1064) * 4000)) + local spoilFlag = ExportScript.onff(mainPanelDevice:get_argument_value(1023)) + local hiFlag = ExportScript.onff(mainPanelDevice:get_argument_value(1024)) + local lowFlag = ExportScript.onff(mainPanelDevice:get_argument_value(1025)) + local hydPressGauge = "HYD PRESS\n" .. "C. " .. hydComb .. " psi\nF. " .. hydFlt .. " psi\n\n" .. spoilFlag .. "|" .. hiFlag .. "|" .. lowFlag + ExportScript.Tools.SendData(51063, hydPressGauge) + local hydPressFlags = "HYD PR. psi\nComb | Flight\n" .. hydComb .. " | " .. hydFlt .. "\n Spo / HI / LW\n" .. spoilFlag .. " | " .. hiFlag .. " | " .. lowFlag + ExportScript.Tools.SendData(51023, hydPressFlags) +end + + +function ExportScript.clockAndTimer(mainPanelDevice) -- Clock and timer on panel A9 ---------------------------------------------------- + local minutes = string.format("%d", mainPanelDevice:get_argument_value(1097) * 60) + if string.len(minutes) < 2 then + minutes = "0" .. minutes + end + local timerMinutes = string.format("%d", mainPanelDevice:get_argument_value(2000) * 60) + local timerSeconds = string.format("%d", mainPanelDevice:get_argument_value(1098) * 60) + local clockNTimer = "Clock\n" .. string.format("%d", mainPanelDevice:get_argument_value(1096) * 12) .. string.char(32) .. minutes .. "\nTimer\n" .. timerMinutes .. "m " .. timerSeconds .. "s" + ExportScript.Tools.SendData(51096, clockNTimer) +end + + +function ExportScript.displayAccel(mainPanelDevice) -- Accelerometer gauge formatted --------------------------------------------------- + -- Accelerometer Gauge A9 + local needle = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(110)) + local needlePos = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(15076)) + local needleNeg = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(15077)) + accelGauge = "Accel.G\n+" .. string.format("%.1f", needlePos) .. " G\n-| " .. string.format("%.1f", needle) .. " G |-\n" .. string.format("%.1f", needleNeg) .. " G" + ExportScript.Tools.SendData(50110, accelGauge) +end + +function ExportScript.displayAccelCheckValue(accelValue) -- Called from ExportScript.displayAccel() ------------------------------------ + if accelValue >= 0 then + return accelValue * 10 + elseif accelValue < 0 then + return accelValue * 5 + end +end + + +function ExportScript.displayFuel(mainPanelDevice) -- Fuel Gauges and output on A9 and B7 ---------------------------------------------- +--[[FUEL Exports Formatted + + NOTE: In case you are wondering to the weird methodology used below to derive fuel totals, I'll try to explain. + A combination of how the f-14 module is using this fuel data (e.g. 0.9 might mean 900 lbs, 0.0 would mean 000 lbs and 1.0 would mean 000 lbs + also which effects the total if you use math to add them all together, so we can't use a simple method) + Essentially DCS gives you the fuel dial position rather than the actual fuel available. Although this sounds like the same value, it is not. + And also playing into this is the non-existance of certain math functions in lua language like concatenation or rounding. You need to convert + to string and back which is slow + + Because of this (not fully explained) it will create strange output for the total fuel when it rolls between whole values e.g. 15000 to 14900. + So instead we convert them to strings right away and extract the portion of the string (3'rd charachter) that is always correct + (e.g. 1.0 is always 0 and 0.0 is also 0 and 0.4 is 4 etc...) + + we then take the 10k, 1k, 100's etc.. 3'rd charachter and combine them like 15000 + There is still a strange behaviour at first site that is exhibited, that is not so strange once explained: + When rolling over from 15000 to 14900, it will show 15000, then 15900 for a second or two, and then 14900. The reason is that the hundreds dial + on the f-14 rolls quicker than the thousands dial therefore getting updated first instead of at the same time. + the above strange behaviour cannot be corrected unless there is a variable that stores the total fuel value instead of the fuel cockpit dial + value which are two different things. (In my experience most dcs mods only give you access to the latter) + Therefore, we first concatenate the number to 0.X by converting it to a string and formatting it as such, and then extract the 3'rd character + (I get it, nasty work around, If you have a better solution I'd love to hear it.) + +]] + local aftAndL = string.format("%d", mainPanelDevice:get_argument_value(1054) * 7000) + local fwdAndR = string.format("%d", mainPanelDevice:get_argument_value(1055) * 7000) + local RIOFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2117)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2118)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2119)), 3, 3) .. "00" + local leftFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6000)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6001)), 3, 3) .. "00" + local rightFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6004)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6005)), 3, 3) .. "00" + local totalFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6010)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6011)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6012)), 3, 3) .. "00" + local bingoFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6020)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6021)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6022)), 3, 3) .. "00" + + ExportScript.Tools.SendData(51054, "AFT & L\n" .. aftAndL .. "\nLBS") + ExportScript.Tools.SendData(51055, "FWD & R\n" .. fwdAndR .. "\nLBS") + ExportScript.Tools.SendData(52117, "TOTAL\nFUEL QTY\n" .. RIOFuel .. "\nLBS") -- Return Total RIO Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56000, "L\n" .. leftFuel) -- Return Total Left Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56004, "R\n" .. rightFuel) -- Return Total Right Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56010, "FUEL\n" .. totalFuel .. "\nQTY") -- Return Total Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56020, "BINGO\n" .. bingoFuel) -- Return Total Bingo Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56024, "BINGO " .. bingoFuel .. "\nTOTAL " .. totalFuel .. "\n" .. aftAndL .. " | " .. fwdAndR .. "\n L | R \n" .. leftFuel .. " | " .. rightFuel) -- Nice Multi Gauge +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-15C.lua b/Scripts/DCS-ExportScript/ExportsModules/F-15C.lua index 61f52b0e..5ccb6ac9 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/F-15C.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/F-15C.lua @@ -652,7 +652,7 @@ function ExportScript.AF.StatusLamp(FunctionTyp) ExportScript.Tools.SendData(722, lMCPState.HydraulicsFailure == true and 1 or 0 ) ExportScript.Tools.SendData(723, lMCPState.AutopilotFailure == true and 1 or 0 ) ExportScript.Tools.SendData(724, lMCPState.FuelTankDamage == true and 1 or 0 ) - --ExportScript.Tools.SendData(725, lMCPState.CanopyOpen == true and 1 or 0 ) + ExportScript.Tools.SendData(725, lMCPState.CanopyOpen == true and 1 or 0 ) ExportScript.Tools.SendData(726, lMCPState.StallSignalization == true and 1 or 0 ) ExportScript.Tools.SendData(727, lMCPState.AutopilotOn == true and 1 or 0 ) @@ -695,7 +695,7 @@ function ExportScript.AF.StatusLamp(FunctionTyp) ExportScript.Tools.SendDataDAC("722", lMCPState.HydraulicsFailure == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("723", lMCPState.AutopilotFailure == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("724", lMCPState.FuelTankDamage == true and 1 or 0 ) - --ExportScript.Tools.SendDataDAC("725", lMCPState.CanopyOpen == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("725", lMCPState.CanopyOpen == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("726", lMCPState.StallSignalization == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-15ESE.lua b/Scripts/DCS-ExportScript/ExportsModules/F-15ESE.lua new file mode 100644 index 00000000..3f145ee3 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-15ESE.lua @@ -0,0 +1,1488 @@ +-- F-15E Export 25 July 2023 +-- IF YOU ARE USING NORSK-L's STREAMDECK PROFILE THEN YOU MUST SET THE FOLLOWING LINE to "TRUE" +Norsk_UFC = "FALSE" -- "TRUE" or "FALSE" + +-- version 0.82 +-- aded SpeedBrake % display to ID 6579 by user request + +-- version 0.81 +-- removed duplicate guage (383) found by a user. + +-- version 0.8 +-- Altered TOLTAL LBS label to TOTAL on 7368 (user request) +-- Add Oxygen PSI output, with label to 6554 (user request) +-- Added Basic Aircraft Data Function and added Current Magnetic Heading Readout to 6015 (user request) +-- Investigated HUD Data VVI (6009) as reported not working by user - no issue found? +-- Updated UFC data exports because of changes in patch 2.8.7.42583 + +-- To Do List: + +-- Fix any issues with HUD data (yes I'm pretty sure there will be some) and expand it if possible +-- Check all argument values and convert to 1d or .1f where possible, only leaving .2f and .3f if actually needed +-- Create option to turn field labels on/off maybe? +-------------------------------------------------------------------------------------------------------------- +-- version 0.7a +-- quick fix for the UFC crashes on GC align or when selecting the PP-EGI option - the F15 sends a really dodgy character that is being sent by the sim which is ok unless its in a modified string with escape characters... +-- then the export script dies a death and kills the streamdeck integration code as well + +-- version 0.7 +-- Had a good neaten up of all the argument values - no IDs have changed on these and no formats (so if it was .2f before it is still .2f now) +-- But I do want to redo these before this gets finalised so if decimal places are not needed then they do not get exported +-- Implemented the first round of HUD data display. You can call a single element or get blocks of data: + -- 0 - Combined Speed & Alt 6001 + -- Speed - the speed as diaplyed in HUD 6002 + -- AoA - value diaplyed in HUD 6003 + -- Mach - as in HUD 6005 + -- GMet - The G readout, which I guess is current G and Max G? 6006 + -- HDG - This is the heading caret on teh tape 6007 + -- Alt - The altitude as diaplyed in the HUD (BARO only I think) 6008 + -- VVI - The VVI, with spaces removed 6009 + -- AA - I think this data is the weapon selected in AA mode? No ID Set + -- UPLEFT - Speed and AoA from the left side 6011 + -- LOLEFT - Fields from the bottom left, so G AA weapon, mach and G meter 6012 + -- UPRIGHT - Alt and VVI from the right side 6013 + -- LORIGHT - Nearly the same as NAV but without the very bottom row of digits...what are they anyway? +-- Included a radio export as it's not easy to see the frequency when using presets. This draws data from the core sim to supplement the UFC info, separate items or a combined view available 6501 & 6504 + +-- version 0.6a typo corrected! +-- version 0.6 +-- Fixed Left/Right Fuel Counters reading an extra 1000 lbs when < 100 lbs from next thousand - needed new function RoundDP() +-- Setup Export IDs for each data elements of the Fuel Display - THIS MEANS THE COMBINED DISPLAY HAS CHANGED DCSID from 8383 to 83830 +-- Setup Export IDs for each of the data elements of the Engine Management Display +-- Moved UFC Display to Functions and re-formated strings to fit better in single tile (!!!!!!!!NEEDS LOTS OF TESTING!!!!!!! and some documentation! + +-- version 0.5c (Norsk-L) +-- Fixed intermitent UFC hangs when : character is present in string + +-- version 0.5b (Norsk-L) +-- This version maintains full UFC campatability with Norsk-L's excellent StreamDeck PROFILE + +-- version 0.5 +-- Re-formatted some stuff for readability, more to be done... +-- Added a combined EMD to 81100 - use a font size of 6 or 7 centered to display. This function can also be used to extract each EMD element seperately (see notes in function section) +-- Added a combined Fuel guage to 8383 - use a font size of 6 or 7 centered to display. This function can also be used to extract each element seperately (see notes in function) +-- Added a simple Fuel Totalizer Readout to 8368 to fulfil a user request + +-- version 0.4 +-- Added WSO UFC Display, Changed A Few Control Knobs To 3 Decimal Places +-- NOTE: THIS VERSION FOLLOWS MY FORMAT FOR UFC OUTPUT AND IS NOT COMPATIBLE WITH NORSK-L'S PROFILE AS THEY TOOK A DIFFERENT NUMBER STRATGEY +-- I WILL CREATE A VERSION THAT IS FULLY COMPATIBLE FOR THE NEXT RELEASE + +-- version 0.3b +-- Fixed My Silly Right Hand UFC Mistake + +-- version 0.3 +-- Added Basic UFC Display + +-- version 0.2 +-- Added Indicator Lights +-- Corrected Aircraft Name + +-- F-15E Export 28 June 2023 +-- version 0.6a (Norsk-L) +-- Fixed Left/Right Fuel Counters reading an extra 1000 ibs when < 100 lbs from next thousand - needed new function RoundDP() +-- Setup Export IDs for each data elements of the Fuel Display - THIS MEANS THE COMBINED DISPLAY HAS CHANGED DCSID from 8383 to 83830 +-- Setup Export IDs for each of the data elements of the Engine Management Display +-- Moved UFC Display Fields to Functions and re-formated strings to fit better in single tile (!!!!!!!!NEEDS LOTS OF TESTING!!!!!!!) + +-- version 0.5c (Norsk-L) +-- Fixed intermitent UFC hangs when : character is present in string + +-- version 0.5b (Norsk-L) +-- This version maintains full UFC campatability with Norsk-L's excellent StreamDeck PROFILE +-- Added a combined EMD to 81100 - use a font size of 6 or 7 centered to display. This function can also be used to extract each EMD element seperately (see notes in function section) +-- Added a combined Fuel guage to 8383 - use a font size of 6 or 7 centered to display. This function can also be used to extract each element seperately (see notes in function) +-- Added a simple Fuel Totalizer Readout to 8368 to fulfil a user request +-------------------------------------------------------------------------------------------------------------- +ExportScript.FoundDCSModule = true +ExportScript.Version.F15ESE= "1.2.1" +ExportScript.ConfigEveryFrameArguments = -- arguments for export every frame (usually indicators/lights/etc) + { + ------------------------------------------------------------------- + -- PILOT COCKPIT + ------------------------------------------------------------------- + -- Altimeter Gauge + [353] = "%.2f", -- PILOT Altimeter 100 ft count + [354] = "%.2f", -- PILOT Altimeter 1000 ft count + [355] = "%.2f", -- PILOT Altimeter 10000 ft count + [352] = "%.2f", -- PILOT Altimeter Needle + [356] = "%.2f", -- PILOT Altimeter Pressure Drum 0 + [357] = "%.2f", -- PILOT Altimeter Pressure Drum 1 + [358] = "%.2f", -- PILOT Altimeter Pressure Drum 2 + [359] = "%.2f", -- PILOT Altimeter Pressure Drum 3 + -- AMAD Panel Lights + [130] = "%.2f", -- PILOT AMAD Fire Light (red) + [133] = "%.2f", -- PILOT AMAD Left Engine Burn Throu Light (red) + [131] = "%.2f", -- PILOT AMAD Left Engine Fire Light (red) + [134] = "%.2f", -- PILOT AMAD Right Engine Burn Throu Light (red) + [132] = "%.2f", -- PILOT AMAD Right Engine Fire Light (red) + -- Attitute Gauge + [351] = "%.2f", -- PILOT SAI Aircraft Reference Symbol + [348] = "%.2f", -- PILOT SAI Bank + [347] = "%.2f", -- PILOT SAI Off Flag + [349] = "%.2f", -- PILOT SAI Pitch + -- Canopy Lights/Gauges + [186] = "%.2f", -- PILOT Canopy Lamp Position + [196] = "%.2f", -- PILOT LOCK / SHOOT Lights (yellow) + [195] = "%.2f", -- PILOT LOCK / SHOOT Lights Brightness (yellow) + [197] = "%.2f", -- PILOT Refuel Ready Light (green) + -- CAS Lights + [458] = "%.2f", -- PILOT CAS Trim Light (green) + -- Caution and IndicatorLights + [404] = "%.2f", -- PILOT AI Light (red) + [410] = "%.2f", -- PILOT Auto Pilot Light (yellow) + [408] = "%.2f", -- PILOT CAN UNLCKD Light (red) + [403] = "%.2f", -- PILOT EMIS LMT Light (yellow) + [409] = "%.2f", -- PILOT LASER ARMED Light (red) + [406] = "%.2f", -- PILOT LOW ALT Light (red) + [402] = "%.2f", -- PILOT MASTER CAUTION Light (yellow) + [429] = "%.2f", -- PILOT OBST Light (red) + [405] = "%.2f", -- PILOT SAM Light (red) + [407] = "%.2f", -- PILOT TF FAIL Light (red) + -- Engine Monitor Display + [1114] = "%.2f", -- PILOT EMD Left Fuel Flow 1 + [1115] = "%.2f", -- PILOT EMD Left Fuel Flow 10 + [1116] = "%.2f", -- PILOT EMD Left Fuel Flow 100 + [1117] = "%.2f", -- PILOT EMD Left Fuel Flow 1000 + [1118] = "%.2f", -- PILOT EMD Left Fuel Flow 10000 + [1130] = "%.2f", -- PILOT EMD Left Nozzle Posistion + [1124] = "%.2f", -- PILOT EMD Left Oli Pressure 1 + [1125] = "%.2f", -- PILOT EMD Left Oli Pressure 10 + [1126] = "%.2f", -- PILOT EMD Left Oli Pressure 100 + [1100] = "%.2f", -- PILOT EMD Left RPM 1 + [1101] = "%.2f", -- PILOT EMD Left RPM 10 + [1102] = "%.2f", -- PILOT EMD Left RPM 100 + [1106] = "%.2f", -- PILOT EMD Left Temperature 1 + [1107] = "%.2f", -- PILOT EMD Left Temperature 10 + [1108] = "%.2f", -- PILOT EMD Left Temperature 100 + [1109] = "%.2f", -- PILOT EMD Left Temperature 1000 + [1119] = "%.2f", -- PILOT EMD Right Fuel Flow 1 + [1120] = "%.2f", -- PILOT EMD Right Fuel Flow 10 + [1121] = "%.2f", -- PILOT EMD Right Fuel Flow 100 + [1122] = "%.2f", -- PILOT EMD Right Fuel Flow 1000 + [1123] = "%.2f", -- PILOT EMD Right Fuel Flow 10000 + [1131] = "%.2f", -- PILOT EMD Right Nozzle Posistion + [1127] = "%.2f", -- PILOT EMD Right Oli Pressure 1 + [1128] = "%.2f", -- PILOT EMD Right Oli Pressure 10 + [1129] = "%.2f", -- PILOT EMD Right Oli Pressure 100 + [1103] = "%.2f", -- PILOT EMD Right RPM 1 + [1104] = "%.2f", -- PILOT EMD Right RPM 10 + [1105] = "%.2f", -- PILOT EMD Right RPM 100 + [1110] = "%.2f", -- PILOT EMD Right Temperature 1 + [1111] = "%.2f", -- PILOT EMD Right Temperature 10 + [1112] = "%.2f", -- PILOT EMD Right Temperature 100 + [1113] = "%.2f", -- PILOT EMD Right Temperature 1000 + [1132] = "%.2f", -- PILOT Engine Monitor Display ON + -- Flight Instruments Lights/Gauges + [434] = "%.2f", -- PILOT Airvent Position Horizontal + [433] = "%.2f", -- PILOT Airvent Position Vertical + [346] = "%.2f", -- PILOT Angle of Attack Indicator + [361] = "%.2f", -- PILOT Cabin Pressure Indicator + [365] = "%.2f", -- PILOT Clock Hours + [364] = "%.2f", -- PILOT Clock Minutes + [363] = "%.2f", -- PILOT Clock Seconds + [755] = "%.2f", -- PILOT Compassrose Bank + [753] = "%.2f", -- PILOT Compassrose N-S + [754] = "%.2f", -- PILOT Compassrose Up/Down + [60] = "%.2f", -- PILOT DTM Cartridge + [63] = "%.2f", -- PILOT DTM Cartridge Pos + [1013] = "%.2f", -- PILOT Lightfilter + [389] = "%.2f", -- PILOT PC 1 Hydraulic Pressure Gauge + [390] = "%.2f", -- PILOT PC 2 Hydraulic Pressure Gauge + [334] = "%.2f", -- PILOT Pitch Ratio Gauge + [345] = "%.2f", -- PILOT Standby Airspeed Indicator + [388] = "%.2f", -- PILOT Utility Hydraulic Pressure Gauge + [362] = "%.2f", -- PILOT Vertical Velocity Indicator + [339] = "%.2f", -- PILOT FLAP Light (green) + [338] = "%.2f", -- PILOT FLAP Light (yellow) + -- Fuel Gauges + [383] = "%.2f", -- PILOT Fuel Needle + [382] = "%.2f", -- PILOT Fuel OFF Flag + [370] = "%.2f", -- PILOT Fuel Totalizer Counter 100 + [368] = "%.2f", -- PILOT Fuel Totalizer Counter 10K + [369] = "%.2f", -- PILOT Fuel Totalizer Counter 1K + [374] = "%.2f", -- PILOT Left Fuel Counter 100 + [373] = "%.2f", -- PILOT Left Fuel Counter 1K + [378] = "%.2f", -- PILOT Right Fuel Counter 100 + [377] = "%.2f", -- PILOT Right Fuel Counter 1K + -- Generators Lights + [596] = "%.2f", -- PILOT Starter Ready Light (green) + -- HUD Control Panel Lights + [326] = "%.2f", -- PILOT HUD Master Mode AA Light (white) + [327] = "%.2f", -- PILOT HUD Master Mode AG Light (white) + [329] = "%.2f", -- PILOT HUD Master Mode INST Light (white) + [328] = "%.2f", -- PILOT HUD Master Mode NAV Light (white) + -- IFF Lights + [541] = "%.2f", -- PILOT IFF REPLY Light (white) + -- Internal Lights + [185] = "%.2f", -- PILOT Canopy Lamp (green) + [184] = "%.2f", -- PILOT Compass Light (white) + [180] = "%.2f", -- PILOT Flood Light (green) + [181] = "%.2f", -- PILOT Indicator Lights (multi) + [182] = "%.2f", -- PILOT Instrument Light (white) + [183] = "%.2f", -- PILOT Panel Light (white) + [179] = "%.2f", -- PILOT PILOT Panel Backlight (white) + [178] = "%.2f", -- PILOT UFC Backlight (red) + -- Landing Gear Panel Lights + [333] = "%.2f", -- PILOT Langing Gear Handle Light (red) + [331] = "%.2f", -- PILOT Langing Gear LEFT Light (green) + [331] = "%.2f", -- PILOT Langing Gear LEFT Light (red) + [330] = "%.2f", -- PILOT Langing Gear NOSE Light (green) + [330] = "%.2f", -- PILOT Langing Gear NOSE Light (red) + [332] = "%.2f", -- PILOT Langing Gear RIGHT Light (green) + [332] = "%.2f", -- PILOT Langing Gear RIGHT Light (red) + -- Main Caution Lights Panel + [432] = "%.2f", -- PILOT 4x SPARE Lights (white) + [424] = "%.2f", -- PILOT AV BIT Light (white) + [416] = "%.2f", -- PILOT BST SYS MAL Light (white) + [413] = "%.2f", -- PILOT CHAFF Light (white) + [425] = "%.2f", -- PILOT DSPFLOLO Light (white) + [415] = "%.2f", -- PILOT EMER BST ON Light (white) + [421] = "%.2f", -- PILOT ENGINE Light (white) + [414] = "%.2f", -- PILOT FLARE Light (white) + [422] = "%.2f", -- PILOT FLT CONTR Light (white) + [418] = "%.2f", -- PILOT FUEL LOW Light (yellow) + [423] = "%.2f", -- PILOT HYD Light (white) + [419] = "%.2f", -- PILOT L GEN Light (yellow) + [412] = "%.2f", -- PILOT MINIMUM Light (white) + [417] = "%.2f", -- PILOT NUCLEAR Light (white) + [426] = "%.2f", -- PILOT OXYGEN Light (white) + [411] = "%.2f", -- PILOT PROGRAM Light (green) + [420] = "%.2f", -- PILOT R GEN Light (white) + -- Oxygen Control Panel Lights/Gauges + [555] = "%.2f", -- PILOT Oxygen FLOW Indicator + [554] = "%.2f", -- PILOT Oxygen Pressure Needle + [555] = "%.2f", -- PILOT Oxygen FLOW Indicator as Light (white) + ------------------------------------------------------------------- + -- WSO COCKPIT + ------------------------------------------------------------------- + -- Altimeter Gauge + [1357] = "%.2f", -- WSO Altimeter 100 ft count + [1358] = "%.2f", -- WSO Altimeter 1000 ft count + [1359] = "%.2f", -- WSO Altimeter 10000 ft count + [1357] = "%.2f", -- WSO Altimeter Needle + [1360] = "%.2f", -- WSO Altimeter Pressure Drum 0 + [1361] = "%.2f", -- WSO Altimeter Pressure Drum 1 + [1362] = "%.2f", -- WSO Altimeter Pressure Drum 2 + [1363] = "%.2f", -- WSO Altimeter Pressure Drum 3 + -- Attitute Gauge + [1355] = "%.2f", -- WSO SAI Aircraft Reference Symbol + [1352] = "%.2f", -- WSO SAI Bank + [1351] = "%.2f", -- WSO SAI Off Flag + [1353] = "%.2f", -- WSO SAI Pitch + -- Canopy Lights/Gauges + [188] = "%.2f", -- WSO Canopy Lamp Position + -- Flight Instruments Gauges + [1388] = "%.2f", -- WSO Airvent Position Horizontal + [1387] = "%.2f", -- WSO Airvent Position Vertical + [1349] = "%.2f", -- WSO Cabin Pressure Indicator + [1381] = "%.2f", -- WSO Clock Hours + [1380] = "%.2f", -- WSO Clock Minutes + [1379] = "%.2f", -- WSO Clock Seconds + [1014] = "%.2f", -- WSO Lightfilter + [1350] = "%.2f", -- WSO Standby Airspeed Indicator + [1365] = "%.2f", -- WSO Vertical Velocity Indicator + -- Flight Instruments Lights + [1344] = "%.2f", -- WSO FLAP Light (green) + [1343] = "%.2f", -- WSO FLAP Light (yellow) + [1333] = "%.2f", -- WSO HUD Master Mode AA Light (white) + [1334] = "%.2f", -- WSO HUD Master Mode AG Light (white) + [1336] = "%.2f", -- WSO HUD Master Mode INST Light (white) + [1335] = "%.2f", -- WSO HUD Master Mode NAV Light (white) + [1338] = "%.2f", -- WSO Langing Gear LEFT Light (green) + [1337] = "%.2f", -- WSO Langing Gear NOSE Light (green) + [1339] = "%.2f", -- WSO Langing Gear RIGHT Light (green) + [1340] = "%.2f", -- WSO Langing Gear UNSAFE Light (yellow) + -- Fuel Gauges + [1372] = "%.2f", -- WSO Fuel Needle + [1376] = "%.2f", -- WSO Fuel Totalizer Counter 100 + [1374] = "%.2f", -- WSO Fuel Totalizer Counter 10K + [1375] = "%.2f", -- WSO Fuel Totalizer Counter 1K + -- Internal Lights + [187] = "%.2f", -- WSO Canopy Lamp (green) + [191] = "%.2f", -- WSO Flood Lights (green) + [192] = "%.2f", -- WSO Indicator Lights (multi) + [193] = "%.2f", -- WSO Instrument Lights (white) + [194] = "%.2f", -- WSO Panel Lights (white) + [189] = "%.2f", -- WSO UFC Backlight (red) + [190] = "%.2f", -- WSO UFC Panel Lights (white) + -- Main Caution Lights Panel + [1184] = "%.2f", -- WSO A/P Light (green) + [1188] = "%.2f", -- WSO AI Light (red) + [1182] = "%.2f", -- WSO AV BIT Light (yellow) + [1173] = "%.2f", -- WSO CANOPY UNLOCKED Light (red) + [1197] = "%.2f", -- WSO CHAFF Light (yellow) + [1187] = "%.2f", -- WSO DISPLAY FLOW LOW Light (yellow) + [1193] = "%.2f", -- WSO EMIS LMT Light (yellow) + [1171] = "%.2f", -- WSO ENG FIRE LEFT Light (red) + [1172] = "%.2f", -- WSO ENG FIRE RIGHT Light (red) + [1179] = "%.2f", -- WSO ENGINE Light (yellow) + [1198] = "%.2f", -- WSO FLARE Light (yellow) + [1181] = "%.2f", -- WSO FLT CONTROL Light (yellow) + [1194] = "%.2f", -- WSO FUEL LOW Light (yellow) + [1180] = "%.2f", -- WSO HYD Light (yellow) + [1191] = "%.2f", -- WSO L GEN Light (yellow) + [1174] = "%.2f", -- WSO LOW ALT Light (red) + [1183] = "%.2f", -- WSO MASTER ARM Light (green) + [1177] = "%.2f", -- WSO MASTER CAUTION Light (yellow) + [1186] = "%.2f", -- WSO MINIMUM Light (yellow) + [1195] = "%.2f", -- WSO NUCLEAR Light (yellow) + [1190] = "%.2f", -- WSO OBST Light (red) + [1199] = "%.2f", -- WSO OXYGEN Light (yellow) + [1185] = "%.2f", -- WSO PROGRAM Light (green) + [1192] = "%.2f", -- WSO R GEN Light (yellow) + [1189] = "%.2f", -- WSO SAM Light (red) + [1178] = "%.2f", -- WSO TF FAIL Light (red) + [1196] = "%.2f", -- WSO UNARMED NO ATF Light (yellow) + -- Oxygen Control Panel Lights/Gauges + [1454] = "%.2f", -- WSO Oxygen FLOW Indicator + [1453] = "%.2f", -- WSO Oxygen Pressure Needle + [1454] = "%.2f", -- WSO Oxygen FLOW Indicator as Light (white) + -- TEWS Control Panel Lights + [1472] = "%.2f", -- WSO TEWS 3x FAIL Lights (white) + ------------------------------------------------------------------- + -- OTHER COCKPIT + ------------------------------------------------------------------- + -- Canopy Gauges + [38] = "%.2f", -- Canopy Position + } +ExportScript.ConfigArguments = -- arguments for export in low tick interval based on "clickabledata.lua" + { + ------------------------------------------------------------------- + -- PILOT COCKPIT + ------------------------------------------------------------------- + -- Air Condition + [562] = "%.1f", -- PILOT Air Condition Auto/Manual/Off ( DEVICE_ID: 26 DCS_ID: 3562) + [564] = "%.3f", -- PILOT Air Condition Cold/Hot ( DEVICE_ID: 26 DCS_ID: 3564) -- EDITED + [563] = "%.1f", -- PILOT Air Condition Max/Norm/Min ( DEVICE_ID: 26 DCS_ID: 3563) + [565] = "%.3f", -- PILOT Air Conditioning Source ( DEVICE_ID: 26 DCS_ID: 3565) -- EDITED + -- AMAD Panel + [314] = "%.1f", -- PILOT AMAD Fire Extinguisher Switch ( DEVICE_ID: 15 DCS_ID: 3314) + [316] = "%.1f", -- PILOT AMAD Fire Switch ( DEVICE_ID: 15 DCS_ID: 3316) + [315] = "%.1f", -- PILOT AMAD Fire Switch Cover ( DEVICE_ID: 15 DCS_ID: 3315) + [318] = "%.1f", -- PILOT AMAD Left Engine Fire Switch ( DEVICE_ID: 15 DCS_ID: 3318) + [317] = "%.1f", -- PILOT AMAD Left Engine Fire Switch Cover ( DEVICE_ID: 15 DCS_ID: 3317) + [320] = "%.1f", -- PILOT AMAD Right Engine Fire Switch ( DEVICE_ID: 15 DCS_ID: 3320) + [319] = "%.1f", -- PILOT AMAD Right Engine Fire Switch Cover ( DEVICE_ID: 15 DCS_ID: 3319) + -- Anti Ice + [561] = "%.1f", -- PILOT Engine Heat Switch ( DEVICE_ID: 26 DCS_ID: 3561) + [560] = "%.1f", -- PILOT Pitot Heat Switch ( DEVICE_ID: 26 DCS_ID: 3560) + [559] = "%.1f", -- PILOT Windshield Anti-ice Switch ( DEVICE_ID: 26 DCS_ID: 3559) + -- Armament Panel + [340] = "%.1f", -- PILOT Armament Emergency Jettison Button ( DEVICE_ID: 44 DCS_ID: 3340) + [322] = "%.1f", -- PILOT Armament Jettison Button ( DEVICE_ID: 44 DCS_ID: 3322) + [321] = "%.3f", -- PILOT Armament Jettison Selector ( DEVICE_ID: 44 DCS_ID: 3321) -- EDITED + [323] = "%.1f", -- PILOT Armament Panel Master Arm ( DEVICE_ID: 44 DCS_ID: 3323) + -- Brake Panel + [386] = "%.1f", -- PILOT JFS Control Handle PULL ( DEVICE_ID: 6 DCS_ID: 3386) + [430] = "%.1f", -- PILOT JFS Control Handle ROTATE ( DEVICE_ID: 6 DCS_ID: 3430) + [387] = "%.1f", -- PILOT Parking Brake Switch ( DEVICE_ID: 21 DCS_ID: 3387) + -- Canopy + [599] = "%.1f", -- PILOT Canopy Handle ( DEVICE_ID: 24 DCS_ID: 3599) + [428] = "%.1f", -- PILOT Emergency Canopy Jettison ( DEVICE_ID: 24 DCS_ID: 3428) + -- CAS + [455] = "%.1f", -- PILOT CAS BIT Button ( DEVICE_ID: 18 DCS_ID: 3455) + [457] = "%.1f", -- PILOT CAS T/O Trim Button ( DEVICE_ID: 18 DCS_ID: 3457) + [456] = "%.1f", -- PILOT CAS TF Couple Switch ( DEVICE_ID: 18 DCS_ID: 3456) + [454] = "%.1f", -- PILOT Pitch CAS Switch ( DEVICE_ID: 18 DCS_ID: 3454) + [453] = "%.1f", -- PILOT Roll CAS Switch ( DEVICE_ID: 18 DCS_ID: 3453) + [452] = "%.1f", -- PILOT Yaw CAS Switch ( DEVICE_ID: 18 DCS_ID: 3452) + -- Center MPCD + [268] = "%.1f", -- PILOT Center MPCD Brightness Control ( DEVICE_ID: 35 DCS_ID: 3082) + [269] = "%.1f", -- PILOT Center MPCD Contrast Control ( DEVICE_ID: 35 DCS_ID: 3083) + [267] = "%.1f", -- PILOT Center MPCD Power Switch ( DEVICE_ID: 35 DCS_ID: 3081) + [251] = "%.1f", -- PILOT Center MPCD Push Button 1 ( DEVICE_ID: 35 DCS_ID: 3061) + [250] = "%.1f", -- PILOT Center MPCD Push Button 2 ( DEVICE_ID: 35 DCS_ID: 3062) + [249] = "%.1f", -- PILOT Center MPCD Push Button 3 ( DEVICE_ID: 35 DCS_ID: 3063) + [248] = "%.1f", -- PILOT Center MPCD Push Button 4 ( DEVICE_ID: 35 DCS_ID: 3064) + [247] = "%.1f", -- PILOT Center MPCD Push Button 5 ( DEVICE_ID: 35 DCS_ID: 3065) + [266] = "%.1f", -- PILOT Center MPCD Push Button 6 ( DEVICE_ID: 35 DCS_ID: 3066) + [265] = "%.1f", -- PILOT Center MPCD Push Button 7 ( DEVICE_ID: 35 DCS_ID: 3067) + [264] = "%.1f", -- PILOT Center MPCD Push Button 8 ( DEVICE_ID: 35 DCS_ID: 3068) + [263] = "%.1f", -- PILOT Center MPCD Push Button 9 ( DEVICE_ID: 35 DCS_ID: 3069) + [262] = "%.1f", -- PILOT Center MPCD Push Button 10 ( DEVICE_ID: 35 DCS_ID: 3070) + [261] = "%.1f", -- PILOT Center MPCD Push Button 11 ( DEVICE_ID: 35 DCS_ID: 3071) + [260] = "%.1f", -- PILOT Center MPCD Push Button 12 ( DEVICE_ID: 35 DCS_ID: 3072) + [259] = "%.1f", -- PILOT Center MPCD Push Button 13 ( DEVICE_ID: 35 DCS_ID: 3073) + [258] = "%.1f", -- PILOT Center MPCD Push Button 14 ( DEVICE_ID: 35 DCS_ID: 3074) + [257] = "%.1f", -- PILOT Center MPCD Push Button 15 ( DEVICE_ID: 35 DCS_ID: 3075) + [256] = "%.1f", -- PILOT Center MPCD Push Button 16 ( DEVICE_ID: 35 DCS_ID: 3076) + [255] = "%.1f", -- PILOT Center MPCD Push Button 17 ( DEVICE_ID: 35 DCS_ID: 3077) + [254] = "%.1f", -- PILOT Center MPCD Push Button 18 ( DEVICE_ID: 35 DCS_ID: 3078) + [253] = "%.1f", -- PILOT Center MPCD Push Button 19 ( DEVICE_ID: 35 DCS_ID: 3079) + [252] = "%.1f", -- PILOT Center MPCD Push Button 20 ( DEVICE_ID: 35 DCS_ID: 3080) + -- ECS Panel + [558] = "%.1f", -- PILOT Anti-Fog ( DEVICE_ID: 26 DCS_ID: 3558) + [556] = "%.1f", -- PILOT Oxygen TEST ( DEVICE_ID: 26 DCS_ID: 3556) + -- Engine Panel + [590] = "%.1f", -- PILOT Left Engine Control Switch ( DEVICE_ID: 15 DCS_ID: 3590) + [593] = "%.1f", -- PILOT Left Engine Master Switch ( DEVICE_ID: 15 DCS_ID: 3593) + [592] = "%.1f", -- PILOT Left Engine Master Switch Cover ( DEVICE_ID: 15 DCS_ID: 3592) + [591] = "%.1f", -- PILOT Right Engine Control Switch ( DEVICE_ID: 15 DCS_ID: 3591) + [598] = "%.1f", -- PILOT Right Engine Master Switch ( DEVICE_ID: 15 DCS_ID: 3598) + [597] = "%.1f", -- PILOT Right Engine Master Switch Cover ( DEVICE_ID: 15 DCS_ID: 3597) + -- External Lights Panel + [466] = "%.1f", -- PILOT Anti Collison Light Switch ( DEVICE_ID: 22 DCS_ID: 3466) + [465] = "%.3f", -- PILOT Formation Lights Knob ( DEVICE_ID: 22 DCS_ID: 3465) -- EDITED + [538] = "%.1f", -- PILOT Landing/Taxi Light Switch ( DEVICE_ID: 22 DCS_ID: 3538) + [467] = "%.3f", -- PILOT Position Lights Knob ( DEVICE_ID: 22 DCS_ID: 3467) -- EDITED + [468] = "%.1f", -- PILOT Tail Flood Lights Knob ( DEVICE_ID: 22 DCS_ID: 3468) + -- Flight Instruments + [360] = "%.1f", -- PILOT Altitude adjust ( DEVICE_ID: 17 DCS_ID: 3360) + [351] = "%.1f", -- PILOT Backup ADI Cage/Pitch Adjust Knob ( DEVICE_ID: 17 DCS_ID: 3351) + [350] = "%.1f", -- PILOT Backup ADI Cage/Pitch Adjust Pull ( DEVICE_ID: 17 DCS_ID: 3350) + [366] = "%.1f", -- PILOT Clock adjust ( DEVICE_ID: 17 DCS_ID: 3366) + [335] = "%.1f", -- PILOT Pitch Ratio Switch ( DEVICE_ID: 18 DCS_ID: 3335) + [367] = "%.1f", -- PILOT Timer Stop ( DEVICE_ID: 17 DCS_ID: 3367) + -- Fuel + [532] = "%.1f", -- PILOT External Fuel Transfer ( DEVICE_ID: 16 DCS_ID: 3532) + [533] = "%.1f", -- PILOT Fuel A/R Slipway ( DEVICE_ID: 16 DCS_ID: 3533) + [531] = "%.1f", -- PILOT Fuel Conformal Tanks Emergency Transfer ( DEVICE_ID: 16 DCS_ID: 3531) + [528] = "%.1f", -- PILOT Fuel Control: Centerline Tanks ( DEVICE_ID: 16 DCS_ID: 3528) + [529] = "%.1f", -- PILOT Fuel Control: Conformal Tanks ( DEVICE_ID: 16 DCS_ID: 3529) + [527] = "%.1f", -- PILOT Fuel Control: Wing Tanks ( DEVICE_ID: 16 DCS_ID: 3527) + [530] = "%.1f", -- PILOT Fuel Dump ( DEVICE_ID: 16 DCS_ID: 3530) + -- Fuel Monitor Panel + [385] = "%.1f", -- PILOT Fuel Bingo Selection ( DEVICE_ID: 17 DCS_ID: 3385) + [381] = "%.1f", -- PILOT Fuel Totalizer Selector ( DEVICE_ID: 17 DCS_ID: 3381) + -- Generators + [589] = "%.1f", -- PILOT Emergency Generator ( DEVICE_ID: 6 DCS_ID: 3589) + [594] = "%.1f", -- PILOT External Power Switch ( DEVICE_ID: 6 DCS_ID: 3594) + [595] = "%.1f", -- PILOT Jet Starter ( DEVICE_ID: 6 DCS_ID: 3595) + [587] = "%.1f", -- PILOT Left Generator ( DEVICE_ID: 6 DCS_ID: 3587) + [588] = "%.1f", -- PILOT Right Generator ( DEVICE_ID: 6 DCS_ID: 3588) + -- Ground Power + [483] = "%.1f", -- PILOT Ground Power 1 Switch ( DEVICE_ID: 6 DCS_ID: 3483) + [478] = "%.1f", -- PILOT Ground Power 2 Switch ( DEVICE_ID: 6 DCS_ID: 3478) + [479] = "%.1f", -- PILOT Ground Power 3 Switch ( DEVICE_ID: 6 DCS_ID: 3479) + [480] = "%.1f", -- PILOT Ground Power 4 Switch ( DEVICE_ID: 6 DCS_ID: 3480) + [484] = "%.1f", -- PILOT MPDP/A1U Switch ( DEVICE_ID: 6 DCS_ID: 3484) + [481] = "%.1f", -- PILOT PACS Switch ( DEVICE_ID: 6 DCS_ID: 3481) + -- HUD Control Panel + [126] = "%.1f", -- PILOT HUD A/A Master Mode Selector ( DEVICE_ID: 32 DCS_ID: 3126) + [127] = "%.1f", -- PILOT HUD A/G Master Mode Selector ( DEVICE_ID: 32 DCS_ID: 3127) + [123] = "%.1f", -- PILOT HUD BIT Button ( DEVICE_ID: 55 DCS_ID: 3123) + [120] = "%.1f", -- PILOT HUD Brightness Control ( DEVICE_ID: 55 DCS_ID: 3120) + [125] = "%.1f", -- PILOT HUD Contrast Control ( DEVICE_ID: 55 DCS_ID: 3125) + [122] = "%.1f", -- PILOT HUD DAY/AUTO/NIGHT Mode Selector ( DEVICE_ID: 55 DCS_ID: 3122) + [129] = "%.1f", -- PILOT HUD INST Master Mode Selector ( DEVICE_ID: 32 DCS_ID: 3129) + [128] = "%.1f", -- PILOT HUD NAV Master Mode Selector ( DEVICE_ID: 32 DCS_ID: 3128) + [121] = "%.1f", -- PILOT HUD Symbology Reject Mode ( DEVICE_ID: 55 DCS_ID: 3121) + [124] = "%.1f", -- PILOT HUD Video Brightness Control ( DEVICE_ID: 55 DCS_ID: 3124) + -- IFF + [517] = "%.1f", -- PILOT IFF Master Switch ( DEVICE_ID: 17 DCS_ID: 3517) + [515] = "%.1f", -- PILOT IFF Mode Switch ( DEVICE_ID: 17 DCS_ID: 3515) + [516] = "%.1f", -- PILOT IFF Reply Switch ( DEVICE_ID: 17 DCS_ID: 3516) + -- Internal Lights Panel + [186] = "%.1f", -- PILOT Chart Spot Lamp ( DEVICE_ID: 23 DCS_ID: 3575) + [572] = "%.1f", -- PILOT Charts Spot Light ( DEVICE_ID: 23 DCS_ID: 3572) + [570] = "%.1f", -- PILOT Compass Lights ( DEVICE_ID: 23 DCS_ID: 3570) + [566] = "%.1f", -- PILOT Console Lights ( DEVICE_ID: 23 DCS_ID: 3566) + [571] = "%.1f", -- PILOT Day/Night Mode Selector ( DEVICE_ID: 23 DCS_ID: 3571) + [568] = "%.1f", -- PILOT Gauges/UFC Backlights ( DEVICE_ID: 23 DCS_ID: 3568) + [567] = "%.1f", -- PILOT Instruments Panel Lights ( DEVICE_ID: 23 DCS_ID: 3567) + [574] = "%.1f", -- PILOT Storm FLood Lights ( DEVICE_ID: 23 DCS_ID: 3574) + [573] = "%.1f", -- PILOT Warning/Caution Lights ( DEVICE_ID: 23 DCS_ID: 3573) + [573] = "%.1f", -- PILOT Warning/Caution Lights Reset ( DEVICE_ID: 23 DCS_ID: 3473) + [569] = "%.1f", -- PILOT Warning/Caution Lights Test ( DEVICE_ID: 23 DCS_ID: 3569) + -- Landing Gear Panel + [337] = "%.1f", -- PILOT Emergency Landing Gear Handle PUSH/PULL ( DEVICE_ID: 21 DCS_ID: 3337) + [431] = "%.1f", -- PILOT Emergency Landing Gear Handle ROTATE ( DEVICE_ID: 21 DCS_ID: 3431) + [324] = "%.1f", -- PILOT Landing Gear Lever ( DEVICE_ID: 21 DCS_ID: 3324) + [325] = "%.1f", -- PILOT Landing Gear Warning Tone Silence Switch ( DEVICE_ID: 21 DCS_ID: 3325) + -- Left Bulkhead Panel + [485] = "%.1f", -- PILOT Armament Safety Override Switch ( DEVICE_ID: 17 DCS_ID: 3485) + [540] = "%.1f", -- PILOT Emergency A/R Switch ( DEVICE_ID: 16 DCS_ID: 3540) + [539] = "%.1f", -- PILOT Emergency A/R Switch Cover ( DEVICE_ID: 16 DCS_ID: 3539) + [519] = "%.1f", -- PILOT EWWS Enable Switch ( DEVICE_ID: 17 DCS_ID: 3519) + [518] = "%.1f", -- PILOT EWWS Enable Switch Cover ( DEVICE_ID: 17 DCS_ID: 3518) + [523] = "%.1f", -- PILOT Flyup Enable Switch ( DEVICE_ID: 17 DCS_ID: 3523) + [522] = "%.1f", -- PILOT Flyup Enable Switch Cover ( DEVICE_ID: 17 DCS_ID: 3522) + [520] = "%.1f", -- PILOT IFF Antenna Select Switch ( DEVICE_ID: 17 DCS_ID: 3520) + [524] = "%.1f", -- PILOT NCTR Enable Switch ( DEVICE_ID: 17 DCS_ID: 3524) + [521] = "%.1f", -- PILOT Seat Adjust Switch ( DEVICE_ID: 24 DCS_ID: 3521) + [521] = "%.1f", -- PILOT Seat Adjust Switch ( DEVICE_ID: 24 DCS_ID: 3521) + [800] = "%.1f", -- PILOT Seat Arm Handle ( DEVICE_ID: 24 DCS_ID: 3800) + [526] = "%.1f", -- PILOT VMAX Switch ( DEVICE_ID: 15 DCS_ID: 3526) + [525] = "%.1f", -- PILOT VMAX Switch Cover ( DEVICE_ID: 15 DCS_ID: 3525) + -- Left MPD + [222] = "%.1f", -- PILOT Left MPD Brightness Control ( DEVICE_ID: 34 DCS_ID: 3082) + [223] = "%.1f", -- PILOT Left MPD Contrast Control ( DEVICE_ID: 34 DCS_ID: 3083) + [221] = "%.1f", -- PILOT Left MPD Power Switch ( DEVICE_ID: 34 DCS_ID: 3081) + [204] = "%.1f", -- PILOT Left MPD Push Button 1 ( DEVICE_ID: 34 DCS_ID: 3061) + [203] = "%.1f", -- PILOT Left MPD Push Button 2 ( DEVICE_ID: 34 DCS_ID: 3062) + [202] = "%.1f", -- PILOT Left MPD Push Button 3 ( DEVICE_ID: 34 DCS_ID: 3063) + [201] = "%.1f", -- PILOT Left MPD Push Button 4 ( DEVICE_ID: 34 DCS_ID: 3064) + [200] = "%.1f", -- PILOT Left MPD Push Button 5 ( DEVICE_ID: 34 DCS_ID: 3065) + [219] = "%.1f", -- PILOT Left MPD Push Button 6 ( DEVICE_ID: 34 DCS_ID: 3066) + [218] = "%.1f", -- PILOT Left MPD Push Button 7 ( DEVICE_ID: 34 DCS_ID: 3067) + [217] = "%.1f", -- PILOT Left MPD Push Button 8 ( DEVICE_ID: 34 DCS_ID: 3068) + [216] = "%.1f", -- PILOT Left MPD Push Button 9 ( DEVICE_ID: 34 DCS_ID: 3069) + [215] = "%.1f", -- PILOT Left MPD Push Button 10 ( DEVICE_ID: 34 DCS_ID: 3070) + [214] = "%.1f", -- PILOT Left MPD Push Button 11 ( DEVICE_ID: 34 DCS_ID: 3071) + [213] = "%.1f", -- PILOT Left MPD Push Button 12 ( DEVICE_ID: 34 DCS_ID: 3072) + [212] = "%.1f", -- PILOT Left MPD Push Button 13 ( DEVICE_ID: 34 DCS_ID: 3073) + [211] = "%.1f", -- PILOT Left MPD Push Button 14 ( DEVICE_ID: 34 DCS_ID: 3074) + [210] = "%.1f", -- PILOT Left MPD Push Button 15 ( DEVICE_ID: 34 DCS_ID: 3075) + [209] = "%.1f", -- PILOT Left MPD Push Button 16 ( DEVICE_ID: 34 DCS_ID: 3076) + [208] = "%.1f", -- PILOT Left MPD Push Button 17 ( DEVICE_ID: 34 DCS_ID: 3077) + [207] = "%.1f", -- PILOT Left MPD Push Button 18 ( DEVICE_ID: 34 DCS_ID: 3078) + [206] = "%.1f", -- PILOT Left MPD Push Button 19 ( DEVICE_ID: 34 DCS_ID: 3079) + [205] = "%.1f", -- PILOT Left MPD Push Button 20 ( DEVICE_ID: 34 DCS_ID: 3080) + -- MICS + [509] = "%.1f", -- PILOT MIC Switch ( DEVICE_ID: 13 DCS_ID: 3509) + [508] = "%.1f", -- PILOT MICS Crypto Switch ( DEVICE_ID: 13 DCS_ID: 3508) + [510] = "%.1f", -- PILOT MICS VW/Tone Silence Switch ( DEVICE_ID: 29 DCS_ID: 3510) + -- Misc + [537] = "%.1f", -- PILOT Anti Skid Switch ( DEVICE_ID: 21 DCS_ID: 3537) + [336] = "%.1f", -- PILOT Arresting Hook Handle ( DEVICE_ID: 21 DCS_ID: 3336) + [341] = "%.1f", -- PILOT Emergency Brake/Steering Handle ( DEVICE_ID: 21 DCS_ID: 3341) + [427] = "%.1f", -- PILOT Emergency Vent Handle ( DEVICE_ID: 26 DCS_ID: 3427) + [535] = "%.1f", -- PILOT Left Inlet Ramp Switch ( DEVICE_ID: 15 DCS_ID: 3535) + [401] = "%.1f", -- PILOT Master Caution Button ( DEVICE_ID: 29 DCS_ID: 3401) + [536] = "%.1f", -- PILOT Right Inlet Ramp Switch ( DEVICE_ID: 15 DCS_ID: 3536) + [534] = "%.1f", -- PILOT Roll Ratio Switch ( DEVICE_ID: 18 DCS_ID: 3534) + [342] = "%.1f", -- PILOT Rudder Pedal Ajust Handle ( DEVICE_ID: 18 DCS_ID: 3342) + -- Misc Controls + [1010] = "%.1f", -- Mirror Center Adjust Angle ( DEVICE_ID: 24 DCS_ID: 3910) + [10] = "%.1f", -- Mirror Center Rendering Toggle ( DEVICE_ID: 24 DCS_ID: 3010) + [1011] = "%.1f", -- Mirror Left Adjust Angle ( DEVICE_ID: 24 DCS_ID: 3911) + [11] = "%.1f", -- Mirror Left Rendering Toggle ( DEVICE_ID: 24 DCS_ID: 3011) + [1012] = "%.1f", -- Mirror Right Adjust Angle ( DEVICE_ID: 24 DCS_ID: 3912) + [12] = "%.1f", -- Mirror Right Rendering Toggle ( DEVICE_ID: 24 DCS_ID: 3012) + [1001] = "%.1f", -- Show/Hide Controls ( DEVICE_ID: 24 DCS_ID: 3001) + -- NUC + [451] = "%.1f", -- PILOT Nuclear Consent Switch ( DEVICE_ID: 17 DCS_ID: 3451) + [450] = "%.1f", -- PILOT Nuclear Consent Switch Cover ( DEVICE_ID: 17 DCS_ID: 3450) + -- Oxygen Control Panel + [552] = "%.1f", -- PILOT Oxygen 100%/Normal Switch ( DEVICE_ID: 26 DCS_ID: 3552) + [551] = "%.1f", -- PILOT Oxygen Emergency/Normal/Test Switch ( DEVICE_ID: 26 DCS_ID: 3551) + [553] = "%.1f", -- PILOT Oxygen Supply/Mode Control Switch ( DEVICE_ID: 26 DCS_ID: 3553) + -- Radio + [514] = "%.1f", -- PILOT Radio Cypher Text Switch ( DEVICE_ID: 17 DCS_ID: 3514) + [513] = "%.1f", -- PILOT Radio Tone Switch ( DEVICE_ID: 17 DCS_ID: 3513) + [511] = "%.1f", -- PILOT Radio UHF Antenna Switch ( DEVICE_ID: 17 DCS_ID: 3511) + [512] = "%.1f", -- PILOT Radio VHF Antenna Switch ( DEVICE_ID: 17 DCS_ID: 3512) + -- Right MPD + [245] = "%.1f", -- PILOT Right MPD Brightness Control ( DEVICE_ID: 36 DCS_ID: 3082) + [246] = "%.1f", -- PILOT Right MPD Contrast Control ( DEVICE_ID: 36 DCS_ID: 3083) + [244] = "%.1f", -- PILOT Right MPD Power Switch ( DEVICE_ID: 36 DCS_ID: 3081) + [228] = "%.1f", -- PILOT Right MPD Push Button 1 ( DEVICE_ID: 36 DCS_ID: 3061) + [227] = "%.1f", -- PILOT Right MPD Push Button 2 ( DEVICE_ID: 36 DCS_ID: 3062) + [226] = "%.1f", -- PILOT Right MPD Push Button 3 ( DEVICE_ID: 36 DCS_ID: 3063) + [225] = "%.1f", -- PILOT Right MPD Push Button 4 ( DEVICE_ID: 36 DCS_ID: 3064) + [224] = "%.1f", -- PILOT Right MPD Push Button 5 ( DEVICE_ID: 36 DCS_ID: 3065) + [243] = "%.1f", -- PILOT Right MPD Push Button 6 ( DEVICE_ID: 36 DCS_ID: 3066) + [242] = "%.1f", -- PILOT Right MPD Push Button 7 ( DEVICE_ID: 36 DCS_ID: 3067) + [241] = "%.1f", -- PILOT Right MPD Push Button 8 ( DEVICE_ID: 36 DCS_ID: 3068) + [240] = "%.1f", -- PILOT Right MPD Push Button 9 ( DEVICE_ID: 36 DCS_ID: 3069) + [239] = "%.1f", -- PILOT Right MPD Push Button 10 ( DEVICE_ID: 36 DCS_ID: 3070) + [238] = "%.1f", -- PILOT Right MPD Push Button 11 ( DEVICE_ID: 36 DCS_ID: 3071) + [237] = "%.1f", -- PILOT Right MPD Push Button 12 ( DEVICE_ID: 36 DCS_ID: 3072) + [236] = "%.1f", -- PILOT Right MPD Push Button 13 ( DEVICE_ID: 36 DCS_ID: 3073) + [235] = "%.1f", -- PILOT Right MPD Push Button 14 ( DEVICE_ID: 36 DCS_ID: 3074) + [234] = "%.1f", -- PILOT Right MPD Push Button 15 ( DEVICE_ID: 36 DCS_ID: 3075) + [233] = "%.1f", -- PILOT Right MPD Push Button 16 ( DEVICE_ID: 36 DCS_ID: 3076) + [232] = "%.1f", -- PILOT Right MPD Push Button 17 ( DEVICE_ID: 36 DCS_ID: 3077) + [231] = "%.1f", -- PILOT Right MPD Push Button 18 ( DEVICE_ID: 36 DCS_ID: 3078) + [230] = "%.1f", -- PILOT Right MPD Push Button 19 ( DEVICE_ID: 36 DCS_ID: 3079) + [229] = "%.1f", -- PILOT Right MPD Push Button 20 ( DEVICE_ID: 36 DCS_ID: 3080) + -- Sensor + [477] = "%.1f", -- PILOT CC Reset ( DEVICE_ID: 1 DCS_ID: 3477) + [472] = "%.3f", -- PILOT INS Knob ( DEVICE_ID: 42 DCS_ID: 3472) -- EDITED + [476] = "%.3f", -- PILOT JTIDS Knob ( DEVICE_ID: 1 DCS_ID: 3476) -- EDITED + [473] = "%.1f", -- PILOT Nav FLIR Gain ( DEVICE_ID: 50 DCS_ID: 3473) + [474] = "%.1f", -- PILOT Nav FLIR Level ( DEVICE_ID: 50 DCS_ID: 3474) + [475] = "%.1f", -- PILOT Nav FLIR Switch ( DEVICE_ID: 50 DCS_ID: 3475) + [470] = "%.1f", -- PILOT Radar Altitude Switch ( DEVICE_ID: 31 DCS_ID: 3470) + [471] = "%.3f", -- PILOT Radar Mode Selector ( DEVICE_ID: 3 DCS_ID: 3471) -- EDITED + [469] = "%.1f", -- PILOT Terrrain Follow Radar Switch ( DEVICE_ID: 65 DCS_ID: 3469) + -- Throttle Quadrant + [459] = "%.1f", -- PILOT Throttle Flaps Control Switch ( DEVICE_ID: 18 DCS_ID: 3459) + [697] = "%.1f", -- PILOT Throttle Left Throttle Finger Lift ( DEVICE_ID: 15 DCS_ID: 3697) + [698] = "%.1f", -- PILOT Throttle Right Throttle Finger Lift ( DEVICE_ID: 15 DCS_ID: 3698) + [460] = "%.1f", -- PILOT Throttle Rudder Trim Switch ( DEVICE_ID: 18 DCS_ID: 3460) + -- UFC + [270] = "%.1f", -- PILOT UFC Push Button 1 ( DEVICE_ID: 56 DCS_ID: 3001) + [271] = "%.1f", -- PILOT UFC Push Button 2 ( DEVICE_ID: 56 DCS_ID: 3002) + [272] = "%.1f", -- PILOT UFC Push Button 3 ( DEVICE_ID: 56 DCS_ID: 3003) + [273] = "%.1f", -- PILOT UFC Push Button 4 ( DEVICE_ID: 56 DCS_ID: 3004) + [274] = "%.1f", -- PILOT UFC Push Button 5 ( DEVICE_ID: 56 DCS_ID: 3005) + [275] = "%.1f", -- PILOT UFC Push Button 10 ( DEVICE_ID: 56 DCS_ID: 3006) + [276] = "%.1f", -- PILOT UFC Push Button 9 ( DEVICE_ID: 56 DCS_ID: 3007) + [277] = "%.1f", -- PILOT UFC Push Button 8 ( DEVICE_ID: 56 DCS_ID: 3008) + [278] = "%.1f", -- PILOT UFC Push Button 7 ( DEVICE_ID: 56 DCS_ID: 3009) + [279] = "%.1f", -- PILOT UFC Push Button 6 ( DEVICE_ID: 56 DCS_ID: 3010) + [280] = "%.1f", -- PILOT Left UHF Preset Channel Selector ( DEVICE_ID: 56 DCS_ID: 3011) + [281] = "%.1f", -- PILOT Right UHF Preset Channel Selector ( DEVICE_ID: 56 DCS_ID: 3012) + [282] = "%.1f", -- PILOT UHF Radio 1 Volume ( DEVICE_ID: 56 DCS_ID: 3013) + [283] = "%.1f", -- PILOT UHF Radio 2 Volume ( DEVICE_ID: 56 DCS_ID: 3014) + [284] = "%.1f", -- PILOT UHF Radio 3 Volume ( DEVICE_ID: 56 DCS_ID: 3015) + [285] = "%.1f", -- PILOT UHF Radio 4 Volume ( DEVICE_ID: 56 DCS_ID: 3016) + [286] = "%.1f", -- PILOT UFC LCD Brightness ( DEVICE_ID: 56 DCS_ID: 3017) + [287] = "%.1f", -- PILOT UFC Emission Limit Button ( DEVICE_ID: 56 DCS_ID: 3018) + [288] = "%.1f", -- PILOT Left Guard Receiver - Channel/Manual Key ( DEVICE_ID: 56 DCS_ID: 3019) + [289] = "%.1f", -- PILOT A/1 Key ( DEVICE_ID: 56 DCS_ID: 3020) + [290] = "%.1f", -- PILOT N/2 Key ( DEVICE_ID: 56 DCS_ID: 3021) + [291] = "%.1f", -- PILOT B/3 Key ( DEVICE_ID: 56 DCS_ID: 3022) + [292] = "%.1f", -- PILOT Right Guard Receiver - Channel/Manual Key ( DEVICE_ID: 56 DCS_ID: 3023) + [293] = "%.1f", -- PILOT Mark Key ( DEVICE_ID: 56 DCS_ID: 3024) + [294] = "%.1f", -- PILOT W/4 Key ( DEVICE_ID: 56 DCS_ID: 3025) + [295] = "%.1f", -- PILOT M/5 Key ( DEVICE_ID: 56 DCS_ID: 3026) + [296] = "%.1f", -- PILOT E/6 Key ( DEVICE_ID: 56 DCS_ID: 3027) + [297] = "%.1f", -- PILOT I/P Key ( DEVICE_ID: 56 DCS_ID: 3028) + [298] = "%.1f", -- PILOT Decimal Point Key ( DEVICE_ID: 56 DCS_ID: 3029) + [299] = "%.1f", -- PILOT :/7 Key ( DEVICE_ID: 56 DCS_ID: 3030) + [300] = "%.1f", -- PILOT S/8 Key ( DEVICE_ID: 56 DCS_ID: 3031) + [301] = "%.1f", -- PILOT C/9 Key ( DEVICE_ID: 56 DCS_ID: 3032) + [302] = "%.1f", -- PILOT Shift Key ( DEVICE_ID: 56 DCS_ID: 3033) + [303] = "%.1f", -- PILOT A/P Key ( DEVICE_ID: 56 DCS_ID: 3034) + [304] = "%.1f", -- PILOT Clear Key ( DEVICE_ID: 56 DCS_ID: 3035) + [305] = "%.1f", -- PILOT -/0 Key ( DEVICE_ID: 56 DCS_ID: 3036) + [306] = "%.1f", -- PILOT Data Key ( DEVICE_ID: 56 DCS_ID: 3037) + [307] = "%.1f", -- PILOT Menu Key ( DEVICE_ID: 56 DCS_ID: 3038) + [680] = "%.1f", -- PILOT Left UHF Preset Channel Switch ( DEVICE_ID: 56 DCS_ID: 3055) + [681] = "%.1f", -- PILOT Right UHF Preset Channel Switch ( DEVICE_ID: 56 DCS_ID: 3056) + -- Volume + [502] = "%.1f", -- PILOT Caution Volume ( DEVICE_ID: 59 DCS_ID: 3502) + [504] = "%.1f", -- PILOT ICS Volume ( DEVICE_ID: 13 DCS_ID: 3504) + [506] = "%.1f", -- PILOT ILS Volume ( DEVICE_ID: 11 DCS_ID: 3506) + [503] = "%.1f", -- PILOT Launch Volume ( DEVICE_ID: 59 DCS_ID: 3503) + [507] = "%.1f", -- PILOT TACAN Volume ( DEVICE_ID: 10 DCS_ID: 3507) + [505] = "%.1f", -- PILOT WPN Volume ( DEVICE_ID: 44 DCS_ID: 3505) + ------------------------------------------------------------------- + -- WSO COCKPIT + ------------------------------------------------------------------- + -- Canopy + [1479] = "%.1f", -- WSO Canopy Handle ( DEVICE_ID: 24 DCS_ID: 3600) + [1386] = "%.1f", -- WSO Eject Selector Handle ( DEVICE_ID: 24 DCS_ID: 3386) + [1385] = "%.1f", -- WSO Emergency Canopy Jettison ( DEVICE_ID: 24 DCS_ID: 3385) + -- CMD Control Panel + [1475] = "%.1f", -- WSO CMD Dispenser Selection Switch FLARE/BOTH/CHAFF ( DEVICE_ID: 60 DCS_ID:3911) + [1476] = "%.3f", -- WSO CMD Operational Mode OFF/STBY/MAN/SEMI/AUTO ( DEVICE_ID: 60 DCS_ID: 3912) -- EDITED + -- EW Panel + [1418] = "%.1f", -- WSO ECM PODS Mode Switch XMIT/STBY ( DEVICE_ID: 61 DCS_ID: 3932) + [1477] = "%.1f", -- WSO Flare Jettison Switch Cover ( DEVICE_ID: 60 DCS_ID: 3913) + [1478] = "%.1f", -- WSO Flare Jettison Switch NORM/JETT ( DEVICE_ID: 60 DCS_ID: 3914) + [1419] = "%.1f", -- WSO ICS Operational Mode Switch STBY/AUTO/MAN ( DEVICE_ID: 61 DCS_ID: 3933) + [1417] = "%.1f", -- WSO RWR/ICS Mode Switch COMBAT/TRNG ( DEVICE_ID: 59 DCS_ID: 3931) + -- Flight Instruments + [1364] = "%.1f", -- WSO Altitude adjust ( DEVICE_ID: 17 DCS_ID: 3403) + [1355] = "%.1f", -- WSO Backup ADI Cage/Pitch Adjust Knob ( DEVICE_ID: 17 DCS_ID: 3402) + [1354] = "%.1f", -- WSO Backup ADI Cage/Pitch Adjust Pull ( DEVICE_ID: 17 DCS_ID: 3401) + [1382] = "%.1f", -- WSO Clock adjust ( DEVICE_ID: 17 DCS_ID: 3404) + [1176] = "%.1f", -- WSO Master Caution Button ( DEVICE_ID: 29 DCS_ID: 3176) + [1383] = "%.1f", -- WSO Timer Stop ( DEVICE_ID: 17 DCS_ID: 3405) + -- Internal Lights Panel + [188] = "%.1f", -- WSO Chart Spot Lamp ( DEVICE_ID: 23 DCS_ID: 3188) + [1462] = "%.1f", -- WSO Charts Spot Light ( DEVICE_ID: 23 DCS_ID: 3462) + [1460] = "%.1f", -- WSO Compass Lights ( DEVICE_ID: 23 DCS_ID: 3460) + [1456] = "%.1f", -- WSO Console Lights ( DEVICE_ID: 23 DCS_ID: 3456) + [1461] = "%.1f", -- WSO Day/Night Mode Selector ( DEVICE_ID: 23 DCS_ID: 3461) + [1458] = "%.1f", -- WSO Gauges/UFC Backlights ( DEVICE_ID: 23 DCS_ID: 3458) + [1457] = "%.1f", -- WSO Instruments Panel Lights ( DEVICE_ID: 23 DCS_ID: 3457) + [1464] = "%.1f", -- WSO Storm FLood Lights ( DEVICE_ID: 23 DCS_ID: 3464) + [1463] = "%.1f", -- WSO Warning/Caution Lights ( DEVICE_ID: 23 DCS_ID: 3463) + [1463] = "%.1f", -- WSO Warning/Caution Lights Reset ( DEVICE_ID: 23 DCS_ID: 3463) + [1459] = "%.1f", -- WSO Warning/Caution Lights Test ( DEVICE_ID: 23 DCS_ID: 3459) + -- Left MPCD + [1222] = "%.1f", -- WSO Left MPCD Brightness Control ( DEVICE_ID: 37 DCS_ID: 3082) + [1223] = "%.1f", -- WSO Left MPCD Contrast Control ( DEVICE_ID: 37 DCS_ID: 3083) + [1221] = "%.1f", -- WSO Left MPCD Power Switch ( DEVICE_ID: 37 DCS_ID: 3081) + [1204] = "%.1f", -- WSO Left MPCD Push Button 1 ( DEVICE_ID: 37 DCS_ID: 3061) + [1203] = "%.1f", -- WSO Left MPCD Push Button 2 ( DEVICE_ID: 37 DCS_ID: 3062) + [1202] = "%.1f", -- WSO Left MPCD Push Button 3 ( DEVICE_ID: 37 DCS_ID: 3063) + [1201] = "%.1f", -- WSO Left MPCD Push Button 4 ( DEVICE_ID: 37 DCS_ID: 3064) + [1200] = "%.1f", -- WSO Left MPCD Push Button 5 ( DEVICE_ID: 37 DCS_ID: 3065) + [1219] = "%.1f", -- WSO Left MPCD Push Button 6 ( DEVICE_ID: 37 DCS_ID: 3066) + [1218] = "%.1f", -- WSO Left MPCD Push Button 7 ( DEVICE_ID: 37 DCS_ID: 3067) + [1217] = "%.1f", -- WSO Left MPCD Push Button 8 ( DEVICE_ID: 37 DCS_ID: 3068) + [1216] = "%.1f", -- WSO Left MPCD Push Button 9 ( DEVICE_ID: 37 DCS_ID: 3069) + [1215] = "%.1f", -- WSO Left MPCD Push Button 10 ( DEVICE_ID: 37 DCS_ID: 3070) + [1214] = "%.1f", -- WSO Left MPCD Push Button 11 ( DEVICE_ID: 37 DCS_ID: 3071) + [1213] = "%.1f", -- WSO Left MPCD Push Button 12 ( DEVICE_ID: 37 DCS_ID: 3072) + [1212] = "%.1f", -- WSO Left MPCD Push Button 13 ( DEVICE_ID: 37 DCS_ID: 3073) + [1211] = "%.1f", -- WSO Left MPCD Push Button 14 ( DEVICE_ID: 37 DCS_ID: 3074) + [1210] = "%.1f", -- WSO Left MPCD Push Button 15 ( DEVICE_ID: 37 DCS_ID: 3075) + [1209] = "%.1f", -- WSO Left MPCD Push Button 16 ( DEVICE_ID: 37 DCS_ID: 3076) + [1208] = "%.1f", -- WSO Left MPCD Push Button 17 ( DEVICE_ID: 37 DCS_ID: 3077) + [1207] = "%.1f", -- WSO Left MPCD Push Button 18 ( DEVICE_ID: 37 DCS_ID: 3078) + [1206] = "%.1f", -- WSO Left MPCD Push Button 19 ( DEVICE_ID: 37 DCS_ID: 3079) + [1205] = "%.1f", -- WSO Left MPCD Push Button 20 ( DEVICE_ID: 37 DCS_ID: 3080) + -- Left MPD + [1245] = "%.1f", -- WSO Left MPD Brightness Control ( DEVICE_ID: 38 DCS_ID: 3082) + [1246] = "%.1f", -- WSO Left MPD Contrast Control ( DEVICE_ID: 38 DCS_ID: 3083) + [1244] = "%.1f", -- WSO Left MPD Power Switch ( DEVICE_ID: 38 DCS_ID: 3081) + [1228] = "%.1f", -- WSO Left MPD Push Button 1 ( DEVICE_ID: 38 DCS_ID: 3061) + [1227] = "%.1f", -- WSO Left MPD Push Button 2 ( DEVICE_ID: 38 DCS_ID: 3062) + [1226] = "%.1f", -- WSO Left MPD Push Button 3 ( DEVICE_ID: 38 DCS_ID: 3063) + [1225] = "%.1f", -- WSO Left MPD Push Button 4 ( DEVICE_ID: 38 DCS_ID: 3064) + [1224] = "%.1f", -- WSO Left MPD Push Button 5 ( DEVICE_ID: 38 DCS_ID: 3065) + [1243] = "%.1f", -- WSO Left MPD Push Button 6 ( DEVICE_ID: 38 DCS_ID: 3066) + [1242] = "%.1f", -- WSO Left MPD Push Button 7 ( DEVICE_ID: 38 DCS_ID: 3067) + [1241] = "%.1f", -- WSO Left MPD Push Button 8 ( DEVICE_ID: 38 DCS_ID: 3068) + [1240] = "%.1f", -- WSO Left MPD Push Button 9 ( DEVICE_ID: 38 DCS_ID: 3069) + [1239] = "%.1f", -- WSO Left MPD Push Button 10 ( DEVICE_ID: 38 DCS_ID: 3070) + [1238] = "%.1f", -- WSO Left MPD Push Button 11 ( DEVICE_ID: 38 DCS_ID: 3071) + [1237] = "%.1f", -- WSO Left MPD Push Button 12 ( DEVICE_ID: 38 DCS_ID: 3072) + [1236] = "%.1f", -- WSO Left MPD Push Button 13 ( DEVICE_ID: 38 DCS_ID: 3073) + [1235] = "%.1f", -- WSO Left MPD Push Button 14 ( DEVICE_ID: 38 DCS_ID: 3074) + [1234] = "%.1f", -- WSO Left MPD Push Button 15 ( DEVICE_ID: 38 DCS_ID: 3075) + [1233] = "%.1f", -- WSO Left MPD Push Button 16 ( DEVICE_ID: 38 DCS_ID: 3076) + [1232] = "%.1f", -- WSO Left MPD Push Button 17 ( DEVICE_ID: 38 DCS_ID: 3077) + [1231] = "%.1f", -- WSO Left MPD Push Button 18 ( DEVICE_ID: 38 DCS_ID: 3078) + [1230] = "%.1f", -- WSO Left MPD Push Button 19 ( DEVICE_ID: 38 DCS_ID: 3079) + [1229] = "%.1f", -- WSO Left MPD Push Button 20 ( DEVICE_ID: 38 DCS_ID: 3080) + -- MICS + [1427] = "%.1f", -- WSO MIC Switch ( DEVICE_ID: 13 DCS_ID: 3427) + [1426] = "%.1f", -- WSO MICS Crypto Switch ( DEVICE_ID: 13 DCS_ID: 3426) + [1428] = "%.1f", -- WSO MICS VW/Tone Silence Switch ( DEVICE_ID: 29 DCS_ID: 3428) + -- Misc + [1341] = "%.1f", -- WSO Arresting Hook Handle ( DEVICE_ID: 21 DCS_ID: 3344) + [1345] = "%.1f", -- WSO Emergency Brake/Steering Handle ( DEVICE_ID: 21 DCS_ID: 3345) + [1342] = "%.1f", -- WSO Emergency Landing Gear Handle ( DEVICE_ID: 21 DCS_ID: 3342) + [1346] = "%.1f", -- WSO Rudder Pedal Ajust Handle ( DEVICE_ID: 18 DCS_ID: 3346) + -- NUC + [1402] = "%.1f", -- WSO Nuclear Consent Switch ( DEVICE_ID: 17 DCS_ID: 3453) + [1401] = "%.1f", -- WSO Nuclear Consent Switch Cover ( DEVICE_ID: 17 DCS_ID: 3452) + -- Oxygen Control Panel + [1451] = "%.1f", -- WSO Oxygen 100%/Normal Switch ( DEVICE_ID: 26 DCS_ID: 3572) + [1450] = "%.1f", -- WSO Oxygen Emergency/Normal/Test Switch ( DEVICE_ID: 26 DCS_ID: 3571) + [1452] = "%.1f", -- WSO Oxygen Supply/Mode Control Switch ( DEVICE_ID: 26 DCS_ID: 3573) + -- Radio + [1430] = "%.1f", -- WSO Radio Cypher Text Switch ( DEVICE_ID: 17 DCS_ID: 3430) + [1429] = "%.1f", -- WSO Radio Tone Switch ( DEVICE_ID: 17 DCS_ID: 3429) + -- Right MPCD + [1291] = "%.1f", -- WSO Right MPCD Brightness Control ( DEVICE_ID: 40 DCS_ID: 3082) + [1292] = "%.1f", -- WSO Right MPCD Contrast Control ( DEVICE_ID: 40 DCS_ID: 3083) + [1290] = "%.1f", -- WSO Right MPCD Power Switch ( DEVICE_ID: 40 DCS_ID: 3081) + [1274] = "%.1f", -- WSO Right MPCD Push Button 1 ( DEVICE_ID: 40 DCS_ID: 3061) + [1273] = "%.1f", -- WSO Right MPCD Push Button 2 ( DEVICE_ID: 40 DCS_ID: 3062) + [1272] = "%.1f", -- WSO Right MPCD Push Button 3 ( DEVICE_ID: 40 DCS_ID: 3063) + [1271] = "%.1f", -- WSO Right MPCD Push Button 4 ( DEVICE_ID: 40 DCS_ID: 3064) + [1270] = "%.1f", -- WSO Right MPCD Push Button 5 ( DEVICE_ID: 40 DCS_ID: 3065) + [1289] = "%.1f", -- WSO Right MPCD Push Button 6 ( DEVICE_ID: 40 DCS_ID: 3066) + [1288] = "%.1f", -- WSO Right MPCD Push Button 7 ( DEVICE_ID: 40 DCS_ID: 3067) + [1287] = "%.1f", -- WSO Right MPCD Push Button 8 ( DEVICE_ID: 40 DCS_ID: 3068) + [1286] = "%.1f", -- WSO Right MPCD Push Button 9 ( DEVICE_ID: 40 DCS_ID: 3069) + [1285] = "%.1f", -- WSO Right MPCD Push Button 10 ( DEVICE_ID: 40 DCS_ID: 3070) + [1284] = "%.1f", -- WSO Right MPCD Push Button 11 ( DEVICE_ID: 40 DCS_ID: 3071) + [1283] = "%.1f", -- WSO Right MPCD Push Button 12 ( DEVICE_ID: 40 DCS_ID: 3072) + [1282] = "%.1f", -- WSO Right MPCD Push Button 13 ( DEVICE_ID: 40 DCS_ID: 3073) + [1281] = "%.1f", -- WSO Right MPCD Push Button 14 ( DEVICE_ID: 40 DCS_ID: 3074) + [1280] = "%.1f", -- WSO Right MPCD Push Button 15 ( DEVICE_ID: 40 DCS_ID: 3075) + [1279] = "%.1f", -- WSO Right MPCD Push Button 16 ( DEVICE_ID: 40 DCS_ID: 3076) + [1278] = "%.1f", -- WSO Right MPCD Push Button 17 ( DEVICE_ID: 40 DCS_ID: 3077) + [1277] = "%.1f", -- WSO Right MPCD Push Button 18 ( DEVICE_ID: 40 DCS_ID: 3078) + [1276] = "%.1f", -- WSO Right MPCD Push Button 19 ( DEVICE_ID: 40 DCS_ID: 3079) + [1275] = "%.1f", -- WSO Right MPCD Push Button 20 ( DEVICE_ID: 40 DCS_ID: 3080) + -- Right MPD + [1268] = "%.1f", -- WSO Right MPD Brightness Control ( DEVICE_ID: 39 DCS_ID: 3082) + [1269] = "%.1f", -- WSO Right MPD Contrast Control ( DEVICE_ID: 39 DCS_ID: 3083) + [1267] = "%.1f", -- WSO Right MPD Power Switch ( DEVICE_ID: 39 DCS_ID: 3081) + [1251] = "%.1f", -- WSO Right MPD Push Button 1 ( DEVICE_ID: 39 DCS_ID: 3061) + [1250] = "%.1f", -- WSO Right MPD Push Button 2 ( DEVICE_ID: 39 DCS_ID: 3062) + [1249] = "%.1f", -- WSO Right MPD Push Button 3 ( DEVICE_ID: 39 DCS_ID: 3063) + [1248] = "%.1f", -- WSO Right MPD Push Button 4 ( DEVICE_ID: 39 DCS_ID: 3064) + [1247] = "%.1f", -- WSO Right MPD Push Button 5 ( DEVICE_ID: 39 DCS_ID: 3065) + [1266] = "%.1f", -- WSO Right MPD Push Button 6 ( DEVICE_ID: 39 DCS_ID: 3066) + [1265] = "%.1f", -- WSO Right MPD Push Button 7 ( DEVICE_ID: 39 DCS_ID: 3067) + [1264] = "%.1f", -- WSO Right MPD Push Button 8 ( DEVICE_ID: 39 DCS_ID: 3068) + [1263] = "%.1f", -- WSO Right MPD Push Button 9 ( DEVICE_ID: 39 DCS_ID: 3069) + [1262] = "%.1f", -- WSO Right MPD Push Button 10 ( DEVICE_ID: 39 DCS_ID: 3070) + [1261] = "%.1f", -- WSO Right MPD Push Button 11 ( DEVICE_ID: 39 DCS_ID: 3071) + [1260] = "%.1f", -- WSO Right MPD Push Button 12 ( DEVICE_ID: 39 DCS_ID: 3072) + [1259] = "%.1f", -- WSO Right MPD Push Button 13 ( DEVICE_ID: 39 DCS_ID: 3073) + [1258] = "%.1f", -- WSO Right MPD Push Button 14 ( DEVICE_ID: 39 DCS_ID: 3074) + [1257] = "%.1f", -- WSO Right MPD Push Button 15 ( DEVICE_ID: 39 DCS_ID: 3075) + [1256] = "%.1f", -- WSO Right MPD Push Button 16 ( DEVICE_ID: 39 DCS_ID: 3076) + [1255] = "%.1f", -- WSO Right MPD Push Button 17 ( DEVICE_ID: 39 DCS_ID: 3077) + [1254] = "%.1f", -- WSO Right MPD Push Button 18 ( DEVICE_ID: 39 DCS_ID: 3078) + [1253] = "%.1f", -- WSO Right MPD Push Button 19 ( DEVICE_ID: 39 DCS_ID: 3079) + [1252] = "%.1f", -- WSO Right MPD Push Button 20 ( DEVICE_ID: 39 DCS_ID: 3080) + -- TEWS Control Panel + [1470] = "%.1f", -- WSO TEWS EWWS ON/OFF Switch ( DEVICE_ID: 59 DCS_ID: 3902) + [1471] = "%.1f", -- WSO TEWS EWWS TONE/DEFEAT Switch ( DEVICE_ID: 59 DCS_ID: 3903) + [1465] = "%.1f", -- WSO TEWS ICS ON/OFF Switch ( DEVICE_ID: 61 DCS_ID: 3921) + [1466] = "%.1f", -- WSO TEWS ICS SET 1 MAN/AUTO Switch ( DEVICE_ID: 61 DCS_ID: 3922) + [1467] = "%.1f", -- WSO TEWS ICS SET 2 MAN/AUTO Switch ( DEVICE_ID: 61 DCS_ID: 3923) + [1468] = "%.1f", -- WSO TEWS ICS SET 3 MAN/AUTO Switch ( DEVICE_ID: 61 DCS_ID: 3924) + [1469] = "%.1f", -- WSO TEWS RWR ON/OFF Switch ( DEVICE_ID: 59 DCS_ID: 3901) + -- Throttle Quadrant + [1403] = "%.1f", -- WSO Throttle Rudder Trim Switch ( DEVICE_ID: 18 DCS_ID: 3403) + [1431] = "%.1f", -- WSO Throttle Seat Adjust Switch ( DEVICE_ID: 24 DCS_ID: 3431) + [802] = "%.1f", -- WSO Throttle Seat Arm Handle ( DEVICE_ID: 24 DCS_ID: 3802) + -- TPOD Panel + [1414] = "%.1f", -- WSO TGP FLIR Gain ( DEVICE_ID: 54 DCS_ID: 3414) + [1415] = "%.1f", -- WSO TGP FLIR Level ( DEVICE_ID: 54 DCS_ID: 3415) + [1416] = "%.1f", -- WSO TGP Laser Switch SAFE/ARM ( DEVICE_ID: 54 DCS_ID: 3416) + [1413] = "%.1f", -- WSO TGP Power Switch OFF/STBY/ON ( DEVICE_ID: 54 DCS_ID: 3413) + -- UFC + [1293] = "%.1f", -- WSO UFC Push Button 1 ( DEVICE_ID: 57 DCS_ID: 3001) + [1294] = "%.1f", -- WSO UFC Push Button 2 ( DEVICE_ID: 57 DCS_ID: 3002) + [1295] = "%.1f", -- WSO UFC Push Button 3 ( DEVICE_ID: 57 DCS_ID: 3003) + [1296] = "%.1f", -- WSO UFC Push Button 4 ( DEVICE_ID: 57 DCS_ID: 3004) + [1297] = "%.1f", -- WSO UFC Push Button 5 ( DEVICE_ID: 57 DCS_ID: 3005) + [1298] = "%.1f", -- WSO UFC Push Button 10 ( DEVICE_ID: 57 DCS_ID: 3006) + [1299] = "%.1f", -- WSO UFC Push Button 9 ( DEVICE_ID: 57 DCS_ID: 3007) + [1300] = "%.1f", -- WSO UFC Push Button 8 ( DEVICE_ID: 57 DCS_ID: 3008) + [1301] = "%.1f", -- WSO UFC Push Button 7 ( DEVICE_ID: 57 DCS_ID: 3009) + [1302] = "%.1f", -- WSO UFC Push Button 6 ( DEVICE_ID: 57 DCS_ID: 3010) + [1303] = "%.1f", -- WSO Left UHF Preset Channel Selector ( DEVICE_ID: 57 DCS_ID: 3011) + [1304] = "%.1f", -- WSO Left UHF Preset Channel Switch ( DEVICE_ID: 57 DCS_ID: 3055) + [1305] = "%.1f", -- WSO Right UHF Preset Channel Selector ( DEVICE_ID: 57 DCS_ID: 3012) + [1306] = "%.1f", -- WSO Right UHF Preset Channel Switch ( DEVICE_ID: 57 DCS_ID: 3056) + [1307] = "%.1f", -- WSO UHF Radio 1 Volume ( DEVICE_ID: 57 DCS_ID: 3013) + [1308] = "%.1f", -- WSO UHF Radio 2 Volume ( DEVICE_ID: 57 DCS_ID: 3014) + [1309] = "%.1f", -- WSO UHF Radio 3 Volume ( DEVICE_ID: 57 DCS_ID: 3015) + [1310] = "%.1f", -- WSO UHF Radio 4 Volume ( DEVICE_ID: 57 DCS_ID: 3016) + [1311] = "%.1f", -- WSO UFC LCD Brightness ( DEVICE_ID: 57 DCS_ID: 3017) + [1312] = "%.1f", -- WSO UFC Emission Limit Button ( DEVICE_ID: 57 DCS_ID: 3018) + [1313] = "%.1f", -- WSO Left Guard Receiver - Channel/Manual Key ( DEVICE_ID: 57 DCS_ID: 3019) + [1314] = "%.1f", -- WSO A/1 Key ( DEVICE_ID: 57 DCS_ID: 3020) + [1315] = "%.1f", -- WSO N/2 Key ( DEVICE_ID: 57 DCS_ID: 3021) + [1316] = "%.1f", -- WSO B/3 Key ( DEVICE_ID: 57 DCS_ID: 3022) + [1317] = "%.1f", -- WSO Right Guard Receiver - Channel/Manual Key ( DEVICE_ID: 57 DCS_ID: 3023) + [1318] = "%.1f", -- WSO Mark Key ( DEVICE_ID: 57 DCS_ID: 3024) + [1319] = "%.1f", -- WSO W/4 Key ( DEVICE_ID: 57 DCS_ID: 3025) + [1320] = "%.1f", -- WSO M/5 Key ( DEVICE_ID: 57 DCS_ID: 3026) + [1321] = "%.1f", -- WSO E/6 Key ( DEVICE_ID: 57 DCS_ID: 3027) + [1322] = "%.1f", -- WSO I/P Key ( DEVICE_ID: 57 DCS_ID: 3028) + [1323] = "%.1f", -- WSO Decimal Point Key ( DEVICE_ID: 57 DCS_ID: 3029) + [1324] = "%.1f", -- WSO :/7 Key ( DEVICE_ID: 57 DCS_ID: 3030) + [1325] = "%.1f", -- WSO S/8 Key ( DEVICE_ID: 57 DCS_ID: 3031) + [1326] = "%.1f", -- WSO C/9 Key ( DEVICE_ID: 57 DCS_ID: 3032) + [1327] = "%.1f", -- WSO Shift Key ( DEVICE_ID: 57 DCS_ID: 3033) + [1328] = "%.1f", -- WSO A/P Key ( DEVICE_ID: 57 DCS_ID: 3034) + [1329] = "%.1f", -- WSO Clear Key ( DEVICE_ID: 57 DCS_ID: 3035) + [1330] = "%.1f", -- WSO -/0 Key ( DEVICE_ID: 57 DCS_ID: 3036) + [1331] = "%.1f", -- WSO Data Key ( DEVICE_ID: 57 DCS_ID: 3037) + [1332] = "%.1f", -- WSO Menu Key ( DEVICE_ID: 57 DCS_ID: 3038) + -- Volume + [1420] = "%.1f", -- WSO Caution Volume ( DEVICE_ID: 59 DCS_ID: 3510) + [1422] = "%.1f", -- WSO ICS Volume ( DEVICE_ID: 61 DCS_ID: 3512) + [1424] = "%.1f", -- WSO ILS Volume ( DEVICE_ID: 11 DCS_ID: 3514) + [1421] = "%.1f", -- WSO Launch Volume ( DEVICE_ID: 59 DCS_ID: 3511) + [1425] = "%.1f", -- WSO TACAN Volume ( DEVICE_ID: 10 DCS_ID: 3515) + [1423] = "%.1f", -- WSO WPN Volume ( DEVICE_ID: 44 DCS_ID: 3513) + + } +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +----------------------------- +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) -- Pointed to by ProcessIkarusDCSHighImportance + end +---------------------------- +-- LOW IMPORTANCE EXPORTS -- +---------------------------- +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) -- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance + --ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + -------------------------------------------------------------------------------------------------------------- + -- TEST DISPLAY + ExportScript.Tools.SendData(757575,"⚪⚫\n🟡🔴\n🟢❌") + + -- ADVANCED UFC IMPLEMENTATION v1 + if Norsk_UFC == "TRUE" then + PILOT_UFCa(ExportScript.Tools.getListIndicatorValue(9)) -- Updated 25/7/2023 + else + PILOT_UFC(ExportScript.Tools.getListIndicatorValue(9)) -- Updated 25/7/2023 + end + WSO_UFC(ExportScript.Tools.getListIndicatorValue(18)) -- Updated 25/7/2023 + -- COMBINED FUEL DISPLAY + ExportScript.Tools.SendData(83830,FUEL_display(mainPanelDevice,0)) -- NOTE EXPORT ID HAS CHANGED + -- INDIVIDUAL FUEL DATA + -- With Lables + ExportScript.Tools.SendData(7383,FUEL_display(mainPanelDevice,"INTL").."\nINTL") + ExportScript.Tools.SendData(7368,FUEL_display(mainPanelDevice,"TOTAL").."\nTOTAL") + ExportScript.Tools.SendData(7373,FUEL_display(mainPanelDevice,"LEFT").."\nLEFT") + ExportScript.Tools.SendData(7377,FUEL_display(mainPanelDevice,"RIGHT").."\nRIGHT") + ExportScript.Tools.SendData(7384,FUEL_display(mainPanelDevice,"BINGO").."\nBINGO") + -- No Labels + ExportScript.Tools.SendData(8383,FUEL_display(mainPanelDevice,"INTL")) + ExportScript.Tools.SendData(8368,FUEL_display(mainPanelDevice,"TOTAL")) + ExportScript.Tools.SendData(8373,FUEL_display(mainPanelDevice,"LEFT")) + ExportScript.Tools.SendData(8377,FUEL_display(mainPanelDevice,"RIGHT")) + ExportScript.Tools.SendData(8384,FUEL_display(mainPanelDevice,"BINGO")) + -- COMBINED ENGINE MANAGEMENT DISPLAY + ExportScript.Tools.SendData(81100,EMD_display(mainPanelDevice,0)) + -- INDIVIDUAL EMD DATA + -- With Lables + ExportScript.Tools.SendData(71102,EMD_display(mainPanelDevice,"RPM_L").."\nRPM_L") + ExportScript.Tools.SendData(71105,EMD_display(mainPanelDevice,"RPM_R").."\nRPM_R") + ExportScript.Tools.SendData(71109,EMD_display(mainPanelDevice,"TMP_L").."\nTMP_L") + ExportScript.Tools.SendData(71113,EMD_display(mainPanelDevice,"TMP_R").."\nTMP_R") + ExportScript.Tools.SendData(71118,EMD_display(mainPanelDevice,"FF_L").."\nFF_L") + ExportScript.Tools.SendData(71123,EMD_display(mainPanelDevice,"FF_R").."\nFF_R") + ExportScript.Tools.SendData(71130,EMD_display(mainPanelDevice,"NOZ_L").."\nNOZ_L") + ExportScript.Tools.SendData(71131,EMD_display(mainPanelDevice,"NOZ_R").."\nNOZ_R") + ExportScript.Tools.SendData(71126,EMD_display(mainPanelDevice,"OIL_L").."\nOIL_L") + ExportScript.Tools.SendData(71129,EMD_display(mainPanelDevice,"OIL_R").."\nOIL_R") + -- No Labels + ExportScript.Tools.SendData(81102,EMD_display(mainPanelDevice,"RPM_L")) + ExportScript.Tools.SendData(81105,EMD_display(mainPanelDevice,"RPM_R")) + ExportScript.Tools.SendData(81109,EMD_display(mainPanelDevice,"TMP_L")) + ExportScript.Tools.SendData(81113,EMD_display(mainPanelDevice,"TMP_R")) + ExportScript.Tools.SendData(81118,EMD_display(mainPanelDevice,"FF_L")) + ExportScript.Tools.SendData(81123,EMD_display(mainPanelDevice,"FF_R")) + ExportScript.Tools.SendData(81130,EMD_display(mainPanelDevice,"NOZ_L")) + ExportScript.Tools.SendData(81131,EMD_display(mainPanelDevice,"NOZ_R")) + ExportScript.Tools.SendData(81126,EMD_display(mainPanelDevice,"OIL_L")) + ExportScript.Tools.SendData(81129,EMD_display(mainPanelDevice,"OIL_R")) + -- GEAR & FLAP STATUS TILES + ExportScript.Tools.SendData(5022,GearTile(mainPanelDevice)) + ExportScript.Tools.SendData(5023,FlapTile(mainPanelDevice)) + -- BASIC HUD DATA DISPLAY v1 + ExportScript.Tools.SendData(6001,HUD_display(ExportScript.Tools.getListIndicatorValue(1),0)) -- Combined Speed & Alt Display + + ExportScript.Tools.SendData(6002,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"Speed")) + ExportScript.Tools.SendData(6003,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"AoA")) + + ExportScript.Tools.SendData(6004,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"AA")) -- AA Weapon Selected? + ExportScript.Tools.SendData(6005,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"Mach")) + ExportScript.Tools.SendData(6006,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"GMet")) + + ExportScript.Tools.SendData(6007,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"HDG")) -- Comanded NAV Tape Heading? + + ExportScript.Tools.SendData(6008,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"Alt")) + ExportScript.Tools.SendData(6009,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"VVI")) + + ExportScript.Tools.SendData(6010,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"NAV")) -- Combined Nav Block + ExportScript.Tools.SendData(6011,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"UPLEFT")) + ExportScript.Tools.SendData(6012,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"LOLEFT")) + ExportScript.Tools.SendData(6013,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"UPRIGHT")) + ExportScript.Tools.SendData(6014,HUD_display(ExportScript.Tools.getListIndicatorValue(1),"LORIGHT")) + ExportScript.Tools.SendData(6015,Aircraft_Data("HDG_MAG")) -- Added here but not related to HUD + -- BASIC RADIO Data - This basically shows the actual frequency of transmit as not easy to see on UFC when in preset mode + ExportScript.Tools.SendData(6501,RADIO_display("BOTH",1)) + ExportScript.Tools.SendData(6502,RADIO_display("CHAN",1)) + ExportScript.Tools.SendData(6503,RADIO_display("FREQ",1)) + ExportScript.Tools.SendData(6504,RADIO_display("BOTH",2)) + ExportScript.Tools.SendData(6505,RADIO_display("CHAN",2)) + ExportScript.Tools.SendData(6506,RADIO_display("FREQ",2)) + -- Oxygen PSI gauge export (6554) + ExportScript.Tools.SendData(6554,string.format("%1.0f", mainPanelDevice:get_argument_value(554) * 400) .. "\nPSI") + -- SpeedBrake + ExportScript.Tools.SendData(6579,Mech_Data("SPDBRK_Value")) + + end +-------------------------------------------------------------------------------------------------------------- +----------------------- +-- GENERAL FUNCTIONS -- +----------------------- +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + 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 + end + for index, value in ipairs(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 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 + else + 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 + else + return num + end + end +function nilToEmpty(value) -- Converts a nil string to an empty string "" + if value == nil then + value = '' + return value + else + return value + end + end +---------------------- +-- CUSTOM FUNCTIONS -- +---------------------- +function Aircraft_Data(Option) -- The standard LoMAC Aircraft data extracted and formatted + Pilot = LoGetPilotName() + --IAS = string.format("%1d",LoGetIndicatedAirSpeed()).."kts" + --TAS = string.format("%1d",LoGetTrueAirSpeed()).."kts" + --AS = "I "..string.format("%1d",LoGetIndicatedAirSpeed()).."kts\nT "..string.format("%1d",LoGetTrueAirSpeed()).."kts" + --Alt_ASL = string.format("%1d",LoGetAltitudeAboveSeaLevel()*3.28084) + --Alt_AGL = string.format("%1d",LoGetAltitudeAboveGroundLevel()) + --AoA = (LoGetAngleOfAttack()*57.2957795).." α" + --Mach = "M "..(string.format("%.2f",RoundTo(LoGetMachNumber(),2))) + HDG_MAG = string.format("%1d",LoGetMagneticYaw()*57.2957795).."°" + --HDG_TRU = string.format("%1d",((LoGetSelfData().Heading)*57.2957795)).."°" + --HDG = "HDG\n"..HDG_MAG.." M\n"..HDG_TRU.." SE" + --VVel = string.format("%1d",(LoGetVerticalVelocity()*3.28084)*60) + return _G[Option] + end +function Mech_Data(Option) -- The standard LoMAC Mech data extracted and formatted + mechanisationStatus = LoGetMechInfo() + --SPDBRK_Status = mechanisationStatus.speedbrakes.status + SPDBRK_Value = string.format("%1d",(mechanisationStatus.speedbrakes.value * 100)).."%" + return _G[Option] + end + +function FORMAT_UFC(Input) -- Re-Formats Data For Clear UFC Display v1 + Input = Input:gsub(":",".") + if string.sub(Input,1,1) == " " then Input = Input:sub(2) end -- remove leading space + --if string.sub(Input,string.len(Input),sting.len(input)) == " " then Input = string.sub(Input,1,string.len(Input)-1) end -- remove leading space + if (string.sub(Input,1,1) == "N" or string.sub(Input,1,1) == "S") + and string.sub(Input,2,2) ~= "T" and string.sub(Input,2,2) ~= "P" and string.sub(Input,2,2) ~= "-" and string.sub(Input,2,2) ~= "O" and string.sub(Input,2,2) ~= "Y" + and string.sub(Input,2,2) ~= "E" and string.sub(Input,2,2) ~= "B" and string.sub(Input,2,2) ~= "Q" then -- Check for Latitude + return string.sub(Input,1,1).." "..string.sub(Input,2,3).."°\n"..string.sub(Input,4,5)..".\n"..string.sub(Input,6,8) -- Format for Latitude + elseif (string.sub(Input,1,1) == "E" or string.sub(Input,1,1) == "W") and string.sub(Input,2,2) == " " then -- Check for Longitude + return string.sub(Input,1,4).."°\n"..string.sub(Input,5,6)..".\n"..string.sub(Input,7,9) -- Format for Longitude + elseif (string.sub(Input,(string.len(Input)-2),(string.len(Input))) == "-AM" or string.sub(Input,(string.len(Input)-2),(string.len(Input))) == "-FM" )and string.len(Input) > 7 then + return string.sub(Input,1,3).."\n."..string.sub(Input,4,6).."\n"..string.sub(Input,(string.len(Input)-1),(string.len(Input))) + elseif string.sub(Input,1,3) == "ILS" and string.len(Input) > 7 then return string.sub(Input,1,3).."\n"..string.sub(Input,5,7).."."..string.sub(Input,8,9) + --elseif string.sub(Input, 1,3)== "MV " then return Input:gsub(" ","\n") + elseif string.sub(Input,1,3) == "MV " then return string.sub(Input,1,2).."\n"..string.sub(Input,4,5).." "..string.sub(Input,(string.len(Input)-2),(string.len(Input))) + elseif string.sub(Input,1,3) == "N-F" or string.sub(Input,1,3) == "A/P" then return Input:gsub(" ","\n") -- check as this has lot's of break points and A/P is just annoying... + elseif string.sub(Input,1,3) == "R " then return Input:gsub(" ","\n") -- How much White space? + elseif (string.sub(Input,1,4) == "TIME" or string.sub(Input,1,4) == "ETE " or string.sub(Input,1,4) == "TOA " or string.sub(Input,1,4) == "ETA " or string.sub(Input,1,4) == "TOT ") and string.len(Input) > 9 then + return string.sub(Input:gsub(" "," "),1,4).."\n"..string.sub(Input,(string.len(Input)-7),(string.len(Input)-3)).."\n"..string.sub(Input,(string.len(Input)-1),(string.len(Input))) -- Time is avery long string.... + elseif string.len(Input) > 5 then -- Check the string is too long + Input = ((((((((Input:gsub(":",".")):gsub("'","")):gsub("PROGRAM","PROG")):gsub(" "," ")):gsub(" ","\n")):gsub("-","\n-")):gsub("/","\n/")):gsub("SQUELCH","SQL")):gsub("CIPHER","CPHR") -- then create new lines at logical points + if string.find(Input,"\n") ~= nil then return Input -- check if new lines have been created and return or + elseif string.len(Input) == 6 then return string.sub(Input,1,3).."\n"..string.sub(Input,4,6) + elseif string.len(Input) == 8 then return string.sub(Input,1,4).."\n"..string.sub(Input,5,8) + ----elseif string.len(Input) == 6 and string.sub(6,6) == "\'" then return Input + else return nilToEmpty(string.sub(Input,1,5)).."\n".. nilToEmpty(string.sub(Input,6,10)).."\n".. nilToEmpty(Input:sub(11)) -- then create new lines at fixed points if needed + end + else + 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") + elseif string.sub(Input,(string.len(Input)-3),(string.len(Input))) == "OFF " then return string.sub(Input,1,(string.len(Input)-1)):gsub(" ","\n") + -- Match L & R Data Fields + elseif string.sub(Input,(string.len(Input)),(string.len(Input))) == "*" then Input = "*".. string.sub(Input,1,(string.len(Input)-1)) + elseif string.sub(Input,(string.len(Input)),(string.len(Input))) == " " then Input = " "..string.sub(Input,1,(string.len(Input)-1))end + -- 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) + if Len <=5 then + return Input + elseif Len <=8 then + return string.sub(Input,1,3).."\n"..string.sub(Input,4,Len) + elseif Len <=10 then + return string.sub(Input,1,3).."\n"..string.sub(Input,4,6).."\n"..string.sub(Input,7,Len) + else + 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") + else + -- LEFT SIDE DESCENDING FROM THE TOP + ExportScript.Tools.SendData(82001,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_01))) + ExportScript.Tools.SendData(82002,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_02))) + ExportScript.Tools.SendData(82003,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_03))) + ExportScript.Tools.SendData(82004,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_04))) + -- RADIO + ExportScript.Tools.SendData(82005,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_05))) -- Radio Freq + 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(82014,FORMAT_SCRATCH(nilToEmpty(UFC_PILOT.UFC_CC_04))) -- SCRATCHPAD + + -- RIGHT SIDE SIDE DESCENDING FROM THE TOP + ExportScript.Tools.SendData(82021,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_12))) + ExportScript.Tools.SendData(82022,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_11))) + ExportScript.Tools.SendData(82023,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_10))) + ExportScript.Tools.SendData(82024,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_09))) + -- RADIO + ExportScript.Tools.SendData(82025,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_08))) -- Radio Freq + 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") + else + -- LEFT SIDE DESCENDING FROM THE TOP + ExportScript.Tools.SendData(82001,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_01))) + ExportScript.Tools.SendData(82002,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_02))) + ExportScript.Tools.SendData(82003,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_03))) + ExportScript.Tools.SendData(82004,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_04))) + -- RADIO + ExportScript.Tools.SendData(82005,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_05))) -- Radio Freq + ExportScript.Tools.SendData(82006,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_06))) -- Radio Channel + + -- RIGHT SIDE SIDE DESCENDING FROM THE TOP + ExportScript.Tools.SendData(82012,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_12))) + ExportScript.Tools.SendData(82011,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_11))) + ExportScript.Tools.SendData(82010,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_10))) + ExportScript.Tools.SendData(82009,FORMAT_UFC(nilToEmpty(UFC_PILOT.UFC_SC_09))) + -- RADIO + ExportScript.Tools.SendData(82008,FORMAT_UFCRAD(nilToEmpty(UFC_PILOT.UFC_SC_08))) -- Radio Freq + 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(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") + else + -- LEFT SIDE DESCENDING FROM THE TOP + ExportScript.Tools.SendData(82031,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_01))) + ExportScript.Tools.SendData(82032,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_02))) + ExportScript.Tools.SendData(82033,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_03))) + ExportScript.Tools.SendData(82034,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_04))) + -- RADIO + 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(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))) + ExportScript.Tools.SendData(82052,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_11))) + ExportScript.Tools.SendData(82053,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_10))) + ExportScript.Tools.SendData(82054,FORMAT_UFC(nilToEmpty(UFC_WSO.UFC_SC_09))) + -- RADIO + ExportScript.Tools.SendData(82055,FORMAT_UFCRAD(nilToEmpty(UFC_WSO.UFC_SC_08))) -- Radio Freq + 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 + -- Convert the raw data and set as variables + OFF = string.format("%1d",Data:get_argument_value(382)) + INTL = string.format("%1d",Data:get_argument_value(383)*20000) + BINGO = string.format("%1d",(Data:get_argument_value(384)/0.0714285)*1000) + TOTAL = (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(368))))*100000)+ + (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(369))))*10000)+ + (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(370))))*1000) + LEFT = (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(373))))*10000)+ + (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(374))))*1000) + RIGHT = (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(377))))*10000)+ + (string.format("%.1f",OneToZero(RoundDP(Data:get_argument_value(378))))*1000) + -- Extend roller displays with leading zeros + if string.len(TOTAL) < 5 then + repeat + TOTAL = "0"..TOTAL + until string.len(TOTAL) == 5 + end + if string.len(LEFT) < 4 then + repeat + LEFT = "0"..LEFT + until string.len(LEFT) == 4 + end + if string.len(RIGHT) < 4 then + repeat + RIGHT = "0"..RIGHT + until string.len(RIGHT) == 4 + end + -- Publish the Data + if Option == 0 then -- Send all Data to single string + if OFF == "0" then return "OFF" + else + return INTL.."\n".. + "INTL\n".. + TOTAL.."\n".. + "TOTAL LBS".."\n".. + " LEFT RIGHT".."\n".. + LEFT.." "..RIGHT.."\n".. + "BINGO "..BINGO + end + else -- Just return the requested field + 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 + RPM_L = (string.format("%.1f",OneToZero(Data:get_argument_value(1102)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1101)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1100)))*10) + RPM_R = (string.format("%.1f",OneToZero(Data:get_argument_value(1105)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1104)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1103)))*10) + TMP_L = (string.format("%.1f",OneToZero(Data:get_argument_value(1109)))*10000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1108)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1107)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1106)))*10) + TMP_R = (string.format("%.1f",OneToZero(Data:get_argument_value(1113)))*10000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1112)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1111)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1110)))*10) + FF_L = (string.format("%.1f",OneToZero(Data:get_argument_value(1118)))*100000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1117)))*10000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1116)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1115)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1114)))*10) + FF_R = (string.format("%.1f",OneToZero(Data:get_argument_value(1123)))*100000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1122)))*10000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1121)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1120)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1119)))*10) + NOZ_L = string.format("%1d",Data:get_argument_value(1130)*100) + NOZ_R = string.format("%1d",Data:get_argument_value(1131)*100) + OIL_L = (string.format("%.1f",OneToZero(Data:get_argument_value(1126)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1125)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1124)))*10) + OIL_R = (string.format("%.1f",OneToZero(Data:get_argument_value(1129)))*1000)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1128)))*100)+ + (string.format("%.1f",OneToZero(Data:get_argument_value(1127)))*10) + if Option == 0 then + return RPM_L.." RPM "..RPM_R.."\n" + ..TMP_L.." TMP "..TMP_R.."\n" + ..FF_L.." FF "..FF_R.."\n" + ..NOZ_L.." NOZ "..NOZ_R.."\n" + ..OIL_L.." OIL "..OIL_R + else + 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" + else + -- Set No Data State for Variables + Speed = '❌ kts' + AoA = 'α ❌' + Mach = 'm ❌' + GMet = 'G ❌' + AA = '' + Alt = '❌ ft' + VVI = '❌ fpm' + HDG = '❌°' + Nav1 = '❌' + Nav2 = '' + Nav3 = '' + Nav4 = '' + Nav5 = '' + Nav6 = '' + -- Update Variables based on data output, converting as needed for blank strings etc. + if Data.Window01 ~= nil and Data.Window01 ~= "" then Speed = Data.Window01.." kts" end + if Data.Window02 ~= nil then AoA = "α "..Data.Window02 end + if string.len(nilToEmpty(Data.Window05):gsub(" ","")) ~= 0 then AA = Data.Window05 end + if string.len(nilToEmpty(Data.Window06):gsub(" ","")) ~= 0 then Mach = "m "..Data.Window06 end + if string.len(nilToEmpty(Data.Window07):gsub(" ","")) ~= 0 then GMet = Data.Window07 end + if Data.Window13_Low == "" and Data.Window13_High ~= nil then Alt = Data.Window13_High:gsub(" ","").." ft" + elseif Data.Window13_Low ~= nil and Data.Window13_High ~= nil then Alt = Data.Window13_High:gsub(" ","")..","..Data.Window13_Low.."ft" end + if string.len((nilToEmpty(Data.Window14):gsub("VV","")):gsub(" ","")) ~= 0 then VVI = (Data.Window14:gsub(" ","")):gsub("VV","").." fpm" end + if Data.cmd_hdg ~= nil then HDG = Data.cmd_hdg.."°" end + if Data.Window17 ~= nil then Nav1 = Data.Window17:gsub(":",".") end + if Data.Window18 ~= nil then Nav2 = Data.Window18:gsub(":",".") end + if Data.Window19 ~= nil then Nav3 = Data.Window19:gsub(":",".") end + if Data.Window20 ~= nil then Nav4 = Data.Window20:gsub(":",".") end + if Data.Window21 ~= nil then Nav5 = Data.Window21:gsub(":",".") end + if Data.Window22 ~= nil then Nav6 = Data.Window22:gsub(":",".") end + -- Check what dat ais being requested and return it + if Option == 0 then + return Speed.."\n"..Alt + elseif Option == "NAV" then + if string.len(Nav1) ~= 0 then Nav1 = Nav1.."\n" end + if string.len(Nav2) ~= 0 then Nav2 = Nav2.."\n" end + if string.len(Nav3) ~= 0 then Nav3 = Nav3.."\n" end + if string.len(Nav4) ~= 0 then Nav4 = Nav4.."\n" end + if string.len(Nav5) ~= 0 then Nav5 = Nav5.."\n" end + return Nav1..Nav2..Nav3..Nav4..Nav5 + elseif Option == "FLT" then + return Mach.."\n"..GMet + elseif Option == "UPLEFT" then + return Speed.."\n"..AoA + elseif Option == "LOLEFT" then + return AA.."\n"..Mach.."\n"..GMet + elseif Option == "UPRIGHT" then + return Alt.."\n"..VVI + elseif Option == "LORIGHT" then + if string.len(Nav1) ~= 0 then Nav1 = Nav1.."\n" end + if string.len(Nav2) ~= 0 then Nav2 = Nav2.."\n" end + if string.len(Nav3) ~= 0 then Nav3 = Nav3.."\n" end + if string.len(Nav4) ~= 0 then Nav4 = Nav4.."\n" end + if string.len(Nav5) ~= 0 then Nav5 = Nav5.."\n" end + return Nav1..Nav2..Nav3..Nav4..Nav5..Nav6 + else + return _G[Option] + end + end + end +function RADIO_display(Option,Radio) + -- Set Raw Data Into variables + r1_chan = nilToEmpty(ExportScript.Tools.getListIndicatorValue(8).UFC_SC_06) + r1_freq = ExportScript.Tools.RoundFreqeuncy(GetDevice(7):get_frequency()) --string.format("%1d",(GetDevice(7):get_frequency())/1000) + r1_ufc_freq = nilToEmpty(ExportScript.Tools.getListIndicatorValue(8).UFC_SC_05) + r2_chan = nilToEmpty(ExportScript.Tools.getListIndicatorValue(8).UFC_SC_07) + r2_freq = ExportScript.Tools.RoundFreqeuncy(GetDevice(8):get_frequency()) --string.format("%1d",(GetDevice(8):get_frequency())/1000) + r2_ufc_freq = nilToEmpty(ExportScript.Tools.getListIndicatorValue(8).UFC_SC_08) + -- Convert to Return Values + CHAN = "" + FREQ = "" + BOTH = "" + -- Return correct data based on Channel or Manual selected in UFC + if Radio == 1 then + if string.sub(r1_chan,1,1) == "*" then + CHAN = r1_chan:gsub("*","") + FREQ = string.sub(r1_freq,1,3).."\n."..string.sub(r1_freq,4,6) + BOTH = CHAN.."\n"..FREQ + else + CHAN = "MAN" + FREQ = string.sub(r1_ufc_freq,3,5).."\n."..string.sub(r1_ufc_freq,6,8) + BOTH = CHAN.."\n"..FREQ + end + elseif Radio == 2 then + if string.sub(r2_chan,string.len(r2_chan),string.len(r2_chan)) == "*" then + CHAN = r2_chan:gsub("*","") + FREQ = string.sub(r2_freq,1,3).."\n."..string.sub(r2_freq,4,6) + BOTH = CHAN.."\n"..FREQ + else + CHAN = "MAN" + FREQ = string.sub(r2_ufc_freq,2,4).."\n."..string.sub(r2_ufc_freq,5,7) + BOTH = CHAN.."\n"..FREQ + end + else + CHAN = "R NOT\nKNOWN" + FREQ = "No\nRAD" + BOTH = CHAN + 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 + -- 🟡 yellow + -- 🔴 red + -- 🟢 green + -- 🔵 blue + -- 🟠 orange + + -- init as black because it represents the lights as off + local noseCircle = '⚫' + local leftCircle = '⚫' + local rightCircle = '⚫' + local handleCircle = '⚫' + + if mainPanelDevice:get_argument_value(330) > 0 then + noseCircle = '🔴' + if mainPanelDevice:get_argument_value(330) > 0.61 then + noseCircle = '🟢' + end + end + + if mainPanelDevice:get_argument_value(331) > 0 then + leftCircle = '🔴' + if mainPanelDevice:get_argument_value(331) > 0.61 then + leftCircle = '🟢' + end + end + + if mainPanelDevice:get_argument_value(332) > 0 then + rightCircle = '🔴' + if mainPanelDevice:get_argument_value(332) > 0.61 then + rightCircle = '🟢' + end + end + + if mainPanelDevice:get_argument_value(333) > 0.51 then + handleCircle = '🔴' + end + + -- the position of the gear handle itself determines where the text will display + if mainPanelDevice:get_argument_value(324) > 0.5 then + return noseCircle .. '\n' .. leftCircle .. rightCircle .. '\n' .. handleCircle .. '\nGEAR' + else + 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 = '⚫' + local flapGreen = '⚫' + + if mainPanelDevice:get_argument_value(338) > 0.1 then + flapOrange = '🟠' + end + + if mainPanelDevice:get_argument_value(339) > 0.1 then + flapGreen = '🟢' + end + -- The position of the switch determines where the text is + if mainPanelDevice:get_argument_value(459) > 0.5 then -- position of flap handle + return flapOrange .. '\n' .. flapGreen .. '\nFLAP' + else + return 'FLAP\n' .. flapOrange .. '\n' .. flapGreen + end + end +---------------- +-- NOT IN USE -- +---------------- +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + end +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + end +-- ⚪ white +-- ⚫ black +-- 🟡 yellow +-- 🔴 red +-- 🟢 green +-- 🔵 blue +-- 🟠 orang +-- '❌' +-- '✅' + +-- Created by Trigati...but based on the excellent work of others! + + diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-16C_50.lua b/Scripts/DCS-ExportScript/ExportsModules/F-16C_50.lua new file mode 100644 index 00000000..06d9f46c --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-16C_50.lua @@ -0,0 +1,2143 @@ +-- F-16C Block 50 +-- https://github.com/asherao/DCS-ExportScripts +-- DCS mike is experemental + +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info + +ExportScript.FoundDCSModule = true +ExportScript.Version.F16C_Viper = "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 + ]] + + -- Lamps + [630]= "%.1f", -- ( CautionLights.FLCS_FAULT) + [631]= "%.1f", -- ( CautionLights.ENGINE_FAULT) + [632]= "%.1f", -- ( CautionLights.AVIONICS_FAULT) + [633]= "%.1f", -- ( CautionLights.SEAT_NOT_ARMED) + [634]= "%.1f", -- ( CautionLights.ELEC_SYS) + [635]= "%.1f", -- ( CautionLights.SEC) + [636]= "%.1f", -- ( CautionLights.EQUIP_HOT) + [637]= "%.1f", -- ( CautionLights.NWS_FAIL) + [638]= "%.1f", -- ( CautionLights.PROBE_HEAT) + [639]= "%.1f", -- ( CautionLights.FUEL_OIL_HOT) + [640]= "%.1f", -- ( CautionLights.RADAR_ALT) + [641]= "%.1f", -- ( CautionLights.ANTI_SKID) + [642]= "%.1f", -- ( CautionLights.CADC) + [643]= "%.1f", -- ( CautionLights.INLET_ICING) + [644]= "%.1f", -- ( CautionLights.IFF) + [645]= "%.1f", -- ( CautionLights.HOOK) + [646]= "%.1f", -- ( CautionLights.STORES_CONFIG) + [647]= "%.1f", -- ( CautionLights.OVERHEAT) + [648]= "%.1f", -- ( CautionLights.NUCLEAR) + [649]= "%.1f", -- ( CautionLights.OBOGS) + [650]= "%.1f", -- ( CautionLights.ATF_NOT_ENGAGED) + [651]= "%.1f", -- ( CautionLights.EEC) + [652]= "%.1f", -- ( CautionLights.LIGHTS_MAX) + [653]= "%.1f", -- ( CautionLights.CABIN_PRESS) + [654]= "%.1f", -- ( CautionLights.FWD_FUEL_LOW) + [655]= "%.1f", -- ( CautionLights.BUC) + [656]= "%.1f", -- ( CautionLights.LIGHTS_MAX) + [657]= "%.1f", -- ( CautionLights.LIGHTS_MAX) + [658]= "%.1f", -- ( CautionLights.AFT_FUEL_LOW) + [659]= "%.1f", -- ( CautionLights.LIGHTS_MAX) + [660]= "%.1f", -- ( CautionLights.LIGHTS_MAX) + [661]= "%.1f", -- ( CautionLights.LIGHTS_MAX) + -- Edge of glareshield + [117]= "%.1f", -- ( CautionLights.MASTER_CAUTION) + [121]= "%.1f", -- ( CautionLights.TF_FAIL) + [126]= "%.1f", -- ( CautionLights.ENG_FIRE) + [127]= "%.1f", -- ( CautionLights.ENGINE) + [129]= "%.1f", -- ( CautionLights.HYD_OIL_PRESS) + [130]= "%.1f", -- ( CautionLights.FLCS) + [131]= "%.1f", -- ( CautionLights.DBU_ON) + [133]= "%.1f", -- ( CautionLights.TO_LDG_CONFIG) + [134]= "%.1f", -- ( CautionLights.CANOPY) + [135]= "%.1f", -- ( CautionLights.OXY_LOW) + -- AOA Indexer + [110]= "%.1f", -- ( CautionLights.AOA_RED) + [111]= "%.1f", -- ( CautionLights.AOA_GREEN) + [112]= "%.1f", -- ( CautionLights.AOA_YELLOW) + -- LG Control Panel + [350]= "%.1f", -- ( CautionLights.GEAR_NOSE) + [351]= "%.1f", -- ( CautionLights.GEAR_LEFT) + [352]= "%.1f", -- ( CautionLights.GEAR_RIGHT) + [369]= "%.1f", -- ( CautionLights.GEAR_WARNING) + [113]= "%.1f", -- ( CautionLights.RDY) + [114]= "%.1f", -- ( CautionLights.AR_NWS) + [115]= "%.1f", -- ( CautionLights.DISC) + [157]= "%.1f", -- ( CautionLights.MARKER_BEACON) + -- Eng Control Panel + [446]= "%.1f", -- ( CautionLights.JFS_RUN) + ------ECM Lamps + [102]= "%.1f", -- ECM Light + + [460]= "%.1f", -- BTN 1 + [461]= "%.1f", -- BTN 1S + [462]= "%.1f", -- BTN 1A + [463]= "%.1f", -- BTN 1F + [464]= "%.1f", -- BTN 1T + + [465]= "%.1f", -- BTN 2 + [466]= "%.1f", -- Btn_2_S + [467]= "%.1f", -- Btn_2_A + [468]= "%.1f", -- Btn_2_F + [469]= "%.1f", -- Btn_2_T + + [470]= "%.1f", -- Btn_3 + [471]= "%.1f", -- Btn_3_S + [472]= "%.1f", -- Btn_3_A + [473]= "%.1f", -- Btn_3_F + [474]= "%.1f", -- Btn_3_T + + [475]= "%.1f", -- Btn_4 + [476]= "%.1f", -- Btn_4_S + [477]= "%.1f", -- Btn_4_A + [478]= "%.1f", -- Btn_4_F + [479]= "%.1f", -- Btn_4_T + + [480]= "%.1f", -- Btn_5 + [481]= "%.1f", -- Btn_5_S + [482]= "%.1f", -- Btn_5_A + [483]= "%.1f", -- Btn_5_F + [484]= "%.1f", -- Btn_5_T + + [485]= "%.1f", -- Btn_6 + [486]= "%.1f", -- Btn_6_S + [487]= "%.1f", -- Btn_6_A + [488]= "%.1f", -- Btn_6_F + [489]= "%.1f", -- Btn_6_T + + [490]= "%.1f", -- Btn_FRM + [491]= "%.1f", -- Btn_FRM_S + [492]= "%.1f", -- Btn_FRM_A + [493]= "%.1f", -- Btn_FRM_F + [494]= "%.1f", -- Btn_FRM_T + + [495]= "%.1f", -- Btn_SPL + [496]= "%.1f", -- Btn_SPL_S + [497]= "%.1f", -- Btn_SPL_A + [498]= "%.1f", -- Btn_SPL_F + [499]= "%.1f", -- Btn_SPL_T + + -- EPU Control Panel + [524]= "%.1f", -- ( CautionLights.HYDRAZN) + [523]= "%.1f", -- ( CautionLights.AIR) + [526]= "%.1f", -- ( CautionLights.EPU) + -- Elec Control Panel + [513]= "%.1f", -- ( CautionLights.FLCS_PMG) + [512]= "%.1f", -- ( CautionLights.MAIN_GEN) + [515]= "%.1f", -- ( CautionLights.STBY_GEN) + [517]= "%.1f", -- ( CautionLights.EPU_GEN) + [516]= "%.1f", -- ( CautionLights.EPU_PMG) + [519]= "%.1f", -- ( CautionLights.TO_FLCS) + [518]= "%.1f", -- ( CautionLights.FLCS_RLY) + [521]= "%.1f", -- ( CautionLights.ACFT_BATT_FAIL) + -- Advance Mode Switch + [106]= "%.1f", -- ( CautionLights.ACTIVE) + [107]= "%.1f", -- ( CautionLights.STBY) + -- FLCP + [570]= "%.1f", -- ( CautionLights.FL_RUN) + [571]= "%.1f", -- ( CautionLights.FL_FAIL) + -- Test Switch Panel + [581]= "%.1f", -- ( CautionLights.FLCS_PWR_A) + [582]= "%.1f", -- ( CautionLights.FLCS_PWR_B) + [583]= "%.1f", -- ( CautionLights.FLCS_PWR_C) + [584]= "%.1f", -- ( CautionLights.FLCS_PWR_D) + -- RWR + [396]= "%.1f", -- ( RWRLights.SEARCH) + [398]= "%.1f", -- ( RWRLights.ACTIVITY) + [423]= "%.1f", -- ( RWRLights.ACT_POWER) + [400]= "%.1f", -- ( RWRLights.ALT_LOW) + [424]= "%.1f", -- ( RWRLights.ALT) + [402]= "%.1f", -- ( RWRLights.POWER) + [142]= "%.1f", -- ( RWRLights.HANDOFF_UP) + [136]= "%.1f", -- ( RWRLights.HANDOFF_H) + [144]= "%.1f", -- ( RWRLights.MSL_LAUNCH) + [146]= "%.f", -- ( RWRLights.MODE_PRI) + [137]= "%.1f", -- ( RWRLights.MODE_OPEN) + [148]= "%.1f", -- ( RWRLights.SHIP_U) + [148]= "%.1f", -- ( RWRLights.SHIP_UNKNOWN) + [150]= "%.1f", -- ( RWRLights.SYSTEST_ON) + [150]= "%.1f", -- ( RWRLights.SYSTEST) + [152]= "%.1f", -- ( RWRLights.TGTSEP_UP) + [138]= "%.1f", -- ( RWRLights.TGTSEP_DOWN) + + ------AGGIUNTI DA PVI_EAGLE + + [88]= "%.1f", -- ( FuelFlowCounter_10k) + [89]= "%.1f", -- ( FuelFlowCounter_1k) + [90]= "%.1f", -- ( FuelFlowCounter_100) + [730]= "%.1f", -- ( FuelTotalizer_10k) + [731]= "%.1f", -- ( FuelTotalizer_1k) + [732]= "%.1f", -- ( FuelTotalizer_100) + [363]= "%.1f", -- ( SpeedBrake_Indicator) + + [15] = "%.3f", -- AOA Indicator + [16] = "%.3f", -- VVI Indicator (Vertical Velocity) + [47] = "%.3f", -- VNE Max Speed Needle + [48] = "%.3f", -- Airspeed Indicator (knots) + [49] = "%.3f", -- Airspeed Indicator (mach) + [51] = "%.3f", -- Barometric Altitude Needle + [52] = "%.3f", -- Barometric Altitude Window 1 + [53] = "%.3f", -- Barometric Altitude Window 2 + [54] = "%.3f", -- Barometric Altitude Window 3 + [56] = "%.3f", -- Barometric Setting Kollsman Window 1 + [57] = "%.3f", -- Barometric Setting Kollsman Window 2 + [58] = "%.3f", -- Barometric Setting Kollsman Window 3 + [59] = "%.3f", -- Barometric Setting Kollsman Window 4 + +} + + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + [62] = "%1d", --PTR-ALT-LVR-SET-62, Barometric Setting Knob, Barometric Setting Knob, , , (0, 0, 1) + [60] = "%1d", --PTR-ALT-TMB-MODE-60, Mode Lever, Mode Lever, , ELEC/OFF/PNEU, (1, 0, 1) + -- ADI(50) + [22] = "%1d", --PTR-ADI-LVR-KNOB-22, Pitch Trim Knob, Pitch Trim Knob, , , (0, 0, 1) + -- AMI(46) + [71] = "%1d", --PTR-SPD-LVR-SET-71, SET INDEX Knob, SET INDEX Knob, , , (0, 0, 1) + -- CLOCK(51) + [626] = "%1d", --PTR-SNSR-TMB-RDR-674, Clock Winding and Setting Knob, Clock Winding and Setting Knob, , , (1, 0, 1) + [628] = "%1d", --PTR-RPAN-WATCH-BTN-CTRL-627, Clock Elapsed Time Knob, Clock Elapsed Time Knob, , , (1, 0, 1) + [625] = "%.2f", --PTR-SNSR-TMB-RDR-674, Clock Winding and Setting Knob, Clock Winding and Setting Knob, , , (0.04, 0, 1) + -- CMDS(32) + [375] = "%1d", --PTR-LPAN-CMDS-TMB-RWR-375, RWR 555 Switch, RWR 555 Switch, , ON/OFF, (-1, 0, 1) + [374] = "%1d", --PTR-LPAN-CMDS-TMB-JMR-374, JMR Source Switch, JMR Source Switch, , ON/OFF, (-1, 0, 1) + [373] = "%1d", --PTR-LPAN-CMDS-TMB-MWS-373, MWS Source Switch, MWS Source Switch, , ON/OFF (no function), (-1, 0, 1) + [371] = "%1d", --PTR-LPAN-CMDS-TMB-JTSN-371, Jettison Switch, Jettison Switch, , JETT/OFF, (-1, 0, 1) + [365] = "%1d", --PTR-LPAN-CMDS-BTN-OSB1-365, O1 Expendable Category Switch, O1 Expendable Category Switch, , ON/OFF, (-1, 0, 1) + [366] = "%1d", --PTR-LPAN-CMDS-BTN-OSB2-366, O2 Expendable Category Switch, O2 Expendable Category Switch, , ON/OFF, (-1, 0, 1) + [367] = "%1d", --PTR-LPAN-CMDS-BTN-OSB3-367, CH Expendable Category Switch, CH Expendable Category Switch, , ON/OFF, (-1, 0, 1) + [368] = "%1d", --PTR-LPAN-CMDS-BTN-OSB4-368, FL Expendable Category Switch, FL Expendable Category Switch, , ON/OFF, (-1, 0, 1) + [375] = "%1d", --PTR-LPAN-CMDS-TMB-RWR-375, RWR 555 Switch, RWR 555 Switch, , ON/OFF, (1, 0, 1) + [374] = "%1d", --PTR-LPAN-CMDS-TMB-JMR-374, JMR Source Switch, JMR Source Switch, , ON/OFF, (1, 0, 1) + [373] = "%1d", --PTR-LPAN-CMDS-TMB-MWS-373, MWS Source Switch, MWS Source Switch, , ON/OFF (no function), (1, 0, 1) + [371] = "%1d", --PTR-LPAN-CMDS-TMB-JTSN-371, Jettison Switch, Jettison Switch, , JETT/OFF, (1, 0, 1) + [365] = "%1d", --PTR-LPAN-CMDS-BTN-OSB1-365, O1 Expendable Category Switch, O1 Expendable Category Switch, , ON/OFF, (1, 0, 1) + [366] = "%1d", --PTR-LPAN-CMDS-BTN-OSB2-366, O2 Expendable Category Switch, O2 Expendable Category Switch, , ON/OFF, (1, 0, 1) + [367] = "%1d", --PTR-LPAN-CMDS-BTN-OSB3-367, CH Expendable Category Switch, CH Expendable Category Switch, , ON/OFF, (1, 0, 1) + [368] = "%1d", --PTR-LPAN-CMDS-BTN-OSB4-368, FL Expendable Category Switch, FL Expendable Category Switch, , ON/OFF, (1, 0, 1) + [604] = "%1d", --PTR-LSIDE-BTN-CHAFF-604, CHAFF/FLARE Dispense Button - Push to dispense, CHAFF/FLARE Dispense Button - Push to dispense, , , (1, 0, 1) + [377] = "%.1f", --PTR-LPAN-CMDS-LVR-PRGM-377, PROGRAM Knob, PROGRAM Knob, , BIT/1/2/3/4, (0.1, 0, 0.4) + [378] = "%.1f", --PTR-LPAN-CMDS-LVR-MODE-378, MODE Knob, MODE Knob, , OFF/STBY/MAN/SEMI/AUTO/BYP, (0.1, 0, 0.5) + [377] = "%.1f", --PTR-LPAN-CMDS-LVR-PRGM-377, PROGRAM Knob, PROGRAM Knob, , BIT/1/2/3/4, (-0.1, 0, 0.4) + [378] = "%.1f", --PTR-LPAN-CMDS-LVR-MODE-378, MODE Knob, MODE Knob, , OFF/STBY/MAN/SEMI/AUTO/BYP, (-0.1, 0, 0.5) + -- CONTROL_INTERFACE(2) + [566] = "%1d", --PTR-FLTCP-TMB-DIGITAL-566, DIGITAL BACKUP Switch, DIGITAL BACKUP Switch, , OFF/BACKUP, (-1, 0, 1) + [567] = "%1d", --PTR-FLTCP-TMB-AFLP-567, ALT FLAPS Switch, ALT FLAPS Switch, , NORM/EXTEND, (-1, 0, 1) + [572] = "%1d", --PTR-FLTCP-TMB-LEFLP-572, LE FLAPS Switch, LE FLAPS Switch, , AUTO/LOCK, (-1, 0, 1) + [564] = "%1d", --PTR-MANTRIM-TMB-MODE-564, TRIM/AP DISC Switch, TRIM/AP DISC Switch, , DISC/NORM, (-1, 0, 1) + [358] = "%1d", --PTR-LGCP-TMB-STCONF-358, STORES CONFIG Switch, STORES CONFIG Switch, , CAT III/CAT I, (-1, 0, 1) + [109] = "%1d", --PTR-CLCP-TMB-PITCH-109, Autopilot PITCH Switch, Autopilot PITCH Switch, , ATT HOLD/ A/P OFF/ ALT HOLD, (-1, -1, 0) + [108] = "%1d", --PTR-CLCP-TMB-ROLL-108, Autopilot ROLL Switch, Autopilot ROLL Switch, , STRG SEL/ATT HOLD/HDG SEL, (-1, -1, 1) + [97] = "%1d", --PTR-CLCP-BTN-ADV-97, ADV MODE Switch, ADV MODE Switch, , , (-1, 0, 1) + [568] = "%1d", --PTR-FLTCP-TMB-MAN-568, MANUAL TF FLYUP Switch, MANUAL TF FLYUP Switch, , ENABLE/DISABLE, (-1, 0, 1) + [560] = "%1d", --PTR-MANTRIM-LVR-ROLL-560, ROLL TRIM Wheel, ROLL TRIM Wheel, , , (0, -1, 1) + [562] = "%1d", --PTR-MANTRIM-LVR-PITCH-562, PITCH TRIM Wheel, PITCH TRIM Wheel, , , (0, -1, 1) + [565] = "%1d", --PTR-MANTRIM-LVR-YAW-565, YAW TRIM Knob, YAW TRIM Knob, , , (0, -1, 1) + [566] = "%1d", --PTR-FLTCP-TMB-DIGITAL-566, DIGITAL BACKUP Switch, DIGITAL BACKUP Switch, , OFF/BACKUP, (1, 0, 1) + [567] = "%1d", --PTR-FLTCP-TMB-AFLP-567, ALT FLAPS Switch, ALT FLAPS Switch, , NORM/EXTEND, (1, 0, 1) + [574] = "%1d", --PTR-FLTCP-TMB-BIT-574, BIT Switch, BIT Switch, , OFF/BIT, (1, 0, 1) + [574] = "%1d", --PTR-FLTCP-TMB-BIT-574, BIT Switch, BIT Switch, , OFF/BIT, (1, 0, 1) + [573] = "%1d", --PTR-FLTCP-TMB-FLCS-573, FLCS RESET Switch, FLCS RESET Switch, , OFF/RESET, (1, 0, 1) + [573] = "%1d", --PTR-FLTCP-TMB-FLCS-573, FLCS RESET Switch, FLCS RESET Switch, , OFF/RESET, (1, 0, 1) + [572] = "%1d", --PTR-FLTCP-TMB-LEFLP-572, LE FLAPS Switch, LE FLAPS Switch, , AUTO/LOCK, (1, 0, 1) + [564] = "%1d", --PTR-MANTRIM-TMB-MODE-564, TRIM/AP DISC Switch, TRIM/AP DISC Switch, , DISC/NORM, (1, 0, 1) + [425] = "%1d", --PTR-MPCP-TMB-MP-425, MANUAL PITCH Override Switch, MANUAL PITCH Override Switch, , OVRD/NORM, (1, 0, 1) + [425] = "%1d", --PTR-MPCP-TMB-MP-425, MANUAL PITCH Override Switch, MANUAL PITCH Override Switch, , OVRD/NORM, (1, 0, 1) + [358] = "%1d", --PTR-LGCP-TMB-STCONF-358, STORES CONFIG Switch, STORES CONFIG Switch, , CAT III/CAT I, (1, 0, 1) + [109] = "%1d", --PTR-CLCP-TMB-PITCH-109, Autopilot PITCH Switch, Autopilot PITCH Switch, , ATT HOLD/ A/P OFF/ ALT HOLD, (1, 0, 1) + [108] = "%1d", --PTR-CLCP-TMB-ROLL-108, Autopilot ROLL Switch, Autopilot ROLL Switch, , STRG SEL/ATT HOLD/HDG SEL, (1, -1, 1) + [97] = "%1d", --PTR-CLCP-BTN-ADV-97, ADV MODE Switch, ADV MODE Switch, , , (1, 0, 1) + [568] = "%1d", --PTR-FLTCP-TMB-MAN-568, MANUAL TF FLYUP Switch, MANUAL TF FLYUP Switch, , ENABLE/DISABLE, (1, 0, 1) + -- CPT_MECH(10) + [606] = "%1d", --PTR-LARMS-TMB-OPN-606, Canopy Switch, Canopy Switch, , OPEN/HOLD/CLOSE(momentarily), (-1, 0, 1) + [606] = "%1d", --PTR-LARMS-TMB-OPN-606, Canopy Switch, Canopy Switch, , OPEN/HOLD/CLOSE(momentarily), (-1, -1, 0) + [600] = "%1d", --PTR-LARMS-CNPOPN-600, Canopy Handle, Canopy Handle, , UP/DOWN, (-1, 0, 1) + [601] = "%1d", --PTR-LARMS-CNPJETT-601, CANOPY JETTISON T-Handle, CANOPY JETTISON T-Handle, , PULL/STOW, (-1, 0, 1) + [785] = "%1d", --PTR-SEAT-ARM-LOCK-785, Ejection Safety Lever, Ejection Safety Lever, , ARMED/LOCKED, (-1, 0, 1) + [786] = "%1d", --PTR-SEAT-TMB-ADJ-786, SEAT ADJ Switch, SEAT ADJ Switch, , UP/OFF/DOWN, (-1, -1, 0) + [796] = "%1d", --PTR-STICK-HIDE-796, Hide Stick toggle, Hide Stick toggle, , , (-1, 0, 1) + [600] = "%1d", --PTR-LARMS-CNPOPN-600, Canopy Handle, Canopy Handle, , UP/DOWN, (1, 0, 1) + [601] = "%1d", --PTR-LARMS-CNPJETT-601, CANOPY JETTISON T-Handle, CANOPY JETTISON T-Handle, , PULL/STOW, (1, 0, 1) + [785] = "%1d", --PTR-SEAT-ARM-LOCK-785, Ejection Safety Lever, Ejection Safety Lever, , ARMED/LOCKED, (1, 0, 1) + [786] = "%1d", --PTR-SEAT-TMB-ADJ-786, SEAT ADJ Switch, SEAT ADJ Switch, , UP/OFF/DOWN, (1, 0, 1) + [796] = "%1d", --PTR-STICK-HIDE-796, Hide Stick toggle, Hide Stick toggle, , , (1, 0, 1) + -- CPTLIGHTS_SYSTEM(12) + [691] = "%1d", --PTR-RLGT-TMB-MALIND-691, MAL & IND LTS Switch, MAL & IND LTS Switch, , BRT/Center/DIM, (-1, -1, 0) + [685] = "%1d", --PTR-RLGT-LVR-PRICNS-685, PRIMARY CONSOLES BRT Knob, PRIMARY CONSOLES BRT Knob, , , (0, 0, 1) + [686] = "%1d", --PTR-RLGT-LVR-PRIPNL-686, PRIMARY INST PNL BRT Knob, PRIMARY INST PNL BRT Knob, , , (0, 0, 1) + [687] = "%1d", --PTR-RLGT-LVR-PRIDATA-687, PRIMARY DATA ENTRY DISPLAY BRT Knob, PRIMARY DATA ENTRY DISPLAY BRT Knob, , , (0, 0, 1) + [688] = "%1d", --PTR-RLGT-LVR-FLDCNS-688, FLOOD CONSOLES BRT Knob, FLOOD CONSOLES BRT Knob, , , (0, 0, 1) + [690] = "%1d", --PTR-RLGT-LVR-FLDPNL-690, FLOOD INST PNL BRT Knob, FLOOD INST PNL BRT Knob, , , (0, 0, 1) + [794] = "%1d", --PTR-AOA-LVL-794, AOA Indexer Dimming Lever, AOA Indexer Dimming Lever, , , (0, 0, 1) + [795] = "%1d", --PTR-AR-LVL-795, AR Status Indicator Dimming Lever, AR Status Indicator Dimming Lever, , , (0, 0, 1) + [116] = "%1d", --PTR-CPBC-BTN-MCAUT-116, Master Caution Button - Push to reset, Master Caution Button - Push to reset, , , (1, 0, 1) + [577] = "%1d", --PTR-TESTCP-BTN-MAL-577, MAL & IND LTS Test Button - Push to test, MAL & IND LTS Test Button - Push to test, , , (1, 0, 1) + [691] = "%1d", --PTR-RLGT-TMB-MALIND-691, MAL & IND LTS Switch, MAL & IND LTS Switch, , BRT/Center/DIM, (1, 0, 1) + -- ECS_INTERFACE(13) + [692] = "%.1f", --PTR-AIRCOND-TMB-TEMP-692, TEMP Knob, TEMP Knob, , , (0, -0.3, 0.3) + [602] = "%.2f", --PTR-LARMS-DEFOG-602, DEFOG Lever, DEFOG Lever, , , (0.05, 0, 1) + [602] = "%.2f", --PTR-LARMS-DEFOG-602, DEFOG Lever, DEFOG Lever, , , (-0.05, 0, 1) + [693] = "%.1f", --PTR-AIRCOND-TMB-SRC-693, AIR SOURCE Knob, AIR SOURCE Knob, , OFF/NORM/DUMP/RAM, (0.1, 0, 0.3) + [693] = "%.1f", --PTR-AIRCOND-TMB-SRC-693, AIR SOURCE Knob, AIR SOURCE Knob, , OFF/NORM/DUMP/RAM, (-0.1, 0, 0.3) + -- EHSI(28) + [46] = "%1d", --PTR-EHSI-BTN-M-46, Mode (M) Button, Mode (M) Button, , , (1, 0, 1) + [45] = "%1d", --PTR-EHSI-LVR-HDG-45, HDG Set Knob, HDG Set Knob, , , (1, 0, 1) + [42] = "%1d", --PTR-EHSI-LVR-HDG-45, HDG Set Knob, HDG Set Knob, , , (1, 0, 1) + [44] = "%1d", --PTR-EHSI-LVR-CRS-44, CRS Set / Brightness Control Knob, CRS Set / Brightness Control Knob, , , (1, 0, 1) + [43] = "%1d", --PTR-EHSI-LVR-CRS-44, CRS Set / Brightness Control Knob, CRS Set / Brightness Control Knob, , , (1, 0, 1) + -- ELEC_INTERFACE(3) + [510] = "%1d", --PTR-ELEC-TMB-MPWR-510, MAIN PWR Switch, MAIN PWR Switch, , MAIN PWR/BATT/OFF, (-1, -1, 1) + [578] = "%1d", --PTR-TESTCP-TMB-PROBE-578, PROBE HEAT Switch, PROBE HEAT Switch, , PROBE HEAT/OFF/TEST(momentarily), (-1, 0, 1) + [578] = "%1d", --PTR-TESTCP-TMB-PROBE-578, PROBE HEAT Switch, PROBE HEAT Switch, , PROBE HEAT/OFF/TEST(momentarily), (-1, -1, 0) + [510] = "%1d", --PTR-ELEC-TMB-MPWR-510, MAIN PWR Switch, MAIN PWR Switch, , MAIN PWR/BATT/OFF, (1, -1, 1) + [511] = "%1d", --PTR-ELEC-BTN-CRES-511, ELEC CAUTION RESET Button - Push to reset, ELEC CAUTION RESET Button - Push to reset, , , (1, 0, 1) + [585] = "%1d", --PTR-TESTCP-TMB-TEST-585, FLCS PWR TEST Switch, FLCS PWR TEST Switch, , MAINT/NORM/TEST(momentarily), (1, -1, 0) + [585] = "%1d", --PTR-TESTCP-TMB-TEST-585, FLCS PWR TEST Switch, FLCS PWR TEST Switch, , MAINT/NORM/TEST(momentarily), (1, 0, 1) + [579] = "%1d", --PTR-TESTCP-TMB-EPU-579, EPU/GEN Test Switch, EPU/GEN Test Switch, , EPU/GEN /OFF, (1, 0, 1) + [579] = "%1d", --PTR-TESTCP-TMB-EPU-579, EPU/GEN Test Switch, EPU/GEN Test Switch, , EPU/GEN /OFF, (1, 0, 1) + -- ENGINE_INTERFACE(6) + [527] = "%1d", --PTR-EPU-CVR-EPUTMB-527, EPU Switch Cover for ON, EPU Switch Cover for ON, , OPEN/CLOSE, (-1, 0, 1) + [529] = "%1d", --PTR-EPU-CVR-EPUTMB-529, EPU Switch Cover for OFF, EPU Switch Cover for OFF, , OPEN/CLOSE, (-1, 0, 1) + [528] = "%1d", --PTR-EPU-TMB-EPUTMB-528, EPU Switch, EPU Switch, , ON/NORM/OFF, (-1, -1, 1) + [710] = "%1d", --PTR-ANTICE-TMB-ENG-710, Engine ANTI ICE Switch, Engine ANTI ICE Switch, , ON/AUTO/OFF, (-1, -1, 1) + [447] = "%1d", --PTR-ENGSTART-TMB-JETFUEL-447, JFS Switch, JFS Switch, , START 1/OFF/START 2, (-1, 1, 0) + [448] = "%1d", --PTR-ENGSTART-CVR-ENGCNT-448, ENG CONT Switch Cover, ENG CONT Switch Cover, , OPEN/CLOSE, (-1, 0, 1) + [449] = "%1d", --PTR-ENGSTART-TMB-ENGCNT-449, ENG CONT Switch, ENG CONT Switch, , PRI/SEC, (-1, 0, 1) + [451] = "%1d", --PTR-ENGSTART-TMB-MAXPWR-451, MAX POWER Switch (is inoperative), MAX POWER Switch (is inoperative), , MAX POWER/OFF, (-1, 0, 1) + [450] = "%1d", --PTR-ENGSTART-TMB-ABENG-450, AB RESET Switch, AB RESET Switch, , AB RESET/NORM/ENG DATA, (-1, -1, 0) + [527] = "%1d", --PTR-EPU-CVR-EPUTMB-527, EPU Switch Cover for ON, EPU Switch Cover for ON, , OPEN/CLOSE, (1, 0, 1) + [529] = "%1d", --PTR-EPU-CVR-EPUTMB-529, EPU Switch Cover for OFF, EPU Switch Cover for OFF, , OPEN/CLOSE, (1, 0, 1) + [528] = "%1d", --PTR-EPU-TMB-EPUTMB-528, EPU Switch, EPU Switch, , ON/NORM/OFF, (1, -1, 1) + [710] = "%1d", --PTR-ANTICE-TMB-ENG-710, Engine ANTI ICE Switch, Engine ANTI ICE Switch, , ON/AUTO/OFF, (1, -1, 1) + [447] = "%1d", --PTR-ENGSTART-TMB-JETFUEL-447, JFS Switch, JFS Switch, , START 1/OFF/START 2, (1, 0, 1) + [448] = "%1d", --PTR-ENGSTART-CVR-ENGCNT-448, ENG CONT Switch Cover, ENG CONT Switch Cover, , OPEN/CLOSE, (1, 0, 1) + [449] = "%1d", --PTR-ENGSTART-TMB-ENGCNT-449, ENG CONT Switch, ENG CONT Switch, , PRI/SEC, (1, 0, 1) + [451] = "%1d", --PTR-ENGSTART-TMB-MAXPWR-451, MAX POWER Switch (is inoperative), MAX POWER Switch (is inoperative), , MAX POWER/OFF, (1, 0, 1) + [450] = "%1d", --PTR-ENGSTART-TMB-ABENG-450, AB RESET Switch, AB RESET Switch, , AB RESET/NORM/ENG DATA, (1, 0, 1) + [575] = "%1d", --PTR-TESTCP-BTN-FIRE-575, FIRE & OHEAT DETECT Test Button - Push to test, FIRE & OHEAT DETECT Test Button - Push to test, , , (1, 0, 1) + -- EXTLIGHTS_SYSTEM(11) + [532] = "%1d", --PTR-EXTLGT-TMB-FLSH-532, FLASH STEADY Switch, FLASH STEADY Switch, , FLASH/STEADY, (-1, 0, 1) + [533] = "%1d", --PTR-EXTLGT-TMB-WNGTAIL-533, WING/TAIL Switch, WING/TAIL Switch, , BRT/OFF/DIM, (-1, -1, 1) + [534] = "%1d", --PTR-EXTLGT-TMB-FUS-534, FUSELAGE Switch, FUSELAGE Switch, , BRT/OFF/DIM, (-1, -1, 1) + [360] = "%1d", --PTR-LGCP-TMB-LIGHTS-360, LANDING TAXI LIGHTS Switch, LANDING TAXI LIGHTS Switch, , LANDING/OFF/TAXI, (-1, -1, 1) + [535] = "%1d", --PTR-EXTLGT-LVR-FORM-535, FORM Knob, FORM Knob, , , (0, 0, 1) + [537] = "%1d", --PTR-EXTLGT-LVR-AREF-537, AERIAL REFUELING Knob, AERIAL REFUELING Knob, , , (0, 0, 1) + [532] = "%1d", --PTR-EXTLGT-TMB-FLSH-532, FLASH STEADY Switch, FLASH STEADY Switch, , FLASH/STEADY, (1, 0, 1) + [533] = "%1d", --PTR-EXTLGT-TMB-WNGTAIL-533, WING/TAIL Switch, WING/TAIL Switch, , BRT/OFF/DIM, (1, -1, 1) + [534] = "%1d", --PTR-EXTLGT-TMB-FUS-534, FUSELAGE Switch, FUSELAGE Switch, , BRT/OFF/DIM, (1, -1, 1) + [360] = "%1d", --PTR-LGCP-TMB-LIGHTS-360, LANDING TAXI LIGHTS Switch, LANDING TAXI LIGHTS Switch, , LANDING/OFF/TAXI, (1, -1, 1) + [531] = "%.1f", --PTR-EXTLGT-TMB-ANTCOL-531, ANTI-COLL Knob, ANTI-COLL Knob, , OFF/1/2/3/4/A/B/C, (0.1, 0, 0.7) + [536] = "%.1f", --PTR-EXTLGT-TMB-MASTER-536, MASTER Switch, MASTER Switch, , OFF/ALL/A-C/FORM/NORM, (0.1, 0, 0.4) + [531] = "%.1f", --PTR-EXTLGT-TMB-ANTCOL-531, ANTI-COLL Knob, ANTI-COLL Knob, , OFF/1/2/3/4/A/B/C, (-0.1, 0, 0.7) + [536] = "%.1f", --PTR-EXTLGT-TMB-MASTER-536, MASTER Switch, MASTER Switch, , OFF/ALL/A-C/FORM/NORM, (-0.1, 0, 0.4) + -- FCR(31) + [672] = "%1d", --PTR-SNSR-TMB-FCR-672, FCR Switch, FCR Switch, , FCR/OFF, (-1, 0, 1) + [672] = "%1d", --PTR-SNSR-TMB-FCR-672, FCR Switch, FCR Switch, , FCR/OFF, (1, 0, 1) + -- FUEL_INTERFACE(4) + [559] = "%1d", --PTR-FUELCP-TMB-MASTER-559, FUEL MASTER Switch, FUEL MASTER Switch, , MASTER/OFF, (-1, 0, 1) + [558] = "%1d", --PTR-FUELCP-CVR-MASTER-558, FUEL MASTER Switch Cover, FUEL MASTER Switch Cover, , OPEN/CLOSE, (-1, 0, 1) + [159] = "%1d", --PTR-CDCP-TMB-FTRANS-159, External Fuel Transfer Switch, External Fuel Transfer Switch, , NORM/ WING FIRST, (-1, 0, 1) + [557] = "%1d", --PTR-FUELCP-TMB-TANK-557, TANK INERTING Switch, TANK INERTING Switch, , TANK INERTING /OFF, (-1, 0, 1) + [555] = "%1d", --PTR-FUELCP-TMB-REFUEL-555, AIR REFUEL Switch, AIR REFUEL Switch, , OPEN/CLOSE, (-1, 0, 1) + [559] = "%1d", --PTR-FUELCP-TMB-MASTER-559, FUEL MASTER Switch, FUEL MASTER Switch, , MASTER/OFF, (1, 0, 1) + [558] = "%1d", --PTR-FUELCP-CVR-MASTER-558, FUEL MASTER Switch Cover, FUEL MASTER Switch Cover, , OPEN/CLOSE, (1, 0, 1) + [159] = "%1d", --PTR-CDCP-TMB-FTRANS-159, External Fuel Transfer Switch, External Fuel Transfer Switch, , NORM/ WING FIRST, (1, 0, 1) + [557] = "%1d", --PTR-FUELCP-TMB-TANK-557, TANK INERTING Switch, TANK INERTING Switch, , TANK INERTING /OFF, (1, 0, 1) + [555] = "%1d", --PTR-FUELCP-TMB-REFUEL-555, AIR REFUEL Switch, AIR REFUEL Switch, , OPEN/CLOSE, (1, 0, 1) + [556] = "%.1f", --PTR-FUELCP-TMB-ENGFEED-556, ENGINE FEED Knob, ENGINE FEED Knob, , OFF/NORM/AFT/FWD, (0.1, 0, 0.3) + [158] = "%.1f", --PTR-CDCP-TMB-FMODE-158, FUEL QTY SEL Knob, FUEL QTY SEL Knob, , TEST(momentarily)/NORM/RSVR/INT WING/EXT WING/EXT CTR, (0.1, 0, 0.5) + [556] = "%.1f", --PTR-FUELCP-TMB-ENGFEED-556, ENGINE FEED Knob, ENGINE FEED Knob, , OFF/NORM/AFT/FWD, (-0.1, 0, 0.3) + [158] = "%.1f", --PTR-CDCP-TMB-FMODE-158, FUEL QTY SEL Knob, FUEL QTY SEL Knob, , TEST(momentarily)/NORM/RSVR/INT WING/EXT WING/EXT CTR, (-0.1, 0, 0.5) + -- GEAR_INTERFACE(7) + [362] = "%1d", --PTR-LGCP-ARM-LG-362, LG Handle, LG Handle, , UP/DN, (-1, 0, 1) + [356] = "%1d", --PTR-LGCP-TMB-BRK-356, BRAKES Channel Switch, BRAKES Channel Switch, , CHAN 1/CHAN 2, (-1, 0, 1) + [354] = "%1d", --PTR-LGCP-TMB-HOOK-354, HOOK Switch, HOOK Switch, , UP/DN, (-1, 0, 1) + [362] = "%1d", --PTR-LGCP-ARM-LG-362, LG Handle, LG Handle, , UP/DN, (1, 0, 1) + [361] = "%1d", --PTR-LGCP-BTN-DNLOCK-361, DN LOCK REL Button - Push to reset, DN LOCK REL Button - Push to reset, , , (1, 0, 1) + [357] = "%1d", --PTR-LGCP-TMB-PRKNG-357, ANTI-SKID Switch, ANTI-SKID Switch, , PARKING BRAKE/ANTI-SKID/OFF, (1, 0, 1) + [357] = "%1d", --PTR-LGCP-TMB-PRKNG-357, ANTI-SKID Switch, ANTI-SKID Switch, , PARKING BRAKE/ANTI-SKID/OFF, (1, -1, 0) + [356] = "%1d", --PTR-LGCP-TMB-BRK-356, BRAKES Channel Switch, BRAKES Channel Switch, , CHAN 1/CHAN 2, (1, 0, 1) + [354] = "%1d", --PTR-LGCP-TMB-HOOK-354, HOOK Switch, HOOK Switch, , UP/DN, (1, 0, 1) + [359] = "%1d", --PTR-LGCP-BTN-HORN-359, HORN SILENCER Button - Push to reset, HORN SILENCER Button - Push to reset, , , (1, 0, 1) + -- GPS(59) + [720] = "%1d", --PTR-AVIPWR-TMB-GPS-720, GPS Switch, GPS Switch, , GPS/OFF, (-1, 0, 1) + [720] = "%1d", --PTR-AVIPWR-TMB-GPS-720, GPS Switch, GPS Switch, , GPS/OFF, (1, 0, 1) + -- HMCS(30) + [392] = "%.1f", --PTR-HMDP-LVR-SMBINT-392, HMCS SYMBOLOGY INT Knob, HMCS SYMBOLOGY INT Knob, , , (0,1) + -- IDM(60) + [721] = "%1d", --PTR-AVIPWR-TMB-DL-721, DL Switch, DL Switch, , DL/OFF, (-1, 0, 1) + [721] = "%1d", --PTR-AVIPWR-TMB-DL-721, DL Switch, DL Switch, , DL/OFF, (1, 0, 1) + -- IFF_CONTROL_PANEL(35) + [542] = "%1d", --PTR-AUXCOM-TMB-CNI-542, C & I Knob, C & I Knob, , UFC/BACKUP, (-1, 0, 1) + [541] = "%1d", --PTR-AUXCOM-TMB-M4-541, IFF M-4 CODE Switch, IFF M-4 CODE Switch, , HOLD/ A/B /ZERO, (-1, -1, 1) + [543] = "%1d", --PTR-AUXCOM-TMB-REPLY-543, IFF MODE 4 REPLY Switch, IFF MODE 4 REPLY Switch, , OUT/A/B, (-1, -1, 1) + [544] = "%1d", --PTR-AUXCOM-TMB-MONITOR-544, IFF MODE 4 MONITOR Switch, IFF MODE 4 MONITOR Switch, , OUT/AUDIO, (-1, 0, 1) + [553] = "%1d", --PTR-AUXCOM-TMB-TACAN-553, IFF ENABLE Switch, IFF ENABLE Switch, , M1/M3 /OFF/ M3/MS, (-1, -1, 1) + [545] = "%1d", --PTR-AUXCOM-TMB-CHNL1-545, IFF MODE 1 Selector Lever, IFF MODE 1 Selector Lever, , DIGIT 1, (-1, -1, 0) + [547] = "%1d", --PTR-AUXCOM-TMB-CHNL2-547, IFF MODE 1 Selector Lever, IFF MODE 1 Selector Lever, , DIGIT 2, (-1, -1, 0) + [549] = "%1d", --PTR-AUXCOM-TMB-CHNL3-549, IFF MODE 3 Selector Lever, IFF MODE 3 Selector Lever, , DIGIT 1, (-1, -1, 0) + [551] = "%1d", --PTR-AUXCOM-TMB-CHNL4-551, IFF MODE 3 Selector Lever, IFF MODE 3 Selector Lever, , DIGIT 2, (-1, -1, 0) + [542] = "%1d", --PTR-AUXCOM-TMB-CNI-542, C & I Knob, C & I Knob, , UFC/BACKUP, (1, 0, 1) + [541] = "%1d", --PTR-AUXCOM-TMB-M4-541, IFF M-4 CODE Switch, IFF M-4 CODE Switch, , HOLD/ A/B /ZERO, (1, -1, 1) + [543] = "%1d", --PTR-AUXCOM-TMB-REPLY-543, IFF MODE 4 REPLY Switch, IFF MODE 4 REPLY Switch, , OUT/A/B, (1, -1, 1) + [544] = "%1d", --PTR-AUXCOM-TMB-MONITOR-544, IFF MODE 4 MONITOR Switch, IFF MODE 4 MONITOR Switch, , OUT/AUDIO, (1, 0, 1) + [553] = "%1d", --PTR-AUXCOM-TMB-TACAN-553, IFF ENABLE Switch, IFF ENABLE Switch, , M1/M3 /OFF/ M3/MS, (1, -1, 1) + [545] = "%1d", --PTR-AUXCOM-TMB-CHNL1-545, IFF MODE 1 Selector Lever, IFF MODE 1 Selector Lever, , DIGIT 1, (1, 0, 1) + [547] = "%1d", --PTR-AUXCOM-TMB-CHNL2-547, IFF MODE 1 Selector Lever, IFF MODE 1 Selector Lever, , DIGIT 2, (1, 0, 1) + [549] = "%1d", --PTR-AUXCOM-TMB-CHNL3-549, IFF MODE 3 Selector Lever, IFF MODE 3 Selector Lever, , DIGIT 1, (1, 0, 1) + [551] = "%1d", --PTR-AUXCOM-TMB-CHNL4-551, IFF MODE 3 Selector Lever, IFF MODE 3 Selector Lever, , DIGIT 2, (1, 0, 1) + [540] = "%.1f", --PTR-AUXCOM-LVR-MODE-540, IFF MASTER Knob, IFF MASTER Knob, , OFF/STBY/LOW/NORM/EMER, (0.1, 0, 0.4) + [540] = "%.1f", --PTR-AUXCOM-LVR-MODE-540, IFF MASTER Knob, IFF MASTER Knob, , OFF/STBY/LOW/NORM/EMER, (-0.1, 0, 0.4) + -- INS(14) + [719] = "%.1f", --PTR-AVIPWR-LVR-INS-719, INS Knob, INS Knob, , OFF/STOR HDG/NORM/NAV/CAL/INFLT ALIGN/ATT, (0.1, 0, 0.6) + [719] = "%.1f", --PTR-AVIPWR-LVR-INS-719, INS Knob, INS Knob, , OFF/STOR HDG/NORM/NAV/CAL/INFLT ALIGN/ATT, (-0.1, 0, 0.6) + -- INTERCOM(39) + [443] = "%1d", --PTR-AUDIO2-TMB-MODE-443, HOT MIC CIPHER Switch, HOT MIC CIPHER Switch, , HOT MIC / OFF / CIPHER, (-1, -1, 1) + [711] = "%1d", --PTR-ANTICE-TMB-IFF-711, IFF ANT SEL Switch, IFF ANT SEL Switch, , LOWER/NORM/UPPER, (-1, -1, 1) + [712] = "%1d", --PTR-ANTICE-TMB-UHF-712, UHF ANT SEL Switch, UHF ANT SEL Switch, , LOWER/NORM/UPPER, (-1, -1, 1) + [696] = "%1d", --PTR-ZROIZE-TMB-VOICE-696, Voice Message Inhibit Switch, Voice Message Inhibit Switch, , VOICE MESSAGE/INHIBIT, (-1, 0, 1) + [701] = "%1d", --PTR-NUCLR-TMB-PLAIN-701, PLAIN Cipher Switch, PLAIN Cipher Switch, , CRAD 1/PLAIN/CRAD 2, (-1, -1, 1) + [694] = "%1d", --PTR-ZROIZE-CVR-ZERO-694, ZEROIZE Switch Cover, ZEROIZE Switch Cover, , OPEN/CLOSE, (-1, 0, 1) + [695] = "%1d", --PTR-ZROIZE-TMB-ZERO-695, ZEROIZE Switch, ZEROIZE Switch, , OFP/OFF/DATA, (-1, -1, 1) + [430] = "%1d", --PTR-AUDIO1-LVR-COMM1-430, COMM 1 Power Knob, COMM 1 Power Knob, , , (0, 0, 1) + [431] = "%1d", --PTR-AUDIO1-LVR-COMM2-431, COMM 2 Power Knob, COMM 2 Power Knob, , , (0, 0, 1) + [432] = "%1d", --PTR-AUDIO1-LVR-SV-432, SECURE VOICE Knob, SECURE VOICE Knob, , , (0, 0, 1) + [433] = "%1d", --PTR-AUDIO1-LVR-MSL-433, MSL Tone Knob, MSL Tone Knob, , , (0, 0, 1) + [436] = "%1d", --PTR-AUDIO1-LVR-TF-436, TF Tone Knob, TF Tone Knob, , , (0, 0, 1) + [437] = "%1d", --PTR-AUDIO1-LVR-THREAT-437, THREAT Tone Knob, THREAT Tone Knob, , , (0, 0, 1) + [442] = "%1d", --PTR-AUDIO2-LVR-ILS-442, ILS Power Knob, ILS Power Knob, , , (0, 0, 1) + [441] = "%1d", --PTR-AUDIO2-LVR-TACAN-441, TACAN Knob, TACAN Knob, , , (0, 0, 1) + [440] = "%1d", --PTR-AUDIO2-LVR-INTERCOM-440, INTERCOM Knob, INTERCOM Knob, , , (0, 0, 1) + [443] = "%1d", --PTR-AUDIO2-TMB-MODE-443, HOT MIC CIPHER Switch, HOT MIC CIPHER Switch, , HOT MIC / OFF / CIPHER, (1, -1, 1) + [711] = "%1d", --PTR-ANTICE-TMB-IFF-711, IFF ANT SEL Switch, IFF ANT SEL Switch, , LOWER/NORM/UPPER, (1, -1, 1) + [712] = "%1d", --PTR-ANTICE-TMB-UHF-712, UHF ANT SEL Switch, UHF ANT SEL Switch, , LOWER/NORM/UPPER, (1, -1, 1) + [696] = "%1d", --PTR-ZROIZE-TMB-VOICE-696, Voice Message Inhibit Switch, Voice Message Inhibit Switch, , VOICE MESSAGE/INHIBIT, (1, 0, 1) + [701] = "%1d", --PTR-NUCLR-TMB-PLAIN-701, PLAIN Cipher Switch, PLAIN Cipher Switch, , CRAD 1/PLAIN/CRAD 2, (1, -1, 1) + [694] = "%1d", --PTR-ZROIZE-CVR-ZERO-694, ZEROIZE Switch Cover, ZEROIZE Switch Cover, , OPEN/CLOSE, (1, 0, 1) + [695] = "%1d", --PTR-ZROIZE-TMB-ZERO-695, ZEROIZE Switch, ZEROIZE Switch, , OFP/OFF/DATA, (1, -1, 1) + [434] = "%.1f", --PTR-AUDIO1-TMB-COMM1-434, COMM 1 (UHF) Mode Knob, COMM 1 (UHF) Mode Knob, , , (0.5, 0, 1) + [435] = "%.1f", --PTR-AUDIO1-TMB-COMM2-435, COMM 2 (VHF) Mode Knob, COMM 2 (VHF) Mode Knob, , , (0.5, 0, 1) + [434] = "%.1f", --PTR-AUDIO1-TMB-COMM1-434, COMM 1 (UHF) Mode Knob, COMM 1 (UHF) Mode Knob, , , (-0.5, 0, 1) + [435] = "%.1f", --PTR-AUDIO1-TMB-COMM2-435, COMM 2 (VHF) Mode Knob, COMM 2 (VHF) Mode Knob, , , (-0.5, 0, 1) + -- KY58(42) + [708] = "%1d", --PTR-KY58-LVR-VOL-708, KY-58 VOLUME Knob, KY-58 VOLUME Knob, , , (0, 0, 1) + [705] = "%.1f", --PTR-KY58-LVR-MODE1-705, KY-58 MODE Knob, KY-58 MODE Knob, , P/C/LD/RV, (0.1, 0, 0.3) + [706] = "%.1f", --PTR-KY58-LVR-MODE2-706, KY-58 FILL Knob, KY-58 FILL Knob, , Z 1-5/1/2/3/4/5/6/Z ALL, (0.1, 0, 0.7) + [705] = "%.1f", --PTR-KY58-LVR-MODE1-705, KY-58 MODE Knob, KY-58 MODE Knob, , P/C/LD/RV, (-0.1, 0, 0.3) + [706] = "%.1f", --PTR-KY58-LVR-MODE2-706, KY-58 FILL Knob, KY-58 FILL Knob, , Z 1-5/1/2/3/4/5/6/Z ALL, (-0.1, 0, 0.7) + [707] = "%.1f", --PTR-KY58-LVR-MODE3-707, KY-58 Power Knob, KY-58 Power Knob, , OFF/ON/TD, (0.5, 0, 1) + [707] = "%.1f", --PTR-KY58-LVR-MODE3-707, KY-58 Power Knob, KY-58 Power Knob, , OFF/ON/TD, (-0.5, 0, 1) + [722] = "%1d", --PTR-AVIPWR-TMB-MAP-722, MAP Switch, MAP Switch, , MAP/OFF, (-1, 0, 1) + [722] = "%1d", --PTR-AVIPWR-TMB-MAP-722, MAP Switch, MAP Switch, , MAP/OFF, (1, 0, 1) + -- MFD_LEFT(24) + [320] = "%1d", --PTR-LMFCD-RS-GAIN-DN-320, Left MFD GAIN Rocker Switch, Left MFD GAIN Rocker Switch, , Down/Decrease, (-1, -1, 0) + [321] = "%1d", --PTR-LMFCD-RS-SYM-DN-321, Left MFD SYM Rocker Switch, Left MFD SYM Rocker Switch, , Down/Decrease, (-1, -1, 0) + [322] = "%1d", --PTR-LMFCD-RS-CON-DN-322, Left MFD CON Rocker Switch, Left MFD CON Rocker Switch, , Down/Decrease, (-1, -1, 0) + [323] = "%1d", --PTR-LMFCD-RS-BRT-DN-323, Left MFD BRT Rocker Switch, Left MFD BRT Rocker Switch, , Down/Decrease, (-1, -1, 0) + [300] = "%1d", --PTR-LMFCD-BTN-OSB1-300, Left MFD OSB 1, Left MFD OSB 1, , , (1, 0, 1) + [301] = "%1d", --PTR-LMFCD-BTN-OSB2-301, Left MFD OSB 2, Left MFD OSB 2, , , (1, 0, 1) + [302] = "%1d", --PTR-LMFCD-BTN-OSB3-302, Left MFD OSB 3, Left MFD OSB 3, , , (1, 0, 1) + [303] = "%1d", --PTR-LMFCD-BTN-OSB4-303, Left MFD OSB 4, Left MFD OSB 4, , , (1, 0, 1) + [304] = "%1d", --PTR-LMFCD-BTN-OSB5-304, Left MFD OSB 5, Left MFD OSB 5, , , (1, 0, 1) + [305] = "%1d", --PTR-LMFCD-BTN-OSB6-305, Left MFD OSB 6, Left MFD OSB 6, , , (1, 0, 1) + [306] = "%1d", --PTR-LMFCD-BTN-OSB7-306, Left MFD OSB 7, Left MFD OSB 7, , , (1, 0, 1) + [307] = "%1d", --PTR-LMFCD-BTN-OSB8-307, Left MFD OSB 8, Left MFD OSB 8, , , (1, 0, 1) + [308] = "%1d", --PTR-LMFCD-BTN-OSB9-308, Left MFD OSB 9, Left MFD OSB 9, , , (1, 0, 1) + [309] = "%1d", --PTR-LMFCD-BTN-OSB10-309, Left MFD OSB 10, Left MFD OSB 10, , , (1, 0, 1) + [310] = "%1d", --PTR-LMFCD-BTN-OSB11-310, Left MFD OSB 11, Left MFD OSB 11, , , (1, 0, 1) + [311] = "%1d", --PTR-LMFCD-BTN-OSB12-311, Left MFD OSB 12, Left MFD OSB 12, , , (1, 0, 1) + [312] = "%1d", --PTR-LMFCD-BTN-OSB13-312, Left MFD OSB 13, Left MFD OSB 13, , , (1, 0, 1) + [313] = "%1d", --PTR-LMFCD-BTN-OSB14-313, Left MFD OSB 14, Left MFD OSB 14, , , (1, 0, 1) + [314] = "%1d", --PTR-LMFCD-BTN-OSB15-314, Left MFD OSB 15, Left MFD OSB 15, , , (1, 0, 1) + [315] = "%1d", --PTR-LMFCD-BTN-OSB16-315, Left MFD OSB 16, Left MFD OSB 16, , , (1, 0, 1) + [316] = "%1d", --PTR-LMFCD-BTN-OSB17-316, Left MFD OSB 17, Left MFD OSB 17, , , (1, 0, 1) + [317] = "%1d", --PTR-LMFCD-BTN-OSB18-317, Left MFD OSB 18, Left MFD OSB 18, , , (1, 0, 1) + [318] = "%1d", --PTR-LMFCD-BTN-OSB19-318, Left MFD OSB 19, Left MFD OSB 19, , , (1, 0, 1) + [319] = "%1d", --PTR-LMFCD-BTN-OSB20-319, Left MFD OSB 20, Left MFD OSB 20, , , (1, 0, 1) + [320] = "%1d", --PTR-LMFCD-RS-GAIN-UP-320, Left MFD GAIN Rocker Switch, Left MFD GAIN Rocker Switch, , Up/Increase, (1, 0, 1) + [321] = "%1d", --PTR-LMFCD-RS-SYM-UP-321, Left MFD SYM Rocker Switch, Left MFD SYM Rocker Switch, , Up/Increase, (1, 0, 1) + [322] = "%1d", --PTR-LMFCD-RS-CON-UP-322, Left MFD CON Rocker Switch, Left MFD CON Rocker Switch, , Up/Increase, (1, 0, 1) + [323] = "%1d", --PTR-LMFCD-RS-BRT-UP-323, Left MFD BRT Rocker Switch, Left MFD BRT Rocker Switch, , Up/Increase, (1, 0, 1) + -- MFD_RIGHT(25) + [346] = "%1d", --PTR-RMFCD-RS-GAIN-DN-346, Left MFD GAIN Rocker Switch, Left MFD GAIN Rocker Switch, , Down/Decrease, (-1, -1, 0) + [347] = "%1d", --PTR-RMFCD-RS-SYM-DN-347, Left MFD SYM Rocker Switch, Left MFD SYM Rocker Switch, , Down/Decrease, (-1, -1, 0) + [348] = "%1d", --PTR-RMFCD-RS-CON-DN-348, Left MFD CON Rocker Switch, Left MFD CON Rocker Switch, , Down/Decrease, (-1, -1, 0) + [349] = "%1d", --PTR-RMFCD-RS-BRT-DN-349, Left MFD BRT Rocker Switch, Left MFD BRT Rocker Switch, , Down/Decrease, (-1, -1, 0) + [326] = "%1d", --PTR-RMFCD-BTN-OSB1-326, Right MFD OSB 1, Right MFD OSB 1, , , (1, 0, 1) + [327] = "%1d", --PTR-RMFCD-BTN-OSB2-327, Right MFD OSB 2, Right MFD OSB 2, , , (1, 0, 1) + [328] = "%1d", --PTR-RMFCD-BTN-OSB3-328, Right MFD OSB 3, Right MFD OSB 3, , , (1, 0, 1) + [329] = "%1d", --PTR-RMFCD-BTN-OSB4-329, Right MFD OSB 4, Right MFD OSB 4, , , (1, 0, 1) + [330] = "%1d", --PTR-RMFCD-BTN-OSB5-330, Right MFD OSB 5, Right MFD OSB 5, , , (1, 0, 1) + [331] = "%1d", --PTR-RMFCD-BTN-OSB6-331, Right MFD OSB 6, Right MFD OSB 6, , , (1, 0, 1) + [332] = "%1d", --PTR-RMFCD-BTN-OSB7-332, Right MFD OSB 7, Right MFD OSB 7, , , (1, 0, 1) + [333] = "%1d", --PTR-RMFCD-BTN-OSB8-333, Right MFD OSB 8, Right MFD OSB 8, , , (1, 0, 1) + [334] = "%1d", --PTR-RMFCD-BTN-OSB9-334, Right MFD OSB 9, Right MFD OSB 9, , , (1, 0, 1) + [335] = "%1d", --PTR-RMFCD-BTN-OSB10-335, Right MFD OSB 10, Right MFD OSB 10, , , (1, 0, 1) + [336] = "%1d", --PTR-RMFCD-BTN-OSB11-336, Right MFD OSB 11, Right MFD OSB 11, , , (1, 0, 1) + [337] = "%1d", --PTR-RMFCD-BTN-OSB12-337, Right MFD OSB 12, Right MFD OSB 12, , , (1, 0, 1) + [338] = "%1d", --PTR-RMFCD-BTN-OSB13-338, Right MFD OSB 13, Right MFD OSB 13, , , (1, 0, 1) + [339] = "%1d", --PTR-RMFCD-BTN-OSB14-339, Right MFD OSB 14, Right MFD OSB 14, , , (1, 0, 1) + [340] = "%1d", --PTR-RMFCD-BTN-OSB15-340, Right MFD OSB 15, Right MFD OSB 15, , , (1, 0, 1) + [341] = "%1d", --PTR-RMFCD-BTN-OSB16-341, Right MFD OSB 16, Right MFD OSB 16, , , (1, 0, 1) + [342] = "%1d", --PTR-RMFCD-BTN-OSB17-342, Right MFD OSB 17, Right MFD OSB 17, , , (1, 0, 1) + [343] = "%1d", --PTR-RMFCD-BTN-OSB18-343, Right MFD OSB 18, Right MFD OSB 18, , , (1, 0, 1) + [344] = "%1d", --PTR-RMFCD-BTN-OSB19-344, Right MFD OSB 19, Right MFD OSB 19, , , (1, 0, 1) + [345] = "%1d", --PTR-RMFCD-BTN-OSB20-345, Right MFD OSB 20, Right MFD OSB 20, , , (1, 0, 1) + [346] = "%1d", --PTR-RMFCD-RS-GAIN-UP-346, Left MFD GAIN Rocker Switch, Left MFD GAIN Rocker Switch, , Up/Increase, (1, 0, 1) + [347] = "%1d", --PTR-RMFCD-RS-SYM-UP-347, Left MFD SYM Rocker Switch, Left MFD SYM Rocker Switch, , Up/Increase, (1, 0, 1) + [348] = "%1d", --PTR-RMFCD-RS-CON-UP-348, Left MFD CON Rocker Switch, Left MFD CON Rocker Switch, , Up/Increase, (1, 0, 1) + [349] = "%1d", --PTR-RMFCD-RS-BRT-UP-349, Left MFD BRT Rocker Switch, Left MFD BRT Rocker Switch, , Up/Increase, (1, 0, 1) + -- MIDS(41) + [723] = "%.1f", --PTR-AVIPWR-LVR-MIDS-723, MIDS LVT Knob, MIDS LVT Knob, , ZERO/OFF/ON, (0.1, 0, 0.2) + [723] = "%.1f", --PTR-AVIPWR-LVR-MIDS-723, MIDS LVT Knob, MIDS LVT Knob, , ZERO/OFF/ON, (-0.1, 0, 0.2) + [715] = "%1d", --PTR-AVIPWR-TMB-MMC-715, MMC Switch, MMC Switch, , MMC/OFF, (-1, 0, 1) + [105] = "%1d", --PTR-CLCP-TMB-MASTER-105, MASTER ARM Switch, MASTER ARM Switch, , MASTER ARM/OFF/SIMULATE, (-1, -1, 1) + [355] = "%1d", --PTR-LGCP-TMB-GNDJETT-355, GND JETT ENABLE Switch, GND JETT ENABLE Switch, , ENABLE/OFF, (-1, 0, 1) + [675] = "%1d", --PTR-RHUD-TMB-WVAH-675, HUD Scales Switch, HUD Scales Switch, , VV/VAH / VAH / OFF, (-1, -1, 1) + [676] = "%1d", --PTR-RHUD-TMB-ATT-676, HUD Flightpath Marker Switch, HUD Flightpath Marker Switch, , ATT/FPM / FPM / OFF, (-1, -1, 1) + [677] = "%1d", --PTR-RHUD-TMB-DED-677, HUD DED/PFLD Data Switch, HUD DED/PFLD Data Switch, , DED / PFL / OFF, (-1, -1, 1) + [678] = "%1d", --PTR-RHUD-TMB-DEPR-678, HUD Depressible Reticle Switch, HUD Depressible Reticle Switch, , STBY / PRI / OFF, (-1, -1, 1) + [679] = "%1d", --PTR-RHUD-TMB-CAS-679, HUD Velocity Switch, HUD Velocity Switch, , CAS / TAS / GND SPD, (-1, -1, 1) + [680] = "%1d", --PTR-RHUD-TMB-ALT-680, HUD Altitude Switch, HUD Altitude Switch, , RADAR / BARO / AUTO, (-1, -1, 1) + [681] = "%1d", --PTR-RHUD-TMB-DAYNGT-681, HUD Brightness Control Switch, HUD Brightness Control Switch, , DAY / AUTO BRT / NIGHT, (-1, -1, 1) + [682] = "%1d", --PTR-RHUD-TMB-TEST-682, HUD TEST Switch, HUD TEST Switch, , STEP / ON / OFF, (-1, -1, 1) + [717] = "%1d", --PTR-AVIPWR-TMB-MFD-717, MFD Switch, MFD Switch, , MFD/OFF, (-1, 0, 1) + [715] = "%1d", --PTR-AVIPWR-TMB-MMC-715, MMC Switch, MMC Switch, , MMC/OFF, (1, 0, 1) + [105] = "%1d", --PTR-CLCP-TMB-MASTER-105, MASTER ARM Switch, MASTER ARM Switch, , MASTER ARM/OFF/SIMULATE, (1, -1, 1) + [353] = "%1d", --PTR-LGCP-BTN-ESJETT-353, EMER STORES JETTISON Button - Push to jettison, EMER STORES JETTISON Button - Push to jettison, , , (1, 0, 1) + [355] = "%1d", --PTR-LGCP-TMB-GNDJETT-355, GND JETT ENABLE Switch, GND JETT ENABLE Switch, , ENABLE/OFF, (1, 0, 1) + [104] = "%1d", --PTR-CLCP-TMB-ALT-104, ALT REL Button - Push to release, ALT REL Button - Push to release, , , (1, 0, 1) + [675] = "%1d", --PTR-RHUD-TMB-WVAH-675, HUD Scales Switch, HUD Scales Switch, , VV/VAH / VAH / OFF, (1, -1, 1) + [676] = "%1d", --PTR-RHUD-TMB-ATT-676, HUD Flightpath Marker Switch, HUD Flightpath Marker Switch, , ATT/FPM / FPM / OFF, (1, -1, 1) + [677] = "%1d", --PTR-RHUD-TMB-DED-677, HUD DED/PFLD Data Switch, HUD DED/PFLD Data Switch, , DED / PFL / OFF, (1, -1, 1) + [678] = "%1d", --PTR-RHUD-TMB-DEPR-678, HUD Depressible Reticle Switch, HUD Depressible Reticle Switch, , STBY / PRI / OFF, (1, -1, 1) + [679] = "%1d", --PTR-RHUD-TMB-CAS-679, HUD Velocity Switch, HUD Velocity Switch, , CAS / TAS / GND SPD, (1, -1, 1) + [680] = "%1d", --PTR-RHUD-TMB-ALT-680, HUD Altitude Switch, HUD Altitude Switch, , RADAR / BARO / AUTO, (1, -1, 1) + [681] = "%1d", --PTR-RHUD-TMB-DAYNGT-681, HUD Brightness Control Switch, HUD Brightness Control Switch, , DAY / AUTO BRT / NIGHT, (1, -1, 1) + [682] = "%1d", --PTR-RHUD-TMB-TEST-682, HUD TEST Switch, HUD TEST Switch, , STEP / ON / OFF, (1, -1, 1) + [717] = "%1d", --PTR-AVIPWR-TMB-MFD-717, MFD Switch, MFD Switch, , MFD/OFF, (1, 0, 1) + -- OXYGEN_INTERFACE(8) + [727] = "%1d", --PTR-OXYCP-LVR-DUL-727, Diluter Lever, Diluter Lever, , 100 percent/NORM, (-1, 0, 1) + [726] = "%1d", --PTR-OXYCP-LVR-EMRG-726, Emergency Lever, Emergency Lever, , EMERGENCY/NORMAL/TEST MASK(momentarily), (-1, 0, 1) + [726] = "%1d", --PTR-OXYCP-LVR-EMRG-726, Emergency Lever, Emergency Lever, , EMERGENCY/NORMAL/TEST MASK(momentarily), (-1, -1, 0) + [727] = "%1d", --PTR-OXYCP-LVR-DUL-727, Diluter Lever, Diluter Lever, , 100 percent/NORM, (1, 0, 1) + [576] = "%1d", --PTR-TESTCP-TMB-OXY-576, OBOGS BIT Switch, OBOGS BIT Switch, , BIT/OFF, (1, 0, 1) + [576] = "%1d", --PTR-TESTCP-TMB-OXY-576, OBOGS BIT Switch, OBOGS BIT Switch, , BIT/OFF, (1, 0, 1) + [728] = "%.1f", --PTR-OXYCP-LVR-SUPP-728, Supply Lever, Supply Lever, , PBG/ON/OFF, (0.5, 0, 1) + [728] = "%.1f", --PTR-OXYCP-LVR-SUPP-728, Supply Lever, Supply Lever, , PBG/ON/OFF, (-0.5, 0, 1) + -- RALT(15) + [673] = "%1d", --PTR-SNSR-TMB-RDR-673, RDR ALT Switch, RDR ALT Switch, , RDR ALT/STBY/OFF, (-1, -1, 1) + [673] = "%1d", --PTR-SNSR-TMB-RDR-673, RDR ALT Switch, RDR ALT Switch, , RDR ALT/STBY/OFF, (1, -1, 1) + + [401] = "%1d", --PTR-TWAP-BTN-PWR-401, RWR Indicator Control POWER Button, RWR Indicator Control POWER Button, , , (-1, 0, 1) + [140] = "%.1f", --PTR-CMSC-LVR-BRT-140, RWR Intensity Knob - Rotate to adjust brightness, RWR Intensity Knob - Rotate to adjust brightness, , , (0, 0, 0.8) + [404] = "%1d", --PTR-TWAP-LVR-DIM-404, RWR Indicator Control DIM Knob - Rotate to adjust brightness, RWR Indicator Control DIM Knob - Rotate to adjust brightness, , , (0, 0, 1) + [141] = "%1d", --PTR-CMSC-BTN-HNDOFF-141, RWR Indicator Control HANDOFF Button, RWR Indicator Control HANDOFF Button, , , (1, 0, 1) + [143] = "%1d", --PTR-CMSC-BTN-LNCH-143, RWR Indicator Control LAUNCH Button, RWR Indicator Control LAUNCH Button, , , (1, 0, 1) + [145] = "%1d", --PTR-CMSC-BTN-MODE-145, RWR Indicator Control MODE Button, RWR Indicator Control MODE Button, , , (1, 0, 1) + [147] = "%1d", --PTR-CMSC-BTN-OBJ-147, RWR Indicator Control UNKNOWN SHIP Button, RWR Indicator Control UNKNOWN SHIP Button, , , (1, 0, 1) + [149] = "%1d", --PTR-CMSC-BTN-STEST-149, RWR Indicator Control SYS TEST Button, RWR Indicator Control SYS TEST Button, , , (1, 0, 1) + [151] = "%1d", --PTR-CMSC-BTN-T-151, RWR Indicator Control T Button, RWR Indicator Control T Button, , , (1, 0, 1) + [395] = "%1d", --PTR-TWAP-BTN-SRCH-395, RWR Indicator Control SEARCH Button, RWR Indicator Control SEARCH Button, , , (1, 0, 1) + [397] = "%1d", --PTR-TWAP-BTN-ACTPWR-397, RWR Indicator Control ACT/PWR Button, RWR Indicator Control ACT/PWR Button, , , (1, 0, 1) + [401] = "%1d", --PTR-TWAP-BTN-PWR-401, RWR Indicator Control POWER Button, RWR Indicator Control POWER Button, , , (1, 0, 1) + [399] = "%1d", --PTR-TWAP-BTN-ALT-399, RWR Indicator Control ALTITUDE Button, RWR Indicator Control ALTITUDE Button, , , (1, 0, 1) + -- SAI(47) + [67] = "%1d", --PTR-SAI-LVR-CAGE-P-66, SAI Cage Knob, SAI Cage Knob, , (LMB) Pull to cage /(MW) Adjust aircraft reference symbol, (1, 0, 1) + [66] = "%.3f", --PTR-SAI-LVR-CAGE-P-66, SAI Cage Knob, SAI Cage Knob, , (LMB) Pull to cage /(MW) Adjust aircraft reference symbol, (1, 0.375, 0.625) + -- SMS(22) + [716] = "%1d", --PTR-AVIPWR-TMB-STSTA-716, ST STA Switch, ST STA Switch, , ST STA/OFF, (-1, 0, 1) + [670] = "%1d", --PTR-SNSR-TMB-LEFT-670, LEFT HDPT Switch, LEFT HDPT Switch, , ON/OFF, (-1, 0, 1) + [671] = "%1d", --PTR-SNSR-TMB-RIGHT-671, RIGHT HDPT Switch, RIGHT HDPT Switch, , ON/OFF, (-1, 0, 1) + [103] = "%1d", --PTR-CLCP-TMB-LASER-103, LASER ARM Switch, LASER ARM Switch, , ARM/OFF, (-1, 0, 1) + [716] = "%1d", --PTR-AVIPWR-TMB-STSTA-716, ST STA Switch, ST STA Switch, , ST STA/OFF, (1, 0, 1) + [670] = "%1d", --PTR-SNSR-TMB-LEFT-670, LEFT HDPT Switch, LEFT HDPT Switch, , ON/OFF, (1, 0, 1) + [671] = "%1d", --PTR-SNSR-TMB-RIGHT-671, RIGHT HDPT Switch, RIGHT HDPT Switch, , ON/OFF, (1, 0, 1) + [103] = "%1d", --PTR-CLCP-TMB-LASER-103, LASER ARM Switch, LASER ARM Switch, , ARM/OFF, (1, 0, 1) + -- UFC(17) + [718] = "%1d", --PTR-AVIPWR-TMB-UFC-718, UFC Switch, UFC Switch, , UFC/OFF, (-1, 0, 1) + [188] = "%1d", --PTR-ICP-RS-FLIR-DN-188, ICP FLIR Increment/Decrement Switch, ICP FLIR Increment/Decrement Switch, , Down, (-1, -1, 0) + [189] = "%1d", --PTR-ICP-TMB-GAIN-189, ICP FLIR GAIN/LEVEL Switch, ICP FLIR GAIN/LEVEL Switch, , GAIN/LVL/AUTO, (-1, -1, 1) + [186] = "%1d", --PTR-ICP-TMB-DRIFT-186, ICP DRIFT CUTOUT/WARN RESET Switch, ICP DRIFT CUTOUT/WARN RESET Switch, , DRIFT C/O /NORM/WARN RESET, (-1, 0, 1) + [186] = "%1d", --PTR-ICP-TMB-DRIFT-186, ICP DRIFT CUTOUT/WARN RESET Switch, ICP DRIFT CUTOUT/WARN RESET Switch, , DRIFT C/O /NORM/WARN RESET, (-1, -1, 0) + [183] = "%1d", --PTR-ICP-RS-OFF-DN-183, ICP DED Increment/Decrement Switch, ICP DED Increment/Decrement Switch, , Down, (-1, -1, 0) + [184] = "%1d", --PTR-ICP-TMB-RTN-184, ICP Data Control Switch, ICP Data Control Switch, , RTN, (-1, -1, 0) + [184] = "%1d", --PTR-ICP-TMB-RTN-184, ICP Data Control Switch, ICP Data Control Switch, , RTN, (-1, -1, 0) + [185] = "%1d", --PTR-ICP-TMB-RTNSEQ-DN-185, ICP Data Control Switch, ICP Data Control Switch, , DN, (-1, -1, 0) + [185] = "%1d", --PTR-ICP-TMB-RTNSEQ-DN-185, ICP Data Control Switch, ICP Data Control Switch, , DN, (-1, -1, 0) + [100] = "%1d", --PTR-CLCP-TMB-RF-100, RF Switch, RF Switch, , SILENT/QUIET/NORM, (-1, -1, 1) + [192] = "%1d", --PTR-ICP-LVR-RET-192, ICP Reticle Depression Control Knob, ICP Reticle Depression Control Knob, , , (0, 0, 1) + [193] = "%1d", --PTR-ICP-LVR-CONT-193, ICP Raster Contrast Knob, ICP Raster Contrast Knob, , , (0, 0, 1) + [190] = "%.1f", --PTR-ICP-LVR-SYM-190, ICP HUD Symbology Intensity Knob, ICP HUD Symbology Intensity Knob, , , (0,1) + [191] = "%1d", --PTR-ICP-LVR-BRT-191, ICP Raster Intensity Knob, ICP Raster Intensity Knob, , , (0, 0, 1) + [718] = "%1d", --PTR-AVIPWR-TMB-UFC-718, UFC Switch, UFC Switch, , UFC/OFF, (1, 0, 1) + [182] = "%1d", --PTR-ICP-BTN-NMB0-182, ICP Priority Function Button, ICP Priority Function Button, , 0(M-SEL), (1, 0, 1) + [171] = "%1d", --PTR-ICP-BTN-NMB1-171, ICP Priority Function Button, ICP Priority Function Button, , 1(T-ILS), (1, 0, 1) + [172] = "%1d", --PTR-ICP-BTN-NMB2-172, ICP Priority Function Button, ICP Priority Function Button, , 2/N(ALOW), (1, 0, 1) + [173] = "%1d", --PTR-ICP-BTN-NMB3-173, ICP Priority Function Button, ICP Priority Function Button, , 3, (1, 0, 1) + [175] = "%1d", --PTR-ICP-BTN-NMB4-175, ICP Priority Function Button, ICP Priority Function Button, , 4/W(STPT), (1, 0, 1) + [176] = "%1d", --PTR-ICP-BTN-NMB5-176, ICP Priority Function Button, ICP Priority Function Button, , 5(CRUS), (1, 0, 1) + [177] = "%1d", --PTR-ICP-BTN-NMB6-177, ICP Priority Function Button, ICP Priority Function Button, , 6/E(TIME), (1, 0, 1) + [179] = "%1d", --PTR-ICP-BTN-NMB7-179, ICP Priority Function Button, ICP Priority Function Button, , 7(MARK), (1, 0, 1) + [180] = "%1d", --PTR-ICP-BTN-NMB8-180, ICP Priority Function Button, ICP Priority Function Button, , 8/S(FIX), (1, 0, 1) + [181] = "%1d", --PTR-ICP-BTN-NMB9-181, ICP Priority Function Button, ICP Priority Function Button, , 9(A-CAL), (1, 0, 1) + [165] = "%1d", --PTR-ICP-BTN-COM1-165, ICP COM Override Button, ICP COM Override Button, , COM1(UHF), (1, 0, 1) + [166] = "%1d", --PTR-ICP-BTN-COM2-166, ICP COM Override Button, ICP COM Override Button, , COM2(VHF), (1, 0, 1) + [167] = "%1d", --PTR-ICP-BTN-IFF-167, ICP IFF Override Button, ICP IFF Override Button, , IFF, (1, 0, 1) + [168] = "%1d", --PTR-ICP-BTN-LIST-168, ICP LIST Override Button, ICP LIST Override Button, , LIST, (1, 0, 1) + [178] = "%1d", --PTR-ICP-BTN-ENTR-178, ICP Enter Button, ICP Enter Button, , ENTR, (1, 0, 1) + [174] = "%1d", --PTR-ICP-BTN-RCL-174, ICP Recall Button, ICP Recall Button, , RCL, (1, 0, 1) + [169] = "%1d", --PTR-ICP-BTN-AA-169, ICP Master Mode Button, ICP Master Mode Button, , A-A, (1, 0, 1) + [170] = "%1d", --PTR-ICP-BTN-AG-170, ICP Master Mode Button, ICP Master Mode Button, , A-G, (1, 0, 1) + [187] = "%1d", --PTR-ICP-BTN-WX-187, ICP FLIR Polarity Button, ICP FLIR Polarity Button, , Wx, (1, 0, 1) + [188] = "%1d", --PTR-ICP-RS-FLIR-UP-188, ICP FLIR Increment/Decrement Switch, ICP FLIR Increment/Decrement Switch, , Up, (1, 0, 1) + [189] = "%1d", --PTR-ICP-TMB-GAIN-189, ICP FLIR GAIN/LEVEL Switch, ICP FLIR GAIN/LEVEL Switch, , GAIN/LVL/AUTO, (1, -1, 1) + [183] = "%1d", --PTR-ICP-RS-OFF-UP-183, ICP DED Increment/Decrement Switch, ICP DED Increment/Decrement Switch, , Up, (1, 0, 1) + [184] = "%1d", --PTR-ICP-TMB-SEQ-184, ICP Data Control Switch, ICP Data Control Switch, , SEQ, (1, 0, 1) + [184] = "%1d", --PTR-ICP-TMB-SEQ-184, ICP Data Control Switch, ICP Data Control Switch, , SEQ, (1, 0, 1) + [185] = "%1d", --PTR-ICP-TMB-RTNSEQ-UP-185, ICP Data Control Switch, ICP Data Control Switch, , UP, (1, 0, 1) + [185] = "%1d", --PTR-ICP-TMB-RTNSEQ-UP-185, ICP Data Control Switch, ICP Data Control Switch, , UP, (1, 0, 1) + [122] = "%1d", --PTR-CPBC-BTN-FACK-122, F-ACK Button, F-ACK Button, , , (1, 0, 1) + [125] = "%1d", --PTR-CPBC-BTN-IFF-125, IFF IDENT Button, IFF IDENT Button, , , (1, 0, 1) + [100] = "%1d", --PTR-CLCP-TMB-RF-100, RF Switch, RF Switch, , SILENT/QUIET/NORM, (1, -1, 1) + -- UHF_CONTROL_PANEL(37) + [419] = "%1d", --PTR-ANARC164-SQUELCH-419, UHF SQUELCH Switch, UHF SQUELCH Switch, , , (-1, 0, 1) + [734] = "%1d", --PTR_ANARC164-CHNL-SELECTOR01-734, Access Door, Access Door, , OPEN/CLOSE, (-1, 0, 1) + [420] = "%1d", --PTR-ANARC164-VOLUME-420, UHF VOL Knob, UHF VOL Knob, , , (0, 0, 1) + [418] = "%1d", --PTR-ANARC164-T-TONE-418, UHF Tone Button, UHF Tone Button, , , (1, 0, 1) + [419] = "%1d", --PTR-ANARC164-SQUELCH-419, UHF SQUELCH Switch, UHF SQUELCH Switch, , , (1, 0, 1) + [421] = "%1d", --PTR-ANARC164-TEST-DISPLAY-421, UHF TEST DISPLAY Button, UHF TEST DISPLAY Button, , , (1, 0, 1) + [422] = "%1d", --PTR-ANARC164-STATUS-422, UHF STATUS Button, UHF STATUS Button, , , (1, 0, 1) + [734] = "%1d", --PTR_ANARC164-CHNL-SELECTOR01-734, Access Door, Access Door, , OPEN/CLOSE, (1, 0, 1) + [410] = "%.2f", --PTR-ANARC164-CHNL-SELECTOR-410, UHF CHAN Knob, UHF CHAN Knob, , , (0.05, 0, 0.95) + [410] = "%.2f", --PTR-ANARC164-CHNL-SELECTOR-410, UHF CHAN Knob, UHF CHAN Knob, , , (-0.05, 0, 0.95) + [411] = "%.1f", --PTR-ANARC164-100MHZ-SEL-411, UHF Manual Frequency Knob 100 MHz, UHF Manual Frequency Knob 100 MHz, , , (0.1, 0.1, 0.3) + [412] = "%.1f", --PTR-ANARC164-10MHZ-SEL-412, UHF Manual Frequency Knob 10 MHz, UHF Manual Frequency Knob 10 MHz, , , (0.1, 0, 0.9) + [413] = "%.1f", --PTR-ANARC164-1MHZ-SEL-413, UHF Manual Frequency Knob 1 MHz, UHF Manual Frequency Knob 1 MHz, , , (0.1, 0, 0.9) + [414] = "%.1f", --PTR-ANARC164-0.1MHZ-SEL-414, UHF Manual Frequency Knob 0.1 MHz, UHF Manual Frequency Knob 0.1 MHz, , , (0.1, 0, 0.9) + [416] = "%.1f", --PTR-ANARC164-FREQMODE-416, UHF Mode Knob, UHF Mode Knob, , , (0.1, 0, 0.2) + [417] = "%.1f", --PTR-ANARC164-FUNCTION-417, UHF Function Knob, UHF Function Knob, , , (0.1, 0, 0.3) + [411] = "%.1f", --PTR-ANARC164-100MHZ-SEL-411, UHF Manual Frequency Knob 100 MHz, UHF Manual Frequency Knob 100 MHz, , , (-0.1, 0.1, 0.3) + [412] = "%.1f", --PTR-ANARC164-10MHZ-SEL-412, UHF Manual Frequency Knob 10 MHz, UHF Manual Frequency Knob 10 MHz, , , (-0.1, 0, 0.9) + [413] = "%.1f", --PTR-ANARC164-1MHZ-SEL-413, UHF Manual Frequency Knob 1 MHz, UHF Manual Frequency Knob 1 MHz, , , (-0.1, 0, 0.9) + [414] = "%.1f", --PTR-ANARC164-0.1MHZ-SEL-414, UHF Manual Frequency Knob 0.1 MHz, UHF Manual Frequency Knob 0.1 MHz, , , (-0.1, 0, 0.9) + [416] = "%.1f", --PTR-ANARC164-FREQMODE-416, UHF Mode Knob, UHF Mode Knob, , , (-0.1, 0, 0.2) + [417] = "%.1f", --PTR-ANARC164-FUNCTION-417, UHF Function Knob, UHF Function Knob, , , (-0.1, 0, 0.3) + [415] = "%.2f", --PTR-ANARC164-0.025MHZ-SEL-415, UHF Manual Frequency Knob 0.025 MHz, UHF Manual Frequency Knob 0.025 MHz, , , (0.25, 0, 0.75) + [415] = "%.2f", --PTR-ANARC164-0.025MHZ-SEL-415, UHF Manual Frequency Knob 0.025 MHz, UHF Manual Frequency Knob 0.025 MHz, , , (-0.25, 0, 0.75) + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) <- special function for get frequency data + ]] + + ------------------ + -----F16 mike----- + ------------------ + --mike might be breaking all things called after it in this function. Darn. + ExportScript.mike(mainPanelDevice) + +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000), 2) -- export to Hardware '2' Config + ]] + +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + + ExportScript.EcmPanel(mainPanelDevice) + ExportScript.FuelInfo(mainPanelDevice) + ExportScript.UhfRadioPresets(mainPanelDevice) + + --if LoIsObjectExportAllowed() then -- returns true if world objects data is available + --if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + --ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + --ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + --ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + --ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + --ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + --ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + --end + --end + + -- TODO FIX: If cold start online then this blocks exports after it. Keep this last. + ExportScript.CountermeasureReadouts(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + +end + +---------------------- +-- Custom functions -- +---------------------- +function ExportScript.mike(mainPanelDevice) -- F16 mike project + -- ExportScript.Tools.SendData(44250, "Hello") -- Test + ------------------- + -----F16 mike----- + ------------------- + + -- Aka (Streamdeck Elevation Navigation Pressure Altimeter Instrument) SENPAI + -- Aka (STANDARD UNIT GRAPHICAL OVERLAY INTERPRETATION) SUGOI + -- Aka (Local Elevation and Weather Dataconverter) LEWD + -- Aka (Metric Imperial Navigation Automated System Aid Nonsense) MINA-SAN + + --[[ + Goal: Create a "universal" profile that displays the following for every module with + minimal or no Stream Deck reconfiguration. Contains 4 tiles with three conversions each. + - Pressure + - inHg + - Millibars + - mmHg + - Altitude (MSL) + - feet + - meters + - kilometers + - Altitude (AGL) + - feet + - meters + - kilometers + - Airspeed + - Knots + - kilometers per hr + - Mach (airframe dependent) + + + -- Export number format + 44224 = Pressure readouts + 44225 = Pressure readout color change + 44226 = Alt(msl) readouts + 44227 = Alt(msl) readout color change + 44228 = Alt(agl) readouts + 44229 = Alt(agl) readout color change + 44230 = airspeed readouts + 44231 = airspeed readout color change + ]] + + ---------------------------- + -- Get F16 Pressure Info --- + ---------------------------- + -- Necessary info + -- [56] = "%.2f", -- Barometric Setting Kollsman Window 1 + -- [57] = "%.2f", -- Barometric Setting Kollsman Window 2 + -- [58] = "%.2f", -- Barometric Setting Kollsman Window 3 + -- [59] = "%.2f", -- Barometric Setting Kollsman Window 4 + -- the above are 0 = 0 , 0.50 = 5, 1 = 0 + -- they are tumblers + + --[[ + range is 120 units + magic formula is =(value*120)+670 + 0 = 680 + 0.5000 = + 1 = 790 + ]] + -- TODO: There is a bug to where the inHg displays 29.48 --> 29.49 --> 29.510 --> 29.50 --> 29.51 + local KollsmanWindowReadout_value1 = string.format("%.f",mainPanelDevice:get_argument_value(56) * 10) + local KollsmanWindowReadout_value2 = string.format("%.f",mainPanelDevice:get_argument_value(57) * 10) + local KollsmanWindowReadout_value3 = string.format("%.f",mainPanelDevice:get_argument_value(58) * 10) + local KollsmanWindowReadout_value4 = string.format("%.f",mainPanelDevice:get_argument_value(59) * 10) + + if KollsmanWindowReadout_value1 == "10" then + KollsmanWindowReadout_value1 = "0" + end + if KollsmanWindowReadout_value2 == "10" then + KollsmanWindowReadout_value2 = "0" + end + if KollsmanWindowReadout_value3 == "10" then + KollsmanWindowReadout_value3 = "0" + end + if KollsmanWindowReadout_value4 == "10" then + KollsmanWindowReadout_value4 = "0" + end + + local KollsmanWindowReadout_total = string.format(KollsmanWindowReadout_value1 .. KollsmanWindowReadout_value2 .. "." .. KollsmanWindowReadout_value3 .. KollsmanWindowReadout_value4 ) + local pressure_f16c_inHg = KollsmanWindowReadout_total + + --ExportScript.Tools.SendData(44260, pressure_f16c_inHg .. " inHg") + + -- convert to mmhg + local pressure_f16c_mmHg = string.format("%.f", pressure_f16c_inHg * 25.4) + --ExportScript.Tools.SendData(44261, pressure_f16c_mmHg .. " mmHg") + + -- Convert to millibar + local pressure_f16c_mbar = string.format("%.f", pressure_f16c_inHg * 33.864) + --ExportScript.Tools.SendData(44262, pressure_f16c_mbar .. " mbar") + + -- Combined + ExportScript.Tools.SendData(44224, string.format("Pressure\n" .. + pressure_f16c_inHg .. " inHg" .. "\n" .. + pressure_f16c_mmHg .. " mmHg" .. "\n" .. + pressure_f16c_mbar .. " mbar")) + + ---------------------------------- + -- Get F16 Altitude (MSL) Info --- + ---------------------------------- + -- Necessary info + --[51] = "%.3f", -- Barometric Altitude Needle + --[52] = "%.3f", -- Barometric Altitude Window 1 + --[53] = "%.3f", -- Barometric Altitude Window 2 + --[54] = "%.3f", -- Barometric Altitude Window 3 + -- the above are 0 = 0 , 0.50 = 5, 1 = 0 + -- they are tumblers + + local altitudeWindowReadout_value1 = string.format("%.f",mainPanelDevice:get_argument_value(52) * 10) + local altitudeWindowReadout_value2 = string.format("%.f",mainPanelDevice:get_argument_value(53) * 10) + local altitudeWindowReadout_value3 = string.format("%.f",mainPanelDevice:get_argument_value(54) * 10) + local altitudeWindowReadout_needle = string.format("%.f",mainPanelDevice:get_argument_value(51) * 1000) + + --this fixes the extra "10" problem + if altitudeWindowReadout_value1 == "10" then + altitudeWindowReadout_value1 = "0" + end + if altitudeWindowReadout_value2 == "10" then + altitudeWindowReadout_value2 = "0" + end + if altitudeWindowReadout_value3 == "10" then + altitudeWindowReadout_value3 = "0" + end + if altitudeWindowReadout_needle == "10" then + altitudeWindowReadout_needle = "0" + end + --this is for the hash part + if altitudeWindowReadout_value1 == "0" then + altitudeWindowReadout_value1 = "" + end + + -- this is to fill the blank space when the needle is below 100 + if #altitudeWindowReadout_needle == 1 then + altitudeWindowReadout_needle = string.format("00" .. altitudeWindowReadout_needle) + end + if #altitudeWindowReadout_needle == 2 then + altitudeWindowReadout_needle = string.format("0" .. altitudeWindowReadout_needle) + end + + --ExportScript.Tools.SendData(44261, altitudeWindowReadout_value1 .. " ft") + --ExportScript.Tools.SendData(44262, altitudeWindowReadout_value2 .. " ft") + --ExportScript.Tools.SendData(44263, altitudeWindowReadout_value3 .. " ft") + --ExportScript.Tools.SendData(44264, altitudeWindowReadout_needle .. " ft") + + --value 3 isnt needed bc it is taken over by the needle + local altitudeWindowReadout_total = string.format(altitudeWindowReadout_value1 .. altitudeWindowReadout_value2 .. altitudeWindowReadout_needle) + --remove leading zeros + altitudeWindowReadout_total = altitudeWindowReadout_total:match("0*(%d+)") --https://stackoverflow.com/questions/34331633/remove-leading-zeroes-in-lua-string + local altMsl_f16c_ft = altitudeWindowReadout_total + + --ExportScript.Tools.SendData(44260, altMsl_f16c_ft .. " ft") + + -- convert to meters + local altMsl_f16c_meters = string.format("%.f", altMsl_f16c_ft / 3.281) + --ExportScript.Tools.SendData(44261, altMsl_f16c_meters .. " m") + + -- convert to km + local altMsl_f16c_km = string.format("%.2f", altMsl_f16c_ft / 3281) + --ExportScript.Tools.SendData(44262, altMsl_f16c_km .. " km") + + -- Combined + ExportScript.Tools.SendData(44226, string.format("Alt (MSL)\n" .. + altMsl_f16c_ft .. " ft" .. "\n" .. + altMsl_f16c_meters .. " m" .. "\n" .. + altMsl_f16c_km .. " km")) + ---------------------------------- + -- Get F16 Altitude (AGL) Info --- todo: this + ---------------------------------- + --the radar altimeter readout is somehwere between entry 466 and 480. youll have to find it + --local expendableReadout = ExportScript.Tools.split(list_indication(1), "%c")--this contains the formated table of the HUD info + + local expendableReadout1 = ExportScript.Tools.split(list_indication(1), "%c")--this contains the formated table of the HUD info + + local radAlt_firstHalf + local radAlt_secondHalf + + --[[ + + for k,v in pairs(expendableReadout1) do + if v == "HUD_RadarAlt_num_k" then + radAlt_firstHalf = expendableReadout1[k+1] + end + if v == "HUD_RadarAlt_num" then + radAlt_secondHalf = expendableReadout1[k+1] + end + end + ]] + + for k,v in pairs(expendableReadout) do + if v ~= "HUD_RadarAlt_num_k" then + for x,y in pairs(expendableReadout) do + if y == "HUD_RadarAlt_num" then + radAlt_secondHalf = expendableReadout[x+1] + print(radAlt_secondHalf) + end + end + end + end + + local radAlt_total = string.format("%.f",radAlt_firstHalf .. radAlt_secondHalf) + local altAgl_f16c_ft = radAlt_total + + ExportScript.Tools.SendData(44250, radAlt_firstHalf) + ExportScript.Tools.SendData(44251, radAlt_secondHalf) + ExportScript.Tools.SendData(44252, string.format(altAgl_f16c_ft .. " ft")) + + + -- Convert to meters + local altAgl_f16c_meters = string.format("%.0f", altAgl_f16c_ft / 3.281) + --ExportScript.Tools.SendData(44262, altMsl_f16c_km .. " km") + + -- Convert to km + local altAgl_f16c_km = string.format("%.2f", altAgl_f16c_ft / 3281) + + -- Combined + ExportScript.Tools.SendData(44228, string.format("Alt (AGL)\n" .. + altAgl_f16c_ft .. " ft" .. "\n" .. + altAgl_f16c_meters .. " m" .. "\n" .. + altAgl_f16c_km .. " km")) + ---------------------------- + -- Get F16 Airspeed Info --- TODO: use the new way of lua to get the HUD airspeed. + ---------------------------- + + --[48] = "%.3f", -- Airspeed Indicator (knots) -- todo: replace with hud indication when i can parse the lua + --[49] = "%.3f", -- Airspeed Indicator (mach) --todo: later when i can parse the lua + + -- old way of detection + local airspeed_f16c_kts = string.format("%.f",(mainPanelDevice:get_argument_value(48) * 1000) - 0) -- the "-4" is there because I feel like it matches slightly better + ExportScript.Tools.SendData(44264, string.format(airspeed_f16c_kts .. " kts")) + + -- Convert to kmph + local airspeed_f16c_kmph = string.format("%.f",airspeed_f16c_kts * 1.852) + ExportScript.Tools.SendData(44263, string.format(airspeed_f16c_kmph .. " km/h")) + + -- Compined + ExportScript.Tools.SendData(44230, string.format("Airspeed\n" .. + airspeed_f16c_kts .. " kts" .. "\n" .. + airspeed_f16c_kmph .. " km/h" .. "\n" .. + " ")) + + -- Extras + -- Radar alt color change TODO: this + --if R readout is less than AL readout, change the color + local radAlt_minimums + + for k,v in pairs(expendableReadout1) do + if v == "HUD_Window25_Altitude_Low_num" then + radAlt_minimums = expendableReadout1[k+1] + end + end + + if radAlt_total > radAlt_minimums then + ExportScript.Tools.SendData(44229, "0") + else + ExportScript.Tools.SendData(44229, "1") + end + ExportScript.Tools.SendData(44260, radAlt_minimums) + ExportScript.Tools.SendData(44261, radAlt_total) + + + -- Airspeed color change + -- if the raw value of the barberpole (VNE) needle is less than the other needles, change color + if mainPanelDevice:get_argument_value(47) < mainPanelDevice:get_argument_value(48) then + ExportScript.Tools.SendData(44231, "1") + else + ExportScript.Tools.SendData(44231, "0") + end + + + + +end + +function ExportScript.KollsmanWindowReadout(mainPanelDevice) + -- Function WIP + -- ExportScript.Tools.SendData(44250, "Hello again") -- Test + -- Necessary info + -- [56] = "%.2f", -- Barometric Setting Kollsman Window 1 + -- [57] = "%.2f", -- Barometric Setting Kollsman Window 2 + -- [58] = "%.2f", -- Barometric Setting Kollsman Window 3 + -- [59] = "%.2f", -- Barometric Setting Kollsman Window 4 + -- the above are 0 = 0 , 0.50 = 5, 1 = 0 + -- they are tumblers +end + +function ExportScript.FuelInfo(mainPanelDevice) + local FuelTotalizer_10k = mainPanelDevice:get_argument_value(730) * 100000 + local FuelTotalizer_1k = math.floor(mainPanelDevice:get_argument_value(731) * 10) * 1000 -- this method counters the odd rounding seen with roller counters + local FuelTotalizer_100 = mainPanelDevice:get_argument_value(732) * 1000 + + local totalFuel = FuelTotalizer_10k + FuelTotalizer_1k + FuelTotalizer_100 + totalFuel = round(totalFuel, 0) + totalFuel = format_int(totalFuel) + ExportScript.Tools.SendData(3006, "Fuel LBS\n" .. totalFuel) + + + local FuelFlowCounter_10k = mainPanelDevice:get_argument_value(88) * 100000 + local FuelFlowCounter_1k = math.floor(mainPanelDevice:get_argument_value(89) * 10) * 1000 -- this method counters the odd rounding seen with roller counters + local FuelFlowCounter_100 = mainPanelDevice:get_argument_value(90) * 1000 + + local totalFuelFlowCounter = FuelFlowCounter_10k + FuelFlowCounter_1k + FuelFlowCounter_100 + totalFuelFlowCounter = round(totalFuelFlowCounter, -1) + totalFuelFlowCounter = format_int(totalFuelFlowCounter) + + ExportScript.Tools.SendData(3007, "Fuel Flow\n" .. totalFuelFlowCounter) +end + +function ExportScript.EcmPanel(mainPanelDevice) + --this is logic for the ECM panel and the associated lights + --this is designed to be paired with the proper pre-formated image + --https://en.wikipedia.org/wiki/Block_Elements + -- 5 of these █ will cover the whole row at Times New Roman 15pt + -- options for blanking out + -- left showing | ████| + -- right showing|████ | + -- both showing || + -- both hidden|█████| + + --1 logic + local topPattern_1 + -- if S and A are both off + if mainPanelDevice:get_argument_value(461) < 0.5 and mainPanelDevice:get_argument_value(462) < 0.5 then + topPattern_1 = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(461) > 0.5 and mainPanelDevice:get_argument_value(462) < 0.5 then + topPattern_1 = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(461) > 0.5 and mainPanelDevice:get_argument_value(462) > 0.5 then + topPattern_1 = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(461) < 0.5 and mainPanelDevice:get_argument_value(462) > 0.5 then + topPattern_1 = "████ " + end + + local bottomPattern_1 + -- if F and T are both off + if mainPanelDevice:get_argument_value(463) < 0.5 and mainPanelDevice:get_argument_value(464) < 0.5 then + bottomPattern_1 = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(463) > 0.5 and mainPanelDevice:get_argument_value(464) < 0.5 then + bottomPattern_1 = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(463) > 0.5 and mainPanelDevice:get_argument_value(464) > 0.5 then + bottomPattern_1 = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(463) < 0.5 and mainPanelDevice:get_argument_value(464) > 0.5 then + bottomPattern_1 = "████ " + end + + ExportScript.Tools.SendData(3008, topPattern_1 .. "\n\n" .. bottomPattern_1) + + --2 logic + local topPattern_2 + -- if S and A are both off + if mainPanelDevice:get_argument_value(466) < 0.5 and mainPanelDevice:get_argument_value(467) < 0.5 then + topPattern_2 = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(466) > 0.5 and mainPanelDevice:get_argument_value(467) < 0.5 then + topPattern_2 = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(466) > 0.5 and mainPanelDevice:get_argument_value(467) > 0.5 then + topPattern_2 = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(466) < 0.5 and mainPanelDevice:get_argument_value(467) > 0.5 then + topPattern_2 = "████ " + end + + local bottomPattern_2 + -- if F and T are both off + if mainPanelDevice:get_argument_value(468) < 0.5 and mainPanelDevice:get_argument_value(469) < 0.5 then + bottomPattern_2 = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(468) > 0.5 and mainPanelDevice:get_argument_value(469) < 0.5 then + bottomPattern_2 = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(468) > 0.5 and mainPanelDevice:get_argument_value(469) > 0.5 then + bottomPattern_2 = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(468) < 0.5 and mainPanelDevice:get_argument_value(469) > 0.5 then + bottomPattern_2 = "████ " + end + + ExportScript.Tools.SendData(3009, topPattern_2 .. "\n\n" .. bottomPattern_2) + + --3 logic + local topPattern_3 + -- if S and A are both off + if mainPanelDevice:get_argument_value(471) < 0.5 and mainPanelDevice:get_argument_value(472) < 0.5 then + topPattern_3 = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(471) > 0.5 and mainPanelDevice:get_argument_value(472) < 0.5 then + topPattern_3 = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(471) > 0.5 and mainPanelDevice:get_argument_value(472) > 0.5 then + topPattern_3 = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(471) < 0.5 and mainPanelDevice:get_argument_value(472) > 0.5 then + topPattern_3 = "████ " + end + + local bottomPattern_3 + -- if F and T are both off + if mainPanelDevice:get_argument_value(473) < 0.5 and mainPanelDevice:get_argument_value(474) < 0.5 then + bottomPattern_3 = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(473) > 0.5 and mainPanelDevice:get_argument_value(474) < 0.5 then + bottomPattern_3 = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(473) > 0.5 and mainPanelDevice:get_argument_value(474) > 0.5 then + bottomPattern_3 = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(473) < 0.5 and mainPanelDevice:get_argument_value(474) > 0.5 then + bottomPattern_3 = "████ " + end + + ExportScript.Tools.SendData(3010, topPattern_3 .. "\n\n" .. bottomPattern_3) + + --4 logic + local topPattern_4 + -- if S and A are both off + if mainPanelDevice:get_argument_value(476) < 0.5 and mainPanelDevice:get_argument_value(477) < 0.5 then + topPattern_4 = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(476) > 0.5 and mainPanelDevice:get_argument_value(477) < 0.5 then + topPattern_4 = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(476) > 0.5 and mainPanelDevice:get_argument_value(477) > 0.5 then + topPattern_4 = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(476) < 0.5 and mainPanelDevice:get_argument_value(477) > 0.5 then + topPattern_4 = "████ " + end + + local bottomPattern_4 + -- if F and T are both off + if mainPanelDevice:get_argument_value(478) < 0.5 and mainPanelDevice:get_argument_value(479) < 0.5 then + bottomPattern_4 = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(478) > 0.5 and mainPanelDevice:get_argument_value(479) < 0.5 then + bottomPattern_4 = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(478) > 0.5 and mainPanelDevice:get_argument_value(479) > 0.5 then + bottomPattern_4 = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(478) < 0.5 and mainPanelDevice:get_argument_value(479) > 0.5 then + bottomPattern_4 = "████ " + end + + ExportScript.Tools.SendData(3011, topPattern_4 .. "\n\n" .. bottomPattern_4) + + --5 logic + local topPattern_5 + -- if S and A are both off + if mainPanelDevice:get_argument_value(481) < 0.5 and mainPanelDevice:get_argument_value(482) < 0.5 then + topPattern_5 = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(481) > 0.5 and mainPanelDevice:get_argument_value(482) < 0.5 then + topPattern_5 = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(481) > 0.5 and mainPanelDevice:get_argument_value(482) > 0.5 then + topPattern_5 = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(481) < 0.5 and mainPanelDevice:get_argument_value(482) > 0.5 then + topPattern_5 = "████ " + end + + local bottomPattern_5 + -- if F and T are both off + if mainPanelDevice:get_argument_value(483) < 0.5 and mainPanelDevice:get_argument_value(484) < 0.5 then + bottomPattern_5 = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(483) > 0.5 and mainPanelDevice:get_argument_value(484) < 0.5 then + bottomPattern_5 = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(483) > 0.5 and mainPanelDevice:get_argument_value(484) > 0.5 then + bottomPattern_5 = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(483) < 0.5 and mainPanelDevice:get_argument_value(484) > 0.5 then + bottomPattern_5 = "████ " + end + + ExportScript.Tools.SendData(3012, topPattern_5 .. "\n\n" .. bottomPattern_5) + + --6 logic + local topPattern_6 + -- if S and A are both off + if mainPanelDevice:get_argument_value(486) < 0.5 and mainPanelDevice:get_argument_value(487) < 0.5 then + topPattern_6 = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(486) > 0.5 and mainPanelDevice:get_argument_value(487) < 0.5 then + topPattern_6 = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(486) > 0.5 and mainPanelDevice:get_argument_value(487) > 0.5 then + topPattern_6 = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(486) < 0.5 and mainPanelDevice:get_argument_value(487) > 0.5 then + topPattern_6 = "████ " + end + + local bottomPattern_6 + -- if F and T are both off + if mainPanelDevice:get_argument_value(488) < 0.5 and mainPanelDevice:get_argument_value(489) < 0.5 then + bottomPattern_6 = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(488) > 0.5 and mainPanelDevice:get_argument_value(489) < 0.5 then + bottomPattern_6 = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(488) > 0.5 and mainPanelDevice:get_argument_value(489) > 0.5 then + bottomPattern_6 = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(488) < 0.5 and mainPanelDevice:get_argument_value(489) > 0.5 then + bottomPattern_6 = "████ " + end + + ExportScript.Tools.SendData(3013, topPattern_6 .. "\n\n" .. bottomPattern_6) + + --FRM logic + local topPattern_FRM + -- if S and A are both off + if mainPanelDevice:get_argument_value(491) < 0.5 and mainPanelDevice:get_argument_value(492) < 0.5 then + topPattern_FRM = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(491) > 0.5 and mainPanelDevice:get_argument_value(492) < 0.5 then + topPattern_FRM = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(491) > 0.5 and mainPanelDevice:get_argument_value(492) > 0.5 then + topPattern_FRM = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(491) < 0.5 and mainPanelDevice:get_argument_value(492) > 0.5 then + topPattern_FRM = "████ " + end + + local bottomPattern_FRM + -- if F and T are both off + if mainPanelDevice:get_argument_value(493) < 0.5 and mainPanelDevice:get_argument_value(494) < 0.5 then + bottomPattern_FRM = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(493) > 0.5 and mainPanelDevice:get_argument_value(494) < 0.5 then + bottomPattern_FRM = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(493) > 0.5 and mainPanelDevice:get_argument_value(494) > 0.5 then + bottomPattern_FRM = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(493) < 0.5 and mainPanelDevice:get_argument_value(494) > 0.5 then + bottomPattern_FRM = "████ " + end + + ExportScript.Tools.SendData(3014, topPattern_FRM .. "\n\n" .. bottomPattern_FRM) + + --SPL logic + local topPattern_SPL + -- if S and A are both off + if mainPanelDevice:get_argument_value(496) < 0.5 and mainPanelDevice:get_argument_value(497) < 0.5 then + topPattern_SPL = "█████" + --if S is on and A is off + elseif mainPanelDevice:get_argument_value(496) > 0.5 and mainPanelDevice:get_argument_value(497) < 0.5 then + topPattern_SPL = " ████" + --if S is off and A is off + elseif mainPanelDevice:get_argument_value(496) > 0.5 and mainPanelDevice:get_argument_value(497) > 0.5 then + topPattern_SPL = "" + --if S is off and A is on + elseif mainPanelDevice:get_argument_value(496) < 0.5 and mainPanelDevice:get_argument_value(497) > 0.5 then + topPattern_SPL = "████ " + end + + local bottomPattern_SPL + -- if F and T are both off + if mainPanelDevice:get_argument_value(498) < 0.5 and mainPanelDevice:get_argument_value(499) < 0.5 then + bottomPattern_SPL = "█████" + --if F is on and T is off + elseif mainPanelDevice:get_argument_value(498) > 0.5 and mainPanelDevice:get_argument_value(499) < 0.5 then + bottomPattern_SPL = " ████" + --if F is off and T is off + elseif mainPanelDevice:get_argument_value(498) > 0.5 and mainPanelDevice:get_argument_value(499) > 0.5 then + bottomPattern_SPL = "" + --if F is off and T is on + elseif mainPanelDevice:get_argument_value(498) < 0.5 and mainPanelDevice:get_argument_value(499) > 0.5 then + bottomPattern_SPL = "████ " + end + + ExportScript.Tools.SendData(3015, topPattern_SPL .. "\n\n" .. bottomPattern_SPL) +end + +function ExportScript.CountermeasureReadouts(mainPanelDevice) + + local expendableReadout = ExportScript.Tools.getListIndicatorValue(16) + + local CMDS_O1_Amount + local CMDS_O2_Amount + local CMDS_CH_Amount + local CMDS_FL_Amount + + if expendableReadout.CMDS_O1_Amount == nil then + CMDS_O1_Amount = "--" + else + CMDS_O1_Amount = expendableReadout.CMDS_O1_Amount + end + + if expendableReadout.CMDS_O2_Amount == nil then + CMDS_O2_Amount = "--" + else + CMDS_O2_Amount = expendableReadout.CMDS_O2_Amount + end + + if expendableReadout.CMDS_CH_Amount == nil then + CMDS_CH_Amount = "--" + else + CMDS_CH_Amount = expendableReadout.CMDS_CH_Amount + end + + if expendableReadout.CMDS_FL_Amount == nil then + CMDS_FL_Amount = "--" + else + CMDS_FL_Amount = expendableReadout.CMDS_FL_Amount + end + + + CMDS_O1_Amount = trim(CMDS_O1_Amount) + CMDS_O2_Amount = trim(CMDS_O2_Amount) + CMDS_CH_Amount = trim(CMDS_CH_Amount) + CMDS_FL_Amount = trim(CMDS_FL_Amount) + + ExportScript.Tools.SendData(3000, "OTHER1\n" .. CMDS_O1_Amount) + ExportScript.Tools.SendData(3001, "OTHER2\n" .. CMDS_O2_Amount) + ExportScript.Tools.SendData(3002, "CHAFF\n" .. CMDS_CH_Amount) + ExportScript.Tools.SendData(3003, "FLARE\n" .. CMDS_FL_Amount) + + ExportScript.Tools.SendData(3004, "CH " .. CMDS_CH_Amount + .. "\nFL " .. CMDS_FL_Amount) + + ExportScript.Tools.SendData(3005, "O1 " .. CMDS_O1_Amount + .. "\nO2 " .. CMDS_O2_Amount + .. "\nCH " .. CMDS_CH_Amount + .. "\nFL " .. CMDS_FL_Amount) +end + + + +function ExportScript.UhfRadioPresets(mainPanelDevice) + + local UhfPresetReadout = ExportScript.Tools.getListIndicatorValue(12) -- uhf radio presets + + local UhfCh12 = UhfPresetReadout.txtCh12 + local UhfCh13 = UhfPresetReadout.txtCh13 + local UhfCh14 = UhfPresetReadout.txtCh14 + local UhfCh15 = UhfPresetReadout.txtCh15 + local UhfCh16 = UhfPresetReadout.txtCh16 + local UhfCh17 = UhfPresetReadout.txtCh17 + local UhfCh21 = UhfPresetReadout.txtCh21 + local UhfCh22 = UhfPresetReadout.txtCh22 + local UhfCh23 = UhfPresetReadout.txtCh23 + local UhfCh24 = UhfPresetReadout.txtCh24 + local UhfCh25 = UhfPresetReadout.txtCh25 + local UhfCh26 = UhfPresetReadout.txtCh26 + local UhfCh27 = UhfPresetReadout.txtCh27 + local UhfCh28 = UhfPresetReadout.txtCh28 + local UhfCh29 = UhfPresetReadout.txtCh29 + local UhfCh30 = UhfPresetReadout.txtCh30 + local UhfCh31 = UhfPresetReadout.txtCh31 + local UhfCh32 = UhfPresetReadout.txtCh32 + local UhfCh33 = UhfPresetReadout.txtCh33 + local UhfCh34 = UhfPresetReadout.txtCh34 + local UhfCh35 = UhfPresetReadout.txtCh35 + local UhfCh36 = UhfPresetReadout.txtCh36 + local UhfCh37 = UhfPresetReadout.txtCh37 + + + ExportScript.Tools.SendData(3016, "UHF 1-4" + .. "\n" .. UhfCh12 + .. "\n" .. UhfCh13 + .. "\n" .. UhfCh14 + .. "\n" .. UhfCh15 + ) + + ExportScript.Tools.SendData(3017, "UHF 5-8" + .. "\n" .. UhfCh16 + .. "\n" .. UhfCh17 + .. "\n" .. UhfCh21 + .. "\n" .. UhfCh22 + ) + + + ExportScript.Tools.SendData(3018, "UHF 9-12" + .. "\n" .. UhfCh23 + .. "\n" .. UhfCh24 + .. "\n" .. UhfCh25 + .. "\n" .. UhfCh26 + ) + + ExportScript.Tools.SendData(3019, "UHF 13-16" + .. "\n" .. UhfCh27 + .. "\n" .. UhfCh31 + .. "\n" .. UhfCh32 + .. "\n" .. UhfCh33 + ) + + ExportScript.Tools.SendData(3020, "UHF 16-20" + .. "\n" .. UhfCh34 + .. "\n" .. UhfCh35 + .. "\n" .. UhfCh36 + .. "\n" .. UhfCh37 + ) +end + + + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their popperties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the extimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the prefered runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +---------------------- +-- Helper Functions -- +---------------------- +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-4E-45MC.lua b/Scripts/DCS-ExportScript/ExportsModules/F-4E-45MC.lua new file mode 100644 index 00000000..b9c53d62 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-4E-45MC.lua @@ -0,0 +1,2187 @@ +-- DCS F-4E Phantom II by HEATBLUR + +ExportScript.FoundDCSModule = true +ExportScript.Version.F4E45MC = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [1] = "%.1f", -- Pilot_STICK_ROLL + [2] = "%.1f", -- Pilot_STICK_PITCH + [3] = "%.1f", -- WSO_STICK_ROLL + [4] = "%.1f", -- WSO_STICK_PITCH + [5] = "%.1f", -- Landing Gear_Lever {1, 0, 1, Landing Gear (Pull Out for Emergency)} + [6] = "%.1f", -- Toebrake_L + [7] = "%.1f", -- Toebrake_R + [8] = "%.1f", -- Pilot_Rudder_Pedal_Adjust + [9] = "%.1f", -- WSO_Rudder_Pedal_Adjust + [38] = "%.1f", -- ??? + [50] = "%.1f", -- LGIndicator_UP_Right + [51] = "%.1f", -- LGindicator_UP_Nose + [52] = "%.1f", -- LGIndicator_UP_Left + [54] = "%.1f", -- RUDDER_PEDALS + [55] = "%.1f", -- Pilot_Canopy_Lock_Mech + [56] = "%.1f", -- WSO_Canopy_Lock_Mech + [63] = "%.1f", -- AntiSkid_Switch {-1, 0, 1, Anti-Skid Toggle} + [64] = "%.1f", -- AntiSkid_Inop_Light + [65] = "%.1f", -- WHEELS_Light + [66] = "%.1f", -- WHEELS_Handle_Light_Pilot + [67] = "%.1f", -- Pilot_G_Needle_First + [68] = "%.1f", -- Pilot_G_Needle_Second + [69] = "%.1f", -- Pilot_G_Needle_Third + [70] = "%.1f", -- Pilot_AOA_Needle + [71] = "%.1f", -- Pilot_AOA_OFF_Flag + [72] = "%.1f", -- Pilot_G_Button {1, 0, 1, Reset Accelerometer} + [73] = "%.1f", -- Radar_Alt_Needle + [74] = "%.1f", -- Radar_Low_Alt_Indicator + [75] = "%.1f", -- Radar_Alt_Off_Flag + [76] = "%.2f", -- Pilot_ICS_Volume {0.5, 0, 1, Change Intercom Volume} + [77] = "%.1f", -- Low_AoA_Indexer_Left_Pilot + [78] = "%.1f", -- Mid_AoA_Indexer_Left_Pilot + [79] = "%.1f", -- Top_AoA_Indexer_Left_Pilot + [80] = "%.1f", -- Mag_Compass_Hdg + [81] = "%.1f", -- Mag_Compass_Pitch + [82] = "%.1f", -- Mag_Compass_Bank + [83] = "%.2f", -- Radar_Alt_Function_Ctr_Switch {0, -0.2, 1, Move Bug (push to test rotate to 0, to turn off)} + [84] = "%.1f", -- Radar_Alt_Function_Ctr_Push {1, 0, 1, Move Bug (push to test rotate to 0, to turn off)} + [85] = "%.1f", -- Radar_Alt_Warning_Light + [86] = "%.1f", -- Pneumatic_Pressure_Needle + [87] = "%.1f", -- Pilot_Canopy + [88] = "%.1f", -- Copilot_Canopy + [90] = "%.1f", -- Pilot_VSI_Needle + [91] = "%.3f", -- Pilot_Altimeter_Needle + [92] = "%.3f", -- Pilot_Altimeter_Hundreds + [93] = "%.3f", -- Pilot_Altimeter_Thousands + [94] = "%.3f", -- Pilot_Altimeter_Tenthousands + [95] = "%.2f", -- Pilot_Altimeter_Set_Knob {0.5, 0, 1, Change Reference Pressure} + [96] = "%.1f", -- Pilot_Altimeter_Set_DecHundreds + [97] = "%.1f", -- Pilot_Altimeter_Set_DecTens + [98] = "%.1f", -- Pilot_Altimeter_Set_Ones + [99] = "%.1f", -- Pilot_Altimeter_Set_Tens + [100] = "%.1f", -- Pilot_Altimeter_ResetStby_Switch {-1, -1, 0, Change Mode (hold to reset)} + [101] = "%.1f", -- Pilot_Altimeter_Stby_Flag + [102] = "%.1f", -- Pilot_Machandairspeed_IAS_Needle + [103] = "%.1f", -- Pilot_Machandairspeed_Mach_Dial + [104] = "%.1f", -- Pilot_Machandairspeed_Bug_Airspeed + [105] = "%.1f", -- Pilot_Machandairspeed_Bug_Mach + [106] = "%.2f", -- Pilot_Machandairspeed_Knob_Rotation {0.5, 0, 1, Move Bug (toggle speed/mach bugs)} + [107] = "%.1f", -- Pilot_Machandairspeed_Knob_Position {1, 0, 1, Move Bug (toggle speed/mach bugs)} + [108] = "%.1f", -- Pitot_Heat_Switch {-1, 0, 1, Pitot Heat} + [109] = "%.5f", -- TAS_ones + [110] = "%.5f", -- TAS_tens + [111] = "%.5f", -- TAS_hundreds + [112] = "%.5f", -- TAS_thousands + [113] = "%.1f", -- SPC_switch {-1, 1, 0, CADC Corrections} + [114] = "%.1f", -- STATIC_CORR_OFF_light + [115] = "%.1f", -- ALT_ENCODER_OUT_light + [118] = "%.1f", -- Antenna_Selection_Switch {-1, 0, 1, Select Communication Antenna} + [119] = "%.1f", -- Pilot_COMM_CMD_Button {1, 0, 1, Toggle Radio Command} + [120] = "%.1f", -- Pilot_NAV_CMD_Button {1, 0, 1, Toggle TACAN Command} + [121] = "%.2f", -- Pilot_UHF_Volume_Control {0.5, 0, 1, Change UHF Volume} + [122] = "%.2f", -- Pilot_UHF_Mode_Selector_Knob {-0.2, 0, 1, Select Radio Mode} + [123] = "%.4f", -- Pilot_UHF_Communication_Channel_Control_Knob {-0.058823529, 0, 1, Set Comm Channel} + [131] = "%.4f", -- Pilot_UHF_Freq_Knob_DecHundreds {-0.333333333, 0, 1, Set Frequency (decimal hundreds)} + [132] = "%.4f", -- Pilot_UHF_Freq_Knob_DecOnes {-0.111111111, 0, 1, Set Frequency (decimal ones)} + [133] = "%.4f", -- Pilot_UHF_Freq_Knob_Ones {-0.111111111, 0, 1, Set Frequency (ones)} + [134] = "%.4f", -- Pilot_UHF_Freq_Knob_Tens {-0.111111111, 0, 1, Set Frequency (tens)} + [135] = "%.1f", -- Pilot_UHF_Set_Channel_Pushbutton {1, 0, 1, Load Selected Comm Channel} + [136] = "%.4f", -- Pilot_UHF_AUX_Channel_Control_Knob {-0.052631579, 0, 1, Set AUX Channel} + [139] = "%.2f", -- Pilot_UHF_AUX_Volume_Control {0.5, 0, 1, Change AUX Volume} + [144] = "%.1f", -- RIO_COMM_CMD_Button {1, 0, 1, Toggle Radio Command} + [145] = "%.1f", -- RIO_NAV_CMD_Button {1, 0, 1, Toggle TACAN Command} + [146] = "%.2f", -- RIO_UHF_Volume_Control {0.5, 0, 1, Change UHF Volume} + [147] = "%.1f", -- RIO_UHF_Mode_Selector_Switch {-1, 0, 1, Select Frequency Mode} + [148] = "%.4f", -- RIO_UHF_Communication_Channel_Control_Knob {-0.058823529, 0, 1, Set Comm Channel} + [156] = "%.4f", -- RIO_UHF_Freq_Knob_DecHundreds {-0.333333333, 0, 1, Set Frequency (decimal hundreds)} + [157] = "%.4f", -- RIO_UHF_Freq_Knob_DecOnes {-0.111111111, 0, 1, Set Frequency (decimal ones)} + [158] = "%.4f", -- RIO_UHF_Freq_Knob_Ones {-0.111111111, 0, 1, Set Frequency (ones)} + [159] = "%.4f", -- RIO_UHF_Freq_Knob_Tens {-0.111111111, 0, 1, Set Frequency (tens)} + [160] = "%.1f", -- RIO_UHF_Set_Channel_Pushbutton {1, 0, 1, Load Selected Comm Channel} + [161] = "%.4f", -- RIO_UHF_AUX_Channel_Control_Knob {-0.052631579, 0, 1, Set AUX Channel} + [164] = "%.2f", -- RIO_UHF_AUX_Volume_Control {0.5, 0, 1, Change AUX Volume} + [169] = "%.1f", -- Pilot_COMM_CMD_light + [170] = "%.1f", -- Pilot_NAV_CMD_light + [171] = "%.1f", -- RIO_NAV_CMD_light + [172] = "%.1f", -- RIO_COMM_CMD_light + [177] = "%.1f", -- Rio_G_Needle_First + [178] = "%.1f", -- Rio_G_Needle_Second + [179] = "%.1f", -- Rio_G_Needle_Third + [180] = "%.1f", -- Rio_G_Button {1, 0, 1, Reset Accelerometer} + [181] = "%.1f", -- Rio_VSI_Needle + [182] = "%.1f", -- Rio_Altimeter_Needle + [183] = "%.1f", -- Rio_Altimeter_Hundreds + [184] = "%.1f", -- Rio_Altimeter_Thousands + [185] = "%.1f", -- Rio_Altimeter_Tenthousands + [186] = "%.4f", -- Rio_Altimeter_Set_Knob {0.03, 0, 1, Change Reference Pressure} + [187] = "%.1f", -- Rio_Altimeter_Set_DecHundreds + [188] = "%.1f", -- Rio_Altimeter_Set_DecTens + [189] = "%.1f", -- Rio_Altimeter_Set_Ones + [190] = "%.1f", -- Rio_Altimeter_Set_Tens + [191] = "%.1f", -- Rio_Altimeter_ResetStby_Switch {-1, -1, 0, Change Mode (hold to reset)} + [192] = "%.1f", -- Rio_Altimeter_Stby_Flag + [193] = "%.1f", -- Rio_Machandairspeed_IAS_Needle + [194] = "%.1f", -- Rio_Machandairspeed_Mach_Dial + [195] = "%.1f", -- Rio_Machandairspeed_Bug_Airspeed + [196] = "%.1f", -- Rio_Machandairspeed_Bug_Mach + [197] = "%.2f", -- Rio_Machandairspeed_Knob_Rotation {0.5, 0, 1, Move Bug (toggle speed/mach bugs)} + [198] = "%.1f", -- Rio_Machandairspeed_Knob_Position {1, 0, 1, Move Bug (toggle speed/mach bugs)} + [199] = "%.1f", -- PILOT_BUS_TIE_OPEN_LIGHT + [200] = "%.1f", -- Pilot_Canopy_Handle {0, 0, 1, Canopy Control (Aft to Open)} + [201] = "%.1f", -- Copilot_Canopy_Handle {0, 0, 1, Canopy Control (Aft to Open)} + [202] = "%.1f", -- Pilot_Canopy_Jettison {0, 0, 1, Canopy Emergency Release (Pull to Jettison)} + [203] = "%.1f", -- Copilot_Canopy_Jettison {0, 0, 1, Canopy Emergency Release (Pull to Jettison)} + [204] = "%.1f", -- Pilot_Canopy_Manual_Unlock {0, 0, 1, Manual Canopy Unlock (command 'open' first)} + [205] = "%.1f", -- Copilot_Canopy_Manual_Unlock {0, 0, 1, Manual Canopy Unlock (command 'open' first)} + [206] = "%.1f", -- Pilot_Canopy_Visibility + [207] = "%.1f", -- Copilot_Canopy_Visibility + [208] = "%.1f", -- Pilot_WL_Canopy_Unlock_Vis + [209] = "%.1f", -- Copilot_WL_Canopy_Unlock_Vis + [210] = "%.1f", -- HYD_PRESS_PC_2 + [211] = "%.1f", -- HYD_PRESS_UTILITY + [212] = "%.1f", -- HYD_PRESS_PC_1 + [218] = "%.1f", -- Pilot_Master_Caution_Light + [219] = "%.1f", -- RIO_Master_Caution_Light + [220] = "%.1f", -- Pilot_Check_Hydraulics_Light + [221] = "%.1f", -- Master_Caution_Button {1, 0, 1, Reset Master Caution} + [222] = "%.1f", -- Pilot_Slats_Flaps_Control {-1, -1, 1, Flaps/Slats (Down for Out)} + [223] = "%.1f", -- Pilot_Slats_Flaps_Emergency {1, 0, 1, Flaps/Slats Emergency (Pull to Deploy)} + [224] = "%.1f", -- RIO_Slats_Flaps_Emergency {1, 0, 1, Flaps/Slats Emergency (Pull to Deploy)} + [225] = "%.1f", -- Pilot_Slats_Indicator + [226] = "%.1f", -- Pilot_Flaps_Indicator + [227] = "%.1f", -- RIO_Slats_Indicator + [228] = "%.1f", -- RIO_Flaps_Indicator + [231] = "%.1f", -- Pilot_Oxygen_Gauge + [232] = "%.1f", -- Pilot_Oxygen_Test {1, 0, 1, Test Oxygen Gauge} + [233] = "%.1f", -- Pilot_Oxygen_Pressure + [234] = "%.1f", -- Pilot_Oxygen_Flow_Light + [235] = "%.1f", -- Pilot_Oxygen_Pressure_Switch {-1, 1, 0, Select Oxygen Mode} + [236] = "%.4f", -- Pilot_Oxygen_Ratio_Switch {-1.00001, 0, 1, Select Oxygen Mixture} + [237] = "%.4f", -- Pilot_Oxygen_Supply_Switch {-1.00001, 0, 1, Oxygen Supply} + [238] = "%.1f", -- Oxygen_Low_Light + [239] = "%.1f", -- RIO_Oxygen_Gauge + [240] = "%.1f", -- RIO_Cockpit_Pressure_Gauge + [241] = "%.1f", -- RIO_Oxygen_Flow_Light + [242] = "%.1f", -- RIO_Oxygen_Pressure_Switch {-1, 1, 0, Select Oxygen Mode} + [243] = "%.4f", -- RIO_Oxygen_Ratio_Switch {-1.00001, 0, 1, Select Oxygen Mixture} + [244] = "%.4f", -- RIO_Oxygen_Supply_Switch {-1.00001, 0, 1, Oxygen Supply} + [245] = "%.1f", -- RIO_Oxygen_Pressure_Gauge + [246] = "%.1f", -- Pilot_Cockpit_Pressure_Gauge + [247] = "%.1f", -- Master_Arm_Switch {-1, 0, 1, Master Arm Switch} + [248] = "%.1f", -- Master_Arm_Vis + [249] = "%.1f", -- Gun_Arm_Button {-1, 0, 1, Arm/Disarm Gun} + [250] = "%.1f", -- LO_Arm_Button {-1, 0, 1, Arm/Disarm Left-Outer Station} + [251] = "%.1f", -- LI_Arm_Button {-1, 0, 1, Arm/Disarm Left-Inner Station} + [252] = "%.1f", -- CTR_Arm_Button {-1, 0, 1, Arm/Disarm Center Station} + [253] = "%.1f", -- RI_Arm_Button {-1, 0, 1, Arm/Disarm Right-Inner Station} + [254] = "%.1f", -- RO_Arm_Button {-1, 0, 1, Arm/Disarm Right-Outer Station} + [255] = "%.1f", -- Gun_Button_Lit + [256] = "%.1f", -- LO_Button_Lit + [257] = "%.1f", -- LI_Button_Lit + [258] = "%.1f", -- CTR_Button_Lit + [259] = "%.1f", -- RI_Button_Lit + [260] = "%.1f", -- RO_Button_Lit + [261] = "%.1f", -- Gun_Arm_Lit + [262] = "%.1f", -- LO_Arm_Lit + [263] = "%.1f", -- LI_Arm_Lit + [264] = "%.1f", -- CTR_Arm_Lit + [265] = "%.1f", -- RI_Arm_Lit + [266] = "%.1f", -- RO_Arm_Lit + [267] = "%.3f", -- Reticle_Depress_Knob {0, 0, 1, Change Reticle Depression (mil)} + [268] = "%.1f", -- Reticle_Depress_100s + [269] = "%.1f", -- Reticle_Depress_10s + [270] = "%.1f", -- Reticle_Depress_1s + [271] = "%.3f", -- HUD_Mode_Select {-0.1666, 0, 0.9996 Select HUD Mode} + [272] = "%.4f", -- Delivery_Mode_Knob {-0.0833, 0, 0.9996 Select Delivery Mode} + [273] = "%.2f", -- Weapon_Select_Knob {-0.142867143, 0, 1, Select Weapon} + [274] = "%.1f", -- Heads_Up_Gun_Light + [275] = "%.1f", -- Rounds_Remaining_100s + [276] = "%.1f", -- Rounds_Remaining_10s + [277] = "%.1f", -- Rounds_Remaining_1s + [278] = "%.1f", -- Gun_Rate_Switch {-1, 0, 1, Set Gun Rate} + [279] = "%.1f", -- Heads_Up_Radar_Light + [280] = "%.1f", -- Heads_Up_Heat_Light + [281] = "%.1f", -- Armament_Safety_Override {-1, 0, 1, Override Ground Safety (Gear Handle must be down)} + [282] = "%.1f", -- HUD_Shutter_Lever {-1, 0, 1, Toggle Collimator Shutter} + [284] = "%.1f", -- HEAT_Light_L + [285] = "%.1f", -- HEAT_Light_ML + [286] = "%.1f", -- HEAT_Light_MR + [287] = "%.1f", -- HEAT_Light_R + [288] = "%.1f", -- RADAR_Light_TL + [289] = "%.1f", -- RADAR_Light_BL + [290] = "%.1f", -- RADAR_Light_TR + [291] = "%.1f", -- RADAR_Light_BR + [292] = "%.1f", -- ENGINES_PILOT_LEFT_MASTER_SWITCH {-1, 0, 1, Left Engine Master Switch} + [293] = "%.1f", -- ENGINES_PILOT_RIGHT_MASTER_SWITCH {-1, 0, 1, Right Engine Master Switch} + [294] = "%.1f", -- ENGINES_PILOT_START_SWITCH {-1, -1, 0, Start Engine Switch} + [295] = "%.1f", -- ENGINES_PILOT_LEFT_IGNITION {1, 0, 1, Ignite Left Engine} + [296] = "%.1f", -- ENGINES_PILOT_RIGHT_IGNITION {1, 0, 1, Ignite Right Engine} + [297] = "%.1f", -- FUEL_PILOT_LEFT_GAUGE + [298] = "%.1f", -- FUEL_PILOT_RIGHT_GAUGE + [299] = "%.1f", -- ENGINES_TACHOMETER_LEFT_GAUGE + [300] = "%.1f", -- ENGINES_TACHOMETER_RIGHT_GAUGE + [301] = "%.1f", -- ENGINES_EXHAUST_TEMP_LEFT_GAUGE + [302] = "%.1f", -- ENGINES_EXHAUST_TEMP_RIGHT_GAUGE + [303] = "%.1f", -- ENGINES_NOZZLE_POSITION_LEFT_GAUGE + [304] = "%.1f", -- ENGINES_NOZZLE_POSITION_RIGHT_GAUGE + [305] = "%.2f", -- Bomb_Qty_Knob {-0.090919091, 0, 1, Select Quantity} + [306] = "%.1f", -- Bomb_Interval_Switch {-1, 0, 1, Select Interval Multiplier (x10)} + [307] = "%.2f", -- Bomb_Interval_Knob {0, 0, 1, Select Interval (s)} + [308] = "%.1f", -- WRCS_North_South_100s + [309] = "%.1f", -- WRCS_North_South_10s + [310] = "%.1f", -- WRCS_North_South_1s + [311] = "%.1f", -- WRCS_East_West_100s + [312] = "%.1f", -- WRCS_East_West_10s + [313] = "%.1f", -- WRCS_East_West_1s + [314] = "%.1f", -- WRCS_Advance_100s + [315] = "%.1f", -- WRCS_Advance_10s + [316] = "%.1f", -- WRCS_Advance_1s + [317] = "%.1f", -- WRCS_Range_100s + [318] = "%.1f", -- WRCS_Range_10s + [319] = "%.1f", -- WRCS_Range_1s + [320] = "%.4f", -- WRCS_North_South_Knob {0, 0, 1, Set Target N/S Distance (x100, ft)} + [321] = "%.4f", -- WRCS_East_West_Knob {0, 0, 1, Set Target E/W Distance (x100, ft)} + [322] = "%.4f", -- WRCS_Advance_Knob {0, 0, 1, Set Release Advance (ms)} + [323] = "%.4f", -- WRCS_Range_Knob {0, 0, 1, Set Release Range (x10, ft)} + [324] = "%.1f", -- WRCS_Alt_Range_100s + [325] = "%.1f", -- WRCS_Alt_Range_10s + [326] = "%.1f", -- WRCS_Alt_Range_1s + [327] = "%.1f", -- WRCS_Drag_100s + [328] = "%.1f", -- WRCS_Drag_10s + [329] = "%.1f", -- WRCS_Drag_1s + [330] = "%.4f", -- WRCS_Alt_Range_Knob {0, 0, 1, Set Target Altitude/Range (x100, ft} + [331] = "%.1f", -- WRCS_Drag_Knob {0, 0, 1, Set Drag Coefficient} + [332] = "%.4f", -- WRCS_Delivery_Mode_Knob {-0.16681, 0, 0.834 Select BIT Mode} + [334] = "%.2f", -- RADAR_Rio_Brightness {0.5, 0, 1, Change Grid Brightness} + [336] = "%.4f", -- RADAR_Rio_Power {-0.25, 0, 1, Radar Power Controls} + [337] = "%.2f", -- RADAR_Rio_Range {-0.2, 0, 1, Select Radar Range (nm)} + [338] = "%.4f", -- RADAR_Rio_Display {-0.25, 0, 1, Select Display Mode} + [339] = "%.2f", -- RADAR_Rio_Mode {-0.2, 0, 1, Select Radar Mode} + [340] = "%.2f", -- RADAR_Rio_Rcvr_Gain_Fine {0.5, 0, 1, Change Radar Receiver Gain (fine)} + [341] = "%.2f", -- RADAR_Rio_Rcvr_Gain_Coarse {0.5, 0, 1, Change Radar Receiver Gain (coarse)} + [342] = "%.1f", -- RADAR_Rio_Scan_Switch {-1, 0, 1, Select Scan Pattern} + [343] = "%.1f", -- Pilot_Emergency_Brake_Lever {1, 0, 1, Emergency Wheel Brake (Pull)} + [344] = "%.1f", -- Rio_Emergency_Brake_Lever {1, 0, 1, Emergency Wheel Brake (Pull)} + [345] = "%.1f", -- WRCS_North_South_Wheel + [346] = "%.1f", -- WRCS_East_West_Wheel + [347] = "%.1f", -- Pilot_CW_Switch {-1, -1, 1, Select Radar-Missile CW} + [348] = "%.1f", -- Pilot_Interlock_Switch {-1, 0, 1, Select Interlock Position} + [349] = "%.1f", -- Centreline_Tank_Light + [350] = "%.1f", -- ARBCS_Pullup_Tone_Switch {-1, 0, 1, LABS Pull-Up Tone} + [351] = "%.4f", -- ARBCS_Low_Angle_Knob {1, 0, 1, Set LABS Low Angle} + [352] = "%.4f", -- ARBCS_High_Angle_Knob {1, 0, 1, Set LABS High Angle} + [353] = "%.1f", -- ARBCS_Low_Angle_1s + [354] = "%.1f", -- ARBCS_Low_Angle_10s + [355] = "%.1f", -- ARBCS_Low_Angle_100s + [356] = "%.1f", -- ARBCS_High_Angle_1s + [357] = "%.1f", -- ARBCS_High_Angle_10s + [358] = "%.1f", -- ARBCS_High_Angle_100s + [359] = "%.1f", -- ARBCS_High_Angle_1000s + [360] = "%.1f", -- ARBCS_Timer_Pullup_1s + [361] = "%.1f", -- ARBCS_Timer_Pullup_10s + [362] = "%.1f", -- ARBCS_Timer_Pullup_100s + [363] = "%.1f", -- ARBCS_Timer_Release_1s + [364] = "%.1f", -- ARBCS_Timer_Release_10s + [365] = "%.1f", -- ARBCS_Timer_Release_100s + [366] = "%.1f", -- Pilot_Gyro_Fast_Erect_Switch {-1, 0, 1, Set Gyro Mode} + [367] = "%.1f", -- Pilot_Pullup_Light_Visibility + [368] = "%.1f", -- Pilot_Pullup_Light_Press {1, 0, 1, LABS Pull-Up Light (push to test rotate to dim)} + [369] = "%.4f", -- ARBCS_Pullup_Timer_Knob {0, 0, 1, Set Bombing Pull-Up Timer (seconds)} + [370] = "%.4f", -- ARBCS_Release_Timer_Knob {0, 0, 1, Set Bombing Release Timer (seconds)} + [371] = "%.1f", -- RADAR_Rio_Pulse {-1, -1, 1, Select Pulse Length} + [372] = "%.1f", -- RADAR_Rio_Track {-1, -1, 1, Select Track Mode} + [373] = "%.1f", -- Pilot_InRange_Light_Visibility + [374] = "%.1f", -- Pilot_Shoot_Light_Visibility + [375] = "%.1f", -- Low_AoA_Indexer_Right_Pilot + [376] = "%.1f", -- Mid_AoA_Indexer_Right_Pilot + [377] = "%.1f", -- Top_AoA_Indexer_Right_Pilot + [378] = "%.1f", -- Low_AoA_Indexer_Right_Rio + [379] = "%.1f", -- Mid_AoA_Indexer_Right_Rio + [380] = "%.1f", -- Top_AoA_Indexer_Right_Rio + [381] = "%.1f", -- PILOT_APR36_I_SAM_BUTTON {1, 0, 1, Priority/Open Mode} + [382] = "%.1f", -- PILOT_APR36_G_SAM_BUTTON {1, 0, 1, Search} + [383] = "%.1f", -- PILOT_APR36_E_SAM_BUTTON {1, 0, 1, Handoff} + [384] = "%.1f", -- PILOT_APR37_MISSILE_LAUNCH_BUTTON {1, 0, 1, (no function)} + [385] = "%.1f", -- PILOT_APR36_AAA_DEF_BUTTON {1, 0, 1, Low/Altitude Mode} + [386] = "%.1f", -- PILOT_APR36_AI_BUTTON {1, 0, 1, Target Separation} + [387] = "%.1f", -- PILOT_APR36_G_LORO_BUTTON {1, 0, 1, System Test} + [388] = "%.1f", -- PILOT_APR36_AAA_GCI_BUTTON {1, 0, 1, Unknown} + [389] = "%.1f", -- PILOT_APR36_ACTIVITY_PWR_BUTTON {1, 0, 1, (no function)} + [390] = "%.1f", -- PILOT_APR36_SYSTEM_POWER_BUTTON {1, 0, 1, System Power} + [420] = "%.1f", -- Pilot_Slip_Ball + [421] = "%.1f", -- Pilot_Turn_Indicator + [534] = "%.1f", -- RIO_ADI_OFF_FLAG + [535] = "%.1f", -- DSCG_AMBIENT_LIGHT_PILOT + [536] = "%.1f", -- DSCG_AMBIENT_LIGHT_WSO + [600] = "%.1f", -- TAS_Rio_ones + [601] = "%.1f", -- TAS_Rio_tens + [602] = "%.1f", -- TAS_Rio_hundreds + [603] = "%.1f", -- TAS_Rio_thousands + [604] = "%.1f", -- GS_ones + [605] = "%.1f", -- GS_tens + [606] = "%.1f", -- GS_hundreds + [607] = "%.1f", -- GS_thousands + [610] = "%.1f", -- Rio_Slip_Ball + [611] = "%.1f", -- Rio_Turn_Indicator + [612] = "%.2f", -- ADI_Pitch_Trim_Knob {0.5, 0, 1, Adjust Pitch} + [613] = "%.1f", -- ADI_Heading + [614] = "%.1f", -- ADI_Roll + [615] = "%.1f", -- ADI_Pitch + [616] = "%.1f", -- ADI_Bank_Steering_Bar + [617] = "%.1f", -- ADI_Pitch_Steering_Bar + [618] = "%.1f", -- ADI_Bank_Pointers + [619] = "%.1f", -- ADI_Glideslope + [620] = "%.1f", -- ADI_Course_Warning_Flag + [621] = "%.1f", -- ADI_Glideslope_Warning_Flag + [622] = "%.1f", -- ADI_Attitude_Warning_Flag + [624] = "%.1f", -- STDBYADI_Intensity_knob + [625] = "%.1f", -- STDBYADI_Pitch + [626] = "%.1f", -- STDBYADI_Roll + [627] = "%.1f", -- STDBYADI_Off_Flag + [628] = "%.1f", -- STDBYADI_Cage_Knob {1, 0, 1, Cage/Uncage (turn to trim)} + [629] = "%.1f", -- STDBYADI_Trim_Knob + [630] = "%.1f", -- STDBYADI_Miniature_Trim + [631] = "%.1f", -- RIO_ADI_Pitch + [632] = "%.1f", -- RIO_ADI_Roll + [633] = "%.2f", -- RIO_ADI_Trim_Knob {0.5, 0, 1, Adjust Pitch} + [634] = "%.1f", -- RIO_ADI_Roll_Pointer + [635] = "%.1f", -- PILOT_AURAL_TONE_VOLUME {1, 0, 1, Aural Tone Volume} + [636] = "%.1f", -- WSO_STALL_WARNING_VOLUME {1, 0, 1, AoA Stall Warning Volume} + [637] = "%.1f", -- Low_AoA_Indexer_Left_Rio + [638] = "%.1f", -- Mid_AoA_Indexer_Left_Rio + [639] = "%.1f", -- Top_AoA_Indexer_Left_Rio + [640] = "%.2f", -- Pilot_TACAN_Chan_Ones_Knob {-0.1, 0, 0.9 Set TACAN Channel (ones)} + [641] = "%.4f", -- Pilot_TACAN_Chan_TensAndMore_Knob {-0.083333333, 0, 1, Set TACAN Channel (hundreds)} + [642] = "%.2f", -- Pilot_TACAN_Volume {0.5, 0, 1, Change TACAN Volume} + [643] = "%.1f", -- Pilot_TACAN_Chan_Ones + [644] = "%.1f", -- Pilot_TACAN_Chan_Tens + [645] = "%.1f", -- Pilot_TACAN_Chan_Hundreds + [646] = "%.4f", -- Pilot_TACAN_Mode_Knob {-0.25, 0, 1, Select TACAN Mode} + [647] = "%.4f", -- Rio_TACAN_Chan_Ones_Knob {-0.111111111, 0, 1, Set TACAN Channel (ones)} + [648] = "%.4f", -- Rio_TACAN_Chan_TensAndMore_Knob {-0.083333333, 0, 1, Set TACAN Channel (hundreds)} + [649] = "%.2f", -- Rio_TACAN_Volume {0.5, 0, 1, Change TACAN Volume} + [650] = "%.1f", -- Rio_TACAN_Chan_Ones + [651] = "%.1f", -- Rio_TACAN_Chan_Tens + [652] = "%.1f", -- Rio_TACAN_Chan_Hundreds + [653] = "%.4f", -- Rio_TACAN_Mode_Knob {-0.25, 0, 1, Select TACAN Mode} + [654] = "%.1f", -- PILOT_TACAN_XY_KNOB {-1, 0, 1, Set TACAN Channel (X/Y)} + [655] = "%.1f", -- PILOT_TACAN_TEST_BUTTON {1, 0, 1, Test TACAN} + [656] = "%.1f", -- PILOT_TACAN_XY_DIAL + [657] = "%.1f", -- PILOT_TACAN_TEST_LIGHT + [658] = "%.1f", -- RIO_TACAN_XY_KNOB {-1, 0, 1, Set TACAN Channel (X/Y)} + [659] = "%.1f", -- RIO_TACAN_TEST_BUTTON {1, 0, 1, Test TACAN} + [660] = "%.1f", -- RIO_TACAN_XY_DIAL + [661] = "%.1f", -- RIO_TACAN_TEST_LIGHT + [662] = "%.4f", -- PILOT_NAV_FUNCT_SEL_PANEL_BRG_DIST_SWITCH {-0.333333333, 0, 1, Select Navigation Input} + [663] = "%.4f", -- PILOT_NAV_FUNCT_SEL_PANEL_SOURCE_MODE_SELECTOR_KNOB {-0.333333333, 0, 1, Select Navigation Mode} + [664] = "%.2f", -- RIO_TACAN_NAV_FUNCTION_SELECTOR_SWITCH {-0.5, 0, 1, Select Navigation Input} + [665] = "%.1f", -- PILOT_NAV_FUNCT_SEL_PANEL_FD_SWITCH {-1, 0, 1, Toggle Flight Director (vertical - off)} + [668] = "%.3f", -- PILOT_HSI_COMPASS_CARD + [669] = "%.1f", -- PILOT_HSI_BEARING_POINTER + [670] = "%.1f", -- PILOT_HSI_COURSE_ARROW + [671] = "%.1f", -- PILOT_HSI_COURSE_DEVIATION_IND + [672] = "%.1f", -- PILOT_HSI_HEADING_MARKER + [673] = "%.1f", -- PILOT_HSI_COURSE_SET_KNOB {0, 0, 1, Set HSI Course} + [674] = "%.1f", -- PILOT_HSI_COURSE_SET_ONES + [675] = "%.1f", -- PILOT_HSI_COURSE_SET_TENS + [676] = "%.1f", -- PILOT_HSI_COURSE_SET_HUNDREDS + [677] = "%.1f", -- PILOT_HSI_TO_FROM_ARROW + [678] = "%.1f", -- PILOT_HSI_HEADING_SET_KNOB {0, 0, 1, Set HSI Heading} + [679] = "%.1f", -- PILOT_HSI_RANGE_ONES + [680] = "%.1f", -- PILOT_HSI_RANGE_TENS + [681] = "%.1f", -- PILOT_HSI_RANGE_HUNDREDS + [682] = "%.1f", -- PILOT_HSI_RANGE_THOUSANDS + [683] = "%.1f", -- PILOT_HSI_RANGE_WARNING_FLAG + [684] = "%.1f", -- PILOT_HSI_NAV_LIGHT + [685] = "%.1f", -- PILOT_HSI_DL_LEFT_LIGHT + [686] = "%.1f", -- PILOT_HSI_ILS_LIGHT + [687] = "%.1f", -- PILOT_HSI_MAN_LIGHT + [688] = "%.1f", -- PILOT_HSI_TAC_LIGHT + [689] = "%.1f", -- PILOT_HSI_TGT_LIGHT + [690] = "%.1f", -- PILOT_HSI_UHF_LIGHT + [691] = "%.1f", -- PILOT_HSI_DL_RIGHT_LIGHT + [692] = "%.1f", -- ADI_PILOT_STBY_SWITCH {-1, 0, 1, Select Reference System} + [693] = "%.1f", -- ILS_PILOT_MKR_BCN_LIGHT + [700] = "%.1f", -- ENGINES_PILOT_DEICE_SWITCH {-1, 0, 1, Engine Anti-Icing Switch} + [705] = "%.1f", -- FUELSYS_PILOT_REFUEL_SEL_COVER {-1, 0, 1, Refuel Tank Selector Cover} + [706] = "%.1f", -- FUELSYS_PILOT_REFUEL_SEL_SWITCH {-1, 0, 1, Select Tank to Refuel} + [709] = "%.1f", -- FUELSYS_PILOT_WING_DUMP_SWITCH {-1, 0, 1, Wing Fuel Dump Selector} + [710] = "%.1f", -- FUELSYS_PILOT_WING_INTERNAL_TRANS_SWITCH {-1, 0, 1, Internal Wing Tanks Feed} + [711] = "%.1f", -- FUELSYS_PILOT_WING_EXTERNAL_TRANS_SWITCH {-1, -1, 1, External Tanks Feed} + [712] = "%.1f", -- FUELSYS_PILOT_AIR_REFUEL_SWITCH {-1, 0, 1, Air Refuel Switch} + [713] = "%.1f", -- FUELSYS_PILOT_BOOST_PUMP_PRESS_IND_L + [714] = "%.1f", -- FUELSYS_PILOT_BOOST_PUMP_PRESS_IND_R + [715] = "%.1f", -- ENGINES_WSO_TACHOMETER_LEFT_GAUGE + [716] = "%.1f", -- ENGINES_WSO_TACHOMETER_RIGHT_GAUGE + [717] = "%.1f", -- ENGINES_PILOT_OIL_PRESS_L_GAUGE + [718] = "%.1f", -- ENGINES_PILOT_OIL_PRESS_R_GAUGE + [719] = "%.1f", -- FUELSYS_PILOT_FUEL_IND_ROLLER_TENS + [720] = "%.1f", -- FUELSYS_PILOT_FUEL_IND_ROLLER_HUNDREDS + [721] = "%.1f", -- FUELSYS_PILOT_FUEL_IND_ROLLER_THOUSANDS + [722] = "%.1f", -- FUELSYS_PILOT_FUEL_IND_ROLLER_TENSOFTHOUSANDS + [723] = "%.1f", -- FUELSYS_PILOT_FUEL_IND_TAPE + [725] = "%.1f", -- FUELSYS_PILOT_BOOST_PUMP_SW_L {1, 0, 1, Left Boost Pump} + [726] = "%.1f", -- FUELSYS_PILOT_BOOST_PUMP_SW_R {1, 0, 1, Right Boost Pump} + [752] = "%.1f", -- ENGINES_PILOT_RIGHT_THROTTLE + [753] = "%.1f", -- ENGINES_PILOT_LEFT_THROTTLE + [775] = "%.1f", -- VR_BODY_PILOT + [776] = "%.1f", -- VR_BODY_WSO + [800] = "%.1f", -- CLOCK_PILOT_HAND_HOURS + [801] = "%.1f", -- CLOCK_PILOT_HAND_MINUTES + [802] = "%.1f", -- STOPWATCH_PILOT_HAND_SECONDS + [803] = "%.1f", -- STOPWATCH_PILOT_HAND_MINUTES + [804] = "%.1f", -- CLOCK_RIO_HAND_HOURS + [805] = "%.1f", -- CLOCK_RIO_HAND_MINUTES + [806] = "%.1f", -- STOPWATCH_RIO_HAND_SECONDS + [807] = "%.1f", -- STOPWATCH_RIO_HAND_MINUTES + [808] = "%.1f", -- STOPWATCH_PILOT_RESET_BUTTON {1, 0, 1, Start/Stop/Reset Stopwatch} + [809] = "%.2f", -- CLOCK_PILOT_KNOB_ROTATION {0.5, 0, 1, Set Time (pull to turn)} + [810] = "%.1f", -- STOPWATCH_RIO_RESET_BUTTON {1, 0, 1, Start/Stop/Reset Stopwatch} + [811] = "%.2f", -- CLOCK_RIO_KNOB_ROTATION {0.5, 0, 1, Set Time (pull to turn)} + [812] = "%.1f", -- CLOCK_PILOT_KNOB_TRANSLATION {1, 0, 1, Set Time (pull to turn)} + [813] = "%.1f", -- CLOCK_RIO_KNOB_TRANSLATION {1, 0, 1, Set Time (pull to turn)} + [900] = "%.4f", -- NAV_COMP_RIO_FUNCTION_SELECTOR_KNOB {-0.25, 0, 1, Select Navigation Computer Mode} + [901] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_KNOB {0, 0, 1, Set Wind Strength (knots)} + [902] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_ONES + [903] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_TENS + [904] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_HUNDREDS + [905] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_KNOB {0, 0, 1, Set Wind Direction (degrees)} + [906] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_ONES + [907] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_TENS + [908] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_HUNDREDS + [909] = "%.2f", -- NAV_COMP_RIO_MAG_VAR_KNOB {0.5, 0, 1, Set Magnetic Variation (push to turn)} + [910] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_FLAG + [911] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_ONES + [912] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_TENS + [913] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_HUNDREDS + [914] = "%.4f", -- NAV_COMP_RIO_POS_LATITUDE_KNOB {0, Set Position (N/S Lat) (push to turn)} + [915] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_ONES + [916] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_TENS + [917] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_HUNDREDS + [918] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_THOUSANDS + [919] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_FLAG + [920] = "%.4f", -- NAV_COMP_RIO_POS_LONGITUDE_KNOB {0, Set Position (E/W Long) (push to turn)} + [921] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_FLAG + [922] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_ONES + [923] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_TENS + [924] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_HUNDREDS + [925] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_THOUSANDS + [926] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_TENTHOUSANDS + [927] = "%.2f", -- NAV_COMP_RIO_TARGET_LATITUDE_KNOB {0.5, 0, 1, Set Target Position (N/S Lat)} + [928] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_ONES + [929] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_TENS + [930] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_HUNDREDS + [931] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_THOUSANDS + [932] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_FLAG + [933] = "%.2f", -- NAV_COMP_RIO_TARGET_LONGITUDE_KNOB {0.5, 0, 1, Set Target Position (E/W Long)} + [934] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_FLAG + [935] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_ONES + [936] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_TENS + [937] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_HUNDREDS + [938] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_THOUSANDS + [939] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_TENTHOUSANDS + [940] = "%.2f", -- NAV_COMP_RIO_POSITION_UPDATE_SWITCH {0, 0, 0.5, Set Position Update Mode} + [941] = "%.1f", -- NAV_COMP_RIO_POSITION_VARIATION_SYNC_METER + [942] = "%.1f", -- NAV_COMP_RIO_TEST_CAP_OFF_LIGHT + [943] = "%.1f", -- NAV_COMP_RIO_LAT_SYNC_LIGHT + [944] = "%.1f", -- NAV_COMP_RIO_LONG_SYNC_LIGHT + [945] = "%.1f", -- NAV_COMP_RIO_AIR_DATA_MODE_LIGHT + [946] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_KNOB_PUSH {1, 0, 1, Set Magnetic Variation (push to turn)} + [947] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_KNOB_PUSH {1, 0, 1, Set Position (N/S Lat) (push to turn)} + [948] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_KNOB_PUSH {1, 0, 1, Set Position (E/W Long) (push to turn)} + [949] = "%.1f", -- BDHI_WSO_COMPASS_CARD + [950] = "%.1f", -- BDHI_WSO_POINTER_1 + [951] = "%.1f", -- BDHI_WSO_POINTER_2 + [952] = "%.1f", -- BDHI_WSO_RANGE_ONES + [953] = "%.1f", -- BDHI_WSO_RANGE_TENS + [954] = "%.1f", -- BDHI_WSO_RANGE_HUNDREDS + [955] = "%.4f", -- COMPASS_PANEL_PILOT_MODE_SELECTOR_KNOB {1, 0.666666667, 1, Set Compass Mode (hold to sync)} + [956] = "%.1f", -- COMPASS_PANEL_PILOT_SET_HEADING_KNOB {0, -1, 1, Set Compass Heading (press to rotate)} + [957] = "%.1f", -- COMPASS_PANEL_PILOT_REF_SYS_SELECTOR_SWITCH + [958] = "%.2f", -- COMPASS_PANEL_PILOT_LATITUDE_CONTROL_KNOB {0.5, 0, 1, Set Compass Latitude} + [959] = "%.1f", -- COMPASS_PANEL_PILOT_SYNC_INDICATOR_METER + [960] = "%.1f", -- COMPASS_PANEL_PILOT_HEMISPHERE_SWITCH {-1, 0, 1, Change Hemisphere} + [961] = "%.1f", -- PILOT_GUN_CAMERA_SWITCH {-1, 0, 1, Gun Camera Switch} + [962] = "%.1f", -- PILOT_GUN_CAMERA_BUTTON {1, 0, 1, Take Strike Camera Picture} + [964] = "%.1f", -- PILOT_RUDDER_TRIM_SWITCH {-1, -1, 0, Rudder Trim} + [965] = "%.1f", -- PILOT_EXT_STORES_EMERG_RELEASE_BUTTON {1, 0, 1, Emergency Release External Stores} + [966] = "%.1f", -- PILOT_STAB_TRIM_INDICATOR + [967] = "%.1f", -- PILOT_WEAPON_SLEW_X + [968] = "%.1f", -- PILOT_WEAPON_SLEW_Y + [971] = "%.1f", -- PILOT_L_GEN_SWITCH {-1, -1, 1, Left Generator} + [972] = "%.1f", -- PILOT_R_GEN_SWITCH {-1, -1, 1, Right Generator} + [973] = "%.1f", -- WSO_INSTRUMENT_GROUND_POWER_SWITCH {-1, 0, 1, Instrument Ground Power Switch} + [974] = "%.1f", -- PILOT_HOOK_HANDLE {0, 0, 1, Tailhook Deploy Lever} + [975] = "%.1f", -- PILOT_RWR_KNOB {1, 0, 1, Screen Brightness} + [976] = "%.1f", -- PILOT_APR_DIM_KNOB {1, 0, 1, Light Brightness} + [977] = "%.2f", -- PILOT_APR_AUDIO_KNOB {0.5, 0, 1, RWR Audio Volume} + [978] = "%.1f", -- PILOT_FIRE_TEST_BUTTON {1, 0, 1, Test Fire System} + [979] = "%.2f", -- PILOT_FLT_INST_KNOB {0.5, 0, 1, Change Flight Instrument Brightness} + [980] = "%.2f", -- PILOT_STATION_SELECT_DIM_KNOB {0.5, 0, 1, Change Panel Button Brightness} + [981] = "%.1f", -- PILOT_COOLING_RESET_BUTTON {1, 0, 1, Reset Cooling} + [982] = "%.1f", -- PILOT_RAIN_REMOVAL_SWITCH {-1, 0, 1, Toggle Rain Removal} + [983] = "%.1f", -- WSO_EMERG_GEAR_HANDLE {1, 0, 1, Emergency Gear Handle (Pull to Release)} + [984] = "%.1f", -- WSO_L_GEAR_INDICATOR_UP + [986] = "%.1f", -- WSO_NOSE_GEAR_INDICATOR_UP + [988] = "%.1f", -- WSO_R_GEAR_INDICATOR_UP + [990] = "%.1f", -- ENGINES_WSO_THROTTLE_LEFT + [991] = "%.1f", -- ENGINES_WSO_THROTTLE_RIGHT + [992] = "%.1f", -- WSO_GUN_CAMERA_SWITCH {-1, 0, 1, Toggle Gun Camera} + [993] = "%.1f", -- WSO_CORRECTION_SWITCH {-1, -1, 1, Maverick Contrast-Lock Polarity} + [994] = "%.1f", -- WSO_COOLING_RESET_BUTTON {1, 0, 1, Reset Cooling Button} + [995] = "%.1f", -- WSO_EJECTION_COMMAND_SELECTOR_VALVE {0, 0, 1, Ejection Command Selector (vert: WSO horz: Both)} + [996] = "%.1f", -- INS_WSO_ALIGN_MODE_COVER {-1, 0, 1, INS Align Mode Cover} + [997] = "%.1f", -- INS_WSO_ALIGN_MODE_SWITCH {-1, 0, 1, INS Align Mode Switch} + [998] = "%.4f", -- INS_WSO_POWER_KNOB {-0.333333333, 0, 1, INS Power Knob} + [999] = "%.1f", -- INS_WSO_ALIGN_LIGHT + [1000] = "%.1f", -- INS_WSO_HEAT_LIGHT + [1001] = "%.4f", -- RADAR_WSO_METER_SELECTOR_KNOB {-0.111543333, -0.673, 1, Select Meter Mode (Volt/Signal)} + [1002] = "%.1f", -- RADAR_WSO_MONITOR_METER + [1004] = "%.1f", -- RADAR_WSO_STAB_SWITCH {-1, -1, 1, Select Antenna Stabilization Mode} + [1005] = "%.1f", -- RADAR_WSO_VC_SWITCH {-1, 0, 1, Select Vc} + [1006] = "%.1f", -- RADAR_WSO_METER_SWITCH {-1, 0, 1, Set Meter Display} + [1007] = "%.1f", -- RADAR_WSO_MANUEVER_SWITCH {-1, 0, 1, Select Maneuver} + [1008] = "%.4f", -- RADAR_WSO_ASPECT_KNOB {-0.25, 0, 1, Select Target Aspect} + [1009] = "%.1f", -- RADAR_WSO_POLAR_SWITCH {-1, -1, 1, Change Polarization} + [1010] = "%.1f", -- RADAR_WSO_SKIN_TRACK_LIGHT + [1011] = "%.1f", -- RADAR_WSO_HAND_CTRL_ANTENNA_SLEW_X + [1012] = "%.1f", -- RADAR_WSO_HAND_CTRL_ANTENNA_SLEW_Y + [1013] = "%.1f", -- RADAR_WSO_HAND_CTRL_TRIGGER + [1014] = "%.2f", -- RADAR_WSO_HAND_CTRL_ELEVATION {0.5, 0, 1, Change Radar Antenna Elevation} + [1015] = "%.1f", -- WSO_PULSE_SEL_SWITCH {-1, -1, 1, Select Skyspot Mode (was never equipped no function)} + [1016] = "%.1f", -- WEAPON_DELIV_PANEL_WSO_ACTIVATE_SWITCH {-1, 0, 1, ARBCS Activate} + [1017] = "%.1f", -- WEAPON_DELIV_PANEL_WSO_TGT_FIND_SWITCH {-1, 0, 1, Target Find Mode} + [1018] = "%.1f", -- WEAPON_DELIV_PANEL_WSO_RANGE_SWITCH {-1, 0, 1, WRCS Range x100, Multiplier} + [1019] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_ALONG_TRACK_THUMBWHEEL {0, 0, 1, Move Cursor (Along Track)} + [1020] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_CROSS_TRACK_THUMBWHEEL {0, 0, 1, Move Cursor (Cross Track)} + [1021] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_FREEZE_BUTTON {1, 0, 1, Freeze Target Data} + [1022] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_FREEZE_LIGHT + [1023] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_TGT_INSERT_BUTTON {1, 0, 1, Insert Target Data} + [1024] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_TGT_INSERT_LIGHT + [1025] = "%.1f", -- CURSOR_CTRL_PANEL_WSO_RESET_BUTTON {1, 0, 1, Reset Target Data} + [1027] = "%.1f", -- WSO_AP_TEST_SWITCH {-1, 0, 1, Autopilot Ground Power Switch} + [1028] = "%.1f", -- WSO_BATTERY_BYPASS_SWITCH {-1, 0, 1, Battery Bypass Switch} + [1029] = "%.1f", -- COMPASS_PANEL_PILOT_SET_HEADING_KNOB_PRESS {1, 0, 1, Set Compass Heading (press to rotate)} + [1200] = "%.1f", -- HUD_SHTR_Selector_Knob + [1201] = "%.1f", -- HUD_RetIn_Knob {1, 0, 1, Change HUD Brightness} + [1202] = "%.1f", -- HUD_Scale_Knob {1, 0, 1, Scale Brightness} + [1203] = "%.2f", -- HUD_Contr_Knob {0.5, 0, 1, Change Screen Contrast} + [1204] = "%.1f", -- HUD_OprErs_Knob {1, 0, 1, Activate/Erase DVST Display (no function with DSCG)} + [1205] = "%.2f", -- HUD_HorLn_Knob {0.5, 0, 1, Adjust Horizon on Display} + [1206] = "%.2f", -- HUD_Brt_Knob {0.5, 0, 1, Change Screen Brightness} + [1210] = "%.2f", -- PILOT_RANGE_INDICATOR_MODE {-0.5, 0, 1, Range Mode} + [1211] = "%.1f", -- PILOT_RANGE_INDICATOR_BRIGHTNESS {1, 0, 1, Display Brightness} + [1212] = "%.1f", -- PILOT_RANGE_INDICATOR_DESIRED_RANGE {0, 0, 1, Desired Release Range} + [1213] = "%.1f", -- PILOT_RANGE_INDICATOR_DESIRED_RANGE_PUSH + [1221] = "%.2f", -- Pilot_Arm_Switch {-0.25001, 0, 0.75 Arm Fuze} + [1253] = "%.1f", -- PILOT_Jettison_Button {1, 0, 1, Jettison Selection} + [1254] = "%.4f", -- PILOT_Jettison_Knob {-0.12501, 0, 0.875 Select Stations to Jettison (down for STORES)} + [1322] = "%.4f", -- Pilot_IFF_Code {-0.3333, 0, 0.9999 Select Mode 4 Function} + [1323] = "%.1f", -- Pilot_IFF_Mode_1, {-1, -1, 1, M1, Off/On/Test} + [1324] = "%.1f", -- Pilot_IFF_Mode_2 {-1, -1, 1, M2 Off/On/Test} + [1325] = "%.1f", -- Pilot_IFF_Mode_3A {-1, -1, 1, M3 Off/On/Test} + [1326] = "%.1f", -- Pilot_IFF_Mode_C {-1, -1, 1, MC Off/On/Test} + [1327] = "%.1f", -- Pilot_IFF_Mode_4 {-1, 0, 1, Set Mode 4 On/Off} + [1328] = "%.1f", -- Pilot_IFF_Audio {-1, -1, 1, Select Mode 4 Indication} + [1329] = "%.1f", -- Pilot_IFF_Test {-1, -1, 1, Set Monitor-Radiation} + [1330] = "%.1f", -- Pilot_IFF_Ident {-1, -1, 1, Set Position Identification} + [1331] = "%.2f", -- Pilot_IFF_Mode_1_Tens {-0.142857143, 0, 1, Set M1, code (tens)} + [1332] = "%.2f", -- Pilot_IFF_Mode_1_Units {-0.333333333, 0, 1, Set M1, code (ones)} + [1333] = "%.2f", -- Pilot_IFF_Mode_3A_Thounsands {-0.142857143, 0, 1, Set M3 code (thousands)} + [1334] = "%.2f", -- Pilot_IFF_Mode_3A_Hundreds {-0.142857143, 0, 1, Set M3 code (hundreds)} + [1335] = "%.2f", -- Pilot_IFF_Mode_3A_Tens {-0.142857143, 0, 1, Set M3 code (tens)} + [1336] = "%.2f", -- Pilot_IFF_Mode_3A_Units {-0.142857143, 0, 1, Set M3 code (ones)} + [1337] = "%.1f", -- Pilot_DCU_Monitor_Switch_LO {-1, 0, 1, Arm Left/Outer Station} + [1338] = "%.1f", -- Pilot_DCU_Monitor_Switch_LI {-1, 0, 1, Arm Left/Inner Station} + [1339] = "%.1f", -- Pilot_DCU_Monitor_Switch_CTR {-1, 0, 1, Arm Center Station} + [1340] = "%.1f", -- Pilot_DCU_Monitor_Switch_RI {-1, 0, 1, Arm Right/Inner Station} + [1341] = "%.1f", -- Pilot_DCU_Monitor_Switch_RO {-1, 0, 1, Arm Right/Outer Station} + [1342] = "%.1f", -- Pilot_DCU_Control_Test_Lamp {1, 0, 1, Test DCU Lamps} + [1343] = "%.1f", -- Pilot_DCU_Control_Test_MSL {1, 0, 1, Test Missiles} + [1344] = "%.1f", -- Pilot_DCU_Control_Test_Bomb {1, 0, 1, Test Bombs} + [1345] = "%.4f", -- Pilot_DCU_Control_Mode_Knob {-0.333, 0, 0.999 DCU Mode} + [1346] = "%.1f", -- Pilot_DCU_Control_Master_Guard {-1, 0, 1, DCU Master Release Switch Cover} + [1347] = "%.1f", -- Pilot_DCU_Control_Master_Switch {-1, 0, 1, DCU Master Release Switch} + [1348] = "%.1f", -- Pilot_Temperature_Knob {0, 0, 1, Change Temperature} + [1349] = "%.1f", -- Pilot_Temperature_Mode {-1, -1, 1, Temperature Mode} + [1350] = "%.1f", -- Pilot_Light_Cockpit_Flood_White {-1, 0, 1, Toggle White Floodlight} + [1351] = "%.2f", -- Pilot_Light_Cockpit_Flood_Console {-0.5, 0, 1, Set Console Floodlight (Red) Brightness} + [1352] = "%.1f", -- Pilot_Light_Cockpit_Instr_Panel {1, 0, 1, Change Instrument Panel Light Brightness} + [1353] = "%.1f", -- Pilot_Light_Cockpit_Console {0, 0, 1, Change Console Light Brightness} + [1354] = "%.1f", -- Pilot_Light_Cockpit_Stby_Comp {-1, 1, 0, Test Warning Lights/Standby Compass Light} + [1355] = "%.2f", -- Pilot_Light_Exterior_Fuselage {-0.5, 0, 1, Set Fuselage & Anti-Collision Light Brightness} + [1356] = "%.2f", -- Pilot_Light_Exterior_Flash {-0.5, 0, 1, Set Flasher Mode (only Tail/Anti-Col/Fus)} + [1357] = "%.2f", -- Pilot_Light_Exterior_Tail {-0.5, 0, 1, Set Tail-Position Light Brightness} + [1358] = "%.2f", -- Pilot_Light_Exterior_Wing {-0.5, 0, 1, Set Wing-Position & Join-Up Light Brightness} + [1359] = "%.2f", -- Pilot_Handle_Defog {0.5, 0, 1, Defog Handle} + [1360] = "%.1f", -- Pilot_Light_Intensity_AAI {1, 0, 1, Change AoA Indicator Brightness} + [1361] = "%.1f", -- Pilot_Light_Intensity_HSI {1, 0, 1, Change HSI Brightness} + [1362] = "%.1f", -- Pilot_Light_Intensity_VVI {1, 0, 1, Change VVI Brightness} + [1363] = "%.1f", -- Pilot_Light_Intensity_MASI {1, 0, 1, Change Speed Indicator Brightness} + [1364] = "%.1f", -- Pilot_Light_Intensity_ADI {1, 0, 1, Change ADI Brightness} + [1365] = "%.1f", -- Pilot_Light_Intensity_ALT {1, 0, 1, Change Altimeter Brightness} + [1366] = "%.2f", -- Pilot_Light_Formation_Fuselage {0.5, 0, 1, Fuze Cap (no function)} + [1367] = "%.2f", -- Pilot_Light_Formation_Mode {0, 0, 0.5, Set Formation Lights Mode} + [1368] = "%.2f", -- Pilot_Light_Formation_Dimmer {0.5, 0, 1, Change Formation Lights Brightness} + [1369] = "%.1f", -- Pilot_Light_Formation_Indexer {1, 0, 1, Change AoA Indexer Brightness} + [1370] = "%.2f", -- Pilot_Light_Inst_Flood_Brightness {-0.5, 0, 1, Set Instrument Floodlight (Red) Brightness (also WSO)} + [1371] = "%.1f", -- Pilot_Light_Stdby_AI_Brightness {1, 0, 1, SAI Brightness (replaced by SAI Panel see Left Wall) (no function)} + [1372] = "%.1f", -- Pilot_Volume_Knob__Stall {1, 0, 1, AoA Stall Warning Volume} + [1373] = "%.1f", -- Pilot_Volume_Knob_ML {1, 0, 1, Change RWR Missile Volume} + [1374] = "%.1f", -- Pilot_UHF_Squelch {-1, 0, 1, UHF Squelch Switch} + [1375] = "%.4f", -- Pilot_UHF_Freq_Hundreds {-0.333333333, 0, 1, Set Frequency (hundreds)} + [1376] = "%.1f", -- Pilot_UHF_Freq_Mode {-1, 0, 1, Select Frequency Mode} + [1377] = "%.1f", -- Pilot_UHF_Tone {1, 0, 1, Tone Button} + [1378] = "%.1f", -- Pilot_ICS_Radio_Override {-1, 1, 0, Set Mode} + [1382] = "%.1f", -- Pilot_Circuit_Breaker_ARI {-1, 0, 1, Aileron-Rudder Interconnect (ARI) CB} + [1383] = "%.1f", -- Pilot_Circuit_Breaker_AIL_Feel_Trim {-1, 0, 1, AIL Feel-Trim CB} + [1384] = "%.1f", -- Pilot_Circuit_Breaker_STAB_Feel_Trim {-1, 0, 1, STAB Feel-Trim CB} + [1385] = "%.1f", -- Pilot_Circuit_Breaker_Speed_Brake {-1, 0, 1, Speed Brake CB} + [1386] = "%.1f", -- Pilot_Circuit_Breaker_LG {-1, 0, 1, Landing Gear CB} + [1387] = "%.1f", -- Pilot_Circuit_Breaker_Flaps {-1, 0, 1, Flaps CB} + [1388] = "%.1f", -- Pilot_Circuit_Breaker_Trim_CONT {-1, 0, 1, Trim Controls CB} + [1389] = "%.1f", -- Pilot_Circuit_Breaker_RUD_Trim {-1, 0, 1, Rudder Trim CB} + [1390] = "%.1f", -- AN_ALE40_Roller_Chaff_Hundreds + [1391] = "%.1f", -- AN_ALE40_Roller_Chaff_Tens + [1392] = "%.1f", -- AN_ALE40_Roller_Chaff_Ones + [1393] = "%.1f", -- AN_ALE40_Roller_Flare_Hundreds + [1394] = "%.1f", -- AN_ALE40_Roller_Flare_Tens + [1395] = "%.1f", -- AN_ALE40_Roller_Flare_Ones + [1400] = "%.2f", -- Radar_Contrast_Knob {0.5, 0, 1, Change Screen Contrast} + [1401] = "%.2f", -- Radar_Cursor_RNG_Knob {0.5, 0, 1, Change Range-Cursor Brightness} + [1402] = "%.2f", -- Radar_BRT_Knob {0.5, 0, 1, Change Screen Brightness} + [1403] = "%.2f", -- Radar_Cursor_OFS_Knob {0.5, 0, 1, Change Offset-Cursor Brightness} + [1404] = "%.2f", -- Radar_Display_Mode_Knob {-0.2, 0, 1, Select Screen Mode} + [1407] = "%.4f", -- Radar_Man_Vc {-0.083373636, 0, 0.917 Select Manual Vc (Closure Velocity kt)} + [1408] = "%.4f", -- Radar_Monitor_Test {-0.090919091, 0, 1, Radar BIT} + [1409] = "%.2f", -- Pilot_ICS_Mode_Knob {-0.5, 0, 1, Select Amplifier} + [1412] = "%.2f", -- Pilot_Gun_Count_Reset_Knob_Rotate {0.1, 0, 1, Set Gun Rounds} + [1413] = "%.1f", -- Pilot_Gun_Count_Reset_Knob_Push + [1414] = "%.1f", -- AN_ALE40_ON_Lamp + [1415] = "%.1f", -- AN_ALE40_FLARES_Lamp + [1416] = "%.2f", -- TAXI_Lt_sw {-0.5, 0, 1, Taxi/Landing Light} + [1417] = "%.1f", -- AN_ALE40_FLARES_SELECT_Sw {-1, 0, 1, Select Dispense Program} + [1435] = "%.1f", -- PILOT_ThrottleButton_Right {1, 0, 1, CAGE Mode} + [1436] = "%.1f", -- PILOT_ThrottleButton_Left {1, 0, 1, Dispense Countermeasures} + [1437] = "%.1f", -- AN_ALE40_ON_Lamp_Press {1, 0, 1, CMS Indicator (push to test rotate to dim)} + [1438] = "%.1f", -- AN_ALE40_ON_Lamp_Rotation {0, 0, 1, CMS Indicator (push to test rotate to dim)} + [1439] = "%.1f", -- AN_ALE40_FLARES_Lamp_Press {1, 0, 1, Flare Indicator (push to test rotate to dim)} + [1440] = "%.1f", -- AN_ALE40_FLARES_Lamp_Rotation {0, 0, 1, Flare Indicator (push to test rotate to dim)} + [1441] = "%.1f", -- AN_ALE40_CCU_Chaff_Lamp_Brightness + [1442] = "%.1f", -- AN_ALE40_CCU_Flare_Lamp_Brightness + [1443] = "%.2f", -- AN_ALE40_Flare_Mode {-0.5, 0, 1, Select Flare Mode} + [1444] = "%.4f", -- AN_ALE40_Chaff_Mode {-0.333333333, 0, 1, Select Chaff Mode} + [1445] = "%.1f", -- AN_ALE40_Ripple_Sw {-1, 0, 1, Toggle Ripple Release} + [1446] = "%.1f", -- AN_ALE40_Ripple_Sw_Cover {-1, 0, 1, Ripple Switch Cover} + [1447] = "%.1f", -- AN_ALE40_WSO_Dispense_Button {1, 0, 1, Dispense Countermeasures} + [1448] = "%.1f", -- AN_ALE40_CCU_Chaff_Lamp_Rotation {0, 0, 1, Chaff Indicator (push to test rotate to dim)} + [1449] = "%.1f", -- AN_ALE40_CCU_Flare_Lamp_Rotation {0, 0, 1, Flare Indicator (push to test rotate to dim)} + [1450] = "%.1f", -- AN_ALE40_CCU_Chaff_Lamp_Press {1, 0, 1, Chaff Indicator (push to test rotate to dim)} + [1451] = "%.1f", -- AN_ALE40_CCU_Flare_Lamp_Press {1, 0, 1, Flare Indicator (push to test rotate to dim)} + [1452] = "%.2f", -- PILOT_VOR_LEFT_DRUM_ROLLER + [1455] = "%.2f", -- PILOT_VOR_RIGHT_DRUM_ROLLER + [1500] = "%.2f", -- Pilot_ALE40_Chaff_Count {-0.2, 0, 1, Select Chaff Burst Count} + [1501] = "%.4f", -- Pilot_ALE40_Chaff_Interval {-0.333333333, 0, 1, Select Chaff Burst Interval} + [1502] = "%.4f", -- Pilot_ALE40_Chaff_Count_Salvo {-0.25, 0, 1, Select Chaff Salvo Count} + [1503] = "%.4f", -- Pilot_ALE40_Chaff_Interval_Salvo {-0.166666667, 0, 1, Select Chaff Salvo Interval} + [1504] = "%.4f", -- Pilot_ALE40_Flare_Count {-0.25, 0, 1, Select Flare Burst Count} + [1505] = "%.4f", -- Pilot_ALE40_Flare_Interval {-0.25, 0, 1, Select Flare Burst Interval} + [1506] = "%.1f", -- Pilot_AFCS_Yaw {-1, 0, 1, STAB AUG Yaw} + [1507] = "%.1f", -- Pilot_AFCS_Roll {-1, 0, 1, STAB AUG Roll} + [1508] = "%.1f", -- Pilot_AFCS_Pitch {-1, 0, 1, STAB AUG Pitch} + [1509] = "%.1f", -- Pilot_AFCS_Engage {-1, 0, 1, AFCS Autopilot} + [1510] = "%.1f", -- Pilot_AFCS_Alt {-1, 0, 1, ALT Hold} + [1511] = "%.1f", -- Pilot_VOR_Nav_vol {0, 0, 1, Change VOR/ILS Volume} + [1512] = "%.2f", -- Pilot_VOR_MB_vol {0.5, 0, 1, Change Marker-Beacon Volume} + [1513] = "%.1f", -- Pilot_VOR_Test {1, 0, 1, Test VOR/ILS System} + [1514] = "%.4f", -- Pilot_VOR_Freq {-0.10001, 0, 0.9 Set ILS Frequency (hundreds)} + [1515] = "%.4f", -- Pilot_VOR_Freq_decimal {-0.05001, 0, 0.95 Set ILS Frequency (decimals)} + [1516] = "%.1f", -- Pilot_Drag_Chute_Handle {0, 0, 1, Release Drag-Parachute (only while deployed)} + [1517] = "%.2f", -- Pilot_AGM_Polarization {-0.5, 0, 1, Maverick Contrast-Lock Polarity} + [1518] = "%.1f", -- Pilot_Switch_LCOSS {-1, 0, 1, Select LCOSS} + [1519] = "%.1f", -- Pilot_Switch_DSCG {-1, 0, 1, Select Radar} + [1520] = "%.1f", -- Boarding_Steps_Indicator + [1521] = "%.4f", -- Pilot_IFF_Master {-0.25, 0, 1, Select Master Mode} + [1524] = "%.1f", -- PILOT_DCU_ARM_SLIDER {-1, 0, 1, DCU OS/S-Arm Selector} + [1900] = "%.1f", -- Helmet_Pilot_Vis {-1, 0, 1, Put On / Take Off Helmet} + [1901] = "%.1f", -- Helmet_Pilot_Hose_Mov + [1902] = "%.1f", -- Helmet_Pilot_Strap_Mov + [1903] = "%.1f", -- Helmet_WSO_Vis {-1, 0, 1, Put On / Take Off Helmet} + [1904] = "%.1f", -- Helmet_WSO_Hose_Mov + [1905] = "%.1f", -- Helmet_WSO_Strap_Mov + [1906] = "%.1f", -- Helmet_Pilot_Vis2 + [1910] = "%.1f", -- Helmet_Pilot_Swap --RBF on Rim. + [1913] = "%.1f", -- Helmet_WSO_Swap --RBF on Rim. + [1916] = "%.1f", -- Helmet_Pilot_Swap2 + [2000] = "%.2f", -- Wso_Apx80_Units + [2001] = "%.2f", -- Wso_Apx80_Ten + [2002] = "%.2f", -- Wso_Apx80_Hundreds + [2003] = "%.2f", -- Wso_Apx80_Thounsands + [2004] = "%.2f", -- Wso_Apx80_Mode + [2016] = "%.1f", -- CPT_PILOT_HEAD_SWAP + [2017] = "%.1f", -- CPT_WSO_HEAD_SWAP + [2020] = "%.1f", -- WSO_LASER_CODE_ONES + [2021] = "%.1f", -- WSO_LASER_CODE_TENS + [2022] = "%.1f", -- WSO_LASER_CODE_HUNDREDS + [2023] = "%.1f", -- WSO_LASER_CODE_THOUSANDS + [2030] = "%.4f", -- RIO_UHF_Frequency_Hundreds {-0.333333333, 0, 1, Set Frequency (hundreds)} + [2031] = "%.2f", -- RIO_UHF_ModeSelector_Knob {-0.2, 0, 1, Select Radio Mode} + [2032] = "%.1f", -- RIO_UHF_ModeSelector_Knob_Pull + [2040] = "%.1f", -- RIO_Oxygen_Gauge_FlagOff + [2500] = "%.1f", -- WSO_LASER_CODE_SET_THOUSANDS {1, 0, 1, Next Laser Code (thousands)} + [2501] = "%.1f", -- WSO_LASER_CODE_SET_HUNDREDS {1, 0, 1, Next Laser Code (hundreds)} + [2502] = "%.1f", -- WSO_LASER_CODE_SET_TENS {1, 0, 1, Next Laser Code (tens)} + [2503] = "%.1f", -- WSO_LASER_CODE_SET_ONES {1, 0, 1, Next Laser Code (ones)} + [2504] = "%.1f", -- WSO_LASER_CODE_ENTER {1, 0, 1, Enter Laser Code} + [2507] = "%.1f", -- RADAR_WSO_CTRL_BORESIGHT_BUTTON {1, 0, 1, Adjust Stick Boresight (no function without screwdriver)} + [2508] = "%.1f", -- RADAR_WSO_HAND_CTRL_BUTTON {1, 0, 1, Challenge Button} + [2509] = "%.1f", -- WEAPON_WSO_NUCLEAR_CONSENT {-1, -1, 1, Nuclear Consent Switch} + [2510] = "%.1f", -- LIGHT_WSO_COCKPIT_FLOOD_WHITE {-1, 0, 1, Toggle White Floodlight} + [2511] = "%.1f", -- LIGHT_WSO_COCKPIT_STBY_COMPASS {-1, 0, 1, Toggle Standby Compass Light} + [2512] = "%.2f", -- LIGHT_WSO_COCKPIT_FLOOD_CONSOLE {-0.5, 0, 1, Set Console Floodlight (Red) Brightness} + [2513] = "%.1f", -- LIGHT_WSO_COCKPIT_WARNING {1, 0, 1, Test Warning Lights} + [2514] = "%.1f", -- LIGHT_WSO_COCKPIT_INST_PANEL {1, 0, 1, Change Instrument Panel Light Brightness} + [2515] = "%.1f", -- LIGHT_WSO_COCKPIT_INDEXER {1, 0, 1, Change AoA Indexer Brightness} + [2516] = "%.1f", -- LIGHT_WSO_COCKPIT_CONSOLE {0, 0, 1, Change Console Light Brightness} + [2517] = "%.1f", -- PILOT_RPM_Gauge_SmallNeedle_L + [2518] = "%.1f", -- PILOT_RPM_Gauge_SmallNeedle_R + [2519] = "%.1f", -- PILOT_Slats_ORIDE_Sw {-1, 0, 1, Slats Override Switch} + [2520] = "%.1f", -- PILOT_Slats_ORIDE_Cover {-1, 0, 1, Slats Override Switch Cover} + [2521] = "%.2f", -- WSO_VOR_ILS_Knob {0.5, 0, 1, Change VOR/ILS Volume} + [2522] = "%.1f", -- WSO_VOR_ILS_MKR_BCN {0, 0, 1, Change Marker-Beacon Volume} + [2523] = "%.1f", -- WSO_UHF_TONE_BUTTON {1, 0, 1, Tone Button} + [2524] = "%.1f", -- WSO_UHF_Squelch {-1, 0, 1, UHF Squelch Switch} + [2525] = "%.1f", -- PILOT_LIGHT_AIR_REFUEL_READY + [2526] = "%.1f", -- PILOT_LIGHT_EXT_TK_LO_FULL + [2527] = "%.1f", -- PILOT_LIGHT_EXT_TK_CL_FULL + [2528] = "%.1f", -- PILOT_LIGHT_EXT_TK_RO_FULL + [2529] = "%.1f", -- PILOT_LIGHT_AIR_REFUEL_DISENGAGED + [2530] = "%.1f", -- PILOT_LIGHT_SHOOT_HUD_LEFT + [2531] = "%.1f", -- PILOT_LIGHT_SHOOT_HUD_RIGHT + [2532] = "%.1f", -- PILOT_LIGHT_HOLD_ALT + [2533] = "%.1f", -- PILOT_LIGHT_RANGE_5 + [2534] = "%.1f", -- PILOT_LIGHT_RANGE_10 + [2535] = "%.1f", -- PILOT_LIGHT_RANGE_25 + [2536] = "%.1f", -- PILOT_LIGHT_RANGE_50 + [2537] = "%.1f", -- PILOT_LIGHT_APR36_I + [2538] = "%.1f", -- PILOT_LIGHT_APR36_G + [2539] = "%.1f", -- PILOT_LIGHT_APR36_E + [2540] = "%.1f", -- PILOT_LIGHT_APR36_LAUNCH + [2541] = "%.1f", -- PILOT_LIGHT_APR36_AAA_DEF + [2542] = "%.1f", -- PILOT_LIGHT_APR36_AI + [2543] = "%.1f", -- PILOT_LIGHT_APR36_G_LORO + [2544] = "%.1f", -- PILOT_LIGHT_APR36_AAA_GCI + [2545] = "%.1f", -- PILOT_LIGHT_APR36_ACT_PWR + [2546] = "%.1f", -- PILOT_LIGHT_APR36_POWER + [2547] = "%.1f", -- PILOT_LIGHT_FIRE_LEFT + [2548] = "%.1f", -- PILOT_LIGHT_FIRE_RIGHT + [2549] = "%.1f", -- PILOT_LIGHT_OVERHT_LEFT + [2550] = "%.1f", -- PILOT_LIGHT_OVERHT_RIGHT + [2551] = "%.1f", -- PILOT_LIGHT_LH_GEN_OUT + [2552] = "%.1f", -- PILOT_LIGHT_RH_GEN_OUT + [2554] = "%.1f", -- PILOT_LIGHT_KY28_P_MODE + [2555] = "%.1f", -- PILOT_LIGHT_KY28_C_MODE + [2556] = "%.1f", -- PILOT_LIGHT_IFF_TEST + [2557] = "%.1f", -- PILOT_LIGHT_IFF_REPLY + [2558] = "%.1f", -- PILOT_LIGHT_WARM_LO + [2559] = "%.1f", -- PILOT_LIGHT_WARM_LI + [2560] = "%.1f", -- PILOT_LIGHT_WARM_CL + [2561] = "%.1f", -- PILOT_LIGHT_WARM_RI + [2562] = "%.1f", -- PILOT_LIGHT_WARM_RO + [2563] = "%.1f", -- PILOT_LIGHT_UNLOCKED_LO + [2564] = "%.1f", -- PILOT_LIGHT_UNLOCKED_LI + [2565] = "%.1f", -- PILOT_LIGHT_UNLOCKED_CL + [2566] = "%.1f", -- PILOT_LIGHT_UNLOCKED_RI + [2567] = "%.1f", -- PILOT_LIGHT_UNLOCKED_RO + [2568] = "%.1f", -- PILOT_LIGHT_IFF + [2569] = "%.1f", -- PILOT_LIGHT_AUTOPILOT_PITCH_TRIM + [2570] = "%.1f", -- PILOT_LIGHT_LEFT_EXT_FUEL + [2571] = "%.1f", -- PILOT_LIGHT_FUEL_LOW_LEVEL + [2572] = "%.1f", -- PILOT_LIGHT_L_ANTIICE_ON + [2573] = "%.1f", -- PILOT_LIGHT_L_AUX_AIR_DOOR + [2574] = "%.1f", -- PILOT_LIGHT_WINDSHIELD_TEMP + [2575] = "%.1f", -- PILOT_LIGHT_SLATS_IN + [2576] = "%.1f", -- PILOT_LIGHT_INERTIAL_NAV_OUT + [2577] = "%.1f", -- PILOT_LIGHT_DC_BUS + [2578] = "%.1f", -- PILOT_LIGHT_HOOK_DOWN + [2579] = "%.1f", -- PILOT_LIGHT_AUTOPILOT_DISENGAGE + [2580] = "%.1f", -- PILOT_LIGHT_CTR_EXT_FUEL + [2581] = "%.1f", -- PILOT_LIGHT_CHK_FUEL_FILTER + [2582] = "%.1f", -- PILOT_LIGHT_R_ANTIICE_ON + [2583] = "%.1f", -- PILOT_LIGHT_R_AUX_AIR_DOOR + [2584] = "%.1f", -- PILOT_LIGHT_DUCT_TEMP_HIGH + [2585] = "%.1f", -- PILOT_LIGHT_PITCH_AUG_OFF + [2586] = "%.1f", -- PILOT_LIGHT_TANK_7_FULL + [2587] = "%.1f", -- PILOT_LIGHT_RIGHT_EXT_FUEL + [2588] = "%.1f", -- PILOT_LIGHT_RADARON_COOLOFF + [2589] = "%.1f", -- PILOT_LIGHT_SPEEDBRAKE_OUT + [2590] = "%.1f", -- PILOT_LIGHT_CABIN_TURB_OVERSPEED + [2591] = "%.1f", -- PILOT_LIGHT_FIRE_SYS + [2592] = "%.1f", -- PILOT_LIGHT_RECORDER_ON + [2593] = "%.1f", -- PILOT_LIGHT_SHOOT_LEFT + [2594] = "%.1f", -- PILOT_LIGHT_SHOOT_RIGHT + [2595] = "%.2f", -- PILOT_PEDAL_AJUST_CRANK {0.5, 0, 1, Adjust Pedal Position} + [2596] = "%.2f", -- PILOT_TGT_MSL_REJECT {0, 0, 0.5, Missile Reject/Norm/Direction Finding Reject} + [2597] = "%.1f", -- PILOT_TGT_MSL_BAND {-1, 0, 1, Change Shrike Band} + [2598] = "%.1f", -- PILOT_AUTO_CLEAR {-1, 0, 1, Gun-pod Clear-Mode Switch} + [2599] = "%.2f", -- PILOT_RADAR_TV_SWITCH {-0.5, 0, 1, Select DSCG Screen Mode} + [2600] = "%.1f", -- PILOT_NUCLEAR_JETT {1, 0, 1, Jettison Nuclear Weapon} + [2601] = "%.1f", -- PILOT_CL_TK + [2602] = "%.1f", -- PILOT_MISSILE_HEAT_LEFT + [2603] = "%.1f", -- PILOT_MISSILE_HEAT_RIGHT + [2604] = "%.1f", -- PILOT_MISSILE_RADAR_LEFT + [2605] = "%.1f", -- PILOT_MISSILE_RADAR_RIGHT + [2606] = "%.1f", -- PILOT_VOR_SWITCH + [2607] = "%.1f", -- PILOT_THROTTLE_LEFT_PULL {1, 0, 1, Left Idle Detent} + [2608] = "%.1f", -- PILOT_THROTTLE_RIGHT_PULL {1, 0, 1, Right Idle Detent} + [2609] = "%.1f", -- PILOT_THROTTLE_RIGHT_MIC_SWITCH {-1, -1, 0, Mic Switch} + [2610] = "%.1f", -- PILOT_THROTTLE_RIGHT_SPEEDBRAKE {-1, 1, 0, Speed Brake} + [2611] = "%.1f", -- PILOT_AZ_EL_INDICATOR_ROLL_NEEDLE + [2612] = "%.1f", -- WSO_COURSE_SET_KNOB {0, 0, 1, Set Course} + [2613] = "%.1f", -- WSO_COURSE_GLIDESLOPE + [2614] = "%.1f", -- WSO_COURSE_GLIDESLOPE_OFF_FLAG + [2615] = "%.1f", -- WSO_COURSE_LOCALIZER + [2616] = "%.1f", -- WSO_COURSE_LOCALIZER_OFF_FLAG + [2617] = "%.1f", -- WSO_COURSE_DIST_UNIT + [2618] = "%.1f", -- WSO_COURSE_DIST_TEN + [2619] = "%.1f", -- WSO_COURSE_DIST_HUNDRED + [2620] = "%.1f", -- WSO_COURSE_LAMP_PRESS {1, 0, 1, Marker-Beacon Lamp (push to test rotate to dim)} + [2621] = "%.1f", -- WSO_COURSE_HEADING + [2622] = "%.1f", -- WSO_KY28_LAMP_PRESS_P_MODE {1, 0, 1, KY-28 P Mode Light (push to test rotate to dim)} + [2623] = "%.1f", -- WSO_KY28_LAMP_PRESS_C_MODE {1, 0, 1, KY-28 C Mode Light (push to test rotate to dim)} + [2624] = "%.2f", -- WSO_APR36_AUDIO_KNOB {0.5, 0, 1, RWR Audio Volume} + [2625] = "%.2f", -- WSO_APR36_DIM_KNOB {0.5, 0, 1, Light Brightness} + [2626] = "%.1f", -- WSO_RANGE_RATE_NEEDLE + [2627] = "%.1f", -- WSO_BDHI_OFF_FLAG + [2628] = "%.2f", -- WSO_AVTR_SWITCH {-0.5, 0, 1, Set AVTR Mode} + [2629] = "%.1f", -- WSO_APX80A_UNIT_INCREASE {1, 0, 1, Increase IFF Code (ones)} + [2630] = "%.1f", -- WSO_APX80A_UNIT_DECREASE {1, 0, 1, Decrease IFF Code (ones)} + [2631] = "%.1f", -- WSO_APX80A_TEN_INCREASE {1, 0, 1, Increase IFF Code (tens)} + [2632] = "%.1f", -- WSO_APX80A_TEN_DECREASE {1, 0, 1, Decrease IFF Code (tens)} + [2633] = "%.1f", -- WSO_APX80A_HUNDRED_INCREASE {1, 0, 1, Increase IFF Code (hundreds)} + [2634] = "%.1f", -- WSO_APX80A_HUNDRED_DECREASE {1, 0, 1, Decrease IFF Code (hundreds)} + [2635] = "%.1f", -- WSO_APX80A_THOUSAND_INCREASE {1, 0, 1, Increase IFF Code (thousands)} + [2636] = "%.1f", -- WSO_APX80A_THOUSAND_DECREASE {1, 0, 1, Decrease IFF Code (thousands)} + [2637] = "%.1f", -- WSO_APX80A_MODE_INCREASE {1, 0, 1, Increase IFF Mode} + [2638] = "%.1f", -- WSO_APX80A_MODE_DECREASE {1, 0, 1, Decrease IFF Mode} + [2639] = "%.1f", -- WSO_APX80A_ANTIJAM {-1, 0, 1, Anti-Jam (no function)} + [2640] = "%.1f", -- WSO_APX80A_LAMP_PRESS_TEST {1, 0, 1, Combat-Tree Challenge Light (push to test rotate to dim) (no simulated)} + [2641] = "%.1f", -- WSO_APX80A_CHAL_BUTTON {1, 0, 1, Test Combat-Tree} + [2642] = "%.1f", -- WSO_APX80A_M2 {-1, -1, 1, Set Combat-Tree Type 2 Mode} + [2643] = "%.1f", -- WSO_APX80A_M3 {-1, -1, 1, Set Combat-Tree Type 3 Mode} + [2644] = "%.1f", -- WSO_APX80A_M4 {-1, -1, 1, Mode 4 Alarm/Override Switch (no function)} + [2645] = "%.1f", -- WSO_APX80A_TEST {-1, -1, 0, Test/Challenge Code Switch} + [2646] = "%.1f", -- WSO_APX80A_LAMP_PRESS_CHAL {1, 0, 1, Challenge Light (push to test rotate to dim)} + [2647] = "%.1f", -- WSO_KY28_ZEROIZE {1, 0, 1, Erase KY-28 Data} + [2648] = "%.1f", -- WSO_KY28_BAND_SWITCH {-1, 0, 1, Select KY-28 Mode} + [2649] = "%.2f", -- WSO_KY28_MODE_KNOB {-0.5, 0, 1, Select KY-28 Power Mode} + [2650] = "%.2f", -- WSO_ECM_LEFT_MODE_KNOB {-0.25, 0, 1, Select ECM Mode (left pylons)} + [2651] = "%.1f", -- WSO_ECM_LEFT_STBY_1 + [2652] = "%.1f", -- WSO_ECM_LEFT_STBY_2 + [2653] = "%.1f", -- WSO_ECM_LEFT_XMIT_1 + [2654] = "%.1f", -- WSO_ECM_LEFT_XMIT_2 + [2655] = "%.1f", -- WSO_ECM_LEFT_AI + [2656] = "%.1f", -- WSO_ECM_LEFT_FAULT + [2657] = "%.1f", -- WSO_ECM_LEFT_RESET_BUTTON {1, 0, 1, Reset ECM Fault (left pylons)} + [2658] = "%.2f", -- WSO_ECM_RIGHT_MODE_KNOB {-0.25, 0, 1, Select ECM Mode (right pylons)} + [2659] = "%.1f", -- WSO_ECM_RIGHT_STBY_1 + [2660] = "%.1f", -- WSO_ECM_RIGHT_STBY_2 + [2661] = "%.1f", -- WSO_ECM_RIGHT_XMIT_1 + [2662] = "%.1f", -- WSO_ECM_RIGHT_XMIT_2 + [2663] = "%.1f", -- WSO_ECM_RIGHT_AI + [2664] = "%.1f", -- WSO_ECM_RIGHT_FAULT + [2665] = "%.1f", -- WSO_ECM_RIGHT_RESET_BUTTON {1, 0, 1, Reset ECM Fault (right pylons)} + [2666] = "%.2f", -- WSO_ICS_VOLUME_KNOB {0.5, 0, 1, Change Intercom Volume} + [2667] = "%.2f", -- WSO_ICS_MODE_KNOB {-0.5, 0, 1, Select Amplifier} + [2668] = "%.1f", -- WSO_ICS_RADIO_OVERRIDE {-1, 1, 0, Set Mode} + [2670] = "%.1f", -- WSO_THROTTLE_SPEEDBRAKE {-1, 1, 0, Speed Brake} + [2671] = "%.1f", -- WSO_THROTTLE_MIC_SWITCH {-1, -1, 0, Mic Switch} + [2672] = "%.2f", -- WSO_RADAR_RANGE_KNOB {0.5, 0, 1, Scale Brightness} + [2673] = "%.2f", -- WSO_CANOPY_LOW_ALT_KNOB {0.5, 0, 1, Canopy/Low Altitude Warning Volume (late variants only) (no function)} + [2674] = "%.1f", -- WSO_LIGHT_COURSE + [2675] = "%.1f", -- WSO_LIGHT_KY28_P_MODE + [2676] = "%.1f", -- WSO_LIGHT_KY28_C_MODE + [2677] = "%.1f", -- WSO_LIGHT_SHOOT + [2678] = "%.1f", -- WSO_LIGHT_APR36_I + [2679] = "%.1f", -- WSO_LIGHT_APR36_G + [2680] = "%.1f", -- WSO_LIGHT_APR36_E + [2681] = "%.1f", -- WSO_LIGHT_APR36_LAUNCH + [2682] = "%.1f", -- WSO_LIGHT_APR36_AAA_DEF + [2683] = "%.1f", -- WSO_LIGHT_APR36_AI + [2684] = "%.1f", -- WSO_LIGHT_APR36_G_LORO + [2685] = "%.1f", -- WSO_LIGHT_APR36_AAA_GCI + [2686] = "%.1f", -- WSO_LIGHT_APR36_ACT_PWR + [2687] = "%.1f", -- WSO_LIGHT_APR36_POWER + [2688] = "%.1f", -- WSO_LIGHT_INERTIAL_NAV_OUT + [2689] = "%.1f", -- WSO_LIGHT_RADAR_COOL_OFF + [2690] = "%.1f", -- WSO_LIGHT_AIR_TO_AIR + [2691] = "%.1f", -- WSO_LIGHT_WEAPON + [2692] = "%.1f", -- WSO_LIGHT_ASQ_153 + [2693] = "%.1f", -- WSO_LIGHT_RCD + [2694] = "%.1f", -- WSO_LIGHT_EOT + [2695] = "%.1f", -- WSO_LIGHT_APX_CHAL + [2696] = "%.1f", -- WSO_LIGHT_APX_TEST + [2697] = "%.1f", -- WSO_LIGHT_LASER_NO_GO + [2703] = "%.1f", -- WSO_LIGHT_INDEXER_GREEN_LEFT + [2707] = "%.1f", -- WSO_LIGHT_INDEXER_GREEN_RIGHT + [2708] = "%.1f", -- PILOT_FLOODLIGHT_WHITE + [2709] = "%.1f", -- PILOT_FLOODLIGHT_CONSOLES + [2710] = "%.1f", -- PILOT_FLOODLIGHT_INSTRUMENTS + [2711] = "%.1f", -- WSO_FLOODLIGHT_WHITE + [2712] = "%.1f", -- WSO_FLOODLIGHT_CONSOLES + [2713] = "%.1f", -- WSO_FLOODLIGHT_INSTRUMENTS + [2714] = "%.1f", -- PILOT_LIGHT_VOR_MARKER + [2715] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_STOW + [2716] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_LASER_READY + [2717] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_POWER_ON + [2718] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_WRCS_OUT + [2719] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_GO + [2720] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_MALF + [2721] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_OVHT + [2722] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_INS_OUT + [2723] = "%.1f", -- WSO_TACHOMETER_NEEDLES_UNI_LEFT + [2724] = "%.1f", -- WSO_TACHOMETER_NEEDLES_UNI_RIGHT + [2725] = "%.1f", -- BDHI_WSO_RANGE_THOUSANDS + [2726] = "%.1f", -- WSO_COURSE_DEVIATION_NEEDLE + [2727] = "%.1f", -- PILOT_TEMP_OFF_FLAG_L + [2728] = "%.1f", -- PILOT_TEMP_OFF_FLAG_R + [2729] = "%.2f", -- PILOT_VOL_CANOPY_LOW_ALT {0.5, 0, 1, Canopy/Low Altitude Warning Volume (late variants only) (no function)} + [2730] = "%.1f", -- WSO_LIGHT_MONITOR_CORDS + [2731] = "%.1f", -- WSO_LIGHT_MONITOR_TEMP + [2732] = "%.1f", -- WSO_AIR_TO_AIR_BUTTON {1, 0, 1, Air to Air Mode - Exit Cage} + [2733] = "%.1f", -- WSO_TGT_DESIGNATOR_RETICLE_BRIGHTNESS_KNOB {0, 0, 1, TV Reticle Brightness (black to white)} + [2734] = "%.2f", -- WSO_TGT_DESIGNATOR_BORESIGHT_AZIMUTH_KNOB {0.5, 0, 1, Boresight Azimuth (12-Vis)} + [2735] = "%.2f", -- WSO_TGT_DESIGNATOR_BORESIGHT_ELEVATION_KNOB {0.5, 0, 1, Boresight Elevation (12-Vis)} + [2736] = "%.2f", -- WSO_TGT_DESIGNATOR_BORESIGHT_ROLL_KNOB {0.5, 0, 1, Boresight Roll (9-Vis)} + [2737] = "%.1f", -- WSO_TGT_DESIGNATOR_BIT_BUTTON {1, 0, 1, Next BIT} + [2738] = "%.1f", -- WSO_TGT_DESIGNATOR_LIGHT_BRIGHTNESS_KNOB {1, 0, 1, Panel Light Brightness} + [2739] = "%.1f", -- WSO_TGT_DESIGNATOR_REJECT_OVERRIDE_BUTTON {1, 0, 1, Reject/Override Range} + [2740] = "%.2f", -- WSO_TGT_DESIGNATOR_ACQUISITION_SWITCH {-0.5, 0, 1, Acquisition Mode} + [2741] = "%.1f", -- WSO_RANGE_THOUSAND_NEEDLE + [2742] = "%.1f", -- PILOT_LIGHT_APR36_ISAMLO + [2743] = "%.1f", -- PILOT_LIGHT_APR36_GSAMLO + [2744] = "%.1f", -- PILOT_LIGHT_APR36_ESAMLO + [2745] = "%.1f", -- PILOT_LIGHT_APR36_AIDAY + [2746] = "%.1f", -- PILOT_LIGHT_APR36_GCI + [2747] = "%.1f", -- PILOT_LIGHT_APR36_PWR + [2748] = "%.1f", -- WSO_LIGHT_APR36_ISAMLO + [2749] = "%.1f", -- WSO_LIGHT_APR36_GSAMLO + [2750] = "%.1f", -- WSO_LIGHT_APR36_ESAMLO + [2751] = "%.1f", -- WSO_LIGHT_APR36_AIDAY + [2752] = "%.1f", -- WSO_LIGHT_APR36_GCI + [2753] = "%.1f", -- WSO_LIGHT_APR36_PWR + [2754] = "%.1f", -- WSO_TGT_DESIGNATOR_STOW_BUTTON {1, 0, 1, Stow/Unstow TGP} + [2755] = "%.1f", -- WSO_TGT_DESIGNATOR_LASER_READY_BUTTON {-1, 0, 1, Arm/Disarm Laser} + [2756] = "%.1f", -- WSO_TGT_DESIGNATOR_POWER_ON_BUTTON {1, 0, 1, Power On/Off TGP} + [2757] = "%.1f", -- WSO_TGT_DESIGNATOR_WRCS_OUT_BUTTON {-1, 0, 1, Enable/Disable WRCS integration} + [2758] = "%.1f", -- WSO_TGT_DESIGNATOR_GO_MALF_BUTTON {-1, 0, 1, (no function)} + [2759] = "%.1f", -- WSO_TGT_DESIGNATOR_INS_OUT_BUTTON {-1, 0, 1, Enable/Disable INS integration} + [2760] = "%.1f", -- WSO_WEAPON_ASQ153_BUTTON {1, 0, 1, Select Video (Maverick or TGP)} + [2761] = "%.1f", -- PILOT_AZ_EL_INDICATOR_RED_EL_FLAG + [2762] = "%.1f", -- PILOT_AZ_EL_INDICATOR_YELLOW_EL_FLAG + [2763] = "%.1f", -- PILOT_AZ_EL_INDICATOR_GREEN_EL_FLAG + [2764] = "%.1f", -- PILOT_RANGE_INDICATOR_TEST_BUTTON {1, 0, 1, Test Display} + [2765] = "%.1f", -- NAV_COMP_RIO_FUNCTION_SELECTOR_PULL_KNOB + [2766] = "%.1f", -- WSO_TGT_DESIGNATOR_LAMP_BRIGHTNESS + [2767] = "%.1f", -- Pilot_Drag_Chute_Handle_P1, {0, 0, 1, Drag-Parachute (Pull to Deploy)} + [2768] = "%.2f", -- Pilot_COMM_CMD_light_rotation {0.5, 0, 1, Change Radio Command Light Brightness} + [2770] = "%.2f", -- Pilot_NAV_CMD_light_rotation {0.5, 0, 1, Change TACAN Command Light Brightness} + [2772] = "%.2f", -- WSO_COMM_CMD_light_rotation {0.5, 0, 1, Change Radio Command Light Brightness} + [2774] = "%.2f", -- WSO_NAV_CMD_light_rotation {0.5, 0, 1, Change TACAN Command Light Brightness} + [2776] = "%.1f", -- Pilot_Stick_Trigger + [2777] = "%.1f", -- Pilot_Stick_Trim_Pitch + [2778] = "%.1f", -- Pilot_Stick_Trim_Roll + [2779] = "%.1f", -- Pilot_Stick_Bomb_Release + [2780] = "%.1f", -- Pilot_Stick_Air_Refueling {1, 0, 1, Air Refuel Release button} + [2781] = "%.1f", -- Pilot_Stick_NWS {1, 0, 1, Nosegear Steering Button} + [2782] = "%.1f", -- Pilot_Stick_Paddle_Switch {1, 0, 1, Emergency Quick Release} + [2783] = "%.1f", -- WSO_Stick_Trigger + [2784] = "%.1f", -- WSO_Stick_Trim_Pitch + [2785] = "%.1f", -- WSO_Stick_Trim_Roll + [2786] = "%.1f", -- WSO_Stick_Bomb_Release + [2787] = "%.1f", -- WSO_Stick_NWS {1, 0, 1, Nosegear Steering Button} + [2788] = "%.1f", -- WSO_Stick_Emerg_Lever {1, 0, 1, Emergency Quick Release} + [2789] = "%.1f", -- PILOT_FUELSYS_FEED_TANK_CHECK_SWITCH {1, 0, 1, Check Engine-Feed Tank} + [2790] = "%.1f", -- PILOT_KY28_P_MODE_KNOB_ROTATION {0, 0, 1, KY-28 P Mode Light (push to test rotate to dim)} + [2791] = "%.1f", -- PILOT_KY28_P_MODE_KNOB_PUSH {1, 0, 1, KY-28 P Mode Light (push to test rotate to dim)} + [2792] = "%.1f", -- PILOT_KY28_C_MODE_KNOB_ROTATION {0, 0, 1, KY-28 C Mode Light (push to test rotate to dim)} + [2793] = "%.1f", -- PILOT_KY28_C_MODE_KNOB_PUSH {1, 0, 1, KY-28 C Mode Light (push to test rotate to dim)} + [2794] = "%.1f", -- PILOT_PULL_UP_LIGHT_ROTATION {0, 0, 1, LABS Pull-Up Light (push to test rotate to dim)} + [2795] = "%.1f", -- PILOT_RECORDER_LAMP_ROTATION {0, 0, 1, AVTR Recorder Lamp (push to test rotate to dim)} + [2796] = "%.1f", -- PILOT_RECORDER_LAMP_PUSH {1, 0, 1, AVTR Recorder Lamp (push to test rotate to dim)} + [2797] = "%.1f", -- PILOT_MARKER_BEACON_LAMP_ROTATION {0, 0, 1, Marker-Beacon Lamp (push to test rotate to dim)} + [2798] = "%.1f", -- PILOT_MARKER_BEACON_LAMP_PUSH {1, 0, 1, Marker-Beacon Lamp (push to test rotate to dim)} + [2799] = "%.1f", -- PILOT_VOR_LIGHT_ROTATION {1, 0, 1, VOR Light (no function)} + [2800] = "%.1f", -- PILOT_TACAN_TEST_LIGHT_ROTATION + [2801] = "%.1f", -- PILOT_TACAN_TEST_LIGHT_PUSH + [2802] = "%.1f", -- PILOT_OXYGEN_PRESSURE_DEMAND + [2803] = "%.1f", -- PILOT_UHF_REPEATER_PUSH + [2804] = "%.1f", -- PILOT_RADAR_ALTITUDE_LAMP_ROTATION + [2805] = "%.1f", -- PILOT_RADAR_ALTITUDE_LAMP_PUSH + [2806] = "%.1f", -- WSO_LOCALIZER_LIGHT_ROTATION {0, 0, 1, Marker-Beacon Lamp (push to test rotate to dim)} + [2807] = "%.1f", -- WSO_KY28_P_MODE_KNOB_ROTATION {0, 0, 1, KY-28 P Mode Light (push to test rotate to dim)} + [2808] = "%.1f", -- WSO_KY28_C_MODE_KNOB_ROTATION {0, 0, 1, KY-28 C Mode Light (push to test rotate to dim)} + [2809] = "%.1f", -- WSO_RWR_KNOB_ROTATION {1, 0, 1, Screen Brightness} + [2810] = "%.2f", -- WSO_RWR_PANEL_ML_AUDIO_ROTATION {0.5, 0, 1, Change RWR Missile Audio Volume} + [2811] = "%.1f", -- WSO_APX_CHAL_LAMP_ROTATION {0, 0, 1, Challenge Light (push to test rotate to dim)} + [2812] = "%.1f", -- WSO_APX_TEST_LAMP_ROTATION {0, 0, 1, Combat-Tree Challenge Light (push to test rotate to dim) (no simulated)} + [2813] = "%.2f", -- WSO_PEDAL_ADJUST_LEVER {0.5, 0, 1, Adjust Pedal Position} + [2814] = "%.2f", -- WSO_OXYGEN_KNOB_ROTATION {0.5, 0, 1, Lamp Cap (no function)} + [2815] = "%.1f", -- WSO_OXYGEN_KNOB_DEMAND_ROTATION + [2816] = "%.1f", -- WSO_RCD_EOT_BUTTON_PUSH {1, 0, 1, AVTR Record/End Of Tape Button (no function)} + [2817] = "%.1f", -- WSO_UHF_REPEATER_PUSH + [2818] = "%.2f", -- WSO_INS_ALIGN_LIGHT_ROTATION {0.5, 0, 1, INS Align Lamp (rotate to dim)} + [2819] = "%.2f", -- WSO_INS_HEAT_LIGHT_ROTATION {0.5, 0, 1, INS Heat Lamp (rotate to dim)} + [2820] = "%.1f", -- WSO_TACAN_TEST_LIGHT_ROTATION + [2821] = "%.1f", -- WSO_TACAN_TEST_LIGHT_PUSH + [2822] = "%.1f", -- WSO_MSL_TONE_KNOB_ROTATION {1, 0, 1, Aural Tone Volume} + [2823] = "%.1f", -- WSO_UHF_AUX_TEST_PUSH + [2824] = "%.1f", -- WSO_ALR46_PRIORITY_PUSH {1, 0, 1, Priority/Open Mode} + [2825] = "%.1f", -- WSO_ALR46_SEARCH_PUSH {1, 0, 1, Search} + [2826] = "%.1f", -- WSO_ALR46_HANDOFF_PUSH {1, 0, 1, Handoff} + [2827] = "%.1f", -- WSO_ALR46_LAUNCH_PUSH {1, 0, 1, (no function)} + [2828] = "%.1f", -- WSO_ALR46_LOW_PUSH {1, 0, 1, Low/Altitude Mode} + [2829] = "%.1f", -- WSO_ALR46_TGT_SEP_PUSH {1, 0, 1, Target Separation} + [2830] = "%.1f", -- WSO_ALR46_SYS_TEST_PUSH {1, 0, 1, System Test} + [2831] = "%.1f", -- WSO_ALR46_UNKNOWN_PUSH {1, 0, 1, Unknown} + [2832] = "%.1f", -- WSO_ALR46_ACTIVITY_PUSH {1, 0, 1, (no function)} + [2833] = "%.1f", -- WSO_ALR46_POWER_PUSH {1, 0, 1, System Power} + [2834] = "%.1f", -- PILOT_EJECT_LIGHT_PUSH {-1, 0, 1, Signal Ejection To WSO} + [2835] = "%.1f", -- PILOT_EJECT_LIGHT + [2836] = "%.1f", -- WSO_EJECT_LIGHT_PUSH_TEST {1, 0, 1, Eject Light (push to test)} + [2837] = "%.1f", -- WSO_EJECT_LIGHT + [2838] = "%.1f", -- PILOT_SEAT_VISIBILITY + [2839] = "%.1f", -- WSO_SEAT_VISIBILITY + [2840] = "%.1f", -- PILOT_STICK_VISIBILITY {-1, 0, 1, Hide/Show Stick} + [2841] = "%.1f", -- WSO_STICK_VISIBILITY {-1, 0, 1, Hide/Show Stick} + [2842] = "%.1f", -- PILOT_IFF_REPLY_LAMP_ROTATION {0, 0, 1, IFF Reply Lamp (push to test rotate to dim)} + [2843] = "%.1f", -- PILOT_IFF_REPLY_LAMP_PUSH {1, 0, 1, IFF Reply Lamp (push to test rotate to dim)} + [2844] = "%.1f", -- PILOT_IFF_TEST_LAMP_ROTATION {0, 0, 1, IFF Test Lamp (push to test rotate to dim)} + [2845] = "%.1f", -- PILOT_IFF_TEST_LAMP_PUSH {1, 0, 1, IFF Test Lamp (push to test rotate to dim)} + [2846] = "%.1f", -- PILOT_WEAPON_SEL_BRIGHTNESS + [2847] = "%.1f", -- PILOT_RWR_LAMP_BRIGHTNESS + [2848] = "%.1f", -- WSO_RWR_LAMP_BRIGHTNESS + [2850] = "%.1f", -- PILOT_CABLE_SEG1_FWD_AFT + [2851] = "%.1f", -- PILOT_CABLE_SEG1_UP_DN + [2852] = "%.1f", -- PILOT_CABLE_SEG2_FWD_AFT + [2853] = "%.1f", -- PILOT_CABLE_SEG2_UP_DN + [2854] = "%.1f", -- PILOT_CABLE_SEG3_FWD_AFT + [2855] = "%.1f", -- PILOT_CABLE_SEG3_UP_DN + [2856] = "%.1f", -- PILOT_CABLE_SEG4_FWD_AFT + [2857] = "%.1f", -- PILOT_CABLE_SEG4_LEFT_RIGHT + [2858] = "%.1f", -- PILOT_CABLE_SEG5_FWD_AFT + [2859] = "%.1f", -- PILOT_CABLE_SEG5_LEFT_RIGHT + [2860] = "%.1f", -- PILOT_SAI_INTENSITY {1, 0, 1, Change Standby Attitude Indicator Brightness} + [2861] = "%.1f", -- PILOT_SAI_CB {-1, 0, 1, Standby Attitude Indicator CB} + [2862] = "%.1f", -- PILOT_THROTTLE_SWITCH_UD + [2863] = "%.1f", -- PILOT_THROTTLE_SWITCH_FA + [2864] = "%.1f", -- PILOT_INSTRUMENT_PANEL_LIGHT + [2865] = "%.1f", -- WSO_INSTRUMENT_PANEL_LIGHT + [2866] = "%.1f", -- PILOT_CONSOLE_LIGHT + [2867] = "%.1f", -- WSO_CONSOLE_LIGHT + [2868] = "%.1f", -- PILOT_AOA_INDICATOR_LIGHT -- TODO Doesnt exist in the model + [2869] = "%.1f", -- PILOT_HSI_LIGHT -- TODO Doesnt exist in the model + [2870] = "%.1f", -- PILOT_VVI_LIGHT -- TODO Doesnt exist in the model + [2871] = "%.1f", -- PILOT_SPEED_INDICATOR_LIGHT -- TODO Doesnt exist in the model + [2872] = "%.1f", -- PILOT_ADI_LIGHT -- TODO Doesnt exist in the model + [2873] = "%.1f", -- PILOT_ALTIMETER_LIGHT -- TODO Doesnt exist in the model + [2874] = "%.1f", -- PILOT_AOA_INDEXER_BRIGHTNESS + [2875] = "%.1f", -- WSO_AOA_INDEXER_BRIGHTNESS + [2876] = "%.1f", -- PILOT_SAI_LIGHT -- TODO Doesnt exist in the model + [2877] = "%.1f", -- WSO_LAMP_RADAR_H + [2878] = "%.1f", -- WSO_LAMP_RADAR_T + [2879] = "%.1f", -- PILOT_CABIN_VENT_PLUG {-1, 0, 1, Emergency Release Cockpit Pressure} + [2880] = "%.1f", -- WSO_APX_GLASS_COVER + [2881] = "%.1f", -- PILOT_STANDBY_COMPASS_LIGHT -- TODO Doesnt exist in the model + [2882] = "%.1f", -- WSO_STANDBY_COMPASS_LIGHT -- TODO Doesnt exist in the model + [2883] = "%.1f", -- PILOT_SPARE_WARNING_LIGHTS + [2884] = "%.1f", -- PILOT_AVTR_TAPE_EJECT_BUTTON {1, 0, 1, Eject AVTR Cassette (OFF mode only)} + [2885] = "%.1f", -- PILOT_AVTR_TAPE_UNTHREAD_BUTTON {1, 0, 1, Unthread AVTR Cassette} + [2886] = "%.1f", -- PILOT_AVTR_TAPE_POSITION -- TODO Doesnt exist in the model + [2887] = "%.1f", -- WSO_RCD_EOT_BUTTON_BRIGHTNESS + [2888] = "%.1f", -- SHOW_PROXY_PILOT + [2889] = "%.1f", -- PILOT_INDICATOR_WARNING_LIGHTS_BRIGHTNESS + [2890] = "%.1f", -- WSO_INDICATOR_WARNING_LIGHTS_BRIGHTNESS + [3000] = "%.1f", -- SHAKE_RangeIndicator + [3002] = "%.1f", -- SHAKE_Mirrors + [3003] = "%.1f", -- SHAKE_GlareshieldLamp_Left + [3004] = "%.1f", -- SHAKE_Glareshield_Left + [3005] = "%.1f", -- SHAKE_WeaponsLights + [3006] = "%.1f", -- SHAKE_Lamps_RightSide + [3007] = "%.1f", -- SHAKE_RWR_Pilot + [3008] = "%.1f", -- SHAKE_JettisonHandle + [3009] = "%.1f", -- SHAKE_CanopyHandle + [3010] = "%.1f", -- SHAKE_BrakeHandle + [3011] = "%.1f", -- SHAKE_StringThing_LeftSide + [3012] = "%.1f", -- SHAKE_StringThing_RightSide + [3013] = "%.1f", -- SHAKE_HUD_Right + [3014] = "%.1f", -- SHAKE_HUD_Left + [3015] = "%.1f", -- SHAKE_RightSideGlareshield + [3016] = "%.1f", -- SHAKE_TopShootLight + [3017] = "%.1f", -- SHAKE_PullUpLamp + [3018] = "%.1f", -- SHAKE_ECS_LEFT + [3019] = "%.1f", -- SHAKE_ECS_RIGHT + [3020] = "%.1f", -- SHAKE_PAPER_Right + [3021] = "%.1f", -- SHAKE_PAPER_Left + [3022] = "%.1f", -- SHAKE_EjectionHandles + [3023] = "%.1f", -- SHAKE_SwitchFront + [3024] = "%.1f", -- SHAKE_RightLightStack + [3025] = "%.1f", -- SHAKE_Clock + [3028] = "%.1f", -- SHAKE_EscapeTool + [3029] = "%.1f", -- SHAKE_EscapeToolRing + [3030] = "%.1f", -- SHAKE_Glareshield_LR + [3031] = "%.1f", -- SHAKE_Glareshield_UD + [3032] = "%.1f", -- SHAKE_Glareshield_Shaking + [3033] = "%.1f", -- SHAKE_Glareshield_Centripetal + [3034] = "%.1f", -- SHAKE_RingGravity + [3035] = "%.1f", -- PNT_WsoMirror_Right {-1, 0, 1, Toggle WSO Mirror Right} + [3036] = "%.1f", -- PNT_PILOT_GreasePencil {-1, 0, 1, Hide/Show Grease Pencil} + [3037] = "%.1f", -- PNT_WSO_GreasePencil {-1, 0, 1, Hide/Show Grease Pencil} + [3038] = "%.1f", -- RADAR_PILOT_BRIGHTNESS + [3039] = "%.1f", -- RADAR_PILOT_RED_SLIDER {0, 0, 1, Screen Night Filter (Red)} + [3040] = "%.1f", -- RADAR_PILOT_INT_SLIDER {0, 0, 1, Screen Intensity} + [3041] = "%.1f", -- PILOT_SEAT_HEIGHT_SWITCH {-1, -1, 0, Change Seat Position} + [3042] = "%.1f", -- PILOT_SEAT_HEIGHT + [3043] = "%.1f", -- WSO_SEAT_HEIGHT_SWITCH {-1, -1, 0, Change Seat Position} + [3044] = "%.1f", -- WSO_SEAT_HEIGHT + [3045] = "%.1f", -- PILOT_EMERG_GEAR_HANDLE {1, 0, 1, Landing Gear (Pull Out for Emergency)} + [3046] = "%.1f", -- PILOT_MODE_LIGHT_CB {-1, 0, 1, Mode/Indicator Lights CB} + [3047] = "%.1f", -- PILOT_PRIM_INST_LIGHT_CB {-1, 0, 1, Flight Instrument Lights CB} + [3048] = "%.2f", -- PROXY_LOD --0: both visible 0.5, in WSO seat 1.0, in Pilot Seat., , , + [3050] = "%.1f", -- WSO_SHOW_HIDE_RADAR_BOOT --Also swaps between the center pedestals with different RM's. {-1, 0, 1, Show/Hide Radar Boot} + [3051] = "%.1f", -- WATER_TEST_ROLL -- TODO Doesnt exist in the model + [3052] = "%.1f", -- WATER_TEST_UPDN -- TODO Doesnt exist in the model + [3055] = "%.1f", -- TOGGLE_MIRRORS + [3060] = "%.1f", -- PROXY_VR_PILOT --Used to intercept the command from the controller. + [3061] = "%.1f", -- PNT_PilotMirror_Top {-1, 0, 1, Toggle Mirrors C} + [3062] = "%.1f", -- PNT_PilotMirror_Left {-1, 0, 1, Toggle Mirrors L} + [3063] = "%.1f", -- PNT_PilotMirror_Right {-1, 0, 1, Toggle Mirrors R} + [3068] = "%.1f", -- PNT_red_reticle {-1, 0, 1, Screen Night Filter (red)} + [9999] = "%.2f", -- ??? PNT_EMERG_ADI {0.5, 0, 1, Cage/Uncage (turn to trim)} +} + +-- Please fill in this table with IDs that you're using so there are no collisions! +-- Then just use the table entry, for example: ExportScript.Tools.SendData(export_ids.PILOT_GUN_ROUNDS, ...) +export_ids = { + PILOT_TAS_NUMERIC = 10001, + PILOT_TAS_STRING = 10002, + PILOT_GUN_ROUNDS = 10003, + + PILOT_RADIO_REPEATER = 10004, + PILOT_RANGE_INDICATOR = 10005, -- TGP range thingy left of HUD + PILOT_AVTR_TIME_INDICATOR = 10006, + PILOT_VOR_ILS_FREQUENCY = 10007, + PILOT_TACAN_FREQUENCY = 10008, + WSO_TACAN_FREQUENCY = 10009, + + -- Pilot RWR + PILOT_RWR_MODE = 10010, + PILOT_RWR_SEARCH = 10011, + PILOT_RWR_HANDOFF = 10012, + PILOT_RWR_LAUNCH = 10013, + PILOT_RWR_ALTITUDE = 10014, + PILOT_RWR_T = 10015, + PILOT_RWR_SYS_TEST = 10016, + PILOT_RWR_SHIP = 10017, + PILOT_RWR_ACT_PWR = 10018, + PILOT_RWR_POWER = 10019, + + -- WSO Rollers + WSO_LASER_CODE = 10020, + WSO_WRCS_DRAG = 10021, + WSO_WRCS_NS = 10022, + WSO_WRCS_EW = 10023, + WSO_WRCS_ADVANCE = 10024, + WSO_WRCS_RANGE = 10025, + WSO_WRCS_ALTRANGE = 10026, + WSO_GROUNDSPEED = 10027, + WSO_TRUEAIRSPEED = 10028, + + -- TODO add the rest of the roller for the WSO here, please + -- Navigation Computer + WSO_NAVCOMP_VARIATION = 10029, --WIP + WSO_NAVCOMP_VARIATION_FULL = 10030, --WIP + WSO_NAVCOMP_WIND_DEG = 10031, --WIP + WSO_NAVCOMP_WIND_KNOTS = 10032, --WIP + WSO_NAVCOMP_POSITION_LAT = 10033, --WIP + WSO_NAVCOMP_POSITION_LAT_FULL = 10034, --WIP + WSO_NAVCOMP_POSITION_LONG = 10035, --WIP + WSO_NAVCOMP_POSITION_LONG_FULL = 10036, --WIP + WSO_NAVCOMP_TARGET_LAT = 10037, --WIP + WSO_NAVCOMP_TARGET_LAT_FULL = 10038, --WIP + WSO_NAVCOMP_TARGET_LONG = 10039, --WIP + WSO_NAVCOMP_TARGET_LONG_FULL = 10040, --WIP + + -- UHF Radios (Can also add Command feature seen in tacan 100074) + PILOT_UHF_FREQ = 10041, --WIP + PILOT_UHF_CHANNEL = 10042, --WIP + WSO_UHF_FREQ = 10043, --WIP + WSO_UHF_CHANNEL = 10044, --WIP + + -- HSIs + PILOT_HSI_COURSE_WINDOW = 10045, + PILOT_HSI_MILES = 10046, + WSO_HSI_COURSE_WINDOW = 10047, + WSO_HSI_MILES_VERT = 10048, + WSO_HSI_MILES_HORZ = 10049, + WSO_ARBCS_LOW_ANGLE = 10050, + WSO_ARBCS_HIGH_ANGLE = 10051, + WSO_ARBCS_PULLUP = 10052, + WSO_ARBCS_RELEASE = 10053, + + -- Countermeasures + WSO_CHAFF = 10054, + WSO_FLARE = 10055, + + -- IFF + PILOT_IFF_M1 = 10056, + PILOT_IFF_M3 = 10057, + WSO_APX80A = 10058, + WSO_APX80A_FULL = 10059, + + PILOT_GEAR_IND = 10060, + PILOT_ALTIMETER = 10061, + MISSILE_LIGHTS = 10062, + PILOT_RADAR_ALTITUDE = 10063, + PILOT_HSI_BAR_POINTER = 10064, + LEFT_ENGINE_RPM = 10065, + RIGHT_ENGINE_RPM = 10066, + VSI_INDICATION = 10067, + AOA_INDEXER = 10068, + PILOT_FUEL_READOUT = 10069, + PILOT_HDG_CRS = 10070, + PILOT_HSI_COMPASS = 10071, + PILOT_HSI_POINTER = 10072, + PILOT_TACAN_FREQ_CMD_LGHT = 10074, + WSO_TACAN_FREQ_CMD_LGHT = 10075, +} + +-- ⚪ white +-- ⚫ black +-- 🟡 yellow +-- 🔴 red +-- 🟢 green +-- 🔵 blue + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + ExportScript.WSO_speedIndicators(mainPanelDevice) + ExportScript.Pilot_Gear_Status(mainPanelDevice) + ExportScript.Pilot_Altimeter(mainPanelDevice) + ExportScript.RADAR_ALTITUDE(mainPanelDevice) + ExportScript.ENGINE_RPM(mainPanelDevice) + ExportScript.VSI_INDICATION(mainPanelDevice) + ExportScript.AOA_INDEXER(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) + ]] + + ExportScript.TAS_indicator(mainPanelDevice) + ExportScript.gun_rounds_indicator(mainPanelDevice) + ExportScript.RWR_control_panel(mainPanelDevice) + ExportScript.radio_repeater() + ExportScript.range_indicator() + ExportScript.avtr_time_indicator() + ExportScript.VOR_ILS_frequency(mainPanelDevice) + ExportScript.TACAN_channels(mainPanelDevice) + ExportScript.LaserCodeReadout(mainPanelDevice) + ExportScript.WSO_WRCS(mainPanelDevice) + ExportScript.ARBCS(mainPanelDevice) + ExportScript.UHF_radios(mainPanelDevice) -- WIP + ExportScript.HSI(mainPanelDevice) + ExportScript.Chaff_Flare(mainPanelDevice) + ExportScript.IFF(mainPanelDevice) + ExportScript.NAVCOMP(mainPanelDevice) -- WIP + ExportScript.Missile_Lights(mainPanelDevice) + ExportScript.Pilot_Fuel_Readout(mainPanelDevice) + + --------------- + -- Log Dumps -- + --------------- + -- ExportScript.CockpitParamsLogDump(mainPanelDevice) + -- ExportScript.MetaTableLogDump(mainPanelDevice) + -- ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- + +local function round(num) + -- Hey look at that funny FPU trick! Basically a round function + -- https://stackoverflow.com/a/58411671/17325837 + return num + (2 ^ 52 + 2 ^ 51) - (2 ^ 52 + 2 ^ 51) +end + +function ExportScript.Pilot_Fuel_Readout(mainPanelDevice) -- bones1014 + local tens = string.format("%d", mainPanelDevice:get_argument_value(719) * 10) + local hundreds = string.format("%d", mainPanelDevice:get_argument_value(720) * 10) + local thousands = string.format("%d", mainPanelDevice:get_argument_value(721) * 10) + local tensofthousands = string.format("%d", mainPanelDevice:get_argument_value(722) * 10) + ExportScript.Tools.SendData(export_ids.PILOT_FUEL_READOUT, + string.format("FUEL\n" .. tensofthousands .. thousands .. hundreds .. tens .. "\nx10")) +end + +function ExportScript.ENGINE_RPM(mainPanelDevice) -- Bearmat + local rpm_valueL = mainPanelDevice:get_argument_value(299) * 100 + local formatted_rpmL = string.format("%.0f", rpm_valueL) + ExportScript.Tools.SendData(export_ids.LEFT_ENGINE_RPM, formatted_rpmL) + + local rpm_valueR = mainPanelDevice:get_argument_value(300) * 100 + local formatted_rpmR = string.format("%.0f", rpm_valueR) + ExportScript.Tools.SendData(export_ids.RIGHT_ENGINE_RPM, formatted_rpmR) +end + +function ExportScript.VSI_INDICATION(mainPanelDevice) -- Bearmat + local vsi_value = mainPanelDevice:get_argument_value(90) + local vsi_fpm = vsi_value * 6000 + local formatted_vsi = string.format("%d", vsi_fpm) + ExportScript.Tools.SendData(export_ids.VSI_INDICATION, formatted_vsi) +end + +function ExportScript.AOA_INDEXER(mainPanelDevice) -- Bearmat + local aoa_value = mainPanelDevice:get_argument_value(70) + local aoa_units = aoa_value * 30 + local formatted_aoa = string.format("%d", aoa_units) + ExportScript.Tools.SendData(export_ids.AOA_INDEXER, formatted_aoa) +end + +function ExportScript.RADAR_ALTITUDE(mainPanelDevice) -- Bearmat + local radar_altitude_value = mainPanelDevice:get_argument_value(73) + + local altitude_table = { + { 0.0000, 0 }, + { 0.0155, 0 }, -- on ground + { 0.1681, 50 }, + { 0.2220, 100 }, -- average between 0.2080 and 0.2220 + { 0.2950, 150 }, + { 0.3682, 200 }, -- new value + { 0.4597, 300 }, + { 0.5705, 500 }, -- new value + { 0.6933, 1000 }, -- average between 0.6933 and 0.7145 + { 0.7733, 1500 }, + { 0.8159, 2000 }, -- average between 0.8159 and 0.8224 + { 0.9011, 3000 }, -- average between 0.9011 and 0.9630 + { 0.9839, 5000 } + } + + local function interpolate(value, table) + for i = 1, #table - 1 do + if value >= table[i][1] and value <= table[i + 1][1] then + local ratio = (value - table[i][1]) / (table[i + 1][1] - table[i][1]) + return table[i][2] + ratio * (table[i + 1][2] - table[i][2]) + end + end + return 0 -- return 0 if value is out of bounds + end + + local radar_altitude_feet = interpolate(radar_altitude_value, altitude_table) + local formatted_radar_altitude = string.format("%d", radar_altitude_feet) + + ExportScript.Tools.SendData(export_ids.PILOT_RADAR_ALTITUDE, formatted_radar_altitude) +end + +function ExportScript.Pilot_Gear_Status(mainPanelDevice) + local left, nose, right + + if mainPanelDevice:get_argument_value(52) < 0.5 then + left = "🔴" + elseif mainPanelDevice:get_argument_value(52) > 0.1 and mainPanelDevice:get_argument_value(52) < 0.9 then + left = "🟡" + else + left = "🟢" + end + + if mainPanelDevice:get_argument_value(51) < 0.5 then + nose = "🔴" + elseif mainPanelDevice:get_argument_value(51) > 0.1 and mainPanelDevice:get_argument_value(51) < 0.9 then + nose = "🟡" + else + nose = "🟢" + end + + if mainPanelDevice:get_argument_value(50) < 0.5 then + right = "🔴" + elseif mainPanelDevice:get_argument_value(50) > 0.1 and mainPanelDevice:get_argument_value(50) < 0.9 then + right = "🟡" + else + right = "🟢" + end + + local All_Gear = "LND GEAR\n" .. nose .. "\n" .. left .. " " .. right + ExportScript.Tools.SendData(export_ids.PILOT_GEAR_IND, All_Gear) +end + +function ExportScript.Pilot_Altimeter(mainPanelDevice) + local altitudeWindowReadout_value1 = string.format("%.f", mainPanelDevice:get_argument_value(92) * 10) --hundreds + --local altitudeWindowReadout_value2 = string.format("%.f",math.floor(mainPanelDevice:get_argument_value(93) * 10)) --thousands + local altitudeWindowReadout_value2 = string.format("%.f", mainPanelDevice:get_argument_value(93) * 10) --thousands + local altitudeWindowReadout_value3 = string.format("%.f", mainPanelDevice:get_argument_value(94) * 10) --tenthousands + local altitudeWindowReadout_needle = string.format("%.f", mainPanelDevice:get_argument_value(91) * 1000) --needle + local separator + --this fixes the extra "10" problem + if mainPanelDevice:get_argument_value(92) * 10 < 10 then --altitudeWindowReadout_value1 == "10" then + altitudeWindowReadout_value1 = "0" + end + if altitudeWindowReadout_value2 == "10" then + altitudeWindowReadout_value2 = "0" + end + if altitudeWindowReadout_value3 == "10" then + altitudeWindowReadout_value3 = "0" + end + if altitudeWindowReadout_needle == "10" then + altitudeWindowReadout_needle = "0" + end + --this is for the hash part + if altitudeWindowReadout_value1 == "0" then + altitudeWindowReadout_value1 = "" + end + + -- this is to fill the blank space when the needle is below 100 + if #altitudeWindowReadout_needle == 1 then + altitudeWindowReadout_needle = string.format("00" .. altitudeWindowReadout_needle) + end + if #altitudeWindowReadout_needle == 2 then + altitudeWindowReadout_needle = string.format("0" .. altitudeWindowReadout_needle) + end + + --[[ExportScript.Tools.SendData(44261, altitudeWindowReadout_value1 .. " ft") --test values + ExportScript.Tools.SendData(44262, altitudeWindowReadout_value2 .. " ft") --test values + ExportScript.Tools.SendData(44263, altitudeWindowReadout_value3 .. " ft") --test values + ExportScript.Tools.SendData(44264, altitudeWindowReadout_needle .. " ft") --test values + ExportScript.Tools.SendData(44265, string.format("%.f",mainPanelDevice:get_argument_value(92) * 10) .. " ft") --test values + ExportScript.Tools.SendData(44266, string.format("%2.d",mainPanelDevice:get_argument_value(93) * 10) .. " ft") --test values + ExportScript.Tools.SendData(44267, string.format("%.f",mainPanelDevice:get_argument_value(94) * 10) .. " ft") --test values + ExportScript.Tools.SendData(44268, string.format("%.f",mainPanelDevice:get_argument_value(91) * 1000) .. " ft") --test values]] + --add separator + if altitudeWindowReadout_value2 ~= "0" then + separator = "," + else + separator = "" + end + --value 3 isnt needed bc it is taken over by the needle + local altitudeWindowReadout_total = string.format(altitudeWindowReadout_value3 .. + altitudeWindowReadout_value2 .. altitudeWindowReadout_value1 .. altitudeWindowReadout_needle) + --remove leading zeros + altitudeWindowReadout_total = altitudeWindowReadout_total:match("0*(%d+)") --https://stackoverflow.com/questions/34331633/remove-leading-zeroes-in-lua-string + local altMsl_f4e_ft = altitudeWindowReadout_total .. "\nFT" + ExportScript.Tools.SendData(export_ids.PILOT_ALTIMETER, altMsl_f4e_ft) + --[[ExportScript.Tools.SendData(export_ids.PILOT_needle, altitudeWindowReadout_needle) --test + ExportScript.Tools.SendData(export_ids.PILOT_hundreds, altitudeWindowReadout_value1) --test + ExportScript.Tools.SendData(export_ids.PILOT_thousands, altitudeWindowReadout_value2) --test + ExportScript.Tools.SendData(export_ids.PILOT_tenthousands, altitudeWindowReadout_value3) --test]] +end + +function ExportScript.Missile_Lights(mainPanelDevice) + local heat_left, heat_ml, heat_mr, heat_right, radar_tl, radar_tr, radar_bl, radar_br + if mainPanelDevice:get_argument_value(284) < 0.8 then + heat_left = "⚫" + else + heat_left = "🔴" + end + if mainPanelDevice:get_argument_value(285) < 0.8 then + heat_ml = "⚫" + else + heat_ml = "🔴" + end + if mainPanelDevice:get_argument_value(286) < 0.8 then + heat_mr = "⚫" + else + heat_mr = "🔴" + end + if mainPanelDevice:get_argument_value(287) < 0.8 then + heat_right = "⚫" + else + heat_right = "🔴" + end + if mainPanelDevice:get_argument_value(288) < 0.8 then + radar_tl = "⚫" + else + radar_tl = "🟢" + end + if mainPanelDevice:get_argument_value(289) < 0.8 then + radar_bl = "⚫" + else + radar_bl = "🟢" + end + if mainPanelDevice:get_argument_value(290) < 0.8 then + radar_tr = "⚫" + else + radar_tr = "🟢" + end + if mainPanelDevice:get_argument_value(291) < 0.8 then + radar_br = "⚫" + else + radar_br = "🟢" + end + local missile_lights = "MSSL STAT" .. "\n" .. + "" .. radar_tl .. " " .. radar_tr .. "\n" .. + heat_left .. heat_ml .. " " .. heat_mr .. heat_right .. "\n" .. + "" .. radar_bl .. " " .. radar_br + ExportScript.Tools.SendData(export_ids.MISSILE_LIGHTS, missile_lights) +end + +function ExportScript.NAVCOMP(mainPanelDevice) + --[[ + [902] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_ONES + [903] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_TENS + [904] = "%.1f", -- NAV_COMP_RIO_WIND_MAG_HUNDREDS -- only goes up to 1 + + + + [906] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_ONES + [907] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_TENS + [908] = "%.1f", -- NAV_COMP_RIO_WIND_DIR_HUNDREDS -- only goes up to 3 + + -- Note: for the rollers with flags, when the flag is activated + -- the numbers are tumbled in "reverse". + -- Can use model viewer to see how high these go. + + -- when using this one, it goes to 180 west to twice over east 080 + [910] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_FLAG + [911] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_ONES + [912] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_TENS + [913] = "%.1f", -- NAV_COMP_RIO_MAG_VAR_HUNDREDS + + [915] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_ONES + [916] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_TENS + [917] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_HUNDREDS + [918] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_THOUSANDS + [919] = "%.1f", -- NAV_COMP_RIO_POS_LATITUDE_FLAG -- NORTH SOUTH + + + [921] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_FLAG -- EAST WEST + [922] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_ONES + [923] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_TENS + [924] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_HUNDREDS + [925] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_THOUSANDS + [926] = "%.1f", -- NAV_COMP_RIO_POS_LONGITUDE_TENTHOUSANDS + + + [928] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_ONES + [929] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_TENS + [930] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_HUNDREDS + [931] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_THOUSANDS + [932] = "%.1f", -- NAV_COMP_RIO_TARGET_LATITUDE_FLAG -- NORTH SOUTH + + + [934] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_FLAG -- EAST WEST + [935] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_ONES + [936] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_TENS + [937] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_HUNDREDS + [938] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_THOUSANDS + [939] = "%.1f", -- NAV_COMP_RIO_TARGET_LONGITUDE_TENTHOUSANDS + ]] +end + +-- These IFF functions take raw arg values and returns the +-- equivalent number based on a scale of 0-7 for IFF systems. +-- Two different functions were required for both the pilot and +-- WSO APX80A systems based on the animations not being the same. +function IFFmodeTransator(value) + if value < 0.10 then + value = 0 + elseif value < 0.20 then + value = 1 + elseif value < 0.35 then + value = 2 + elseif value < 0.45 then + value = 3 + elseif value < 0.60 then + value = 4 + elseif value < 0.72 then + value = 5 + elseif value < 0.86 then + value = 6 + else + value = 7 + end + return value +end + +function IFFmodeTransatorAPX80(value) + if value < 0.10 then + value = 0 + elseif value < 0.15 then + value = 1 + elseif value < 0.30 then + value = 2 + elseif value < 0.45 then + value = 3 + elseif value < 0.55 then + value = 4 + elseif value < 0.65 then + value = 5 + elseif value < 0.80 then + value = 6 + elseif value < 0.95 then + value = 7 + else + value = 0 + end + return value +end + +function ExportScript.IFF(mainPanelDevice) + -- Pilot Mode 1 roller + local pilot_M1_ones = mainPanelDevice:get_argument_value(1332) + local pilot_M1_tens = mainPanelDevice:get_argument_value(1331) + + if pilot_M1_ones == 0.0 then + pilot_M1_ones = 0 + elseif pilot_M1_ones < 0.4 then + pilot_M1_ones = 1 + elseif pilot_M1_ones < 0.7 then + pilot_M1_ones = 2 + else + pilot_M1_ones = 3 + end + + pilot_M1_tens = IFFmodeTransator(pilot_M1_tens) + + ExportScript.Tools.SendData(export_ids.PILOT_IFF_M1, + string.format(pilot_M1_tens .. pilot_M1_ones)) + + -- Pilot M3 rollers + local pilot_M3_ones = mainPanelDevice:get_argument_value(1336) + local pilot_M3_tens = mainPanelDevice:get_argument_value(1335) + local pilot_M3_hundreds = mainPanelDevice:get_argument_value(1334) + local pilot_M3_thousands = mainPanelDevice:get_argument_value(1333) + + pilot_M3_ones = IFFmodeTransator(pilot_M3_ones) + pilot_M3_tens = IFFmodeTransator(pilot_M3_tens) + pilot_M3_hundreds = IFFmodeTransator(pilot_M3_hundreds) + pilot_M3_thousands = IFFmodeTransator(pilot_M3_thousands) + + ExportScript.Tools.SendData(export_ids.PILOT_IFF_M3, + string.format(pilot_M3_thousands .. pilot_M3_hundreds .. pilot_M3_tens .. pilot_M3_ones)) + + -- WSO APX-80A + local Apx80_ones = mainPanelDevice:get_argument_value(2000) + local Apx80_tens = mainPanelDevice:get_argument_value(2001) + local Apx80_hundreds = mainPanelDevice:get_argument_value(2002) + local Apx80_thousands = mainPanelDevice:get_argument_value(2003) + local Apx80_mode = mainPanelDevice:get_argument_value(2004) + + + Apx80_ones = IFFmodeTransatorAPX80(Apx80_ones) + Apx80_tens = IFFmodeTransatorAPX80(Apx80_tens) + Apx80_hundreds = IFFmodeTransatorAPX80(Apx80_hundreds) + Apx80_thousands = IFFmodeTransatorAPX80(Apx80_thousands) + + if Apx80_mode < 0.15 then + Apx80_mode = "X " + elseif Apx80_mode < 0.25 then + Apx80_mode = "1 " + elseif Apx80_mode < 0.45 then + Apx80_mode = "2 " + elseif Apx80_mode < 0.65 then + Apx80_mode = "3 " + elseif Apx80_mode < 0.85 then + Apx80_mode = "4/A " + else + Apx80_mode = "4/B " + end + + ExportScript.Tools.SendData(export_ids.WSO_APX80A, + string.format(Apx80_thousands .. Apx80_hundreds .. Apx80_tens .. Apx80_ones)) + + ExportScript.Tools.SendData(export_ids.WSO_APX80A_FULL, + string.format("%s%.0f%.0f%.0f%.0f", + Apx80_mode, Apx80_thousands, Apx80_hundreds, Apx80_tens, Apx80_ones)) +end + +function ExportScript.Chaff_Flare(mainPanelDevice) + local chaff_ones = string.format("%d", mainPanelDevice:get_argument_value(1390) * 10) + local chaff_tens = string.format("%d", mainPanelDevice:get_argument_value(1391) * 10) + local chaff_hundreds = string.format("%d", mainPanelDevice:get_argument_value(1392) * 10) + + ExportScript.Tools.SendData(export_ids.WSO_CHAFF, + string.format(chaff_hundreds .. chaff_tens .. chaff_ones)) + + local flare_ones = string.format("%d", mainPanelDevice:get_argument_value(1393) * 10) + local flare_tens = string.format("%d", mainPanelDevice:get_argument_value(1394) * 10) + local flare_hundreds = string.format("%d", mainPanelDevice:get_argument_value(1395) * 10) + + ExportScript.Tools.SendData(export_ids.WSO_FLARE, + string.format(flare_hundreds .. flare_tens .. flare_ones)) +end + +function ExportScript.HSI(mainPanelDevice) + -- Pilot HSI Course Roller + local pilotCourseSet_ones = string.format("%d", mainPanelDevice:get_argument_value(674) * 10) + local pilotCourseSet_tens = string.format("%d", mainPanelDevice:get_argument_value(675) * 10) + local pilotCourseSet_hundreds = string.format("%d", mainPanelDevice:get_argument_value(676) * 10) + + ExportScript.Tools.SendData(export_ids.PILOT_HSI_COURSE_WINDOW, + string.format(pilotCourseSet_hundreds .. pilotCourseSet_tens .. pilotCourseSet_ones)) + + -- HSI Bar + local bearing_value = mainPanelDevice:get_argument_value(670) * 360 + local formatted_bearing = string.format("%03.0f", bearing_value) + if formatted_bearing == "360" then formatted_bearing = "000" end + ExportScript.Tools.SendData(export_ids.PILOT_HSI_BAR_POINTER, formatted_bearing) + + -- HSI Compass + local hsiCompass = mainPanelDevice:get_argument_value(668) * 360 --bearmat + local formatted_hsiCompass = string.format("%03.0f", hsiCompass) --bearmat + if formatted_hsiCompass == "360" then formatted_hsiCompass = "000" end + ExportScript.Tools.SendData(export_ids.PILOT_HSI_COMPASS, string.format(formatted_hsiCompass)) + + -- PILOT_HSI_BEARING_POINTER The little arrow on the outer part of the HSI + local hsiPointer = mainPanelDevice:get_argument_value(669) * 360 + local adjustedPointer = hsiPointer + hsiCompass + if adjustedPointer > 360 then + adjustedPointer = adjustedPointer - 360 + end + local formatted_hsiPointer = string.format("%03.0f", adjustedPointer) + if formatted_hsiPointer == "360" then formatted_hsiPointer = "000" end + ExportScript.Tools.SendData(export_ids.PILOT_HSI_POINTER, string.format(formatted_hsiPointer)) + + -- Heading and HSI Course + ExportScript.Tools.SendData(export_ids.PILOT_HDG_CRS, + string.format("HDG\n" .. formatted_hsiCompass .. "\nCRS\n" .. formatted_bearing)) + + -- Pilot HSI Miles Roller + local pilotMiles_ones = string.format("%d", mainPanelDevice:get_argument_value(679) * 10) + local pilotMiles_tens = string.format("%d", mainPanelDevice:get_argument_value(680) * 10) + local pilotMiles_hundreds = string.format("%d", mainPanelDevice:get_argument_value(681) * 10) + local pilotMiles_thousands = string.format("%d", mainPanelDevice:get_argument_value(682) * 10) + + ExportScript.Tools.SendData(export_ids.PILOT_HSI_MILES, + string.format(pilotMiles_thousands .. pilotMiles_hundreds .. pilotMiles_tens .. pilotMiles_ones)) + + -- WSO HSI Course Roller + local wsoCourseSet_ones = string.format("%d", mainPanelDevice:get_argument_value(2617) * 10) + local wsoCourseSet_tens = string.format("%d", mainPanelDevice:get_argument_value(2618) * 10) + local wsoCourseSet_hundreds = string.format("%d", mainPanelDevice:get_argument_value(2619) * 10) + + ExportScript.Tools.SendData(export_ids.WSO_HSI_COURSE_WINDOW, + string.format(wsoCourseSet_hundreds .. wsoCourseSet_tens .. wsoCourseSet_ones)) + + -- WSO HSI Miles Roller + local wsoMiles_ones = string.format("%d", mainPanelDevice:get_argument_value(952) * 10) + local wsoMiles_tens = string.format("%d", mainPanelDevice:get_argument_value(953) * 10) + local wsoMiles_hundreds = string.format("%d", mainPanelDevice:get_argument_value(954) * 10) + local wsoMiles_thousands = string.format("%d", mainPanelDevice:get_argument_value(2725) * 10) + + ExportScript.Tools.SendData(export_ids.WSO_HSI_MILES_VERT, + string.format(wsoMiles_thousands .. "\n" .. wsoMiles_hundreds + .. "\n" .. wsoMiles_tens .. "\n" .. wsoMiles_ones)) + + ExportScript.Tools.SendData(export_ids.WSO_HSI_MILES_HORZ, + string.format(wsoMiles_thousands .. wsoMiles_hundreds .. wsoMiles_tens .. wsoMiles_ones)) +end + +function ExportScript.ARBCS(mainPanelDevice) + -- WSO ARBCS Low Angle Tumbler + local lowAngle_ones = string.format("%d", mainPanelDevice:get_argument_value(353) * 10) + local lowAngle_tens = string.format("%d", mainPanelDevice:get_argument_value(354) * 10) + local lowAngle_hundreds = string.format("%d", mainPanelDevice:get_argument_value(355) * 10) + + ExportScript.Tools.SendData(export_ids.WSO_ARBCS_LOW_ANGLE, + string.format(lowAngle_hundreds .. lowAngle_tens .. lowAngle_ones)) + + -- WSO ARBCS High Angle Tumbler + local highAngle_ones = string.format("%d", mainPanelDevice:get_argument_value(356) * 10) + local highAngle_tens = string.format("%d", mainPanelDevice:get_argument_value(357) * 10) + local highAngle_hundreds = string.format("%d", mainPanelDevice:get_argument_value(358) * 10) + local highAngle_thousands = string.format("%d", mainPanelDevice:get_argument_value(359) * 10) + + + ExportScript.Tools.SendData(export_ids.WSO_ARBCS_HIGH_ANGLE, + string.format(highAngle_thousands .. highAngle_hundreds .. highAngle_tens .. highAngle_ones)) + + -- WSO ARBCS Timer Pullup Tumbler + local pullup_ones = string.format("%d", mainPanelDevice:get_argument_value(360) * 10) + local pullup_tens = string.format("%d", mainPanelDevice:get_argument_value(361) * 10) + local pullup_hundreds = string.format("%d", mainPanelDevice:get_argument_value(362) * 10) + + + ExportScript.Tools.SendData(export_ids.WSO_ARBCS_PULLUP, + string.format(pullup_hundreds .. pullup_tens .. pullup_ones)) + + -- WSO ARBCS Timer Release Roller + local release_ones = string.format("%d", mainPanelDevice:get_argument_value(363) * 10) + local release_tens = string.format("%d", mainPanelDevice:get_argument_value(364) * 10) + local release_hundreds = string.format("%d", mainPanelDevice:get_argument_value(365) * 10) + + ExportScript.Tools.SendData(export_ids.WSO_ARBCS_RELEASE, + string.format(release_hundreds .. release_tens .. release_ones)) +end + +-- TODO this +function ExportScript.UHF_radios(mainPanelDevice) + --[[ + [131] = "%.2f", -- Pilot_UHF_Freq_Knob_DecHundreds {-0.333333333, 0, 1, Set Frequency (decimal hundreds)} + [132] = "%.1f", -- Pilot_UHF_Freq_Knob_DecOnes {-0.111111111, 0, 1, Set Frequency (decimal ones)} + [133] = "%.1f", -- Pilot_UHF_Freq_Knob_Ones {-0.111111111, 0, 1, Set Frequency (ones)} + [134] = "%.1f", -- Pilot_UHF_Freq_Knob_Tens {-0.111111111, 0, 1, Set Frequency (tens)} + [1375] = "%.2f", -- Pilot_UHF_Freq_Hundreds {-0.333333333, 0, 1, Set Frequency (hundreds)} + +]] + --[[ + --works + local lUHFRadio = GetDevice(3) -- Pilot Comm Preset Frequency + ExportScript.Tools.SendData(10099, string.format("%7.3f", lUHFRadio:get_frequency() / 1000000)) -- <- special function for get frequency data + ]] + --ExportScript.Tools.SendData(10099, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency() / 1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + --[[ + local mode2 = GetDevice(4) -- Pilot IFF + ExportScript.Tools.SendData(10100, string.format(mode2:get_mode2())) -- <- special function for get frequency data + -- does not work +]] + --[[ + local pilotUhfHunds = round(mainPanelDevice:get_argument_value(1375) * 10) + local pilotUhfOnes = round(mainPanelDevice:get_argument_value(133) * 11) + local pilotUhfTens = round(mainPanelDevice:get_argument_value(134) * 11) + local pilotUhfOnesDec = round(mainPanelDevice:get_argument_value(132) * 11) + local pilotUhfHundsDec = round(mainPanelDevice:get_argument_value(131) * 10) + + if pilotUhfHundsDec == 0 then + pilotUhfHundsDec = 00 + elseif pilotUhfHundsDec == 3 then + pilotUhfHundsDec = 25 + elseif pilotUhfHundsDec == 6 then + pilotUhfHundsDec = 50 + else + pilotUhfHundsDec = 75 + end + + if pilotUhfHunds == 0 then + pilotUhfHunds = "T" + elseif pilotUhfHunds == 3 then + pilotUhfHunds = 2 + elseif pilotUhfHunds == 6 then + pilotUhfHunds = 3 + else + pilotUhfHunds = "A" + end + + if pilotUhfHunds == 10 then pilotUhfHunds = 0 end + if pilotUhfOnes == 10 then pilotUhfOnes = 0 end + if pilotUhfTens == 10 then pilotUhfTens = 0 end + if pilotUhfOnesDec == 10 then pilotUhfOnesDec = 0 end + + + ExportScript.Tools.SendData(export_ids.PILOT_UHF_FREQ, + string.format(pilotUhfHunds .. pilotUhfTens .. pilotUhfOnes .. pilotUhfOnesDec .. pilotUhfHundsDec)) +]] +end + +function ExportScript.WSO_speedIndicators(mainPanelDevice) + -- WSO True Airspeed + local tas_ones = round(mainPanelDevice:get_argument_value(600) * 10) + local tas_tens = round(mainPanelDevice:get_argument_value(601) * 10) + local tas_hundreds = round(mainPanelDevice:get_argument_value(602) * 10) + local tas_thousands = round(mainPanelDevice:get_argument_value(603) * 10) + if tas_ones == 10 then tas_ones = 0 end + if tas_tens == 10 then tas_tens = 0 end + if tas_hundreds == 10 then tas_hundreds = 0 end + if tas_thousands == 10 then tas_thousands = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_TRUEAIRSPEED, + string.format(tas_thousands .. tas_hundreds .. tas_tens .. tas_ones)) + + -- WSO Ground Speed + local gs_ones = round(mainPanelDevice:get_argument_value(604) * 10) + local gs_tens = round(mainPanelDevice:get_argument_value(605) * 10) + local gs_hundreds = round(mainPanelDevice:get_argument_value(606) * 10) + local gs_thousands = round(mainPanelDevice:get_argument_value(607) * 10) + if gs_ones == 10 then gs_ones = 0 end + if gs_tens == 10 then gs_tens = 0 end + if gs_hundreds == 10 then gs_hundreds = 0 end + if gs_thousands == 10 then gs_thousands = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_GROUNDSPEED, + string.format(gs_thousands .. gs_hundreds .. gs_tens .. gs_ones)) +end + +function ExportScript.WSO_WRCS(mainPanelDevice) + -- Drag + local drag_ones = round(mainPanelDevice:get_argument_value(329) * 10) + local drag_tens = round(mainPanelDevice:get_argument_value(328) * 10) + local drag_hundreds = round(mainPanelDevice:get_argument_value(327) * 10) + if drag_ones == 10 then drag_ones = 0 end + if drag_tens == 10 then drag_tens = 0 end + if drag_hundreds == 10 then drag_hundreds = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_WRCS_DRAG, + string.format(drag_hundreds .. drag_tens .. drag_ones)) + + -- North/South Distance + local NS_hunds = round(mainPanelDevice:get_argument_value(308) * 10) + local NS_tens = round(mainPanelDevice:get_argument_value(309) * 10) + local NS_ones = round(mainPanelDevice:get_argument_value(310) * 10) + if NS_hunds == 10 then NS_hunds = 0 end + if NS_tens == 10 then NS_tens = 0 end + if NS_ones == 10 then NS_ones = 0 end + local NS_letter + if mainPanelDevice:get_argument_value(345) > 0 then NS_letter = "N" else NS_letter = "S" end + + ExportScript.Tools.SendData(export_ids.WSO_WRCS_NS, + string.format(NS_letter .. NS_hunds .. NS_tens .. NS_ones)) + + -- East/West Distance + local EW_hunds = round(mainPanelDevice:get_argument_value(311) * 10) + local EW_tens = round(mainPanelDevice:get_argument_value(312) * 10) + local EW_ones = round(mainPanelDevice:get_argument_value(313) * 10) + if EW_hunds == 10 then EW_hunds = 0 end + if EW_tens == 10 then EW_tens = 0 end + if EW_ones == 10 then EW_ones = 0 end + local EW_letter + if mainPanelDevice:get_argument_value(346) > 0 then EW_letter = "E" else EW_letter = "W" end + + ExportScript.Tools.SendData(export_ids.WSO_WRCS_EW, + string.format(EW_letter .. EW_hunds .. EW_tens .. EW_ones)) + + -- Advance + local Advance_hunds = round(mainPanelDevice:get_argument_value(314) * 10) + local Advance_tens = round(mainPanelDevice:get_argument_value(315) * 10) + local Advance_ones = round(mainPanelDevice:get_argument_value(316) * 10) + if Advance_hunds == 10 then Advance_hunds = 0 end + if Advance_tens == 10 then Advance_tens = 0 end + if Advance_ones == 10 then Advance_ones = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_WRCS_ADVANCE, + string.format(Advance_hunds .. Advance_tens .. Advance_ones)) + + -- Range + local Range_hunds = round(mainPanelDevice:get_argument_value(317) * 10) + local Range_tens = round(mainPanelDevice:get_argument_value(318) * 10) + local Range_ones = round(mainPanelDevice:get_argument_value(319) * 10) + if Range_hunds == 10 then Range_hunds = 0 end + if Range_tens == 10 then Range_tens = 0 end + if Range_ones == 10 then Range_ones = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_WRCS_RANGE, + string.format(Range_hunds .. Range_tens .. Range_ones)) + + -- AltRange + local AltRange_hunds = round(mainPanelDevice:get_argument_value(324) * 10) + local AltRange_tens = round(mainPanelDevice:get_argument_value(325) * 10) + local AltRange_ones = round(mainPanelDevice:get_argument_value(326) * 10) + if AltRange_hunds == 10 then AltRange_hunds = 0 end + if AltRange_tens == 10 then AltRange_tens = 0 end + if AltRange_ones == 10 then AltRange_ones = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_WRCS_ALTRANGE, + string.format(AltRange_hunds .. AltRange_tens .. AltRange_ones)) +end + +function ExportScript.LaserCodeReadout(mainPanelDevice) + local ones = round(mainPanelDevice:get_argument_value(2020) * 10) + local tens = round(mainPanelDevice:get_argument_value(2021) * 10) + local hundreds = round(mainPanelDevice:get_argument_value(2022) * 10) + local thousands = round(mainPanelDevice:get_argument_value(2023) * 10) + + if ones == 10 then ones = 0 end + if tens == 10 then tens = 0 end + if hundreds == 10 then hundreds = 0 end + if thousands == 10 then thousands = 0 end + + ExportScript.Tools.SendData(export_ids.WSO_LASER_CODE, + string.format("%.0f%.0f%.0f%.0f", thousands, hundreds, tens, ones)) +end + +function ExportScript.TAS_indicator(mainPanelDevice) + local ones = round(mainPanelDevice:get_argument_value(109) * 10) + local tens = round(mainPanelDevice:get_argument_value(110) * 10) + local hundreds = round(mainPanelDevice:get_argument_value(111) * 10) + -- Thousands digit doesn't really move apart from buffet and just fucks up calculationm ignore it + local TAS = hundreds * 100 + tens * 10 + ones + ExportScript.Tools.SendData(export_ids.PILOT_TAS_NUMERIC, TAS) + ExportScript.Tools.SendData(export_ids.PILOT_TAS_STRING, string.format("%04.0f", TAS)) +end + +function ExportScript.gun_rounds_indicator(mainPanelDevice) + local ones = round(mainPanelDevice:get_argument_value(277) * 10) + local tens = round(mainPanelDevice:get_argument_value(276) * 10) + local hundreds = round(mainPanelDevice:get_argument_value(275) * 10) + local rounds = hundreds * 100 + tens * 10 + ones + ExportScript.Tools.SendData(export_ids.PILOT_GUN_ROUNDS, rounds) +end + +local function get_RWR_button_lights(mainPanelDevice, first_id, second_id) + -- Associate argument IDs with their text representation, which + -- will be returned as a string for StreamDeck + local labels_map = { + [2537] = "PRIORITY", + [2742] = "OPEN", + [2538] = "█ S █", + [2743] = "█ █", + [2539] = "█ ◆︎ █", + [2744] = "█ H █", + [2542] = "TGT SEP", + [2745] = "TGT SEP", + [2544] = "█ U █", + [2746] = "UNKNOWN", + [2545] = "ACTIVITY", + [2747] = "POWER", + } + local first_on = mainPanelDevice:get_argument_value(first_id) > 0.0 + local second_on = mainPanelDevice:get_argument_value(second_id) > 0.0 + local first_label = first_on and labels_map[first_id] or " " + local second_label = second_on and labels_map[second_id] or " " + + return first_label .. "\n\n\n" .. second_label +end + +function ExportScript.RWR_control_panel(mainPanelDevice) + local missile_launch = mainPanelDevice:get_argument_value(2540) > 0.0 + local low_alt = mainPanelDevice:get_argument_value(2541) > 0.0 + local on_sys_test = mainPanelDevice:get_argument_value(2543) > 0.0 + local system_power = mainPanelDevice:get_argument_value(2546) > 0.0 + + ExportScript.Tools.SendData(export_ids.PILOT_RWR_MODE, get_RWR_button_lights(mainPanelDevice, 2537, 2742)) + ExportScript.Tools.SendData(export_ids.PILOT_RWR_SEARCH, get_RWR_button_lights(mainPanelDevice, 2538, 2743)) + ExportScript.Tools.SendData(export_ids.PILOT_RWR_HANDOFF, get_RWR_button_lights(mainPanelDevice, 2539, 2744)) + ExportScript.Tools.SendData(export_ids.PILOT_RWR_LAUNCH, missile_launch and "MISSILE\n\n\nLAUNCH" or "") + ExportScript.Tools.SendData(export_ids.PILOT_RWR_ALTITUDE, low_alt and "LOW\n\n\nALT" or "") + + ExportScript.Tools.SendData(export_ids.PILOT_RWR_T, get_RWR_button_lights(mainPanelDevice, 2542, 2745)) + ExportScript.Tools.SendData(export_ids.PILOT_RWR_SYS_TEST, on_sys_test and "ON\n\n\nSYS TEST" or "") + ExportScript.Tools.SendData(export_ids.PILOT_RWR_SHIP, get_RWR_button_lights(mainPanelDevice, 2544, 2746)) + ExportScript.Tools.SendData(export_ids.PILOT_RWR_ACT_PWR, get_RWR_button_lights(mainPanelDevice, 2545, 2747)) + ExportScript.Tools.SendData(export_ids.PILOT_RWR_POWER, system_power and "SYSTEM\n\n\nPOWER" or "") +end + +function ExportScript.radio_repeater() + local front_repeater_indicator = ExportScript.Tools.getListIndicatorValue(9) + ExportScript.Tools.SendData(export_ids.PILOT_RADIO_REPEATER, front_repeater_indicator.freq_foreground) +end + +function ExportScript.range_indicator() + local range_indicator = ExportScript.Tools.getListIndicatorValue(8) + ExportScript.Tools.SendData(export_ids.PILOT_RANGE_INDICATOR, range_indicator.range_indicator_foreground) +end + +function ExportScript.avtr_time_indicator() + local indicator = ExportScript.Tools.getListIndicatorValue(15) + ExportScript.Tools.SendData(export_ids.PILOT_AVTR_TIME_INDICATOR, indicator.avtr_time_indicator_pilot_foreground) +end + +function ExportScript.VOR_ILS_frequency(mainPanelDevice) + local left_drum = mainPanelDevice:get_argument_value(1452) + local right_drum = mainPanelDevice:get_argument_value(1455) + local _, left_decimal = math.modf(left_drum) + local _, right_decimal = math.modf(right_drum) + if left_decimal > 0.91 then left_decimal = 0 end + if right_decimal > 0.99 then right_decimal = 0 end + local left_part = 108 + left_decimal * 10 + local right_part = right_decimal * 100 + ExportScript.Tools.SendData(export_ids.PILOT_VOR_ILS_FREQUENCY, string.format("%.0f.%02.0f", left_part, right_part)) +end + +function ExportScript.TACAN_channels(mainPanelDevice) + -- PILOT + local ones = mainPanelDevice:get_argument_value(643) + local tens = mainPanelDevice:get_argument_value(644) + local hundreds = mainPanelDevice:get_argument_value(645) + local mode = mainPanelDevice:get_argument_value(656) > 0.5 and "Y" or "X" + + local _, tens_decimal = math.modf(tens) + if tens_decimal > 0.91 then tens_decimal = 0 end + -- Pilot TACAN Command light + local tacan_command_PLT + if mainPanelDevice:get_argument_value(170) > 0 then + tacan_command_PLT = "🟢" + else + tacan_command_PLT = "⚫" + end + ExportScript.Tools.SendData(export_ids.PILOT_TACAN_FREQ_CMD_LGHT, + string.format("%.0f%.0f%.0f%s", hundreds * 10, tens_decimal * 10, ones * 10, mode) .. + "\n" .. tacan_command_PLT) + ExportScript.Tools.SendData(export_ids.PILOT_TACAN_FREQUENCY, + string.format("%.0f%.0f%.0f%s", hundreds * 10, tens_decimal * 10, ones * 10, mode)) + + -- WSO + local ones = mainPanelDevice:get_argument_value(650) + local tens = mainPanelDevice:get_argument_value(651) + local hundreds = mainPanelDevice:get_argument_value(652) + local mode = mainPanelDevice:get_argument_value(660) > 0.5 and "Y" or "X" + + local _, tens_decimal = math.modf(tens) + if tens_decimal > 0.91 then tens_decimal = 0 end + -- WSO TACAN Command light + local tacan_command_WSO + if mainPanelDevice:get_argument_value(171) > 0 then + tacan_command_WSO = "🟢" + else + tacan_command_WSO = "⚫" + end + ExportScript.Tools.SendData(export_ids.WSO_TACAN_FREQ_CMD_LGHT, + string.format("%.0f%.0f%.0f%s", hundreds * 10, tens_decimal * 10, ones * 10, mode) .. + "\n" .. tacan_command_WSO) + ExportScript.Tools.SendData(export_ids.WSO_TACAN_FREQUENCY, + string.format("%.0f%.0f%.0f%s", hundreds * 10, tens_decimal * 10, ones * 10, mode)) +end + +--------------------------------------------------------------------- +-- DEBUG FUNCTIONS -- +--------------------------------------------------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 .. ': ' .. ExportScript.Tools.dump(ltmp1)) + 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 = 1, 50, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 .. ': ' .. ExportScript.Tools.dump(ltmp1)) + end +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-5E-3.lua b/Scripts/DCS-ExportScript/ExportsModules/F-5E-3.lua index 9bd617de..dd6f9b56 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/F-5E-3.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/F-5E-3.lua @@ -1,717 +1,1602 @@ --- F-5E-3 - -ExportScript.FoundDCSModule = true -ExportScript.Version.F5E3 = "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 - ]] - -- Gear System - [97] = "%.4f", -- AlterReleaseRods - -- Cockpit mechanics - [712] = "%.4f", -- CanopyHandle - -- WEAPONS ---------------------------------------------------- - -- CMDS - [401] = "%.4f", -- ChaffDrumCounter_10 {0.0, 1.0} {0.0, 10.0} - [402] = "%.4f", -- ChaffDrumCounter_1 {0.0, 1.0} {0.0, 10.0} - [405] = "%.4f", -- FlareDrumCounter_10 {0.0, 1.0} {0.0, 10.0} - [406] = "%.4f", -- FlareDrumCounter_1 {0.0, 1.0} {0.0, 10.0} - -- AN/ASG-31 Sight - [43] = "%.4f", -- RetDepressionDrum_100 {0.0, 1.0} {0.0, 10.0} - [44] = "%.4f", -- RetDepressionDrum_10 {0.0, 1.0} {0.0, 10.0} - [45] = "%.4f", -- RetDepressionDrum_1 {0.0, 1.0} {0.0, 10.0} - -- Slipball - [3] = "%.4f", -- Slipball {-1.0, 1.0} - -- Sight Camera - [85] = "%.4f", -- MotorRunKnob {1.0, 0.0} - -- AN/APQ-159 Radar - -- Range scale lights - [155] = "%.4f", -- RangeScale_5 - [156] = "%.4f", -- RangeScale_10 - [157] = "%.4f", -- RangeScale_20 - [158] = "%.4f", -- RangeScale_40 - [159] = "%.f", -- InRangeLight - [160] = "%.f", -- FailLight - [161] = "%.f", -- LockOnLight - [162] = "%.f", -- ExcessGLight - [163] = "%.4f", -- ScaleBrightness - -- INSTRUMENTS ------------------------------------------------ - -- Angle-of-attack Indicator - [7] = "%.4f", -- AOA_Units {0.0, 1.0} {0.0, 30.0} - [704] = "%.f", -- AOA_poweroff_flag - -- Accelerometer - [6] = "%.4f", -- Accelerometer { 0.0, 0.323, 0.653, 1.0} {-5.0, 0.0, 5.0, 10.0} - [902] = "%.4f", -- AccelerometerMin { 0.0, 0.323, 0.653, 1.0} {-5.0, 0.0, 5.0, 10.0} - [903] = "%.4f", -- AccelerometerMax { 0.0, 0.323, 0.653, 1.0} {-5.0, 0.0, 5.0, 10.0} - -- AirSpeed/Mach Indicator - [8] = "%.4f", -- Airspeed {0.0, 0.0435, 0.1, 0.318, 0.3745, 0.397, 0.4495, 0.482, 0.54, 0.553, 0.6145, 0.658, 0.668, 0.761, 0.801, 0.877, 0.909, 0.942, 0.972, 1.0} {0.0, 80.0, 100.0, 170.0, 190.0, 200.0, 230.0, 250.0, 290.0, 300.0, 350.0, 390.0, 400.0, 500.0, 550.0, 650.0, 700.0, 750.0, 800.0, 850.0} - [178] = "%.4f", -- MaxAirspeed {0.0, 0.0435, 0.1, 0.318, 0.3745, 0.397, 0.4495, 0.482, 0.54, 0.553, 0.6145, 0.658, 0.668, 0.761, 0.801, 0.877, 0.909, 0.942, 0.972, 1.0} {0.0, 80.0, 100.0, 170.0, 190.0, 200.0, 230.0, 250.0, 290.0, 300.0, 350.0, 390.0, 400.0, 500.0, 550.0, 650.0, 700.0, 750.0, 800.0, 850.0} - [177] = "%.4f", -- SetAirspeed - [179] = "%.4f", -- MachIndicator {1.0, 0.957, 0.92, 0.631, 0.386} {0.0, 0.5, 1.0, 1.8, 2.5} - -- Vertical Velocity Indicator - [24] = "%.4f", -- Variometer {-1.0, -0.64, -0.5, -0.29, 0.0, 0.29, 0.5, 0.64, 1.0} {-6000.0, -3000.0, -2000.0, -1000.0, 0.0, 1000.0, 2000.0, 3000.0, 6000.0} - -- Altimeter AAU-34/A - [10] = "%.4f", -- Altimeter_100_footPtr {0.0, 1.0} {0.0, 1000.0} - [11] = "%.4f", -- Altimeter_10000_footCount {0.0, 1.0} {0.0, 10.0} - [520] = "%.4f", -- Altimeter_1000_footCount {0.0, 1.0} {0.0, 10.0} - [521] = "%.4f", -- Altimeter_100_footCount {0.0, 1.0} {0.0, 10.0} - [59] = "%.4f", -- pressure_setting_0 {0.0, 1.0} {0.0, 10.0} - [58] = "%.4f", -- pressure_setting_1 {0.0, 1.0} {0.0, 10.0} - [57] = "%.4f", -- pressure_setting_2 {0.0, 1.0} {0.0, 10.0} - [56] = "%.4f", -- pressure_setting_3 {0.0, 1.0} {0.0, 10.0} - [9] = "%.4f", -- AAU34_PNEU_flag {0.0, 1.0} {0.0, 0.4} - -- Attitude Indicator ARU-20 - [81] = "%.4f", -- AI_Pitch {-0.507, 0.0, 0.507} {-rad_(90.0), 0.0, rad_(90.0)} - [30] = "%.4f", -- AI_Bank {-1.0, 1.0} { 0.0, math.pi * 2.0} - [149] = "%.4f", -- AI_OFF_flag - -- Horizontal Situation Indicator - [32] = "%.4f", -- HSI_CompassCard - [139] = "%.4f", -- HSI_BearingPtr - [35] = "%.4f", -- HSI_CourseArrow - [36] = "%.4f", -- HSI_CourseDevInd {-1.0, 1.0} - [144] = "%.4f", -- HSI_HeadingMark - [268] = "%.4f", -- HSI_Range_100 {0.0, 1.0} {0.0, 10.0} - [269] = "%.4f", -- HSI_Range_10 {0.0, 1.0} {0.0, 10.0} - [270] = "%.4f", -- HSI_Range_1 {0.0, 1.0} {0.0, 10.0} - [142] = "%.4f", -- HSI_Range_flag - [275] = "%.4f", -- HSI_CourseSel_100 {0.0, 1.0} {0.0, 10.0} - [276] = "%.4f", -- HSI_CourseSel_10 {0.0, 1.0} {0.0, 10.0} - [277] = "%.4f", -- HSI_CourseSel_1 {0.0, 1.0} {0.0, 10.0} - [146] = "%.4f", -- HSI_ToFrom - [143] = "%.4f", -- HSI_OFF_flag - [141] = "%.4f", -- HSI_DevDF_Win - -- Standby Attitude Indicator - [438] = "%.4f", -- SAI_Pitch {-0.665, -0.581, -0.5, 0.0, 0.5, 0.581, 0.676, 0.735} {-rad_(78.0), -rad_(60.0), -rad_(42.0), 0.0, rad_(42.0), rad_(60.0), rad_(80.0), rad_(92.0)} - [439] = "%.4f", -- SAI_Bank {1.0, -1.0} {-math.pi, math.pi} - [440] = "%.4f", -- SAI_OFF_flag - --[443] = "%.4f", -- SAI_knob_arrow {-1.0, 1.0} {0.0, 1.0} - -- Clock - [19] = "%.4f", -- CLOCK_currtime_hours - [18] = "%.4f", -- CLOCK_currtime_minutes - [509] = "%.4f", -- CLOCK_elapsed_time_minutes - [37] = "%.4f", -- CLOCK_elapsed_time_seconds - -- Pitch Trim Indicator - [52] = "%.4f", -- Pitch_Trim {1.0, 0.0, -0.1} {-10.0, 0.0, 1.0} - -- Flap Indicator - [51] = "%.4f", -- Flap_Indicator {0.0, 0.4} {0.0, 4.0} - -- Hydraulic Pressure Indicators - [109] = "%.4f", -- Utility_Pressure {0.0, 1.0} {0.0, 4000.0} - [110] = "%.4f", -- Flight_Pressure {0.0, 1.0} {0.0, 4000.0} - -- Engine Tachometers - [16] = "%.4f", -- Tachometer_Left {0.008, 0.475, 0.84, 0.94, 1.0} {0.0, 50.0, 90.0, 100.0, 107.0} - [425] = "%.4f", -- Tachometer_percent_Left {0.0, 1.0} {0.0, 10.0} - [17] = "%.4f", -- Tachometer_Right {0.008, 0.475, 0.84, 0.94, 1.0} {0.0, 50.0, 90.0, 100.0, 107.0} - [426] = "%.4f", -- Tachometer_percent_Right {0.0, 1.0} {0.0, 10.0} - -- Exhaust Gas Temperature Indicators - [12] = "%.4f", -- EGT_Left {0.0, 0.03, 0.1, 0.274, 0.78, 1.0} {0.0, 140.0, 200.0, 500.0, 800.0, 1200.0} - [14] = "%.4f", -- EGT_Right {0.0, 0.03, 0.1, 0.274, 0.78, 1.0} {0.0, 140.0, 200.0, 500.0, 800.0, 1200.0} - -- Aux Intake Doors Indicator - [111] = "%.4f", -- AuxIntakeDoors {0.0, 0.2} {0.0, 2.0} - -- Oil Pressure Indicator (Dual) - [112] = "%.4f", -- OilPressure_Left {0.0, 1.0} {0.0, 100.0} - [113] = "%.4f", -- OilPressure_Right {0.0, 1.0} {0.0, 100.0} - -- Nozzle Position Indicators - [107] = "%.4f", -- NozzlePos_Left {0.0, 1.0} {0.0, 100.0} - [108] = "%.4f", -- NozzlePos_Right {0.0, 1.0} {0.0, 100.0} - -- Cabin Pressure Altimeter - [114] = "%.4f", -- CabinPressure {0.0, 1.0} {0.0, 50.0} - -- Fuel Flow Indicator (Dual) - [525] = "%.4f", -- FuelFlow_Left {0.0, 0.67, 0.75, 0.83, 1.0} {0.0, 4000.0, 7000.0, 10000.0, 15000.0} - [526] = "%.4f", -- FuelFlow_Right {0.0, 0.67, 0.75, 0.83, 1.0} {0.0, 4000.0, 7000.0, 10000.0, 15000.0} - -- Fuel Quantity Indicator (Dual) - [22] = "%.4f", -- FuelQuantity_Left {0.0, 1.0} {0.0, 2500.0} - [23] = "%.4f", -- FuelQuantity_Right {0.0, 1.0} {0.0, 2500.0} - -- Oxygen Quantity Indicator - [390] = "%.4f", -- OxygenQuantity {0.0, 1.0} {0.0, 5.0} - -- Oxygen Flow Pressure Indicator - [604] = "%.4f", -- FlowPressure {0.0, 0.5, 1.0} {0.0, 100.0, 500.0} - -- Oxygen Flow Indicator - [600] = "%.4f", -- FlowBlinker - -- RADIO ------------------------------------------------------ - -- UHF Radio AN/ARC-164 - [326] = "%.2f", -- UHFRadioChannel - [302] = "%.1f", -- UHFRadio100MHz - [303] = "%.1f", -- UHFRadio10MHz {1.0, 0.0} {0.0, 1.0} - [304] = "%.1f", -- UHFRadio1MHz {1.0, 0.0} {0.0, 1.0} - [305] = "%.1f", -- UHFRadio01MHz {1.0, 0.0} {0.0, 1.0} - [306] = "%.1f", -- UHFRadio0025MHz {1.0, 0.0} {0.0, 1.0} - -- IFF/SIF APX72 - [197] = "%.4f", -- IFF_Code4Sw_Pull - [198] = "%.4f", -- IFF_MasterSw_Pull - -- TACAN - [263] = "%.4f", -- TACAN_window_wheel.hundreds {0.0, 1.0} {0.0, 10.0} - [264] = "%.4f", -- TACAN_window_wheel.tens {0.0, 1.0} {0.0, 10.0} - [265] = "%.4f", -- TACAN_window_wheel.ones {0.0, 1.0} {0.0, 10.0} - --[266] = "%.4f", -- XYwheel - [260] = "%.f", -- TACAN_test_light - -- LAMPS - -- Engine Fire Lights - [167] = "%.f", -- lamp_LeftFire - [168] = "%.f", -- lamp_RightFire - -- AOA Indexer Lights - [48] = "%.f", -- lamp_AOA_Red - [49] = "%.f", -- lamp_AOA_Green - [50] = "%.f", -- lamp_AOA_Yellow - -- Landing Gear Lights - [96] = "%.f", -- lamp_GearWarning - [54] = "%.f", -- lamp_GearNose - [53] = "%.f", -- lamp_GearLeft - [55] = "%.f", -- lamp_GearRight - -- Hook Light - [90] = "%.f", -- lamp_Hook - -- Caution Lights panel - [530] = "%.f", -- lamp_LeftGenerator - [531] = "%.f", -- lamp_Canopy - [532] = "%.f", -- lamp_RightGenerator - [533] = "%.f", -- lamp_UtilityHyd - [534] = "%.f", -- lamp_Spare1 - [535] = "%.f", -- lamp_FlightHyd - [536] = "%.f", -- lamp_ExtTanksEmpty - [537] = "%.f", -- lamp_IFF - [538] = "%.f", -- lamp_Oxygen - [539] = "%.f", -- lamp_LeftFuelLow - [540] = "%.f", -- lamp_EngineAntiIce - [541] = "%.f", -- lamp_RightFuelLow - [542] = "%.f", -- lamp_LeftFuelPress - [543] = "%.f", -- lamp_INS - [544] = "%.f", -- lamp_RightFuelPress - [545] = "%.f", -- lamp_AOA_Flaps - [546] = "%.f", -- lamp_AirDataComputer - [547] = "%.f", -- lamp_DirGyro - [548] = "%.f", -- lamp_Spare2 - [549] = "%.f", -- lamp_DC_Overload - [550] = "%.f", -- lamp_Spare3 - -- Master Caution Light - [169] = "%.f", -- lamp_MasterCaution - --IFF Panel lamps - [216] = "%.f", -- IFF_reply_lamp - [218] = "%.f", -- IFF_test_lamp - -- Internal Lights - [801] = "%.f", -- light_Flight - [802] = "%.f", -- light_Engine - [803] = "%.f", -- light_Console - [804] = "%.f", -- light_Compass - [805] = "%.f", -- light_Flood - [806] = "%.f", -- light_Sight - [807] = "%.f", -- light_Armt - [810] = "%.f", -- light_Tstorm - -- RWR button lights - [576] = "%.f", -- rwr_Power - [572] = "%.f", -- rwr_Ship_unkn - [571] = "%.f", -- rwr_Ship_U - [568] = "%.f", -- rwr_Sys_On - [569] = "%.f", -- rwr_Sys - [565] = "%.f", -- rwr_Sep_Up - [566] = "%.f", -- rwr_Sep_Down - [563] = "%.f", -- rwr_Alt - [562] = "%.f", -- rwr_Alt_Low - [557] = "%.f", -- rwr_Hand_Up - [558] = "%.f", -- rwr_Hand_H - [555] = "%.f", -- rwr_Search - [553] = "%.f", -- rwr_Mode_Open - [552] = "%.f", -- rwr_Mode_Pri - -- Brightness regulation - [808] = "%.f", -- brtRadarScale - [815] = "%.f", -- brtRwrLights - [816] = "%.f", -- brtFireLights - [817] = "%.f", -- brtMainLights - [818] = "%.f", -- brtIFFLights - [819] = "%.f" -- brtRadarLights -} -ExportScript.ConfigArguments = -{ - --[[ - arguments for export in low tick interval - based on "clickabledata.lua" - ]] - -- Control System - [323] = "%1d", -- Yaw Damper Switch, YAW/OFF - [322] = "%1d", -- Pitch Damper Switch, PITCH/OFF - [324] = "%.4f", -- Rudder Trim Knob (Axis) {-1.0, 1.0} in 0.15 Steps - [116] = "%1d", -- Flaps Lever, EMER UP/THUMB SW/FULL {-1.0, 0.0, 1.0} - [132] = "%1d", -- Pitch Damper Cutoff Switch - Push to cutoff - [101] = "%1d", -- Speed Brake Switch, OUT/OFF/IN {-1.0, 0.0, 1.0} - [115] = "%1d", -- Auto Flap System Thumb Switch, UP/FIXED/AUTO {-1.0, 0.0, 1.0} - --[125] = "%1d", -- Trimmer Switch, PUSH(DESCEND) {0.0, 1.0} - --[125] = "%1d", -- Trimmer Switch, PULL(CLIMB) {-1.0, 0.0} - --[126] = "%1d", -- Trimmer Switch, LEFT WING DOWN {0.0, 1.0} - --[126] = "%1d", -- Trimmer Switch, RIGHT WING DOWN {-1.0, 0.0} - [125] = "%1d", -- Trimmer Switch, PUSH(DESCEND)/PULL(CLIMB) {1.0, 0.0, -1.0} - [126] = "%1d", -- Trimmer Switch, LEFT WING DOWN/RIGHT WING DOWN {1.0, 0.0, -1.0} - [278] = "%1d", -- Rudder Pedal Adjust T-Handle, PULL/STOW - -- Electric system - [387] = "%1d", -- attery Switch, BATT/OFF - [388] = "%1d", -- Left Generator Switch, L GEN/OFF/RESET {-1.0, 0.0, 1.0} - [389] = "%1d", -- Right Generator Switch, R GEN/OFF/RESET {-1.0, 0.0, 1.0} - [375] = "%1d", -- Pitot Anti-Ice Switch, PITOT/OFF - [230] = "%1d", -- Fuel & Oxygen Switch, GAGE TEST/OFF/QTY CHECK {-1.0, 0.0, 1.0} - -- Fuel System - [360] = "%1d", -- Left Fuel Shutoff Switch, OPEN/CLOSED - [362] = "%1d", -- Right Fuel Shutoff Switch, OPEN/CLOSED - [377] = "%1d", -- Ext Fuel Cl Switch, ON/OFF - [378] = "%1d", -- Ext Fuel Pylons Switch, ON/OFF - [380] = "%1d", -- Left Boost Pump Switch, ON/OFF - [381] = "%1d", -- Crossfeed Switch, OPEN/CLOSED - [382] = "%1d", -- Right Boost Pump Switch, ON/OFF - [383] = "%1d", -- Autobalance Switch, LEFT/NEUT/RIGHT {-1.0, 0.0, 1.0} - -- Engines - [357] = "%1d", -- Left Engine Start Button - Push to start - [358] = "%1d", -- Right Engine Start Button - Push to start - [376] = "%1d", -- Engine Anti-Ice Switch, ENGINE/OFF {1.0, -1.0} - -- Gear System - [83] = "%1d", -- Landing Gear Lever, LG UP/LG DOWN - [95] = "%1d", -- Landing Gear Alternate Release Handle, Pull and Hold - [98] = "%1d", -- Gear Alternate Release Reset Control, OFF/RESET - [88] = "%1d", -- Landing Gear Downlock Override Button - Push and hold to override locking solenoid - [87] = "%1d", -- Landing Gear And Flap Warning Silence Button - [250] = "%1d", -- Nose Strut Switch, EXTEND/RETRACT {1.0, -1.0} - [131] = "%1d", -- Nosewheel Steering Button - Press and Hold to engage nosewheel control - [92] = "%1d", -- Left Landing Gear Lamp - Press to test(LMB) - [93] = "%1d", -- Nose Landing Gear Lamp - Press to test(LMB) - [94] = "%1d", -- Right Landing Gear Lamp - Press to test(LMB) - [89] = "%1d", -- Arresting Hook Button - -- Oxygen System - [603] = "%1d", -- Oxygen Supply Lever, ON/OFF {1.0, -1.0} - [602] = "%1d", -- Diluter Lever - [601] = "%1d", -- Emergency Lever, EMERGENCY/NORMAL/TEST MASK {-1.0, 0.0, 1.0} - -- EC System - [371] = "%1d", -- Cabin Press Switch, DEFOG ONLY/NORMAL/RAM DUMP {0.0, 0.5, 1.0} - [372] = "%1d", -- Cabin Temp Switch, AUTO/CENTER/MAN COLD/MAN HOT {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6} - [373] = "%.2f", -- Cabin Temp Knob (Axis) {-1.0, 1.0} in 0.15 Steps - [374] = "%.2f", -- Canopy Defog Knob (Axis) {0.0, 1.0} in 0.15 Steps - [386] = "%.2f", -- Cockpit Air Inlet (Horizontal) (Axis) {-1.0, 1.0} in 0.1 Steps - [385] = "%.2f", -- Cockpit Air Inlet (Vertical) (Axis) {-1.0, 1.0} in 0.1 Steps - -- Cockpit Mechanics - --[0] = "%1d", -- Canopy Handle, OPEN/CLOSE - [772] = "%1d", -- Seat Adjust Switch, DOWN/NEUTRAL/UP {-1.0, 0.0, 1.0} - [384] = "%1d", -- Canopy Jettison T-Handle, PULL/PUSH - [91] = "%.1f", -- Drag Chute T-Handle, PULL/PUSH {0.1, -0.1} - -- External Lights - [227] = "%.2f", -- Navigation Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [228] = "%.2d", -- Formation Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [229] = "%1d", -- Beacon Switch, BEACON/OFF - [353] = "%1d", -- Landing & Taxi Light Switch, ON/OFF - -- Internal Lights - [46] = "%1d", -- AN/ASG-31 Sight Panel Light Button, ON/OFF - [613] = "%1d", -- Magnetic Compass Light Switch, LIGHT/OFF - [221] = "%.2f", -- Flood Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [222] = "%.2f", -- Flight Instruments Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [223] = "%.2f", -- Engine Instruments Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [224] = "%.2f", -- Console Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [363] = "%.2f", -- Armament Panel Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps - [172] = "%1d", -- Master Caution Button - Push to reset - [226] = "%1d", -- Warning Test Switch, Press to test - [225] = "%1d", -- Bright/Dim Switch, BRT/NEUT/DIM {-1.0, 0.0, 1.0} - -- Countermeasures Dispensing System - [400] = "%1d", -- Chaff Mode Selector, OFF/SINGLE/PRGM/MULT {0.0, 0.1, 0.2, 0.3} - [404] = "%1d", -- Flare Mode Selector, OFF/SINGLE/PRGM {0.0, 0.1, 0.2} - [409] = "%1d", -- Flare Jettison Switch, OFF/UP - [403] = "%1d", -- Chaff Counter Reset Button - Push to reset - [407] = "%1d", -- Flare Counter Reset Button - Push to reset - [117] = "%1d", -- Flare-Chaff Button - Push to dispense - -- IFF - [199] = "%1d", -- IFF MODE 4 CODE Selector, ZERO(use MW to pull switch)/B/A/HOLD - [197] = "%1d", -- IFF MODE 4 CODE Selector, ZERO(use MW to pull switch)/B/A/HOLD - [200] = "%1d", -- IFF MASTER Control Selector, EMER(use MW to pull switch)/NORM/LOW/STBY/OFF - [198] = "%1d", -- IFF MASTER Control Selector, EMER(use MW to pull switch)/NORM/LOW/STBY/OFF - [201] = "%1d", -- IFF MODE 4 Monitor Control Switch, AUDIO/OUT/LIGHT {-1.0, 0.0, 1.0} - [202] = "%1d", -- IFF Mode Select/TEST Switch, M-1 /ON/OUT {-1.0, 0.0, 1.0} - [203] = "%1d", -- IFF Mode Select/TEST Switch, M-2 /ON/OUT {-1.0, 0.0, 1.0} - [204] = "%1d", -- IFF Mode Select/TEST Switch, M-3/A /ON/OUT {-1.0, 0.0, 1.0} - [205] = "%1d", -- IFF Mode Select/TEST Switch, M-C /ON/OUT {-1.0, 0.0, 1.0} - [206] = "%1d", -- IFF RAD TEST/MON Switch, RAD TEST/OUT/MON {-1.0, 0.0, 1.0} - [207] = "%1d", -- IFF Identification of Position (IP) Switch, IDENT/OUT/MIC {-1.0, 0.0, 1.0} - [208] = "%1d", -- IFF MODE 4 Control Switch, ON/OUT - [209] = "%.1f", -- IFF MODE 1 Code Selector Wheel 1 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} - [210] = "%.1f", -- IFF MODE 1 Code Selector Wheel 2 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} - [211] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 1 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} - [212] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 2 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} - [213] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 3 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} - [214] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 4 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} - [217] = "%1d", -- MODE 4 REPLY Light - Press to test(LMB) - [215] = "%1d", -- Radiation TEST and Monitor Light - Press to test(LMB) - -- Jettison System - [365] = "%1d", -- Emergency All Jettison Button - Push to jettison - [367] = "%1d", -- Select Jettison Switch, SELECT POSITION/OFF/ALL PYLONS {-1.0, 0.0, 1.0} - [366] = "%1d", -- Select Jettison Button - Push to jettison - -- Weapons Control - [346] = "%1d", -- Armament Position Selector Switch - LEFT WINGTIP, ON/OFF - [347] = "%1d", -- Armament Position Selector Switch - LEFT OUTBD, ON/OFF - [348] = "%1d", -- Armament Position Selector Switch - LEFT INBD, ON/OFF - [349] = "%1d", -- Armament Position Selector Switch - CENTERLINE, ON/OFF - [350] = "%1d", -- Armament Position Selector Switch - RIGHT INBD, ON/OFF - [351] = "%1d", -- Armament Position Selector Switch - RIGHT OUTBD, ON/OFF - [352] = "%1d", -- Armament Position Selector Switch - RIGHT WINGTIP, ON/OFF - [340] = "%1d", -- Interval Switch [sec], .06/.10/.14 {-1.0, 0.0, 1.0} - [341] = "%1d", -- Bombs Arm Switch, SAFE/TAIL/NOSE & TAIL/NOSE {0.0, 0.1, 0.2, 0.3} - [343] = "%1d", -- Guns, Missile and Camera Switch, GUNS MSL & CAMR/OFF/CAMR ONLY {-1.0, 0.0, 1.0} - [344] = "%.1f", -- External Stores Selector, RIPL/BOMB/SAFE/RKT DISP {0.0,0.1,0.2,0.3} - [345] = "%.2f", -- Missile Volume Knob - Rotate to adjust volume (Axis) {0.0, 1.0} in 0.15 Steps - [128] = "%1d", -- Weapon Release Button - Press to release (Stick) - [137] = "%1d", -- Missile Uncage Switch - Press and hold to uncage missile seeker head - -- Trigger - [127] = "%1d", -- Trigger Button, FIRST DETENT(LMB) {0.0, 0.5} - [127] = "%1d", -- Trigger Button, SECOND DETENT(RMB) {0.0, 1.0} - -- AHRS - [166] = "%1d", -- Fast Erect Button - Push to erect - [220] = "%1d", -- Compass Switch, DIR GYRO/MAG/FAST SLAVE - [273] = "%.1f", -- Nav Mode Selector Switch, DF/TACAN {0.1,-0.1} - -- AN/APQ-159 Radar Control Panel - [65] = "%.2f", -- AN/APQ-159 Radar Scale Knob - Rotate to adjust scale brightness (Axis) {0.0, 1.0} in 0.15 Steps - [321] = "%.2f", -- AN/APQ-159 Radar Elevation Antenna Tilt Control Knob - Rotate to adjust antenna elevation (Axis) {-1.0, 1.0} in 0.15 Steps - [315] = "%.1f", -- AN/APQ-159 Radar Range Selector Switch [nm], 5/10/20/40 {0.0, 0.1, 0.2, 0.3} - [316] = "%.1f", -- AN/APQ-159 Radar Mode Selector Switch, OFF/STBY/OPER/TEST {0.0, 0.1, 0.2, 0.3} - [317] = "%1d", -- AN/APQ-159 Radar Acquisition Button - [70] = "%.2f", -- AN/APQ-159 Radar Bright Knob - Rotate to adjust brightness (Axis) {0.0, 1.0} in 0.15 Steps - [69] = "%.2f", -- AN/APQ-159 Radar Persistence Knob - Rotate to adjust persistence (Axis) {0.0, 1.0} in 0.15 Steps - [68] = "%.2f", -- AN/APQ-159 Radar Video Knob - Rotate to adjust video intensity (Axis) {0.0, 1.0} in 0.15 Steps - [67] = "%.2f", -- AN/APQ-159 Radar Cursor Knob - Rotate to adjust indication brightness (Axis) {0.0, 1.0} in 0.15 Steps - [66] = "%.2f", -- AN/APQ-159 Radar Pitch Knob - Rotate to adjust horizon bar (Axis) {-0.75, 0.75} in 0.1 Steps - -- AN/ASG-31 Sight - [40] = "%.1f", -- AN/ASG-31 Sight Mode Selector, OFF/MSL/A/A1 GUNS/A/A2 GUNS/MAN {0.0, 0.1, 0.2, 0.3, 0.4} - [42] = "%.2f", -- AN/ASG-31 Sight Reticle Depression Knob - Rotate to adjust manual mode depression angle (Axis) {0.0, 1.0} in 0.10 Steps - [41] = "%.2f", -- AN/ASG-31 Sight Reticle Intensity Knob - Rotate to adjust brightness (Axis) {0.0, 1.0} in 0.15 Steps - [136] = "%1d", -- AN/ASG-31 Sight Cage Switch - Press and hold to cage - -- RWR-IC - [551] = "%1d", -- RWR Indicator Control MODE Button - [554] = "%1d", -- RWR Indicator Control SEARCH Button - [556] = "%1d", -- RWR Indicator Control HANDOFF Button - [559] = "%1d", -- RWR Indicator Control LAUNCH Button - [561] = "%1d", -- RWR Indicator Control ALTITUDE Button - [564] = "%1d", -- RWR Indicator Control T Button - [567] = "%1d", -- RWR Indicator Control SYS TEST Button - [570] = "%1d", -- RWR Indicator Control UNKNOWN SHIP Button - [573] = "%1d", -- RWR Indicator Control ACT/PWR Button - [575] = "%1d", -- RWR Indicator Control POWER Button {1.0,0.0,-1.0} - [577] = "%.1f", -- RWR Indicator Control AUDIO Knob (Axis) {0.0, 1.0} in 0.1 Steps - [578] = "%.1f", -- RWR Indicator Control DIM Knob (Axis) {0.0, 1.0} in 0.1 Steps - -- AN/ALR-87 RWR - [140] = "%.2f", -- Adjust Display Brightness (Axis) {0.15, 0.85} in 0.1 Steps - -- Instruments -------------------------- - -- Accelerometer - [904] = "%1d", -- Accelerometer - Push to set - -- AirSpeed/Mach Indicator - [180] = "%.2f", -- Index Setting Pointer Knob (Axis) {0.0, 1.0} in 0.15 Steps - -- Altimeter AAU-34/A - [62] = "%.2f", -- Zero Setting Knob (Axis) {0.0, 1.0} in 0.04 Steps - [60] = "%1d", -- Altimeter Mode Control Lever, ELECT(rical)/PNEU(matic) {-1.0, 0.0, 1.0} - -- Attitude Indicator ARU-20 - [150] = "%.3f", -- AI Pitch Trim Knob (Axis) {0.0, 1.0} in 0.083 Steps - -- Horizontal Situation Indicator - [272] = "%.5f", -- HSI Course Set Knob (Axis) {0.0, 1.0} in 0.05818 Steps - [271] = "%.5f", -- HSI Heading Set Knob (Axis) {0.0, 1.0} in 0.05818 Steps - -- Standby Attitude Indicator - [441] = "%1d", -- Cage/Pitch Trim (Button) - [442] = "%.1f", -- Cage/Pitch Trim Knob (Axis) {0.0, 1.0} in 0.5 Steps - -- Clock - [511] = "%1d", -- ABU-11 Clock Winding and Setting knob (Button) - [510] = "%1d", -- ABU-11 Clock Winding and Setting Knob (Axis) {0.0, 1.0} in 0.6 Steps - [512] = "%1d", -- ABU-11 Clock Elapsed Time Knob - -- Electric system - CB Front Panel - [280] = "%1d", -- CB WPN PWR LEFT INBD, ON/OFF {1.0, 0.0} - [281] = "%1d", -- CB WPN PWR CENTER LINE, ON/OFF {1.0, 0.0} - [282] = "%1d", -- CB WPN PWR RIGHT INBD, ON/OFF {1.0, 0.0} - [283] = "%1d", -- CB WPN PWR LEFT OUTBD, ON/OFF {1.0, 0.0} - [284] = "%1d", -- CB WPN ARMING, ON/OFF {1.0, 0.0} - [285] = "%1d", -- CB WPN PWR RIGHT OUTBD, ON/OFF {1.0, 0.0} - [286] = "%1d", -- CB JETTISON CONTROL, ON/OFF {1.0, 0.0} - [287] = "%1d", -- CB WPN RELEASE, ON/OFF {1.0, 0.0} - [288] = "%1d", -- CB WPN MODE SEL & AIM-9-INTLK, ON/OFF {1.0, 0.0} - [289] = "%1d", -- CB EMERGENCY ALL JETTISON, ON/OFF {1.0, 0.0} - [290] = "%1d", -- CB LEFT AIM-9 CONT, ON/OFF {1.0, 0.0} - [291] = "%1d", -- CB RIGHT AIM-9 CONT, ON/OFF {1.0, 0.0} - -- Electric system - CB Left Panel - [450] = "%1d", -- CB LEFT AIM-9 POWER, ON/OFF {1.0, 0.0} - [451] = "%1d", -- CB LEFT GUN FIRING, ON/OFF {1.0, 0.0} - [453] = "%1d", -- CB 26 VOLT AC POWER, ON/OFF {1.0, 0.0} - [454] = "%1d", -- CB ATTD & HDG REF SYS A, ON/OFF {1.0, 0.0} - [455] = "%1d", -- CB CENTRAL AIR DATA COMPUTER, ON/OFF {1.0, 0.0} - [456] = "%1d", -- CB ENG IGN L ENG INST & HYD IND, ON/OFF {1.0, 0.0} - [457] = "%1d", -- CB RIGHT AIM-9 POWER, ON/OFF {1.0, 0.0} - [458] = "%1d", -- CB RIGHT GUN FIRING, ON/OFF {1.0, 0.0} - [460] = "%1d", -- CB TRIM CONTROL, ON/OFF {1.0, 0.0} - [461] = "%1d", -- CB ATTD & HDG REF SYS B, ON/OFF {1.0, 0.0} - [462] = "%1d", -- CB TOTAL TEMP PROBE HTR, ON/OFF {1.0, 0.0} - [463] = "%1d", -- CB L ENG AUX DOOR, ON/OFF {1.0, 0.0} - [464] = "%1d", -- CB CABIN COND, ON/OFF {1.0, 0.0} - [467] = "%1d", -- CB FUEL QTY PRIMARY, ON/OFF {1.0, 0.0} - [468] = "%1d", -- CB ATTD & HDG REF SYS C, ON/OFF {1.0, 0.0} - [469] = "%1d", -- CB TACAN, ON/OFF {1.0, 0.0} - [471] = "%1d", -- CB PYLON TANK FUEL CONT, ON/OFF {1.0, 0.0} - [472] = "%1d", -- CB L BOOST CL & TIP TANK FUEL CONT, ON/OFF {1.0, 0.0} - [473] = "%1d", -- CB IGNITION INVERTER POWER, ON/OFF {1.0, 0.0} - [474] = "%1d", -- CB L ENG START & AB CONT, ON/OFF {1.0, 0.0} - [475] = "%1d", -- CB R ENG START & AB CONT, ON/OFF {1.0, 0.0} - [476] = "%1d", -- CB UHF COMMAND RADIO, ON/OFF {1.0, 0.0} - [477] = "%1d", -- CB LEFT LE FLAP CONT, ON/OFF {1.0, 0.0} - [478] = "%1d", -- CB RIGHT LE FLAP CONT, ON/OFF {1.0, 0.0} - [479] = "%1d", -- CB LEFT TE FLAP CONT, ON/OFF {1.0, 0.0} - [480] = "%1d", -- CB RIGHT TE FLAP CONT & IND, ON/OFF {1.0, 0.0} - -- Electric system - CB Right Panel - [231] = "%1d", -- CB PITOT HEATER, ON/OFF {1.0, 0.0} - [233] = "%1d", -- CB R OIL & HYD IND FUEL QTY SEL, ON/OFF {1.0, 0.0} - [234] = "%1d", -- CB CABIN AIR VALVES, ON/OFF {1.0, 0.0} - [238] = "%1d", -- CB INST LIGHTS, ON/OFF {1.0, 0.0} - [239] = "%1d", -- CB R ENG AUX DOORS, ON/OFF {1.0, 0.0} - [244] = "%1d", -- CB CAUTION & WARN LIGHTS-DIM, ON/OFF {1.0, 0.0} - [245] = "%1d", -- CB OXY QTY & CANOPY SEAL, ON/OFF {1.0, 0.0} - [246] = "%1d", -- CB LDG-TAXI LAMP PWR, ON/OFF {1.0, 0.0} - --UHF Radio AN/ARC-164 - [300] = "%.2f", -- AN/ARC-164, UHF Radio Preset Channel Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, ... 0.15, 0.16, 0.17, 0.18, 0.19} - --[327] = "%.1f", -- AN/ARC-164, UHF Radio 100 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3} - --[328] = "%.1f", -- AN/ARC-164, UHF Radio 10 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} - --[329] = "%.1f", -- AN/ARC-164, UHF Radio 1 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} - --[330] = "%.1f", -- AN/ARC-164, UHF Radio 0.1 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} - --[331] = "%.2f", -- AN/ARC-164, UHF Radio 0.025 MHz Frequency Selector Knob {0.0, 0.25, 0.5, 0.75} - [307] = "%.1f", -- AN/ARC-164, UHF Radio Frequency Mode Selector Switch, MANUAL/PRESET/GUARD {0.0, 0.1, 0.2} - [311] = "%.1f", -- AN/ARC-164, UHF Radio Function Selector Switch, OFF/MAIN/BOTH/ADF {0.0, 0.1, 0.2} - [310] = "%1d", -- AN/ARC-164, UHF Radio Tone Button - [308] = "%1d", -- AN/ARC-164, UHF Radio Squelch Switch, ON/OFF - [309] = "%.1f", -- AN/ARC-164, UHF Radio Volume Knob (Axis) {0.0, 1.0} in 0.1 Steps - [336] = "%.1f", -- AN/ARC-164, UHF Radio Antenna Selector Switch, UPPER/AUTO/LOWER {0.0, 0.5, 1.0} - [135] = "%1d", -- AN/ARC-164, UHF Radio Microphone Button - --TACAN - [256] = "%.1f", -- TACAN Channel Selector (Tens) - Rotate mouse wheel to select (Axis) {0.0, 1.0} in 0.1 Steps - [257] = "%.1f", -- TACAN Channel Selector (Ones) / X/Y Mode - Right mouse click to select X/Y. Rotate mouse wheel to make channel selection (Axis) {0.0, 1.0} in 0.1 Steps - [258] = "%.2f", -- TACAN Channel Selector (Ones) / X/Y Mode - Right mouse click to select X/Y. Rotate mouse wheel to make channel selection (Button) {0.87, 0.93} - [259] = "%1d", -- TACAN Signal on HSI Test Button - [261] = "%1d", -- TACAN Signal Volume Knob (Axis) {0.0, 1.0} in 0.1 Steps - [262] = "%.1f", -- TACAN Mode Selector Switch {0.0, 0.1, 0.2, 0.3, 0.4} - -- Sight Camera - [82] = "%.1f", -- Sight Camera Lens f-Stop Selector, 2.8(dull)..22(bright) (Axis) {0.0, 0.3} in 0.1 Steps - [80] = "%1d", -- Sight Camera FPS Select Switch, 24/48 - [84] = "%.1f", -- Sight Camera Overrun Selector, 0/3/10/20 {0.0, 0.1, 0.2, 0.3} - [79] = "%1d" -- Sight Camera Run (Test) Switch, ON/OFF -} - ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ - --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - --[443] = "%.4f", -- SAI_knob_arrow {-1.0, 1.0} {0.0, 1.0} - ExportScript.Tools.SendData(443, ExportScript.Tools.negate(mainPanelDevice:get_argument_value(443))) -end - -function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] -end - ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance -function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - --AN/ARC-164 UHF - --------------------------------------------------- - local lUHFRadio = GetDevice(23) - if lUHFRadio:is_on() then - --ExportScript.Tools.SendData(2000, string.format("%.3f", lUHFRadio:get_frequency()/1000000)) - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy(lUHFRadio:get_frequency()/1000000)) - - local lUHFRadio_PRESET = {[0]="01",[0.05]="02",[0.1]="03",[0.15]="04",[0.2]="05",[0.25]="06",[0.3]="07",[0.35]="08",[0.4]="09",[0.45]="10",[0.5]="11",[0.55]="12",[0.6]="13",[0.65]="14",[0.7]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20"} - ExportScript.Tools.SendData(2001, lUHFRadio_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(300), 2)]) - end - - --[327] = "%.1f", -- AN/ARC-164, UHF Radio 100 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3} - --[328] = "%.1f", -- AN/ARC-164, UHF Radio 10 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} - --[329] = "%.1f", -- AN/ARC-164, UHF Radio 1 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} - --[330] = "%.1f", -- AN/ARC-164, UHF Radio 0.1 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} - --[331] = "%.2f", -- AN/ARC-164, UHF Radio 0.025 MHz Frequency Selector Knob {0.0, 0.25, 0.5, 0.75} - --F5E_UHF - --327: 0.0=A, 0.1=3, 0.2=2, 0.3=T - --1: 0.0=A, 0.1=T, 0.2=2, 0.3=3 - - --328: 0.0=0, 0.1=9, 0.2=8, 0.3=7, 0.4=6, 0.5=5, 0.6=4, 0.7=3, 0.8=2, 0.9=1, 1.0=0 - --2: 0.0=0, 0.1=1, 0.2=2, 0.3=3, 0.4=4, 0.5=5, 0.6=6, 0.7=7, 0.8=8, 0.9=9, 1.0=0 - - --329: 0.0=0, 0.1=9, 0.2=8, 0.3=7, 0.4=6, 0.5=5, 0.6=4, 0.7=3, 0.8=2, 0.9=1, 1.0=0 - --3: 0.0=0, 0.1=1, 0.2=2, 0.3=3, 0.4=4, 0.5=5, 0.6=6, 0.7=7, 0.8=8, 0.9=9, 1.0=0 - - --330: 0.0=0, 0.1=9, 0.2=8, 0.3=7, 0.4=6, 0.5=5, 0.6=4, 0.7=3, 0.8=2, 0.9=1, 1.0=0 - --4: 0.0=0, 0.1=1, 0.2=2, 0.3=3, 0.4=4, 0.5=5, 0.6=6, 0.7=7, 0.8=8, 0.9=9, 1.0=0 - - --331: 0.0=00, 0.25=75, 0.5=50, 0.75=25, 1.0=00 - --5: 0.0=00, 0.25=25, 0.5=50, 0.75=75 - - local lTmp327 = tonumber(string.format("%0.1f", mainPanelDevice:get_argument_value(327))) - local lTmp327_2 = lTmp327 - if lTmp327 == 0.0 then lTmp327_2 = 0.0 - elseif lTmp327 == 0.1 then lTmp327_2 = 0.3 - elseif lTmp327 == 0.2 then lTmp327_2 = 0.2 - elseif lTmp327 == 0.3 then lTmp327_2 = 0.1 - else lTmp327_2 = lTmp327 end - - local lTmp328_2 = 1 - mainPanelDevice:get_argument_value(328) - local lTmp329_2 = 1 - mainPanelDevice:get_argument_value(329) - local lTmp330_2 = 1 - mainPanelDevice:get_argument_value(330) - - local lTmp331 = mainPanelDevice:get_argument_value(331) - local lTmp331_2 = 0 - if lTmp331 == 0.0 then lTmp331_2 = 0.0 - elseif lTmp331 == 0.25 then lTmp331_2 = 0.75 - elseif lTmp331 == 0.5 then lTmp331_2 = 0.5 - elseif lTmp331 == 0.75 then lTmp331_2 = 0.25 - else lTmp331_2 = lTmp331 end - - ExportScript.Tools.SendData(327, lTmp327_2) - ExportScript.Tools.SendData(328, lTmp328_2) - ExportScript.Tools.SendData(329, lTmp329_2) - ExportScript.Tools.SendData(330, lTmp330_2) - ExportScript.Tools.SendData(331, lTmp331_2) - - - -- TACAN Channel - ------------------------------------------------- - ExportScript.Tools.SendData(2002, (string.format("%0.2f", (mainPanelDevice:get_argument_value(263))) == "1.00" and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(string.format("%1d", (mainPanelDevice:get_argument_value(266))) == "0" and "X" or "Y")) - --[266] = "%.4f", -- XYwheel - ExportScript.Tools.SendData(266, mainPanelDevice:get_argument_value(266) == 0 and 0 or 1) - -end - -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - --AN/ARC-164 UHF - --------------------------------------------------- - local lUHFRadio = GetDevice(23) - if lUHFRadio:is_on() then - --ExportScript.Tools.SendDataDAC(2000, string.format("%.3f", lUHFRadio:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC(2000, ExportScript.Tools.RoundFreqeuncy(lUHFRadio:get_frequency()/1000000)) - - local lUHFRadio_PRESET = {[0]="01",[0.05]="02",[0.1]="03",[0.15]="04",[0.2]="05",[0.25]="06",[0.3]="07",[0.35]="08",[0.4]="09",[0.45]="10",[0.5]="11",[0.55]="12",[0.6]="13",[0.65]="14",[0.7]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20"} - ExportScript.Tools.SendDataDAC(2001, lUHFRadio_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(300), 2)]) - end - - -- TACAN Channel - ------------------------------------------------- - ExportScript.Tools.SendDataDAC(2002, (string.format("%0.2f", (mainPanelDevice:get_argument_value(263))) == "1.00" and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(string.format("%1d", (mainPanelDevice:get_argument_value(266))) == "0" and "X" or "Y")) - - -- Fuel Quantity Indicator (Dual) - local lLeftFuel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(22) * 2500, 0) - local lRightFuel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(23) * 2500, 0) - - ExportScript.Tools.SendDataDAC(2003, lLeftFuel) - ExportScript.Tools.SendDataDAC(2004, lRightFuel) - ExportScript.Tools.SendDataDAC(2005, lLeftFuel + lRightFuel) - - -- generic Radio display and frequency rotarys - ------------------------------------------------- - -- genericRadioConf - ExportScript.genericRadioConf = {} - ExportScript.genericRadioConf['maxRadios'] = 1 -- numbers of aviables/supported radios - ExportScript.genericRadioConf[1] = {} -- first radio - ExportScript.genericRadioConf[1]['Name'] = "AN/ARC-164 UHF" -- name of radio - ExportScript.genericRadioConf[1]['DeviceID'] = 23 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[1]['minFrequency'] = 220.000 -- lowest frequency - ExportScript.genericRadioConf[1]['maxFrequency'] = 399.975 -- highest frequency - ExportScript.genericRadioConf[1]['Power'] = {} -- power button active - ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3008 -- power button id from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active - ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 300 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.1]="02",[0.2]="03",[0.3]="04",[0.4]="05",[0.5]="06",[0.6]="07",[0.7]="08",[0.8]="09",[0.9]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20"} - ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.1 -- minimal step for preset change - ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active - ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 308 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - --ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset - --ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active - ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 307 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua - - - --===================================================================================== - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) - - -- list_indication get tehe value of cockpit displays - local ltmp1 = 0 - for ltmp2 = 0, 20, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - end - ]] ---[[ - -- getmetatable get function name from devices - local ltmp1 = 0 - for ltmp2 = 1, 70, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end -]] -end - ------------------------------ --- Custom functions -- ------------------------------ +-- F-5E-3 + +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info + +ExportScript.FoundDCSModule = true +ExportScript.Version.F5E3 = "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 + ]] + -- Gear System + [97] = "%.4f", -- AlterReleaseRods + -- Cockpit mechanics + [712] = "%.4f", -- CanopyHandle + -- WEAPONS ---------------------------------------------------- + -- CMDS + [401] = "%.4f", -- ChaffDrumCounter_10 {0.0, 1.0} {0.0, 10.0} + [402] = "%.4f", -- ChaffDrumCounter_1 {0.0, 1.0} {0.0, 10.0} + [405] = "%.4f", -- FlareDrumCounter_10 {0.0, 1.0} {0.0, 10.0} + [406] = "%.4f", -- FlareDrumCounter_1 {0.0, 1.0} {0.0, 10.0} + -- AN/ASG-31 Sight + [43] = "%.4f", -- RetDepressionDrum_100 {0.0, 1.0} {0.0, 10.0} + [44] = "%.4f", -- RetDepressionDrum_10 {0.0, 1.0} {0.0, 10.0} + [45] = "%.4f", -- RetDepressionDrum_1 {0.0, 1.0} {0.0, 10.0} + -- Slipball + [3] = "%.4f", -- Slipball {-1.0, 1.0} + -- Sight Camera + [85] = "%.4f", -- MotorRunKnob {1.0, 0.0} + -- AN/APQ-159 Radar + -- Range scale lights + [155] = "%.4f", -- RangeScale_5 + [156] = "%.4f", -- RangeScale_10 + [157] = "%.4f", -- RangeScale_20 + [158] = "%.4f", -- RangeScale_40 + [159] = "%.f", -- InRangeLight + [160] = "%.f", -- FailLight + [161] = "%.f", -- LockOnLight + [162] = "%.f", -- ExcessGLight + [163] = "%.4f", -- ScaleBrightness + -- INSTRUMENTS ------------------------------------------------ + -- Angle-of-attack Indicator + [7] = "%.4f", -- AOA_Units {0.0, 1.0} {0.0, 30.0} + [704] = "%.f", -- AOA_poweroff_flag + -- Accelerometer + [6] = "%.4f", -- Accelerometer { 0.0, 0.323, 0.653, 1.0} {-5.0, 0.0, 5.0, 10.0} + [902] = "%.4f", -- AccelerometerMin { 0.0, 0.323, 0.653, 1.0} {-5.0, 0.0, 5.0, 10.0} + [903] = "%.4f", -- AccelerometerMax { 0.0, 0.323, 0.653, 1.0} {-5.0, 0.0, 5.0, 10.0} + -- AirSpeed/Mach Indicator + [8] = "%.4f", -- Airspeed {0.0, 0.0435, 0.1, 0.318, 0.3745, 0.397, 0.4495, 0.482, 0.54, 0.553, 0.6145, 0.658, 0.668, 0.761, 0.801, 0.877, 0.909, 0.942, 0.972, 1.0} {0.0, 80.0, 100.0, 170.0, 190.0, 200.0, 230.0, 250.0, 290.0, 300.0, 350.0, 390.0, 400.0, 500.0, 550.0, 650.0, 700.0, 750.0, 800.0, 850.0} + [178] = "%.4f", -- MaxAirspeed {0.0, 0.0435, 0.1, 0.318, 0.3745, 0.397, 0.4495, 0.482, 0.54, 0.553, 0.6145, 0.658, 0.668, 0.761, 0.801, 0.877, 0.909, 0.942, 0.972, 1.0} {0.0, 80.0, 100.0, 170.0, 190.0, 200.0, 230.0, 250.0, 290.0, 300.0, 350.0, 390.0, 400.0, 500.0, 550.0, 650.0, 700.0, 750.0, 800.0, 850.0} + [177] = "%.4f", -- SetAirspeed + [179] = "%.4f", -- MachIndicator {1.0, 0.957, 0.92, 0.631, 0.386} {0.0, 0.5, 1.0, 1.8, 2.5} + -- Vertical Velocity Indicator + [24] = "%.4f", -- Variometer {-1.0, -0.64, -0.5, -0.29, 0.0, 0.29, 0.5, 0.64, 1.0} {-6000.0, -3000.0, -2000.0, -1000.0, 0.0, 1000.0, 2000.0, 3000.0, 6000.0} + -- Altimeter AAU-34/A + [10] = "%.4f", -- Altimeter_100_footPtr {0.0, 1.0} {0.0, 1000.0} + [11] = "%.4f", -- Altimeter_10000_footCount {0.0, 1.0} {0.0, 10.0} + [520] = "%.4f", -- Altimeter_1000_footCount {0.0, 1.0} {0.0, 10.0} + [521] = "%.4f", -- Altimeter_100_footCount {0.0, 1.0} {0.0, 10.0} + [59] = "%.4f", -- pressure_setting_0 {0.0, 1.0} {0.0, 10.0} + [58] = "%.4f", -- pressure_setting_1 {0.0, 1.0} {0.0, 10.0} + [57] = "%.4f", -- pressure_setting_2 {0.0, 1.0} {0.0, 10.0} + [56] = "%.4f", -- pressure_setting_3 {0.0, 1.0} {0.0, 10.0} + [9] = "%.4f", -- AAU34_PNEU_flag {0.0, 1.0} {0.0, 0.4} + -- Attitude Indicator ARU-20 + [81] = "%.4f", -- AI_Pitch {-0.507, 0.0, 0.507} {-rad_(90.0), 0.0, rad_(90.0)} + [30] = "%.4f", -- AI_Bank {-1.0, 1.0} { 0.0, math.pi * 2.0} + [149] = "%.4f", -- AI_OFF_flag + -- Horizontal Situation Indicator + [32] = "%.4f", -- HSI_CompassCard + [139] = "%.4f", -- HSI_BearingPtr + [35] = "%.4f", -- HSI_CourseArrow + [36] = "%.4f", -- HSI_CourseDevInd {-1.0, 1.0} + [144] = "%.4f", -- HSI_HeadingMark + [268] = "%.4f", -- HSI_Range_100 {0.0, 1.0} {0.0, 10.0} + [269] = "%.4f", -- HSI_Range_10 {0.0, 1.0} {0.0, 10.0} + [270] = "%.4f", -- HSI_Range_1 {0.0, 1.0} {0.0, 10.0} + [142] = "%.4f", -- HSI_Range_flag + [275] = "%.4f", -- HSI_CourseSel_100 {0.0, 1.0} {0.0, 10.0} + [276] = "%.4f", -- HSI_CourseSel_10 {0.0, 1.0} {0.0, 10.0} + [277] = "%.4f", -- HSI_CourseSel_1 {0.0, 1.0} {0.0, 10.0} + [146] = "%.4f", -- HSI_ToFrom + [143] = "%.4f", -- HSI_OFF_flag + [141] = "%.4f", -- HSI_DevDF_Win + -- Standby Attitude Indicator + [438] = "%.4f", -- SAI_Pitch {-0.665, -0.581, -0.5, 0.0, 0.5, 0.581, 0.676, 0.735} {-rad_(78.0), -rad_(60.0), -rad_(42.0), 0.0, rad_(42.0), rad_(60.0), rad_(80.0), rad_(92.0)} + [439] = "%.4f", -- SAI_Bank {1.0, -1.0} {-math.pi, math.pi} + [440] = "%.4f", -- SAI_OFF_flag + --[443] = "%.4f", -- SAI_knob_arrow {-1.0, 1.0} {0.0, 1.0} + -- Clock + [19] = "%.4f", -- CLOCK_currtime_hours + [18] = "%.4f", -- CLOCK_currtime_minutes + [509] = "%.4f", -- CLOCK_elapsed_time_minutes + [37] = "%.4f", -- CLOCK_elapsed_time_seconds + -- Pitch Trim Indicator + [52] = "%.4f", -- Pitch_Trim {1.0, 0.0, -0.1} {-10.0, 0.0, 1.0} + -- Flap Indicator + [51] = "%.4f", -- Flap_Indicator {0.0, 0.4} {0.0, 4.0} + -- Hydraulic Pressure Indicators + [109] = "%.4f", -- Utility_Pressure {0.0, 1.0} {0.0, 4000.0} + [110] = "%.4f", -- Flight_Pressure {0.0, 1.0} {0.0, 4000.0} + -- Engine Tachometers + [16] = "%.4f", -- Tachometer_Left {0.008, 0.475, 0.84, 0.94, 1.0} {0.0, 50.0, 90.0, 100.0, 107.0} + [425] = "%.4f", -- Tachometer_percent_Left {0.0, 1.0} {0.0, 10.0} + [17] = "%.4f", -- Tachometer_Right {0.008, 0.475, 0.84, 0.94, 1.0} {0.0, 50.0, 90.0, 100.0, 107.0} + [426] = "%.4f", -- Tachometer_percent_Right {0.0, 1.0} {0.0, 10.0} + -- Exhaust Gas Temperature Indicators + [12] = "%.4f", -- EGT_Left {0.0, 0.03, 0.1, 0.274, 0.78, 1.0} {0.0, 140.0, 200.0, 500.0, 800.0, 1200.0} + [14] = "%.4f", -- EGT_Right {0.0, 0.03, 0.1, 0.274, 0.78, 1.0} {0.0, 140.0, 200.0, 500.0, 800.0, 1200.0} + -- Aux Intake Doors Indicator + [111] = "%.4f", -- AuxIntakeDoors {0.0, 0.2} {0.0, 2.0} + -- Oil Pressure Indicator (Dual) + [112] = "%.4f", -- OilPressure_Left {0.0, 1.0} {0.0, 100.0} + [113] = "%.4f", -- OilPressure_Right {0.0, 1.0} {0.0, 100.0} + -- Nozzle Position Indicators + [107] = "%.4f", -- NozzlePos_Left {0.0, 1.0} {0.0, 100.0} + [108] = "%.4f", -- NozzlePos_Right {0.0, 1.0} {0.0, 100.0} + -- Cabin Pressure Altimeter + [114] = "%.4f", -- CabinPressure {0.0, 1.0} {0.0, 50.0} + -- Fuel Flow Indicator (Dual) + [525] = "%.4f", -- FuelFlow_Left {0.0, 0.67, 0.75, 0.83, 1.0} {0.0, 4000.0, 7000.0, 10000.0, 15000.0} + [526] = "%.4f", -- FuelFlow_Right {0.0, 0.67, 0.75, 0.83, 1.0} {0.0, 4000.0, 7000.0, 10000.0, 15000.0} + -- Fuel Quantity Indicator (Dual) + [22] = "%.4f", -- FuelQuantity_Left {0.0, 1.0} {0.0, 2500.0} + [23] = "%.4f", -- FuelQuantity_Right {0.0, 1.0} {0.0, 2500.0} + -- Oxygen Quantity Indicator + [390] = "%.4f", -- OxygenQuantity {0.0, 1.0} {0.0, 5.0} + -- Oxygen Flow Pressure Indicator + [604] = "%.4f", -- FlowPressure {0.0, 0.5, 1.0} {0.0, 100.0, 500.0} + -- Oxygen Flow Indicator + [600] = "%.2f",--"%1d", -- FlowBlinker + -- RADIO ------------------------------------------------------ + -- UHF Radio AN/ARC-164 + [326] = "%.2f", -- UHFRadioChannel + [302] = "%.1f", -- UHFRadio100MHz + [303] = "%.1f", -- UHFRadio10MHz {1.0, 0.0} {0.0, 1.0} + [304] = "%.1f", -- UHFRadio1MHz {1.0, 0.0} {0.0, 1.0} + [305] = "%.1f", -- UHFRadio01MHz {1.0, 0.0} {0.0, 1.0} + [306] = "%.1f", -- UHFRadio0025MHz {1.0, 0.0} {0.0, 1.0} + -- IFF/SIF APX72 + [197] = "%.4f", -- IFF_Code4Sw_Pull + [198] = "%.4f", -- IFF_MasterSw_Pull + -- TACAN + [263] = "%.4f", -- TACAN_window_wheel.hundreds {0.0, 1.0} {0.0, 10.0} + [264] = "%.4f", -- TACAN_window_wheel.tens {0.0, 1.0} {0.0, 10.0} + [265] = "%.4f", -- TACAN_window_wheel.ones {0.0, 1.0} {0.0, 10.0} + --[266] = "%.4f", -- XYwheel + [260] = "%.f", -- TACAN_test_light + -- LAMPS + -- Engine Fire Lights + [167] = "%.f", -- lamp_LeftFire + [168] = "%.f", -- lamp_RightFire + -- AOA Indexer Lights + [48] = "%.f", -- lamp_AOA_Red + [49] = "%.f", -- lamp_AOA_Green + [50] = "%.f", -- lamp_AOA_Yellow + -- Landing Gear Lights + [96] = "%.f", -- lamp_GearWarning + [54] = "%.f", -- lamp_GearNose + [53] = "%.f", -- lamp_GearLeft + [55] = "%.f", -- lamp_GearRight + -- Hook Light + [90] = "%.f", -- lamp_Hook + -- Caution Lights panel + [530] = "%.f", -- lamp_LeftGenerator + [531] = "%.f", -- lamp_Canopy + [532] = "%.f", -- lamp_RightGenerator + [533] = "%.f", -- lamp_UtilityHyd + [534] = "%.f", -- lamp_Spare1 + [535] = "%.f", -- lamp_FlightHyd + [536] = "%.f", -- lamp_ExtTanksEmpty + [537] = "%.f", -- lamp_IFF + [538] = "%.f", -- lamp_Oxygen + [539] = "%.f", -- lamp_LeftFuelLow + [540] = "%.f", -- lamp_EngineAntiIce + [541] = "%.f", -- lamp_RightFuelLow + [542] = "%.f", -- lamp_LeftFuelPress + [543] = "%.f", -- lamp_INS + [544] = "%.f", -- lamp_RightFuelPress + [545] = "%.f", -- lamp_AOA_Flaps + [546] = "%.f", -- lamp_AirDataComputer + [547] = "%.f", -- lamp_DirGyro + [548] = "%.f", -- lamp_Spare2 + [549] = "%.f", -- lamp_DC_Overload + [550] = "%.f", -- lamp_Spare3 + -- Master Caution Light + [169] = "%.f", -- lamp_MasterCaution + --IFF Panel lamps + [216] = "%.f", -- IFF_reply_lamp + [218] = "%.f", -- IFF_test_lamp + -- Internal Lights + [801] = "%.f", -- light_Flight + [802] = "%.f", -- light_Engine + [803] = "%.f", -- light_Console + [804] = "%.f", -- light_Compass + [805] = "%.f", -- light_Flood + [806] = "%.f", -- light_Sight + [807] = "%.f", -- light_Armt + [810] = "%.f", -- light_Tstorm + -- RWR button lights + [576] = "%.f", -- rwr_Power + [572] = "%.f", -- rwr_Ship_unkn + [571] = "%.f", -- rwr_Ship_U + [568] = "%.f", -- rwr_Sys_On + [569] = "%.f", -- rwr_Sys + [565] = "%.f", -- rwr_Sep_Up + [566] = "%.f", -- rwr_Sep_Down + [563] = "%.f", -- rwr_Alt + [562] = "%.f", -- rwr_Alt_Low + [557] = "%.f", -- rwr_Hand_Up + [558] = "%.f", -- rwr_Hand_H + [555] = "%.f", -- rwr_Search + [553] = "%.f", -- rwr_Mode_Open + [552] = "%.f", -- rwr_Mode_Pri + -- Brightness regulation + [808] = "%.f", -- brtRadarScale + [815] = "%.f", -- brtRwrLights + [816] = "%.f", -- brtFireLights + [817] = "%.f", -- brtMainLights + [818] = "%.f", -- brtIFFLights + [819] = "%.f" -- brtRadarLights +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + -- Control System + [323] = "%1d", -- Yaw Damper Switch, YAW/OFF + [322] = "%1d", -- Pitch Damper Switch, PITCH/OFF + [324] = "%.4f", -- Rudder Trim Knob (Axis) {-1.0, 1.0} in 0.15 Steps + [116] = "%1d", -- Flaps Lever, EMER UP/THUMB SW/FULL {-1.0, 0.0, 1.0} + [132] = "%1d", -- Pitch Damper Cutoff Switch - Push to cutoff + [101] = "%1d", -- Speed Brake Switch, OUT/OFF/IN {-1.0, 0.0, 1.0} + [115] = "%1d", -- Auto Flap System Thumb Switch, UP/FIXED/AUTO {-1.0, 0.0, 1.0} + --[125] = "%1d", -- Trimmer Switch, PUSH(DESCEND) {0.0, 1.0} + --[125] = "%1d", -- Trimmer Switch, PULL(CLIMB) {-1.0, 0.0} + --[126] = "%1d", -- Trimmer Switch, LEFT WING DOWN {0.0, 1.0} + --[126] = "%1d", -- Trimmer Switch, RIGHT WING DOWN {-1.0, 0.0} + [125] = "%1d", -- Trimmer Switch, PUSH(DESCEND)/PULL(CLIMB) {1.0, 0.0, -1.0} + [126] = "%1d", -- Trimmer Switch, LEFT WING DOWN/RIGHT WING DOWN {1.0, 0.0, -1.0} + [278] = "%1d", -- Rudder Pedal Adjust T-Handle, PULL/STOW + -- Electric system + [387] = "%1d", -- attery Switch, BATT/OFF + [388] = "%1d", -- Left Generator Switch, L GEN/OFF/RESET {-1.0, 0.0, 1.0} + [389] = "%1d", -- Right Generator Switch, R GEN/OFF/RESET {-1.0, 0.0, 1.0} + [375] = "%1d", -- Pitot Anti-Ice Switch, PITOT/OFF + [230] = "%1d", -- Fuel & Oxygen Switch, GAGE TEST/OFF/QTY CHECK {-1.0, 0.0, 1.0} + -- Fuel System + [360] = "%1d", -- Left Fuel Shutoff Switch, OPEN/CLOSED + [362] = "%1d", -- Right Fuel Shutoff Switch, OPEN/CLOSED + [377] = "%1d", -- Ext Fuel Cl Switch, ON/OFF + [378] = "%1d", -- Ext Fuel Pylons Switch, ON/OFF + [380] = "%1d", -- Left Boost Pump Switch, ON/OFF + [381] = "%1d", -- Crossfeed Switch, OPEN/CLOSED + [382] = "%1d", -- Right Boost Pump Switch, ON/OFF + [383] = "%1d", -- Autobalance Switch, LEFT/NEUT/RIGHT {-1.0, 0.0, 1.0} + -- Engines + [357] = "%1d", -- Left Engine Start Button - Push to start + [358] = "%1d", -- Right Engine Start Button - Push to start + [376] = "%1d", -- Engine Anti-Ice Switch, ENGINE/OFF {1.0, -1.0} + -- Gear System + [83] = "%1d", -- Landing Gear Lever, LG UP/LG DOWN + [95] = "%1d", -- Landing Gear Alternate Release Handle, Pull and Hold + [98] = "%1d", -- Gear Alternate Release Reset Control, OFF/RESET + [88] = "%1d", -- Landing Gear Downlock Override Button - Push and hold to override locking solenoid + [87] = "%1d", -- Landing Gear And Flap Warning Silence Button + [250] = "%1d", -- Nose Strut Switch, EXTEND/RETRACT {1.0, -1.0} + [131] = "%1d", -- Nosewheel Steering Button - Press and Hold to engage nosewheel control + [92] = "%1d", -- Left Landing Gear Lamp - Press to test(LMB) + [93] = "%1d", -- Nose Landing Gear Lamp - Press to test(LMB) + [94] = "%1d", -- Right Landing Gear Lamp - Press to test(LMB) + [89] = "%1d", -- Arresting Hook Button + -- Oxygen System + [603] = "%1d", -- Oxygen Supply Lever, ON/OFF {1.0, -1.0} + [602] = "%1d", -- Diluter Lever + [601] = "%1d", -- Emergency Lever, EMERGENCY/NORMAL/TEST MASK {-1.0, 0.0, 1.0} + -- EC System + [371] = "%1d", -- Cabin Press Switch, DEFOG ONLY/NORMAL/RAM DUMP {0.0, 0.5, 1.0} + [372] = "%1d", -- Cabin Temp Switch, AUTO/CENTER/MAN COLD/MAN HOT {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6} + [373] = "%.2f", -- Cabin Temp Knob (Axis) {-1.0, 1.0} in 0.15 Steps + [374] = "%.2f", -- Canopy Defog Knob (Axis) {0.0, 1.0} in 0.15 Steps + [386] = "%.2f", -- Cockpit Air Inlet (Horizontal) (Axis) {-1.0, 1.0} in 0.1 Steps + [385] = "%.2f", -- Cockpit Air Inlet (Vertical) (Axis) {-1.0, 1.0} in 0.1 Steps + -- Cockpit Mechanics + --[0] = "%1d", -- Canopy Handle, OPEN/CLOSE + [772] = "%1d", -- Seat Adjust Switch, DOWN/NEUTRAL/UP {-1.0, 0.0, 1.0} + [384] = "%1d", -- Canopy Jettison T-Handle, PULL/PUSH + [91] = "%.1f", -- Drag Chute T-Handle, PULL/PUSH {0.1, -0.1} + -- External Lights + [227] = "%.2f", -- Navigation Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [228] = "%.2d", -- Formation Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [229] = "%1d", -- Beacon Switch, BEACON/OFF + [353] = "%1d", -- Landing & Taxi Light Switch, ON/OFF + -- Internal Lights + [46] = "%1d", -- AN/ASG-31 Sight Panel Light Button, ON/OFF + [613] = "%1d", -- Magnetic Compass Light Switch, LIGHT/OFF + [221] = "%.2f", -- Flood Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [222] = "%.2f", -- Flight Instruments Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [223] = "%.2f", -- Engine Instruments Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [224] = "%.2f", -- Console Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [363] = "%.2f", -- Armament Panel Lights Knob (Axis) {0.0, 1.0} in 0.15 Steps + [172] = "%1d", -- Master Caution Button - Push to reset + [226] = "%1d", -- Warning Test Switch, Press to test + [225] = "%1d", -- Bright/Dim Switch, BRT/NEUT/DIM {-1.0, 0.0, 1.0} + -- Countermeasures Dispensing System + [400] = "%1d", -- Chaff Mode Selector, OFF/SINGLE/PRGM/MULT {0.0, 0.1, 0.2, 0.3} + [404] = "%1d", -- Flare Mode Selector, OFF/SINGLE/PRGM {0.0, 0.1, 0.2} + [409] = "%1d", -- Flare Jettison Switch, OFF/UP + [403] = "%1d", -- Chaff Counter Reset Button - Push to reset + [407] = "%1d", -- Flare Counter Reset Button - Push to reset + [117] = "%1d", -- Flare-Chaff Button - Push to dispense + -- IFF + [199] = "%1d", -- IFF MODE 4 CODE Selector, ZERO(use MW to pull switch)/B/A/HOLD + [197] = "%1d", -- IFF MODE 4 CODE Selector, ZERO(use MW to pull switch)/B/A/HOLD + [200] = "%1d", -- IFF MASTER Control Selector, EMER(use MW to pull switch)/NORM/LOW/STBY/OFF + [198] = "%1d", -- IFF MASTER Control Selector, EMER(use MW to pull switch)/NORM/LOW/STBY/OFF + [201] = "%1d", -- IFF MODE 4 Monitor Control Switch, AUDIO/OUT/LIGHT {-1.0, 0.0, 1.0} + [202] = "%1d", -- IFF Mode Select/TEST Switch, M-1 /ON/OUT {-1.0, 0.0, 1.0} + [203] = "%1d", -- IFF Mode Select/TEST Switch, M-2 /ON/OUT {-1.0, 0.0, 1.0} + [204] = "%1d", -- IFF Mode Select/TEST Switch, M-3/A /ON/OUT {-1.0, 0.0, 1.0} + [205] = "%1d", -- IFF Mode Select/TEST Switch, M-C /ON/OUT {-1.0, 0.0, 1.0} + [206] = "%1d", -- IFF RAD TEST/MON Switch, RAD TEST/OUT/MON {-1.0, 0.0, 1.0} + [207] = "%1d", -- IFF Identification of Position (IP) Switch, IDENT/OUT/MIC {-1.0, 0.0, 1.0} + [208] = "%1d", -- IFF MODE 4 Control Switch, ON/OUT + [209] = "%.1f", -- IFF MODE 1 Code Selector Wheel 1 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} + [210] = "%.1f", -- IFF MODE 1 Code Selector Wheel 2 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} + [211] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 1 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} + [212] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 2 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} + [213] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 3 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} + [214] = "%.1f", -- IFF MODE 3/A Code Selector Wheel 4 {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7} + [217] = "%1d", -- MODE 4 REPLY Light - Press to test(LMB) + [215] = "%1d", -- Radiation TEST and Monitor Light - Press to test(LMB) + -- Jettison System + [365] = "%1d", -- Emergency All Jettison Button - Push to jettison + [367] = "%1d", -- Select Jettison Switch, SELECT POSITION/OFF/ALL PYLONS {-1.0, 0.0, 1.0} + [366] = "%1d", -- Select Jettison Button - Push to jettison + -- Weapons Control + [346] = "%1d", -- Armament Position Selector Switch - LEFT WINGTIP, ON/OFF + [347] = "%1d", -- Armament Position Selector Switch - LEFT OUTBD, ON/OFF + [348] = "%1d", -- Armament Position Selector Switch - LEFT INBD, ON/OFF + [349] = "%1d", -- Armament Position Selector Switch - CENTERLINE, ON/OFF + [350] = "%1d", -- Armament Position Selector Switch - RIGHT INBD, ON/OFF + [351] = "%1d", -- Armament Position Selector Switch - RIGHT OUTBD, ON/OFF + [352] = "%1d", -- Armament Position Selector Switch - RIGHT WINGTIP, ON/OFF + [340] = "%1d", -- Interval Switch [sec], .06/.10/.14 {-1.0, 0.0, 1.0} + [341] = "%.1f", -- Bombs Arm Switch, SAFE/TAIL/NOSE & TAIL/NOSE {0.0, 0.1, 0.2, 0.3} + [342] = "%1d", -- Guns, Missile and Camera Switch Cover, OPEN/CLOSE {0.0, 1.0} + [343] = "%1d", -- Guns, Missile and Camera Switch, GUNS MSL & CAMR/OFF/CAMR ONLY {-1.0, 0.0, 1.0} + [344] = "%.1f", -- External Stores Selector, RIPL/BOMB/SAFE/RKT DISP {0.0,0.1,0.2,0.3} + [345] = "%.2f", -- Missile Volume Knob - Rotate to adjust volume (Axis) {0.0, 1.0} in 0.15 Steps + [128] = "%1d", -- Weapon Release Button - Press to release (Stick) + [137] = "%1d", -- Missile Uncage Switch - Press and hold to uncage missile seeker head + -- Trigger + [127] = "%1d", -- Trigger Button, FIRST DETENT(LMB) {0.0, 0.5} + [127] = "%1d", -- Trigger Button, SECOND DETENT(RMB) {0.0, 1.0} + -- AHRS + [166] = "%1d", -- Fast Erect Button - Push to erect + [220] = "%1d", -- Compass Switch, DIR GYRO/MAG/FAST SLAVE + [273] = "%.1f", -- Nav Mode Selector Switch, DF/TACAN {0.1,-0.1} + -- AN/APQ-159 Radar Control Panel + [65] = "%.2f", -- AN/APQ-159 Radar Scale Knob - Rotate to adjust scale brightness (Axis) {0.0, 1.0} in 0.15 Steps + [321] = "%.2f", -- AN/APQ-159 Radar Elevation Antenna Tilt Control Knob - Rotate to adjust antenna elevation (Axis) {-1.0, 1.0} in 0.15 Steps + [315] = "%.1f", -- AN/APQ-159 Radar Range Selector Switch [nm], 5/10/20/40 {0.0, 0.1, 0.2, 0.3} + [316] = "%.1f", -- AN/APQ-159 Radar Mode Selector Switch, OFF/STBY/OPER/TEST {0.0, 0.1, 0.2, 0.3} + [317] = "%1d", -- AN/APQ-159 Radar Acquisition Button + [70] = "%.2f", -- AN/APQ-159 Radar Bright Knob - Rotate to adjust brightness (Axis) {0.0, 1.0} in 0.15 Steps + [69] = "%.2f", -- AN/APQ-159 Radar Persistence Knob - Rotate to adjust persistence (Axis) {0.0, 1.0} in 0.15 Steps + [68] = "%.2f", -- AN/APQ-159 Radar Video Knob - Rotate to adjust video intensity (Axis) {0.0, 1.0} in 0.15 Steps + [67] = "%.2f", -- AN/APQ-159 Radar Cursor Knob - Rotate to adjust indication brightness (Axis) {0.0, 1.0} in 0.15 Steps + [66] = "%.2f", -- AN/APQ-159 Radar Pitch Knob - Rotate to adjust horizon bar (Axis) {-0.75, 0.75} in 0.1 Steps + -- AN/ASG-31 Sight + [40] = "%.1f", -- AN/ASG-31 Sight Mode Selector, OFF/MSL/A/A1 GUNS/A/A2 GUNS/MAN {0.0, 0.1, 0.2, 0.3, 0.4} + [42] = "%.2f", -- AN/ASG-31 Sight Reticle Depression Knob - Rotate to adjust manual mode depression angle (Axis) {0.0, 1.0} in 0.10 Steps + [41] = "%.2f", -- AN/ASG-31 Sight Reticle Intensity Knob - Rotate to adjust brightness (Axis) {0.0, 1.0} in 0.15 Steps + [136] = "%1d", -- AN/ASG-31 Sight Cage Switch - Press and hold to cage + -- RWR-IC + [551] = "%1d", -- RWR Indicator Control MODE Button + [554] = "%1d", -- RWR Indicator Control SEARCH Button + [556] = "%1d", -- RWR Indicator Control HANDOFF Button + [559] = "%1d", -- RWR Indicator Control LAUNCH Button + [561] = "%1d", -- RWR Indicator Control ALTITUDE Button + [564] = "%1d", -- RWR Indicator Control T Button + [567] = "%1d", -- RWR Indicator Control SYS TEST Button + [570] = "%1d", -- RWR Indicator Control UNKNOWN SHIP Button + [573] = "%1d", -- RWR Indicator Control ACT/PWR Button + [575] = "%1d", -- RWR Indicator Control POWER Button {1.0,0.0,-1.0} + [577] = "%.1f", -- RWR Indicator Control AUDIO Knob (Axis) {0.0, 1.0} in 0.1 Steps + [578] = "%.1f", -- RWR Indicator Control DIM Knob (Axis) {0.0, 1.0} in 0.1 Steps + -- AN/ALR-87 RWR + [140] = "%.2f", -- Adjust Display Brightness (Axis) {0.15, 0.85} in 0.1 Steps + -- Instruments -------------------------- + -- Accelerometer + [904] = "%1d", -- Accelerometer - Push to set + -- AirSpeed/Mach Indicator + [180] = "%.2f", -- Index Setting Pointer Knob (Axis) {0.0, 1.0} in 0.15 Steps + -- Altimeter AAU-34/A + [62] = "%.2f", -- Zero Setting Knob (Axis) {0.0, 1.0} in 0.04 Steps + [60] = "%1d", -- Altimeter Mode Control Lever, ELECT(rical)/PNEU(matic) {-1.0, 0.0, 1.0} + -- Attitude Indicator ARU-20 + [150] = "%.3f", -- AI Pitch Trim Knob (Axis) {0.0, 1.0} in 0.083 Steps + -- Horizontal Situation Indicator + [272] = "%.5f", -- HSI Course Set Knob (Axis) {0.0, 1.0} in 0.05818 Steps + [271] = "%.5f", -- HSI Heading Set Knob (Axis) {0.0, 1.0} in 0.05818 Steps + -- Standby Attitude Indicator + [441] = "%1d", -- Cage/Pitch Trim (Button) + [442] = "%.1f", -- Cage/Pitch Trim Knob (Axis) {0.0, 1.0} in 0.5 Steps + -- Clock + [511] = "%1d", -- ABU-11 Clock Winding and Setting knob (Button) + [510] = "%1d", -- ABU-11 Clock Winding and Setting Knob (Axis) {0.0, 1.0} in 0.6 Steps + [512] = "%1d", -- ABU-11 Clock Elapsed Time Knob + -- Electric system - CB Front Panel + [280] = "%1d", -- CB WPN PWR LEFT INBD, ON/OFF {1.0, 0.0} + [281] = "%1d", -- CB WPN PWR CENTER LINE, ON/OFF {1.0, 0.0} + [282] = "%1d", -- CB WPN PWR RIGHT INBD, ON/OFF {1.0, 0.0} + [283] = "%1d", -- CB WPN PWR LEFT OUTBD, ON/OFF {1.0, 0.0} + [284] = "%1d", -- CB WPN ARMING, ON/OFF {1.0, 0.0} + [285] = "%1d", -- CB WPN PWR RIGHT OUTBD, ON/OFF {1.0, 0.0} + [286] = "%1d", -- CB JETTISON CONTROL, ON/OFF {1.0, 0.0} + [287] = "%1d", -- CB WPN RELEASE, ON/OFF {1.0, 0.0} + [288] = "%1d", -- CB WPN MODE SEL & AIM-9-INTLK, ON/OFF {1.0, 0.0} + [289] = "%1d", -- CB EMERGENCY ALL JETTISON, ON/OFF {1.0, 0.0} + [290] = "%1d", -- CB LEFT AIM-9 CONT, ON/OFF {1.0, 0.0} + [291] = "%1d", -- CB RIGHT AIM-9 CONT, ON/OFF {1.0, 0.0} + -- Electric system - CB Left Panel + [450] = "%1d", -- CB LEFT AIM-9 POWER, ON/OFF {1.0, 0.0} + [451] = "%1d", -- CB LEFT GUN FIRING, ON/OFF {1.0, 0.0} + [453] = "%1d", -- CB 26 VOLT AC POWER, ON/OFF {1.0, 0.0} + [454] = "%1d", -- CB ATTD & HDG REF SYS A, ON/OFF {1.0, 0.0} + [455] = "%1d", -- CB CENTRAL AIR DATA COMPUTER, ON/OFF {1.0, 0.0} + [456] = "%1d", -- CB ENG IGN L ENG INST & HYD IND, ON/OFF {1.0, 0.0} + [457] = "%1d", -- CB RIGHT AIM-9 POWER, ON/OFF {1.0, 0.0} + [458] = "%1d", -- CB RIGHT GUN FIRING, ON/OFF {1.0, 0.0} + [460] = "%1d", -- CB TRIM CONTROL, ON/OFF {1.0, 0.0} + [461] = "%1d", -- CB ATTD & HDG REF SYS B, ON/OFF {1.0, 0.0} + [462] = "%1d", -- CB TOTAL TEMP PROBE HTR, ON/OFF {1.0, 0.0} + [463] = "%1d", -- CB L ENG AUX DOOR, ON/OFF {1.0, 0.0} + [464] = "%1d", -- CB CABIN COND, ON/OFF {1.0, 0.0} + [467] = "%1d", -- CB FUEL QTY PRIMARY, ON/OFF {1.0, 0.0} + [468] = "%1d", -- CB ATTD & HDG REF SYS C, ON/OFF {1.0, 0.0} + [469] = "%1d", -- CB TACAN, ON/OFF {1.0, 0.0} + [471] = "%1d", -- CB PYLON TANK FUEL CONT, ON/OFF {1.0, 0.0} + [472] = "%1d", -- CB L BOOST CL & TIP TANK FUEL CONT, ON/OFF {1.0, 0.0} + [473] = "%1d", -- CB IGNITION INVERTER POWER, ON/OFF {1.0, 0.0} + [474] = "%1d", -- CB L ENG START & AB CONT, ON/OFF {1.0, 0.0} + [475] = "%1d", -- CB R ENG START & AB CONT, ON/OFF {1.0, 0.0} + [476] = "%1d", -- CB UHF COMMAND RADIO, ON/OFF {1.0, 0.0} + [477] = "%1d", -- CB LEFT LE FLAP CONT, ON/OFF {1.0, 0.0} + [478] = "%1d", -- CB RIGHT LE FLAP CONT, ON/OFF {1.0, 0.0} + [479] = "%1d", -- CB LEFT TE FLAP CONT, ON/OFF {1.0, 0.0} + [480] = "%1d", -- CB RIGHT TE FLAP CONT & IND, ON/OFF {1.0, 0.0} + -- Electric system - CB Right Panel + [231] = "%1d", -- CB PITOT HEATER, ON/OFF {1.0, 0.0} + [233] = "%1d", -- CB R OIL & HYD IND FUEL QTY SEL, ON/OFF {1.0, 0.0} + [234] = "%1d", -- CB CABIN AIR VALVES, ON/OFF {1.0, 0.0} + [238] = "%1d", -- CB INST LIGHTS, ON/OFF {1.0, 0.0} + [239] = "%1d", -- CB R ENG AUX DOORS, ON/OFF {1.0, 0.0} + [244] = "%1d", -- CB CAUTION & WARN LIGHTS-DIM, ON/OFF {1.0, 0.0} + [245] = "%1d", -- CB OXY QTY & CANOPY SEAL, ON/OFF {1.0, 0.0} + [246] = "%1d", -- CB LDG-TAXI LAMP PWR, ON/OFF {1.0, 0.0} + --UHF Radio AN/ARC-164 + [300] = "%.2f", -- AN/ARC-164, UHF Radio Preset Channel Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, ... 0.15, 0.16, 0.17, 0.18, 0.19} + --[327] = "%.1f", -- AN/ARC-164, UHF Radio 100 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3} + --[328] = "%.1f", -- AN/ARC-164, UHF Radio 10 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} + --[329] = "%.1f", -- AN/ARC-164, UHF Radio 1 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} + --[330] = "%.1f", -- AN/ARC-164, UHF Radio 0.1 MHz Frequency Selector Knob {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9} + --[331] = "%.2f", -- AN/ARC-164, UHF Radio 0.025 MHz Frequency Selector Knob {0.0, 0.25, 0.5, 0.75} + [307] = "%.1f", -- AN/ARC-164, UHF Radio Frequency Mode Selector Switch, MANUAL/PRESET/GUARD {0.0, 0.1, 0.2} + [311] = "%.1f", -- AN/ARC-164, UHF Radio Function Selector Switch, OFF/MAIN/BOTH/ADF {0.0, 0.1, 0.2} + [310] = "%1d", -- AN/ARC-164, UHF Radio Tone Button + [308] = "%1d", -- AN/ARC-164, UHF Radio Squelch Switch, ON/OFF + [309] = "%.1f", -- AN/ARC-164, UHF Radio Volume Knob (Axis) {0.0, 1.0} in 0.1 Steps + [336] = "%.1f", -- AN/ARC-164, UHF Radio Antenna Selector Switch, UPPER/AUTO/LOWER {0.0, 0.5, 1.0} + [135] = "%1d", -- AN/ARC-164, UHF Radio Microphone Button + --TACAN + [256] = "%.1f", -- TACAN Channel Selector (Tens) - Rotate mouse wheel to select (Axis) {0.0, 1.0} in 0.1 Steps + [257] = "%.1f", -- TACAN Channel Selector (Ones) / X/Y Mode - Right mouse click to select X/Y. Rotate mouse wheel to make channel selection (Axis) {0.0, 1.0} in 0.1 Steps + [258] = "%.2f", -- TACAN Channel Selector (Ones) / X/Y Mode - Right mouse click to select X/Y. Rotate mouse wheel to make channel selection (Button) {0.87, 0.93} + [259] = "%1d", -- TACAN Signal on HSI Test Button + [261] = "%1d", -- TACAN Signal Volume Knob (Axis) {0.0, 1.0} in 0.1 Steps + [262] = "%.1f", -- TACAN Mode Selector Switch {0.0, 0.1, 0.2, 0.3, 0.4} + -- Sight Camera + [82] = "%.1f", -- Sight Camera Lens f-Stop Selector, 2.8(dull)..22(bright) (Axis) {0.0, 0.3} in 0.1 Steps + [80] = "%1d", -- Sight Camera FPS Select Switch, 24/48 + [84] = "%.1f", -- Sight Camera Overrun Selector, 0/3/10/20 {0.0, 0.1, 0.2, 0.3} + [79] = "%1d" -- Sight Camera Run (Test) Switch, ON/OFF +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + + --[443] = "%.4f", -- SAI_knob_arrow {-1.0, 1.0} {0.0, 1.0} + ExportScript.Tools.SendData(443, ExportScript.Tools.negate(mainPanelDevice:get_argument_value(443))) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + ExportScript.FlowBlinker(mainPanelDevice) + ExportScript.UhfRadio(mainPanelDevice) -- AN/ARC-164 UHF + ExportScript.UhfRadioPresets(mainPanelDevice) -- AN/ARC-164 UHF Preset List + ExportScript.TacanRadio(mainPanelDevice) -- TACAN Channel + ExportScript.FuelQuantityIndicator(mainPanelDevice) -- Fuel Quantity Indicator (Dual) + ExportScript.UhfRadioKnobs(mainPanelDevice) -- AN/ARC-164 UHF + ExportScript.RWRControlPanel(mainPanelDevice) + ExportScript.flapPositionIndicator(mainPanelDevice) + ExportScript.pitchTrimPosition(mainPanelDevice) +--[[ + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end +]] +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + + --AN/ARC-164 UHF + --------------------------------------------------- + local lUHFRadio = GetDevice(23) + if lUHFRadio:is_on() then + --ExportScript.Tools.SendDataDAC(2000, string.format("%.3f", lUHFRadio:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC(2000, ExportScript.Tools.RoundFreqeuncy(lUHFRadio:get_frequency()/1000000)) + + local lUHFRadio_PRESET = {[0]="01",[0.05]="02",[0.1]="03",[0.15]="04",[0.2]="05",[0.25]="06",[0.3]="07",[0.35]="08",[0.4]="09",[0.45]="10",[0.5]="11",[0.55]="12",[0.6]="13",[0.65]="14",[0.7]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20"} + ExportScript.Tools.SendDataDAC(2001, lUHFRadio_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(300), 2)]) + end + + -- TACAN Channel + ------------------------------------------------- + ExportScript.Tools.SendDataDAC(2002, (string.format("%0.2f", (mainPanelDevice:get_argument_value(263))) == "1.00" and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(string.format("%1d", (mainPanelDevice:get_argument_value(266))) == "0" and "X" or "Y")) + + -- Fuel Quantity Indicator (Dual) + local lLeftFuel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(22) * 2500, 0) + local lRightFuel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(23) * 2500, 0) + + ExportScript.Tools.SendDataDAC(2003, lLeftFuel) + ExportScript.Tools.SendDataDAC(2004, lRightFuel) + ExportScript.Tools.SendDataDAC(2005, lLeftFuel + lRightFuel) + + -- generic Radio display and frequency rotarys + ------------------------------------------------- + -- genericRadioConf + ExportScript.genericRadioConf = {} + ExportScript.genericRadioConf['maxRadios'] = 1 -- numbers of aviables/supported radios + ExportScript.genericRadioConf[1] = {} -- first radio + ExportScript.genericRadioConf[1]['Name'] = "AN/ARC-164 UHF" -- name of radio + ExportScript.genericRadioConf[1]['DeviceID'] = 23 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[1]['minFrequency'] = 220.000 -- lowest frequency + ExportScript.genericRadioConf[1]['maxFrequency'] = 399.975 -- highest frequency + ExportScript.genericRadioConf[1]['Power'] = {} -- power button active + ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3008 -- power button id from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 300 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.1]="02",[0.2]="03",[0.3]="04",[0.4]="05",[0.5]="06",[0.6]="07",[0.7]="08",[0.8]="09",[0.9]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20"} + ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.1 -- minimal step for preset change + ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 308 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua + --ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset + --ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 307 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua + + + --===================================================================================== + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get tehe value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + ]] +--[[ + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] +end + +---------------------- +-- Custom Functions -- +---------------------- + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their popperties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the extimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the prefered runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens + + -- TODO: Does not work because of "DCS." + -- get the freqs of the airports + local frequencyList = {} + local finalList = + { + ["Rio Gallegos"] = { + [1] = 38.5, + [2] = 119.1, + [3] = 250.1, + [4] = 3.8, + }, + ["Punta Arenas"] = { + [1] = 38.7, + [2] = 118.7, + [3] = 250.3, + [4] = 3.9, + }, + ["Ushuaia"] = { + [1] = 38.6, + [2] = 118.1, + [3] = 250.2, + [4] = 3.85, + }, + ["Rio Grande"] = { + [1] = 38.55, + [2] = 118.3, + [3] = 250.15, + [4] = 3.825, + }, + ["Mount Pleasant"] = { + [1] = 38.45, + [2] = 133.35, + [3] = 250.05, + [4] = 3.775, + }, + ["Port Stanley"] = { + [1] = 38.4, + [2] = 118.1, + [3] = 250, + [4] = 3.75, + }, + ["Ushuaia Helo Port"] = { + [1] = 38.65, + [2] = 118.5, + [3] = 250.25, + [4] = 3.875, + }, +} + --local airdromeInfo = Terrain.GetTerrainConfig("Airdromes") + --[[ for _k, _val in pairs(airdromeInfo) do -- do this for the number of keys in airdromeInfo + if _val.radio then -- if radio exists + for k, radioId in pairs(_val.radio) do --for each radio + local frequencys = DCS.getATCradiosData(radioId) + if frequencys then -- if a freqs exists + frequencyList = {} -- clear the list first + for kk, vv in pairs(frequencys) do -- for each freq + table.insert(frequencyList, vv / 1000000) -- put in table + end + finalList[_val.display_name] = frequencyList + end + end + end + end + ]] + local firstFreq = finalList[airportInfo[2][1]][1] + ExportScript.Tools.SendData(9999, firstFreq) + +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end + +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +function ExportScript.UhfRadioPresets(mainPanelDevice) + + local UhfPresetReadout = ExportScript.Tools.getListIndicatorValue(4) -- uhf radio presets + + local UhfCh1 = UhfPresetReadout.SheetTable_Channel1 + local UhfCh2 = UhfPresetReadout.SheetTable_Channel2 + local UhfCh3 = UhfPresetReadout.SheetTable_Channel3 + local UhfCh4 = UhfPresetReadout.SheetTable_Channel4 + local UhfCh5= UhfPresetReadout.SheetTable_Channel5 + local UhfCh6 = UhfPresetReadout.SheetTable_Channel6 + local UhfCh7 = UhfPresetReadout.SheetTable_Channel7 + local UhfCh8 = UhfPresetReadout.SheetTable_Channel8 + local UhfCh9 = UhfPresetReadout.SheetTable_Channel9 + local UhfCh10 = UhfPresetReadout.SheetTable_Channel10 + local UhfCh11 = UhfPresetReadout.SheetTable_Channel11 + local UhfCh12 = UhfPresetReadout.SheetTable_Channel12 + local UhfCh13 = UhfPresetReadout.SheetTable_Channel13 + local UhfCh14 = UhfPresetReadout.SheetTable_Channel14 + local UhfCh15 = UhfPresetReadout.SheetTable_Channel15 + local UhfCh16 = UhfPresetReadout.SheetTable_Channel16 + local UhfCh17 = UhfPresetReadout.SheetTable_Channel17 + local UhfCh18 = UhfPresetReadout.SheetTable_Channel18 + local UhfCh19 = UhfPresetReadout.SheetTable_Channel19 + local UhfCh20 = UhfPresetReadout.SheetTable_Channel20 + + + ExportScript.Tools.SendData(3016, "UHF 1-4" + .. "\n" .. UhfCh1 + .. "\n" .. UhfCh2 + .. "\n" .. UhfCh3 + .. "\n" .. UhfCh4 + ) + + ExportScript.Tools.SendData(3017, "UHF 5-8" + .. "\n" .. UhfCh5 + .. "\n" .. UhfCh6 + .. "\n" .. UhfCh7 + .. "\n" .. UhfCh8 + ) + + + ExportScript.Tools.SendData(3018, "UHF 9-12" + .. "\n" .. UhfCh9 + .. "\n" .. UhfCh10 + .. "\n" .. UhfCh11 + .. "\n" .. UhfCh12 + ) + + ExportScript.Tools.SendData(3019, "UHF 13-16" + .. "\n" .. UhfCh13 + .. "\n" .. UhfCh14 + .. "\n" .. UhfCh15 + .. "\n" .. UhfCh16 + ) + + ExportScript.Tools.SendData(3020, "UHF 16-20" + .. "\n" .. UhfCh17 + .. "\n" .. UhfCh18 + .. "\n" .. UhfCh19 + .. "\n" .. UhfCh20 + ) +end + + +function ExportScript.UhfRadio(mainPanelDevice) + local lUHFRadio = GetDevice(23) + if lUHFRadio:is_on() then + --ExportScript.Tools.SendData(2000, string.format("%.3f", lUHFRadio:get_frequency()/1000000)) + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy(lUHFRadio:get_frequency()/1000000)) + + local lUHFRadio_PRESET = {[0]="01",[0.05]="02",[0.1]="03",[0.15]="04",[0.2]="05", + [0.25]="06",[0.3]="07",[0.35]="08",[0.4]="09",[0.45]="10", + [0.5]="11",[0.55]="12",[0.6]="13",[0.65]="14",[0.7]="15", + [0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20"} + ExportScript.Tools.SendData(2001, lUHFRadio_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(300), 2)]) + end +end + + +function ExportScript.TacanRadio(mainPanelDevice) -- TACAN Channel + ExportScript.Tools.SendData(2002, (string.format("%0.2f", (mainPanelDevice:get_argument_value(263))) == "1.00" and "0" or "1")..ExportScript.Tools.round(mainPanelDevice:get_argument_value(264) * 10, 0)..ExportScript.Tools.round(mainPanelDevice:get_argument_value(265) * 10, 0)..(string.format("%1d", (mainPanelDevice:get_argument_value(266))) == "0" and "X" or "Y")) + --[266] = "%.4f", -- XYwheel + ExportScript.Tools.SendData(266, mainPanelDevice:get_argument_value(266) == 0 and 0 or 1) +end + +function ExportScript.FuelQuantityIndicator(mainPanelDevice) -- Fuel Quantity Indicator (Dual) + + local lLeftFuel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(22) * 2500, 0) + local lRightFuel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(23) * 2500, 0) + + ExportScript.Tools.SendData(2006, lLeftFuel) + ExportScript.Tools.SendData(2007, lRightFuel) + ExportScript.Tools.SendData(2008, lLeftFuel + lRightFuel) +end + +function ExportScript.UhfRadioKnobs(mainPanelDevice) --AN/ARC-164 UHF + + local lTmp327 = tonumber(string.format("%0.1f", mainPanelDevice:get_argument_value(327))) + local lTmp327_2 = lTmp327 + if lTmp327 == 0.0 then lTmp327_2 = 0.0 + elseif lTmp327 == 0.1 then lTmp327_2 = 0.3 + elseif lTmp327 == 0.2 then lTmp327_2 = 0.2 + elseif lTmp327 == 0.3 then lTmp327_2 = 0.1 + else lTmp327_2 = lTmp327 end + + local lTmp328_2 = 1 - mainPanelDevice:get_argument_value(328) + local lTmp329_2 = 1 - mainPanelDevice:get_argument_value(329) + local lTmp330_2 = 1 - mainPanelDevice:get_argument_value(330) + + local lTmp331 = mainPanelDevice:get_argument_value(331) + local lTmp331_2 = 0 + if lTmp331 == 0.0 then lTmp331_2 = 0.0 + elseif lTmp331 == 0.25 then lTmp331_2 = 0.75 + elseif lTmp331 == 0.5 then lTmp331_2 = 0.5 + elseif lTmp331 == 0.75 then lTmp331_2 = 0.25 + else lTmp331_2 = lTmp331 end + + ExportScript.Tools.SendData(327, lTmp327_2) + ExportScript.Tools.SendData(328, lTmp328_2) + ExportScript.Tools.SendData(329, lTmp329_2) + ExportScript.Tools.SendData(330, lTmp330_2) + ExportScript.Tools.SendData(331, lTmp331_2) +end + +function ExportScript.FlowBlinker(mainPanelDevice) + -- provides the logic for an animated indicator + -- Use a Momentary Button with Lamp + -- Image State change: ID is greater that (>) the below value - 0 + + -- The first image is a still image (frame 0) of the rest position + -- The second image is an animation gif + -- The logic below will allow the longest reasonable time for the gif to play + -- The time for your gif will be based on the time the ingame animation goes from 0 to 1 and back to 0 + -- If the gif is too long the still will appear before the end of the gif, possibly making an unwanted result + -- You may want to set your gif to no repeat when making it + local blink = mainPanelDevice:get_argument_value(600) -- FlowBlinker + if blink > 0.0010 then + blink = 1 + else + blink = 0 + end + ExportScript.Tools.SendData(9000, blink) + +end + +function ExportScript.RWRControlPanel(mainPanelDevice) + -- 4003 & 4008 are reserved for logical alignment. LAUNCH & ACT/PWR lights INOP. + ExportScript.Tools.SendData(4000, getRWRButtonLights(mainPanelDevice, 552, 553)) + ExportScript.Tools.SendData(4001, getRWRButtonLights(mainPanelDevice, 555)) + ExportScript.Tools.SendData(4002, getRWRButtonLights(mainPanelDevice, 557, 558)) + ExportScript.Tools.SendData(4004, getRWRButtonLights(mainPanelDevice, 562, 563)) + + ExportScript.Tools.SendData(4005, getRWRButtonLights(mainPanelDevice, 565, 566)) + ExportScript.Tools.SendData(4006, getRWRButtonLights(mainPanelDevice, 568, 569)) + ExportScript.Tools.SendData(4007, getRWRButtonLights(mainPanelDevice, 571, 572)) + local pwr_on = mainPanelDevice:get_argument_value(576) > 0.0 + ExportScript.Tools.SendData(4009, pwr_on and "SYSTEM\n\n\nPOWER" or "") +end + +function getRWRButtonLights(mainPanelDevice, first_id, second_id) + -- Associate argument IDs with their text representation, which + -- will be returned as a string for StreamDeck + local labels_map = { + [552] = "PRIORITY", + [553] = "OPEN", + [555] = "█ S █", + [557] = "█ ◆︎ █", + [558] = "█ H █", + [562] = "LOW", + [563] = "ALT", + [565] = "TGT SEP", + [566] = "TGT SEP", + [568] = "ON", + [569] = "SYS TEST", + [571] = "█ U █", + [572] = "UNKNOWN", + } + local first_on = mainPanelDevice:get_argument_value(first_id) > 0.0 + local second_on = mainPanelDevice:get_argument_value(second_id) > 0.0 + local first_label = first_on and labels_map[first_id] or " " + local second_label = second_on and labels_map[second_id] or " " + + return first_label.."\n\n\n"..second_label +end + +function ExportScript.flapPositionIndicator(mainPanelDevice) + local flapIndicatorPositions = { + [0.1] = "UP", + [0.2] = "AUTO", + [0.3] = "FXD", + [0.4] = "FULL" + } + local currentPos = mainPanelDevice:get_argument_value(51) + currentPos = math.floor(currentPos * 10) / 10 -- Cut off excess decimal digits + local indicatorText = flapIndicatorPositions[currentPos] or "" + ExportScript.Tools.SendData(4010, indicatorText) + ExportScript.Tools.SendData(4011, string.len(indicatorText)) -- If != 0, flaps in transition +end + +function ExportScript.pitchTrimPosition(mainPanelDevice) + local trimValue = mainPanelDevice:get_argument_value(52) + trimValue = math.floor(trimValue * 100) / 10 + ExportScript.Tools.SendData(4012, string.format("%+.1f", trimValue)) +end + +---------------------- +-- Helper Functions -- +---------------------- + +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-5E-3_FC.lua b/Scripts/DCS-ExportScript/ExportsModules/F-5E-3_FC.lua new file mode 100644 index 00000000..e6288bb4 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-5E-3_FC.lua @@ -0,0 +1,234 @@ +-- F-5E FC + +ExportScript.FoundDCSModule = true +ExportScript.Version.F5E3_FC = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [3] = "%0.4f", -- Slipball + [4] = "%0.4f", -- mirrors_draw + [6] = "%0.4f", -- Accelerometer + [7] = "%0.4f", -- AOA_Units + [8] = "%0.4f", -- Airspeed + [9] = "%0.4f", -- AAU34_PNEU_flag + [10] = "%0.4f", -- Altimeter_100_footPtr + [11] = "%0.4f", -- Altimeter_10000_footCount + [12] = "%0.4f", -- EGT_Left + [14] = "%0.4f", -- EGT_Right + [16] = "%0.4f", -- Tachometer_Left + [17] = "%0.4f", -- Tachometer_Right + [18] = "%0.4f", -- CLOCK_currtime_minutes + [19] = "%0.4f", -- CLOCK_currtime_hours + [22] = "%0.4f", -- FuelQuantity_Left + [23] = "%0.4f", -- FuelQuantity_Right + [24] = "%0.4f", -- Variometer + [30] = "%0.4f", -- AI_Bank + [32] = "%0.4f", -- HSI_CompassCard + [35] = "%0.4f", -- HSI_CourseArrow + [36] = "%0.4f", -- HSI_CourseDevInd + [37] = "%0.4f", -- CLOCK_elapsed_time_seconds + [43] = "%0.4f", -- RetDepressionDrum_100 + [44] = "%0.4f", -- RetDepressionDrum_10 + [45] = "%0.4f", -- RetDepressionDrum_1 + [51] = "%0.4f", -- Flap_Indicator + [52] = "%0.4f", -- Pitch_Trim + [56] = "%0.4f", -- pressure_setting_3 + [57] = "%0.4f", -- pressure_setting_2 + [58] = "%0.4f", -- pressure_setting_1 + [59] = "%0.4f", -- pressure_setting_0 + [71] = "%0.4f", -- StickRoll + [74] = "%0.4f", -- StickPitch + [81] = "%0.4f", -- AI_Pitch + [85] = "%0.4f", -- MotorRunKnob + [97] = "%0.4f", -- AlterReleaseRods + [102] = "%0.4f", -- LeftFingerLift + [103] = "%0.4f", -- RightFingerLift + [104] = "%0.4f", -- LeftThrottle + [105] = "%0.4f", -- RightThrottle + [107] = "%0.4f", -- NozzlePos_Left + [108] = "%0.4f", -- NozzlePos_Right + [109] = "%0.4f", -- Utility_Pressure + [110] = "%0.4f", -- Flight_Pressure + [111] = "%0.4f", -- AuxIntakeDoors + [112] = "%0.4f", -- OilPressure_Left + [113] = "%0.4f", -- OilPressure_Right + [114] = "%0.4f", -- CabinPressure + [139] = "%0.4f", -- HSI_BearingPtr + [141] = "%0.4f", -- HSI_DevDF_Win + [142] = "%0.4f", -- HSI_Range_flag + [143] = "%0.4f", -- HSI_OFF_flag + [144] = "%0.4f", -- HSI_HeadingMark + [146] = "%0.4f", -- HSI_ToFrom + [149] = "%0.4f", -- AI_OFF_flag + [155] = "%0.4f", -- RangeScale_5 + [156] = "%0.4f", -- RangeScale_10 + [157] = "%0.4f", -- RangeScale_20 + [158] = "%0.4f", -- RangeScale_40 + [159] = "%0.4f", -- InRangeLight + [160] = "%0.4f", -- FailLight + [161] = "%0.4f", -- LockOnLight + [162] = "%0.4f", -- ExcessGLight + [163] = "%0.4f", -- ScaleBrightness + [177] = "%0.4f", -- SetAirspeed + [178] = "%0.4f", -- MaxAirspeed + [179] = "%0.4f", -- MachIndicator + [181] = "%0.4f", -- Canopy + [197] = "%0.4f", -- IFF_Code4Sw_Pull + [198] = "%0.4f", -- IFF_MasterSw_Pull + [260] = "%0.4f", -- TACAN_test_light + [268] = "%0.4f", -- HSI_Range_100 + [269] = "%0.4f", -- HSI_Range_10 + [270] = "%0.4f", -- HSI_Range_1 + [276] = "%0.4f", -- HSI_CourseSel_100_10 + [277] = "%0.4f", -- HSI_CourseSel_1 + [302] = "%0.4f", -- UHFRadio100MHz + [303] = "%0.4f", -- UHFRadio10MHz + [304] = "%0.4f", -- UHFRadio1MHz + [305] = "%0.4f", -- UHFRadio01MHz + [306] = "%0.4f", -- UHFRadio0025MHz + [318] = "%0.4f", -- TdcControlAzimuth + [319] = "%0.4f", -- TdcControlRange + [326] = "%0.4f", -- UHFRadioChannel + [390] = "%0.4f", -- OxygenQuantity + [401] = "%0.4f", -- ChaffDrumCounter_10 + [402] = "%0.4f", -- ChaffDrumCounter_1 + [405] = "%0.4f", -- FlareDrumCounter_10 + [406] = "%0.4f", -- FlareDrumCounter_1 + [425] = "%0.4f", -- Tachometer_percent_Left + [426] = "%0.4f", -- Tachometer_percent_Right + [438] = "%0.4f", -- SAI_Pitch + [439] = "%0.4f", -- SAI_Bank + [440] = "%0.4f", -- SAI_OFF_flag + [443] = "%0.4f", -- SAI_knob_arrow + [500] = "%0.4f", -- Rudder + [501] = "%0.4f", -- LeftWheelBrake + [502] = "%0.4f", -- RightWheelBrake + [509] = "%0.4f", -- CLOCK_elapsed_time_minutes + [520] = "%0.4f", -- Altimeter_1000_footCount + [521] = "%0.4f", -- Altimeter_100_footCount + [525] = "%0.4f", -- FuelFlow_Left + [526] = "%0.4f", -- FuelFlow_Right + [600] = "%0.4f", -- FlowBlinker + [604] = "%0.4f", -- FlowPressure + [704] = "%0.4f", -- AOA_poweroff_flag + [712] = "%0.4f", -- CanopyHandle + [775] = "%0.4f", -- pilot_draw + [902] = "%0.4f", -- AccelerometerMin + [903] = "%0.4f", -- AccelerometerMax + [905] = "%0.4f", -- CanopyDamages +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-86F Sabre.lua b/Scripts/DCS-ExportScript/ExportsModules/F-86F Sabre.lua index b9531aa8..1e3316da 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/F-86F Sabre.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/F-86F Sabre.lua @@ -1,8 +1,11 @@ -- F-86 Export +-- https://github.com/asherao/DCS-ExportScripts +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info ExportScript.FoundDCSModule = true ExportScript.Version.F86 = "1.2.1" ---ExportScript.NoLuaExportBeforeNextFrame = true ExportScript.ConfigEveryFrameArguments = { @@ -326,6 +329,8 @@ function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) ]] + + ExportScript.Radios(mainPanelDevice) end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) @@ -362,6 +367,17 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {654,813,811,812}) -- Compass Light Switch, Instrument Panel Primary Light Rheostat, Instrument Panel Auxiliary Light Rheostat, Console and Panel Light Rheostat + + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end end function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) @@ -402,4 +418,756 @@ end ----------------------------- -- Custom functions -- ------------------------------ \ No newline at end of file +----------------------------- + +function ExportScript.Radios(mainPanelDevice) + + local UHF_Freq = (GetDevice(26):get_frequency())/1000000 + --ExportScript.Tools.SendData(3000, string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + UHF_Freq = ExportScript.Tools.RoundFreqeuncy(UHF_Freq) + + local list_indication4 = ExportScript.Tools.split(list_indication(4), "%c") + local UHF_Channel + local ADF_Freq + if list_indication4 ~= nil then + UHF_Channel = list_indication4[123] + ADF_Freq = list_indication4[108] -- using this way, the string looks like it is always 4 long + ADF_Freq = ExportScript.Tools.trim(ADF_Freq) + else + UHF_Channel = "N/A" + ADF_Freq = "N/A" + end + + ExportScript.Tools.SendData(3000, UHF_Freq) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ExportScript.Tools.SendData(3001, "CH " .. UHF_Channel) -- results in something like "1" or "G" + ExportScript.Tools.SendData(3002, "CH " .. UHF_Channel .. "\n" .. UHF_Freq) + ExportScript.Tools.SendData(3003, "ADF\n" .. ADF_Freq) +end + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their popperties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the extimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the prefered runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end +---------------------- +-- Helper Functions -- +---------------------- +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end + +function isNilOrEmpty(value) + if value == "" or value == nil then + return true + else + return false + end +end + +function NilOrEmpty(value) + if value == "" then + return 'empty' + elseif value == nil then + return 'empty' + else + return value + end +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/F-86F_FC.lua b/Scripts/DCS-ExportScript/ExportsModules/F-86F_FC.lua new file mode 100644 index 00000000..214ca238 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/F-86F_FC.lua @@ -0,0 +1,194 @@ +-- F-86F FC + +ExportScript.FoundDCSModule = true +ExportScript.Version.F86F_FC = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [3] = "%0.4f", -- mirrors_draw + [6] = "%0.4f", -- Accelerometer + [8] = "%0.4f", -- AirspeeedM1 + [12] = "%0.4f", -- ExhaustTemperature + [16] = "%0.4f", -- Tachometer + [18] = "%0.4f", -- CLOCK_currtime_minutes + [19] = "%0.4f", -- CLOCK_currtime_hours + [22] = "%0.4f", -- FuelQuantity + [24] = "%0.4f", -- Variometer + [25] = "%0.4f", -- TurnIndicator + [31] = "%0.4f", -- SlipIndicator + [37] = "%0.4f", -- CLOCK_currtime_seconds + [37] = "%0.4f", -- CLOCK_seconds_meter_time_minutes + [52] = "%0.4f", -- CLOCK_flight_hours + [53] = "%0.4f", -- CLOCK_flight_minutes + [56] = "%0.4f", -- CLOCK_flight_time_meter_status + [71] = "%0.4f", -- StickRoll + [74] = "%0.4f", -- StickPitch + [81] = "%0.4f", -- AttitudeIndicatorPitchSphere + [104] = "%0.4f", -- Throttle + [109] = "%0.4f", -- HydPress + [112] = "%0.4f", -- OilPressure + [114] = "%0.4f", -- CockpitAltimeter + [178] = "%0.4f", -- Airspeeed + [179] = "%0.4f", -- MachNumber + [180] = "%0.4f", -- Panel_Shake_Y + [180] = "%0.4f", -- PrimaryInstLights + [181] = "%0.4f", -- Panel_Shake_Z + [181] = "%0.4f", -- CockpitCanopy + [182] = "%0.4f", -- IlluminationLights + [185] = "%0.4f", -- AuxiliaryInstrumentLights + [189] = "%0.4f", -- Panel_Rot_X + [204] = "%0.4f", -- NormalTrimSwitch_pitch + [214] = "%0.4f", -- AttitudeIndicatorPitchShift + [215] = "%0.4f", -- Left_Wheel_Brake + [216] = "%0.4f", -- Right_Wheel_Brake + [219] = "%0.4f", -- ARN6_ScaleLight + [221] = "%0.4f", -- EmergencyJettisonHandleRot + [222] = "%0.4f", -- LandingGearUnsafe + [353] = "%0.4f", -- OxygenPressure + [500] = "%0.4f", -- Rudder + [523] = "%0.4f", -- Altimeter1000 + [524] = "%0.4f", -- Altimeter100 + [531] = "%0.4f", -- FuelFlow + [540] = "%0.4f", -- PilotDraw + [600] = "%0.4f", -- ARN6_Bearing + [601] = "%0.4f", -- VoltageDC + [602] = "%0.4f", -- Loadmeter + [603] = "%0.4f", -- LABS_roll_needle + [604] = "%0.4f", -- LABS_pitch_needle + [605] = "%0.4f", -- AttitudeIndicatorPitch + [606] = "%0.4f", -- AttitudeIndicatorBank + [700] = "%0.4f", -- AltimeterHG + [705] = "%0.4f", -- OxygenFlowBlinker + [707] = "%0.4f", -- Altimeter10000 + [709] = "%0.4f", -- AirspeeedDrum + [711] = "%0.4f", -- GyroCompassNeedle + [712] = "%0.4f", -- GyroCompassScale + [713] = "%0.4f", -- AttitudeIndicatorOffFlag + [800] = "%0.4f", -- ARN6_TuningMeter + [801] = "%0.4f", -- ARN6_Tuning + [804] = "%0.4f", -- ARN6_Band + [814] = "%0.4f", -- ARN6_Scale + [818] = "%0.4f", -- EmergencyJettisonHandlePos + [825] = "%0.4f", -- StandByCompassLight + [830] = "%0.4f", -- ARN6_FreqScale + [1002] = "%0.4f", -- AccelerometerMax + [1003] = "%0.4f", -- AccelerometerMin + [1005] = "%0.4f", -- AttitudeIndicatorBankNeedle + [1006] = "%0.4f", -- CLOCK_seconds_meter_time_seconds + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/FA-18C_hornet.lua b/Scripts/DCS-ExportScript/ExportsModules/FA-18C_hornet.lua index 0d9b0182..ceae3371 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/FA-18C_hornet.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/FA-18C_hornet.lua @@ -34,7 +34,7 @@ ExportScript.ConfigEveryFrameArguments = [242] = "%.4f", -- HydIndBrake {0.0, 1000.0, 2000.0, 3000.0, 4000.0, 5000.0}{0.0, 0.036, 0.338, 0.636, 0.924, 1.0} -- Gear Interface [228] = "%.4f", -- EmergGearDownHandle - [240] = "%.4f", -- EmergParkBrakeHandle + -- [240] = "%.4f", -- EmergParkBrakeHandle delete -- Instruments -------------------------- -- Standby Pressure Altimeter AAU-52/A [218] = "%.4f", -- Altimeter_100_footPtr {0.0, 1000.0} {0.0, 1.0} @@ -166,13 +166,16 @@ ExportScript.ConfigEveryFrameArguments = [469] = "%1d", -- IFEI_buttons -- RWR [276] = "%1d", -- Lower - [273] = "%1d", -- Limit + --[273] = "%1d", -- Limit + [273] = "%.1f", -- Limit [274] = "%1d", -- Display --[270] = "%1d", -- SpecialEn [271] = "%1d", -- Special - [267] = "%1d", -- Enable + --[267] = "%1d", -- Enable + [267] = "%.1f", -- Enable [268] = "%1d", -- Offset - [264] = "%1d", -- Fail + --[264] = "%1d", -- Fail + [264] = "%.1f", -- Fail [265] = "%1d", -- Bit [520] = "%.1f", -- RwrLightsBrightness -- CMDS @@ -181,6 +184,7 @@ ExportScript.ConfigEveryFrameArguments = [149] = "%.4f", -- heading [150] = "%.4f", -- pitch [151] = "%.4f", -- bank + } ExportScript.ConfigArguments = { @@ -299,7 +303,8 @@ ExportScript.ConfigArguments = [159] = "%1d", -- Station Jettison Select Button, RIGHT IN [161] = "%1d", -- Station Jettison Select Button, RIGHT OUT [235] = "%1d", -- Selective Jettison Pushbutton - [236] = "%1d", -- Selective Jettison Knob, L FUS MSL/SAFE/R FUS MSL/ RACK/LCHR /STORES {0.0,0.1,0.2,0.3,0.4} + --[236] = "%1d", -- Selective Jettison Knob, L FUS MSL/SAFE/R FUS MSL/ RACK/LCHR /STORES {0.0,0.1,0.2,0.3,0.4} + [236] = "%.1f", -- Selective Jettison Knob, L FUS MSL/SAFE/R FUS MSL/ RACK/LCHR /STORES {0.0,0.1,0.2,0.3,0.4} [135] = "%.1f", -- IR Cooling Switch, ORIDE/NORM/OFF {0.0,0.1,0.2} -- Fire Systems [46] = "%1d", -- Fire Extinguisher Pushbutton @@ -310,7 +315,8 @@ ExportScript.ConfigArguments = [28] = "%1d", -- Right Engine/AMAD Fire Warning/Extinguisher Light - (RMB) cover control -- Multipurpose Display Group ----------- -- Head-Up Display - [140] = "%1d", -- HUD Symbology Reject Switch, NORM/REJ 1/REJ 2 {0.0,0.1,0.2} + --[140] = "%1d", -- HUD Symbology Reject Switch, NORM/REJ 1/REJ 2 {0.0,0.1,0.2} + [140] = "%.1f", -- HUD Symbology Reject Switch, NORM/REJ 1/REJ 2 {0.0,0.1,0.2} [141] = "%.2f", -- HUD Symbology Brightness Control Knob {0.0,1.0} in 0.1 Steps [142] = "%1d", -- HUD Symbology Brightness Selector Knob, DAY/NIGHT [143] = "%.2f", -- HUD Black Level Control Knob {0.0,1.0} in 0.1 Steps @@ -320,7 +326,8 @@ ExportScript.ConfigArguments = [147] = "%1d", -- HUD Altitude Switch, BARO/RDR [148] = "%1d", -- HUD Attitude Selector Switch, INS/AUTO/STBY {-1.0,0.0,1.0} -- Left MDI - [51] = "%1d", -- Left MDI Brightness Selector Knob, OFF/NIGHT/DAY {0.0,0.1,0.2} + --[51] = "%1d", -- Left MDI Brightness Selector Knob, OFF/NIGHT/DAY {0.0,0.1,0.2} + [51] = "%.1f", -- Left MDI Brightness Selector Knob, OFF/NIGHT/DAY {0.0,0.1,0.2} [52] = "%.2f", -- Left MDI Brightness Control Knob {0.0,1.0} in 0.1 Steps [53] = "%.2f", -- Left MDI Contrast Control Knob {0.0,1.0} in 0.1 Steps [54] = "%1d", -- Left MDI PB 1 @@ -496,6 +503,7 @@ ExportScript.ConfigArguments = -- Targeting Pod, FLIR [439] = "%.1f", -- FLIR Switch, ON/STBY/OFF {0.0,0.5,1.0} [441] = "%.1f", -- LTD/R Switch, ARM/SAFE/AFT {0.0,0.5,1.0} + [442] = "%1d", -- LST/NFLR Switch, ON/OFF } ----------------------------- @@ -505,29 +513,9 @@ ExportScript.ConfigArguments = -- Pointed to by ProcessIkarusDCSHighImportance function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) <- special function for get frequency data - ]] end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000), 2) -- export to Hardware '2' Config - ]] end ----------------------------------------------------- @@ -546,10 +534,16 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) ExportScript.Tools.SendData("ExportID", "Format") ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) <- special function for get frequency data ]] - + + --this "calls" the function. the actual function is located at the bottom of the file + ExportScript.TripleFireFeature(mainPanelDevice) + -- Kneeboard Info. Contains Name of carrier, callsign, ATC freq, tacan, ils, and link4 + ExportScript.KneeboardInfo(mainPanelDevice) -- recommend ~8pt font in DCS-Interface + --ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) -- IFEI - Engine, Fuel and Clock informations + local lEngineFuelClock = ExportScript.Tools.getListIndicatorValue(5) if ExportScript.Config.Debug then ExportScript.Tools.WriteToLog('EngineFuelClock: '..ExportScript.Tools.dump(lEngineFuelClock)) @@ -610,6 +604,7 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) ExportScript.Tools.SendData(2020, ExportScript.Tools.DisplayFormat(lUFCDisplays.UFC_ScratchPadString1Display, 2)) -- ScratchPadString1Display 2 character ExportScript.Tools.SendData(2021, ExportScript.Tools.DisplayFormat(lUFCDisplays.UFC_ScratchPadString2Display, 2)) -- ScratchPadString2Display 2 character ExportScript.Tools.SendData(2022, ExportScript.Tools.DisplayFormat(lUFCDisplays.UFC_ScratchPadNumberDisplay, 7)) -- ScratchPadNumberDisplay 7 character + ExportScript.Tools.SendData(2090, ExportScript.Tools.DisplayFormat( lUFCDisplays.UFC_ScratchPadString1Display .. lUFCDisplays.UFC_ScratchPadString2Display, 4) .. "\n" .. ExportScript.Tools.DisplayFormat(lUFCDisplays.UFC_ScratchPadNumberDisplay, 7)) -- ScratchPadString2Display all characters local lTmpCueing = " " -- Option Displays @@ -636,6 +631,7 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) ExportScript.Tools.SendData(2020, " ") -- ScratchPadString1Display 2 character ExportScript.Tools.SendData(2021, " ") -- ScratchPadString2Display 2 character ExportScript.Tools.SendData(2022, " ") -- ScratchPadNumberDisplay 7 character + ExportScript.Tools.SendData(2090, " ") -- ScratchPadString2Display all characters -- Option Displays ExportScript.Tools.SendData(2023, " ") -- OptionDisplay1 5 character @@ -719,28 +715,98 @@ function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) local lUHF2Radio = GetDevice(40) ExportScript.Tools.SendDataDAC(2031, ExportScript.Tools.DisplayFormat(ExportScript.Tools.RoundFreqeuncy((lUHF2Radio:get_frequency()/1000000), "7.3", false, 0.005)), 7) - --===================================================================================== - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) - - local ltmp1 = 0 - for ltmp2 = 0, 13, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - --ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end - ]] ---[[ - local ltmp1 = 0 - for ltmp2 = 1, 73, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end -]] end ----------------------------- -- Custom functions -- ------------------------------ \ No newline at end of file +----------------------------- + +function ExportScript.KneeboardInfo(mainPanelDevice) + local kneeboardGet = ExportScript.Tools.getListIndicatorValue(13) -- list_indication(13) + + if kneeboardGet.Carrier_callsign1 == nil then + ExportScript.Tools.SendData(3002, 'CV\nDATA') + else + ExportScript.Tools.SendData(3002, kneeboardGet.Carrier_callsign1 + .. '\n' .. kneeboardGet.ATC_Frequency1 + .. '\n' .. 'TCN' .. kneeboardGet.TACAN_Channel1 + .. '\n' .. 'ILS ' .. kneeboardGet.ILS_Channel1 + .. '\n' .. 'L4 ' .. kneeboardGet.Link4_Frequency1) + end +end + + +function ExportScript.TripleFireFeature(mainPanelDevice) + --This function will get the status of the three fire lights. + --When a light is lit, its text will be exported + + --we will make the variable 'light_leftEngFireValue' + --it will contain the value of the light animation for the left engine fire light + local light_leftEngFireValue = mainPanelDevice:get_argument_value(10) + + --'light_rightEngFireValue' will contain the value of the light animation for the right engine fire light + local light_rightEngFireValue = mainPanelDevice:get_argument_value(26) + + --'light_apuFireValue' will contain the value of the light animation for the apu fire light + local light_apuFireValue = mainPanelDevice:get_argument_value(29) + + --now that we have all of the values, we have to create some logic to see if any of them are on + + --a variable that begins with "is" can be considered a boolean, + --which means we will make it true or false, represented by 1 or 0, respectively + + local isLeftEngFireLit + local isRightEngFireLit + local isApuFireLit + + --using the modelViewer, you can see that the light comes on for values above 0.51-ish + --we will take that value and determine the true/false of its related boolean (bool) + if light_leftEngFireValue > 0.51 then + isLeftEngFireLit = 1 + else + isLeftEngFireLit = 0 + end + + --we will do the same for the right engine and apu + if light_leftEngFireValue > 0.51 then + isRightEngFireLit = 1 + else + isRightEngFireLit = 0 + end + + if light_apuFireValue > 0.51 then + isApuFireLit = 1 + else + isApuFireLit = 0 + end + + --now that we have the status of all of the lights, we will use them in another logic + local isFireHappening + --if any of these values are true, there is a fire + if (isLeftEngFireLit == 1) or (isRightEngFireLit == 1) or (isApuFireLit == 1) then + isFireHappening = 1 + else + isFireHappening = 0 + end + + --now we export the results in a unique export ID + ExportScript.Tools.SendData(3000, isFireHappening) + + --But, remember how we also wanted the text too? + --We will do that like this + --if a light is lit, then we populate the variable with a string + --we will call that variable 'whatIsOnFire' + local whatIsOnFire + if isLeftEngFireLit == 1 then + whatIsOnFire = "L ENG" + elseif isRightEngFireLit == 1 then + whatIsOnFire = "R ENG" + elseif isApuFireLit == 1 then + whatIsOnFire = "APU" + else + whatIsOnFire = "" --it will be blank if nothing is on fire + end + + --use 3001 as a 'Title Text Change' in the streamdeck + ExportScript.Tools.SendData(3001, whatIsOnFire) +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/JF-17.lua b/Scripts/DCS-ExportScript/ExportsModules/JF-17.lua new file mode 100644 index 00000000..7edcab52 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/JF-17.lua @@ -0,0 +1,491 @@ +-- JF-17 Export Module Revision CKN200515A +-- Feel free to use, modify and repost in any way you desire. + +ExportScript.FoundDCSModule = true +ExportScript.Version.JF17 = "1.2.1" + +ExportScript.ConfigEveryFrameArguments = +{ + [130] = "%1d", -- Master Warning Light, OFF/ON {0,1} + [131] = "%1d", -- Fire Warning Light, OFF/ON {0,1} + [132] = "%1d", -- FCS Warning Light, OFF/ON {0,1} + [242] = "%1d", -- OXY BLINK Warning Light, OFF/ON {0,1} + [250] = "%.2f", -- Stick Pitch Position, MIN..MAX {0..1} + [251] = "%.2f", -- Stick Bank Position, MIN..MAX {0..1} + [254] = "%.2f", -- Throttle Position, MIN..MAX {-1..1} + [256] = "%.2f", -- Left Toe Brake Position, MIN..MAX {0..1} + [257] = "%.2f", -- Right Toe Brake Position, MIN..MAX {0..1} + [259] = "%.2f", -- Rudder Pedal Left-Right Position, MIN..MAX {-1..1} + [290] = "%.2f", -- Oxygen Gauge Needle Position, MIN..MAX {0..1} + [291] = "%.2f", -- Pneumatic Gauge M Needle Position, MIN..MAX {0..1} + [292] = "%.2f", -- Pneumatic Gauge E Needle Position, MIN..MAX {0..1} + [293] = "%.4f", -- Magnetic Heading Backup Compass, MIN..MAX {0..1} + [504] = "%.2f", -- Landing Gear Indicator Light Knob, MIN..MAX {0..1} (0=0, 0.25=90, 0.5=180, 0.75=270) + [532] = "%1d", -- Yaw Trim Switch, LEFT/CENTER/RIGHT {-1,0,1} + [538] = "%1d", -- Flare Dispense Button, OUT/IN {0,1} + --- Radio Panel --- + [545] = "%.2f", -- Radio Volume Knob, MIN..MAX {0..1} + [547] = "%.1f", -- Radio Mode Selector, OFF/TR/TR+G/ADF/GD/SET {0,0.2,0.4,0.6,0.8,1} + [549] = "%1d", -- Radio 1/TONE Button, OUT/IN {0,1} + [550] = "%1d", -- Radio 2/- Button, OUT/IN {0,1} + [551] = "%1d", -- Radio 3/+ Button, OUT/IN {0,1} + [552] = "%1d", -- Radio 4/H Button, OUT/IN {0,1} + [553] = "%1d", -- Radio 5/A Button, OUT/IN {0,1} + [554] = "%1d", -- Radio 6/M Button, OUT/IN {0,1} + [555] = "%1d", -- Radio 7/P Button, OUT/IN {0,1} + [556] = "%1d", -- Radio 8/C Button, OUT/IN {0,1} + [557] = "%1d", -- Radio 9/T Button, OUT/IN {0,1} + [558] = "%1d", -- Radio <-/MAN Button, OUT/IN {0,1} + [559] = "%1d", -- Radio 0/PRE Button, OUT/IN {0,1} + [560] = "%1d", -- Radio ->/ENT Button, OUT/IN {0,1} + --- + [570] = "%.2f", -- Throttle Friction Handle, MIN..MAX {0..1} + --- UFCP --- + [700] = "%1d", -- UFCP PFL/1 Button, OUT/IN {0,1} + [701] = "%1d", -- UFCP VRC/2 Button, OUT/IN {0,1} + [702] = "%1d", -- UFCP 3 Button, OUT/IN {0,1} + [703] = "%1d", -- UFCP L1 Button, OUT/IN {0,1} + [704] = "%1d", -- UFCP R1 Button, OUT/IN {0,1} + [705] = "%1d", -- UFCP OAP Button, OUT/IN {0,1} + [706] = "%1d", -- UFCP MRK Button, OUT/IN {0,1} + [707] = "%1d", -- UFCP DST/4 Button, OUT/IN {0,1} + [708] = "%1d", -- UFCP TOT/5 Button, OUT/IN {0,1} + [709] = "%1d", -- UFCP TOD/6 Button, OUT/IN {0,1} + [710] = "%1d", -- UFCP L2 Button, OUT/IN {0,1} + [711] = "%1d", -- UFCP R2 Button, OUT/IN {0,1} + [712] = "%1d", -- UFCP RU Button, OUT/IN {0,1} + [713] = "%1d", -- UFCP HNS Button, OUT/IN {0,1} + [714] = "%1d", -- UFCP FUL/7 Button, OUT/IN {0,1} + [715] = "%1d", -- UFCP IFF/8 Button, OUT/IN {0,1} + [716] = "%1d", -- UFCP 9 Button, OUT/IN {0,1} + [717] = "%1d", -- UFCP L3 Button, OUT/IN {0,1} + [718] = "%1d", -- UFCP R3 Button, OUT/IN {0,1} + [719] = "%1d", -- UFCP A/P Button, OUT/IN {0,1} + [720] = "%1d", -- UFCP FPM Button, OUT/IN {0,1} + [721] = "%1d", -- UFCP RTN Button, OUT/IN {0,1} + [722] = "%1d", -- UFCP 0 Button, OUT/IN {0,1} + [723] = "%1d", -- UFCP N/A Button, OUT/IN {0,1} + [724] = "%1d", -- UFCP L4 Button, OUT/IN {0,1} + [725] = "%1d", -- UFCP R4 Button, OUT/IN {0,1} + [726] = "%1d", -- UFCP N/A Button, OUT/IN {0,1} + [727] = "%1d", -- UFCP N/A Button, OUT/IN {0,1} + [728] = "%.2f", -- HUD Contrast Knob, MIN..MAX {0..1} + [729] = "%.2f", -- HUD Brightness Knob, MIN..MAX {0..1} + [730] = "%1d", -- UFCP +/- Momentary Switch {1,0,-1} + [731] = "%.2f", -- HUD Backup Reticle Knob, MIN..MAX {0..1} + [732] = "%.2f", -- UFCP Brightness Knob, MIN..MAX {0..1} + --- MFCD --- + [734] = "%1d", -- Left MFCD SYM + Button, OUT/IN {0,1} + [735] = "%1d", -- Left MFCD SYM - Button, OUT/IN {0,1} + [736] = "%1d", -- Left MFCD U1 Button, OUT/IN {0,1} + [737] = "%1d", -- Left MFCD U2 Button, OUT/IN {0,1} + [738] = "%1d", -- Left MFCD U3 Button, OUT/IN {0,1} + [739] = "%1d", -- Left MFCD U4 Button, OUT/IN {0,1} + [740] = "%1d", -- Left MFCD U5 Button, OUT/IN {0,1} + [741] = "%1d", -- Left MFCD Power Switch, OFF/ON {0,1} + [742] = "%1d", -- Left MFCD L1 Button, OUT/IN {0,1} + [743] = "%1d", -- Left MFCD L2 Button, OUT/IN {0,1} + [744] = "%1d", -- Left MFCD L3 Button, OUT/IN {0,1} + [745] = "%1d", -- Left MFCD L4 Button, OUT/IN {0,1} + [746] = "%1d", -- Left MFCD L5 Button, OUT/IN {0,1} + [747] = "%1d", -- Left MFCD L6 Button, OUT/IN {0,1} + [748] = "%1d", -- Left MFCD L7 Button, OUT/IN {0,1} + [749] = "%1d", -- Left MFCD L8 Button, OUT/IN {0,1} + [750] = "%1d", -- Left MFCD R1 Button, OUT/IN {0,1} + [751] = "%1d", -- Left MFCD R2 Button, OUT/IN {0,1} + [752] = "%1d", -- Left MFCD R3 Button, OUT/IN {0,1} + [753] = "%1d", -- Left MFCD R4 Button, OUT/IN {0,1} + [754] = "%1d", -- Left MFCD R5 Button, OUT/IN {0,1} + [755] = "%1d", -- Left MFCD R6 Button, OUT/IN {0,1}} + [756] = "%1d", -- Left MFCD R7 Button, OUT/IN {0,1} + [757] = "%1d", -- Left MFCD R8 Button, OUT/IN {0,1} + [758] = "%1d", -- Left MFCD CONT + Button, OUT/IN {0,1} + [759] = "%1d", -- Left MFCD CONT - Button, OUT/IN {0,1} + [760] = "%1d", -- Left MFCD D1 Button, OUT/IN {0,1} + [761] = "%1d", -- Left MFCD D2 Button, OUT/IN {0,1} + [762] = "%1d", -- Left MFCD D3 Button, OUT/IN {0,1} + [763] = "%1d", -- Left MFCD D4 Button, OUT/IN {0,1} + [764] = "%1d", -- Left MFCD D5 Button, OUT/IN {0,1} + [765] = "%1d", -- Left MFCD BRT + Button, OUT/IN {0,1} + [766] = "%1d", -- Left MFCD BRT - Button, OUT/IN {0,1} + [767] = "%1d", -- Center MFCD SYM + Button, OUT/IN {0,1} + [768] = "%1d", -- Center MFCD SYM - Button, OUT/IN {0,1} + [769] = "%1d", -- Center MFCD U1 Button, OUT/IN {0,1} + [770] = "%1d", -- Center MFCD U2 Button, OUT/IN {0,1} + [771] = "%1d", -- Center MFCD U3 Button, OUT/IN {0,1} + [772] = "%1d", -- Center MFCD U4 Button, OUT/IN {0,1} + [773] = "%1d", -- Center MFCD U5 Button, OUT/IN {0,1} + [774] = "%1d", -- Center MFCD Power Switch, OFF/ON {0,1} + [775] = "%1d", -- Center MFCD L1 Button, OUT/IN {0,1} + [776] = "%1d", -- Center MFCD L2 Button, OUT/IN {0,1} + [777] = "%1d", -- Center MFCD L3 Button, OUT/IN {0,1} + [778] = "%1d", -- Center MFCD L4 Button, OUT/IN {0,1} + [779] = "%1d", -- Center MFCD L5 Button, OUT/IN {0,1} + [780] = "%1d", -- Center MFCD L6 Button, OUT/IN {0,1} + [781] = "%1d", -- Center MFCD L7 Button, OUT/IN {0,1} + [782] = "%1d", -- Center MFCD L8 Button, OUT/IN {0,1} + [783] = "%1d", -- Center MFCD R1 Button, OUT/IN {0,1} + [784] = "%1d", -- Center MFCD R2 Button, OUT/IN {0,1} + [785] = "%1d", -- Center MFCD R3 Button, OUT/IN {0,1} + [786] = "%1d", -- Center MFCD R4 Button, OUT/IN {0,1} + [787] = "%1d", -- Center MFCD R5 Button, OUT/IN {0,1} + [788] = "%1d", -- Center MFCD R6 Button, OUT/IN {0,1} + [789] = "%1d", -- Center MFCD R7 Button, OUT/IN {0,1} + [790] = "%1d", -- Center MFCD R8 Button, OUT/IN {0,1} + [791] = "%1d", -- Center MFCD D1 Button, OUT/IN {0,1} + [792] = "%1d", -- Center MFCD D2 Button, OUT/IN {0,1} + [793] = "%1d", -- Center MFCD D3 Button, OUT/IN {0,1} + [794] = "%1d", -- Center MFCD D4 Button, OUT/IN {0,1} + [795] = "%1d", -- Center MFCD D5 Button, OUT/IN {0,1} + [796] = "%1d", -- Center MFCD CONT + Button, OUT/IN {0,1} + [797] = "%1d", -- Center MFCD CONT - Button, OUT/IN {0,1} + [798] = "%1d", -- Center MFCD BRT + Button, OUT/IN {0,1} + [799] = "%1d", -- Center MFCD BRT - Button, OUT/IN {0,1} + [800] = "%1d", -- Right MFCD SYM + Button, OUT/IN {0,1} + [801] = "%1d", -- Right MFCD SYM - Button, OUT/IN {0,1} + [802] = "%1d", -- Right MFCD U1 Button, OUT/IN {0,1} + [803] = "%1d", -- Right MFCD U2 Button, OUT/IN {0,1} + [804] = "%1d", -- Right MFCD U3 Button, OUT/IN {0,1} + [805] = "%1d", -- Right MFCD U4 Button, OUT/IN {0,1} + [806] = "%1d", -- Right MFCD U5 Button, OUT/IN {0,1} + [807] = "%1d", -- Right MFCD Power Switch, OFF/ON {0,1} + [808] = "%1d", -- Right MFCD L1 Button, OUT/IN {0,1} + [809] = "%1d", -- Right MFCD L2 Button, OUT/IN {0,1} + [810] = "%1d", -- Right MFCD L3 Button, OUT/IN {0,1} + [811] = "%1d", -- Right MFCD L4 Button, OUT/IN {0,1} + [812] = "%1d", -- Right MFCD L5 Button, OUT/IN {0,1} + [813] = "%1d", -- Right MFCD L6 Button, OUT/IN {0,1} + [814] = "%1d", -- Right MFCD L7 Button, OUT/IN {0,1} + [815] = "%1d", -- Right MFCD L8 Button, OUT/IN {0,1} + [816] = "%1d", -- Right MFCD R1 Button, OUT/IN {0,1} + [817] = "%1d", -- Right MFCD R2 Button, OUT/IN {0,1} + [818] = "%1d", -- Right MFCD R3 Button, OUT/IN {0,1} + [819] = "%1d", -- Right MFCD R4 Button, OUT/IN {0,1} + [820] = "%1d", -- Right MFCD R5 Button, OUT/IN {0,1} + [821] = "%1d", -- Right MFCD R6 Button, OUT/IN {0,1} + [822] = "%1d", -- Right MFCD R7 Button, OUT/IN {0,1} + [823] = "%1d", -- Right MFCD R8 Button, OUT/IN {0,1} + [824] = "%1d", -- Right MFCD D1 Button, OUT/IN {0,1} + [825] = "%1d", -- Right MFCD D2 Button, OUT/IN {0,1} + [826] = "%1d", -- Right MFCD D3 Button, OUT/IN {0,1} + [827] = "%1d", -- Right MFCD D4 Button, OUT/IN {0,1} + [828] = "%1d", -- Right MFCD D5 Button, OUT/IN {0,1} + [829] = "%1d", -- Right MFCD CONT + Button, OUT/IN {0,1} + [830] = "%1d", -- Right MFCD CONT - Button, OUT/IN {0,1} + [831] = "%1d", -- Right MFCD BRT + Button, OUT/IN {0,1} + [832] = "%1d", -- Right MFCD BRT - Button, OUT/IN {0,1} + --- + [840] = "%.5f", -- BARO Altitude Setting, MIN..MAX {0..~0.31} ***WARNING - As of 15th May 2020, this crashes DCS if value is outside 0 to ~0.31 range*** + [841] = "%.2f", -- Emergency Brake Handle, MIN..MAX {0..1} + [846] = "%1d", -- Digital Clock Brightness + Button, OUT/IN {0,1} + [847] = "%1d", -- Digital Clock Brightness - Button, OUT/IN {0,1} + [901] = "%.2f", -- Warning Panel Brightness Knob, MIN..MAX {0..1} + [903] = "%.2f", -- Oxygen Indicator Brightness Knob, MIN..MAX {0..1} + [909] = "%.2f", -- AAP Brightness Knob, MIN..MAX {0..1} + [934] = "%.2f", -- COM1 Volume Knob, MIN..MAX {0..1} + [938] = "%.2f", -- COM2 Volume Knob, MIN..MAX {0..1} + [939] = "%.2f", -- TCN/ILS Volume Knob, MIN..MAX {0..1} + [940] = "%.2f", -- MSL Volume Knob, MIN..MAX {0..1} + [941] = "%.2f", -- Air Temp Knob Selector, MIN..MAX {0..0.91666666666667} + [944] = "%.2f", -- Inst. Light Knob, MIN..MAX {0..1} + [945] = "%.2f", -- Console Light Knob, MIN..MAX {0..1} + [946] = "%.2f", -- Flood Light Knob, MIN..MAX {0..1} + [959] = "%.2f", -- Canopy Manual Open/Close Crank, MIN..MAX {0..1} + [964] = "%.2f", -- AAR Light Brightness Knob, MIN..MAX {0..1} + [965] = "%.2f", -- Right Forward Flood Light Direction, MIN..MAX {0..1} + [966] = "%.2f", -- Right Aft Light Direction, MIN..MAX {0..1} + [967] = "%.2f", -- Left Forward Flood Light Direction, MIN..MAX {0..1} + [968] = "%.2f", -- Left Aft Flood Light Direction, MIN..MAX {0..1} + [976] = "%.2f", -- Oxygen Supply Valve, MIN..MAX {0..1} +} +ExportScript.ConfigArguments = +{ + --- Landing Gear Panel Lights + [100] = "%1d", -- Landing Gear In Transition Light, OFF/ON {0,1} + [101] = "%1d", -- Landing Gear Deployed Left Light, OFF/ON {0,1} + [102] = "%1d", -- Landing Gear Deployed Nose Light, OFF/ON {0,1} + [103] = "%1d", -- Landing Gear Deployed Right Light, OFF/ON {0,1} + [104] = "%1d", -- S/B Deployed Light, OFF/ON {0,1} + [105] = "%1d", -- D/CH Deployed Light, OFF/ON {0,1} + [106] = "%1d", -- TEF Deployed Light, OFF/ON {0,1} + [107] = "%1d", -- Landing Gear Handle Light, OFF/ON {0,1} + [108] = "%.2f", -- Landing Gear Indicator Lights Brightness, MIN..MAX {0..1} + --- + [110] = "%1d", -- FCS RESET Light, OFF/ON {0,1} + [120] = "%.2f", -- Console Backlight Brightness, MIN..MAX {0..1} + [121] = "%.2f", -- Instrument Backlight Brightness, MIN..MAX {0..1} + [122] = "%.2f", -- Clock Backlight Brightness, MIN..MAX {0..1} + [125] = "%.2f", -- Flood Light Brightness, MIN..MAX {0..1} + [140] = "%1d", -- Left MFCD Backlight, OFF/ON {0,1} + [141] = "%.2f", -- Left MFCD Backlight Brightness, MIN..MAX {0..1} + [142] = "%1d", -- Center MFCD Backlight, OFF/ON {0,1} + [143] = "%.2f", -- Center MFCD Backlight Brightness, MIN..MAX {0..1} + [144] = "%1d", -- Right MFCD Backlight, OFF/ON {0,1} + [145] = "%.2f", -- Right MFCD Backlight Brightness, MIN..MAX {0..1} + --- UFCP Lights --- + [150] = "%1d", -- UFCP OAP Light, OFF/ON {0,1} + [151] = "%1d", -- UFCP MRK Light, OFF/ON {0,1} + [152] = "%1d", -- UFCP P.U Light, OFF/ON {0,1} + [153] = "%1d", -- UFCP HNS Light, OFF/ON {0,1} + [154] = "%1d", -- UFCP AP Light, OFF/ON {0,1} + [155] = "%1d", -- UFCP FPM Light, OFF/ON {0,1} + [156] = "%1d", -- UFCP NULL1 Light, OFF/ON {0,1} + [157] = "%1d", -- UFCP NULL2 Light, OFF/ON {0,1} + [158] = "%.2f", -- UFCP Brightness, MIN..MAX {0..1} + --- Status Lights Panel --- + [160] = "%1d", -- PITCH TRIM Status Light, OFF/ON {0,1} + [161] = "%1d", -- ROLL TRIM Status Light, OFF/ON {0,1} + [162] = "%1d", -- YAW TRIM Status Light, OFF/ON {0,1} + [163] = "%1d", -- A/A Status Light, OFF/ON {0,1} + [164] = "%1d", -- A/G1 Status Light, OFF/ON {0,1} + [165] = "%1d", -- A/G2 Status Light, OFF/ON {0,1} + [166] = "%1d", -- EFCS Status Light, OFF/ON {0,1} + [167] = "%1d", -- No.3 TANK Status Light, OFF/ON {0,1} + [168] = "%1d", -- No.1 TANK Status Light, OFF/ON {0,1} + [169] = "%1d", -- WING D/T Status Light, OFF/ON {0,1} + [170] = "%1d", -- CTR D/T Status Light, OFF/ON {0,1} + [171] = "%1d", -- NULL Status Light, OFF/ON {0,1} + [172] = "%1d", -- START Status Light, OFF/ON {0,1} + [173] = "%1d", -- AB Status Light, OFF/ON {0,1} + [174] = "%1d", -- COMBAT Status Light, OFF/ON {0,1} + [175] = "%1d", -- EMG HYD Status Light, OFF/ON {0,1} + [176] = "%1d", -- NWS Status Light, OFF/ON {0,1} + [177] = "%1d", -- ADVISORY Status Light, OFF/ON {0,1} + [178] = "%.2f", -- Status Lights Brightness, MIN..MAX {0..1} + --- Warning Lights Panel --- + [200] = "%1d", -- NULL Warning Light, OFF/ON {0,1} + [201] = "%1d", -- OXY LOW Warning Light, OFF/ON {0,1} + [202] = "%1d", -- CANOPY Warning Light, OFF/ON {0,1} + [203] = "%1d", -- HYD LOW Warning Light, OFF/ON {0,1} + [204] = "%1d", -- AIR DATA Warning Light, OFF/ON {0,1} + [205] = "%1d", -- LOW FUEL Warning Light, OFF/ON {0,1} + [206] = "%1d", -- CABIN PRESS Warning Light, OFF/ON {0,1} + [207] = "%1d", -- REDUCE RPM Warning Light, OFF/ON {0,1} + [208] = "%1d", -- CONFIG Warning Light, OFF/ON {0,1} + [209] = "%1d", -- FUEL PUMP Warning Light, OFF/ON {0,1} + [210] = "%1d", -- AC SYS Warning Light, OFF/ON {0,1} + [211] = "%1d", -- OIL Warning Light, OFF/ON {0,1} + [212] = "%1d", -- DL Warning Light, OFF/ON {0,1} + [213] = "%1d", -- START PUMP Warning Light, OFF/ON {0,1} + [214] = "%1d", -- DC GEN Warning Light, OFF/ON {0,1} + [215] = "%1d", -- STARTER Warning Light, OFF/ON {0,1} + [216] = "%1d", -- FCS 3 Warning Light, OFF/ON {0,1} + [217] = "%1d", -- BRAKE Warning Light, OFF/ON {0,1} + [218] = "%1d", -- BATT Warning Light, OFF/ON {0,1} + [219] = "%1d", -- ENG TEMP Warning Light, OFF/ON {0,1} + [220] = "%1d", -- FCS 2 Warning Light, OFF/ON {0,1} + [221] = "%1d", -- ANTI-SKID Warning Light, OFF/ON {0,1} + [222] = "%1d", -- TRU Warning Light, OFF/ON {0,1} + [223] = "%1d", -- ANTI-SURGE Warning Light, OFF/ON {0,1} + [224] = "%1d", -- FCS 1 Warning Light, OFF/ON {0,1} + [225] = "%1d", -- NWS Warning Light, OFF/ON {0,1} + [226] = "%1d", -- STATIC INV Warning Light, OFF/ON {0,1} + [227] = "%1d", -- ANTI-ICING Warning Light, OFF/ON {0,1} + [228] = "%1d", -- ROLL CAS Warning Light, OFF/ON {0,1} + [229] = "%1d", -- ECS Warning Light, OFF/ON {0,1} + [230] = "%1d", -- EMMC Warning Light, OFF/ON {0,1} + [231] = "%1d", -- SEC Warning Light, OFF/ON {0,1} + [232] = "%1d", -- YAW CAS Warning Light, OFF/ON {0,1} + [233] = "%1d", -- EQUIP HOT Warning Light, OFF/ON {0,1} + [234] = "%1d", -- LWC Warning Light, OFF/ON {0,1} + [235] = "%1d", -- EDU Warning Light, OFF/ON {0,1} + [236] = "%1d", -- AUTOPILOT Warning Light, OFF/ON {0,1} + [237] = "%1d", -- PITOT HEAT Warning Light, OFF/ON {0,1} + [238] = "%1d", -- AVIONS Warning Light, OFF/ON {0,1} + [239] = "%1d", -- DEEC Warning Light, OFF/ON {0,1} + [240] = "%1d", -- EFCS Warning Light, OFF/ON {0,1} + [241] = "%1d", -- SEAT Warning Light, OFF/ON {0,1} + [243] = "%.2f", -- Warning Lights Brightness, MIN..MAX {0..1} + -- AAP Panel Lights + [260] = "%1d", -- AAP ACMI Light, OFF/ON {0,1} + [261] = "%1d", -- AAP NULL1 Light, OFF/ON {0,1} + [262] = "%1d", -- AAP NULL2 Light, OFF/ON {0,1} + [263] = "%1d", -- AAP NULL3 Light, OFF/ON {0,1} + [264] = "%1d", -- AAP HMD Light, OFF/ON {0,1} + [265] = "%1d", -- AAP SPJ Light, OFF/ON {0,1} + [266] = "%1d", -- AAP CLDP Light, OFF/ON {0,1} + [267] = "%1d", -- AAP IRST Light, OFF/ON {0,1} + [268] = "%1d", -- AAP RDR Light, OFF/ON {0,1} + [269] = "%1d", -- AAP SLNK Light, OFF/ON {0,1} + [270] = "%1d", -- AAP OESP Light, OFF/ON {0,1} + [271] = "%1d", -- AAP RWR Light, OFF/ON {0,1} + [272] = "%1d", -- AAP COM1 Light, OFF/ON {0,1} + [273] = "%1d", -- AAP COM2 Light, OFF/ON {0,1} + [274] = "%1d", -- AAP NAV Light, OFF/ON {0,1} + [275] = "%1d", -- AAP IFF Light, OFF/ON {0,1} + [276] = "%1d", -- AAP INS Light, OFF/ON {0,1} + [277] = "%1d", -- AAP VMMC1 Light, OFF/ON {0,1} + [278] = "%1d", -- AAP VMMC2 Light, OFF/ON {0,1} + [279] = "%1d", -- AAP SAIU Light, OFF/ON {0,1} + [280] = "%1d", -- AAP CMBT Light, OFF/ON {0,1} + [281] = "%1d", -- AAP TRAIN Light, OFF/ON {0,1} + [282] = "%.2f", -- AAP Buttons Brightness, MIN..MAX {0..1} + --- + [295] = "%1d", -- Radio Panel Error Light, OFF/ON {0,1} + [500] = "%.3f", -- Backup SAIU Knob Selector Knob, OFF/BOMB/IR/GUN {0,0.333,0.666,0.999} + [501] = "%1d", -- Landing Gear Indicator Light Test Button, OUT/IN {0,1}} + [502] = "%1d", -- Landing Gear Override Button Cover, COVERED/UNCOVERED {0,1} + [503] = "%1d", -- Landing Gear Override Switch, OFF/ON {0,1}} + [505] = "%1d", -- Landing Gear Lever, DOWN/UP {0,1} + [506] = "%1d", -- Ground Jettison Switch, OFF/ENABLE {0,1}} + [507] = "%1d", -- Emergency Jettison Button Cover, COVERED/UNCOVERED {0,1} + [508] = "%1d", -- Emergency Jettison Button, OUT/IN {0,1} + [509] = "%1d", -- Master Arm Switch, SIM/OFF/ARM {-1,0,1} + [510] = "%1d", -- Brake Test Switch, OFF/ON/TEST {-1,0,1} + [511] = "%1d", -- Parking Brake, NORM/PARK {-1,1} + [512] = "%1d", -- Light Switch, LAND/OFF/TAXI {-1,0,1} + [513] = "%1d", -- Flap Switch, DOWN/UP {-1,1} + [514] = "%1d", -- Feed Cut-off Valve Cover, COVERED/UNCOVERED {0,1} + [515] = "%1d", -- Feed Cut-off Valve Switch, OFF/ON {0,1} + [516] = "%1d", -- Active Fuel Cut-off Valve Cover, COVERED/UNCOVERED {0,1} + [517] = "%1d", -- Active Fuel Cut-off Valve Switch, OFF/ON {0,1} + [518] = "%1d", -- Fuel Pump Switch, OFF/ON {0,1} + [519] = "%1d", -- Engine Control Switch, OFF/ON {0,1} + [520] = "%1d", -- Air Start Switch, OFF/ON {0,1} + [521] = "%1d", -- Ground Start Button, OUT/IN {0,1}} + [522] = "%1d", -- Engine Mode Switch, TRG/C+T/CMBT {-1,0,1} + [523] = "%1d", -- SEC EEC Switch, OFF/ON {0,1} + [524] = "%1d", -- Afterburner Switch, OFF/ON {0,1} + [525] = "%1d", -- Anti-Surge Switch, OFF/ON {0,1} + [526] = "%1d", -- Start Mode Selector, ENG COLD/START/STARTER COLD {-1,0,1} + [527] = "%1d", -- Record Switch, OUT/IN {0,1} + [528] = "%1d", -- EFCS Switch, OFF/AUTO {0,1} + [529] = "%1d", -- Yaw/Roll CAS Switch, OFF/ON {0,1} + [530] = "%1d", -- Direct Mode Switch, OFF/ON {0,1} + [531] = "%1d", -- BIT Switch, OUT/IN {0,1} + [533] = "%1d", -- Flight Test I Switch, OFF/ON {0,1} + [534] = "%1d", -- Flight Test II Switch, OFF/ON {0,1} + [535] = "%1d", -- AG1/AG2 Switch, A-AG2/A-AG1 {0,1} + [536] = "%1d", -- AA/AG Switch, A-G/A-A {0,1} + [537] = "%1d", -- Flare Dispense Button Cover, COVERED/UNCOVERED {0,1} + [539] = "%1d", -- Emergency Hydralic Pump Switch, OFF/ON {0,1} + [540] = "%1d", -- SHARS Switch, OFF/ON {0,1} + [541] = "%1d", -- Ejection Seat Activate Destruct Switch, DISABLE/ENABLE {0,1} + [542] = "%1d", -- Self Destruct Button Cover, COVERED/UNCOVERED {0,1} + [543] = "%1d", -- Self Destruct Button, OUT/IN {0,1}} + [544] = "%1d", -- FCS Reset Button,???OUT/IN??? {0,1} + [546] = "%1d", -- Squelch, SQL-ACKN/OFF {0,1} + [548] = "%1d", -- Radio Control Handover Button, OUT/IN {0,1} + [561] = "%1d", -- Air Start Button Cover, COVERED/UNCOVERED {0,1} + [562] = "%1d", -- CSS Handle, STOVED/PULLED {0,1} + [563] = "%1d", -- P.H. Test Switch, AUTO/ON {0,1} + [564] = "%1d", -- AAR Switch, INT/OFF/ALL {-1,0,1} + [571] = "%1d", -- Throttle Uncage: Stop to Idle, CAGE/IDLE {0,1} + [572] = "%1d", -- Throttle Cage: Idle To Stop, IDLE/CAGE {0,1} + [573] = "%1d", -- Throttle Emergency Button, OUT/IN {0,1} + [733] = "%1d", -- Deploy/Jettison Parachute Switch, JETT/OFF/DEPLOY {-1,0,1} + [842] = "%1d", -- Master Warning Button, OUT/IN {0,1} + [843] = "%1d", -- Fire Warning Button, OUT/IN {0,1} + [844] = "%1d", -- FCS Warning Button, OUT/IN {0,1} + [845] = "%1d", -- Digital Clock Switch, OFF/ON {0,1} + [848] = "%1d", -- Digital Clock UTC Button, OUT/IN {0,1} + [849] = "%1d", -- Digital Clock CHR Button, OUT/IN {0,1} + [900] = "%1d", -- Warning Panel Day/Night Switch, NIGHT/DAY {0,1} + [902] = "%1d", -- Warning Panel Test Button, OUT/IN {0,1} + [904] = "%1d", -- Battery Switch, OFF/ON {0,1} + [905] = "%1d", -- Main AC Gen Switch, OFF/ON {0,1} + [906] = "%1d", -- Main DC Gen Switch, OFF/ON {0,1} + [907] = "%1d", -- HUD/MFCD Day/Night Switch, NIGHT/DAY {0,1} + [908] = "%.3f", -- INS Mode Selector Knob, STBY/FAST/NAV/GC {0,0.333,0.666,0.999} + [910] = "%1d", -- HUD Symbology Reject, NORM/DCLT {0,1} + -- AAP Panel Buttons + [911] = "%1d", -- AAP ACMI, OFF/ON {0,1} + [912] = "%1d", -- AAP N/A, OFF/ON {0,1} + [913] = "%1d", -- AAP N/A, OFF/ON {0,1} + [914] = "%1d", -- AAP N/A, OFF/ON {0,1} + [915] = "%1d", -- AAP HMD, OFF/ON {0,1} + [916] = "%1d", -- AAP SPJ, OFF/ON {0,1} + [917] = "%1d", -- AAP CLDP, OFF/ON {0,1} + [918] = "%1d", -- AAP IRST, OFF/ON {0,1} + [919] = "%1d", -- AAP RDR, OFF/ON {0,1} + [920] = "%1d", -- AAP SLNK, OFF/ON {0,1} + [921] = "%1d", -- AAP OESP, OFF/ON {0,1} + [922] = "%1d", -- AAP RWR, OFF/ON {0,1} + [923] = "%1d", -- AAP COM1, OFF/ON {0,1} + [924] = "%1d", -- AAP COM2, OFF/ON {0,1} + [925] = "%1d", -- AAP NAV, OFF/ON {0,1} + [926] = "%1d", -- AAP IFF, OFF/ON {0,1} + [927] = "%1d", -- AAP INS, OFF/ON {0,1} + [928] = "%1d", -- AAP WMMC1, OFF/ON {0,1} + [929] = "%1d", -- AAP WMMC2, OFF/ON {0,1} + [930] = "%1d", -- AAP SAIU, OFF/ON {0,1} + [931] = "%1d", -- AAP CMBT, OFF/ON {0,1} + [932] = "%1d", -- AAP TRAIN, OFF/ON {0,1} + [933] = "%1d", -- AAP OFF, OFF/ON {0,1} + --- + [935] = "%1d", -- Intercom Switch, OFF/ON {0,1} + [936] = "%1d", -- Radio Top/Bottom Antenna Switch, LOWER/UPPER {0,1} + [937] = "%1d", -- Speaker Control Box Channel Antenna Switch, STBY/MAIN {0,1} + [942] = "%.3f", -- ECS Mode Knob Selector, DE-SMK/NORM/OFF/RAM {0,0.333,0.666,0.999} + [943] = "%1d", -- Defog Button, OUT/IN {0,1} + [947] = "%1d", -- Exterior Light Master Switch, NVG/OFF/NORMAL {-1,0,1} + [948] = "%.1f", -- Formation Light Knob Selector, OFF/1/2/3/4/BRT {0,0.2,0.4,0.6,0.8,1} + [949] = "%.1f", -- Anti-Collision Light Knob Selector, OFF/1/2/3/4/CODE {0,0.2,0.4,0.6,0.8,1} + [950] = "%1d", -- Navigation Light Switch, DIM/OFF/BRIGHT {-1,0,1} + [951] = "%1d", -- Navigation Light Switch, STEADY/FLASH {-1,1} + [952] = "%1d", -- Light Switch, TOW/OFF/ANTI-COLLISION {-1,0,1} + [953] = "%1d", -- DTC Card Insertion {0,1} + [954] = "%1d", -- Emergency Landing Gear Cover, COVERED/UNCOVERED {0,1} + [955] = "%.2f", -- Emergency Landing Gear Handle, STOVED/RELEASED/PARTIAL PULL/TWIST/FULL PULL AND TWIST {0,0.25,0.5,0.75,1} + [957] = "%1d", -- Canopy Seal Handle, OFF/SEAL {0,1} + [958] = "%.3f", -- Canopy Open/Close Handle, OPEN/HOLD/CLOSE/LOCK {0,0.333,0.666,0.999} + [960] = "%.2f", -- Right Mirror Position, MIN..MAX {0..1} + [961] = "%.2f", -- Center Mirror Position, MIN..MAX {0..1} + [962] = "%.2f", -- Left Mirror Position, MIN..MAX {0..1} + [963] = "%1d", -- AAR Light Switch, OFF/ON {-1,1} + [969] = "%1d", -- Flash Light, OFF/ON {0,1} + [970] = "%1d", -- Stick Show/Hide, HIDDEN/VISIBLE {0,1} + [971] = "%1d", -- S7: A/P Disengage Paddle Switch, OUT/IN {0,1} + [972] = "%1d", -- Eject Seat Handle, SAFE/ARM {0,1} + [973] = "%1d", -- Eject Seat Firing Handle Safety Pin, OUT/IN {0,1} + [974] = "%1d", -- DTC Card Ejection Button, OUT/IN {0,1} + [975] = "%1d", -- Oxygen Tube Connector, OFF/ON {0,1} + [977] = "%1d", -- Oxygen 100% O2 Switch, OFF/ON {0,1} + [978] = "%1d", -- Eject Seat Emergency O2 Switch, OFF/ON {0,1} +} +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + +ExportScript.arrowExample(mainPanelDevice) +ExportScript.RadioTile(mainPanelDevice) + +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +---------------------- +-- Custom Functions -- +---------------------- + +function ExportScript.arrowExample(mainPanelDevice) + + local stickShowHide = mainPanelDevice:get_argument_value(970)-- Stick Hidden argument + local stickStatus + + if stickShowHide >= 0.5 then + stickStatus = "↑Up" -- stick is visible + else + stickStatus = "↓Down" + end + + ExportScript.Tools.SendData(2000, stickStatus) +end + + +function ExportScript.RadioTile(mainPanelDevice) + + local radio1 = (GetDevice(25):get_frequency())/1000000 --left radio freq unrounded + local radio2 = (GetDevice(26):get_frequency())/1000000 --right radio freq unrounded + + ExportScript.Tools.SendData(2001, radio1) --results in "108.000568" for channel 1 + ExportScript.Tools.SendData(2002, radio2) --results in "108.500744" for channel 2 +end +----------------------- +-- General Functions -- +----------------------- \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Ka-50.lua b/Scripts/DCS-ExportScript/ExportsModules/Ka-50.lua index 833829b1..cd74abfd 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Ka-50.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Ka-50.lua @@ -1,1346 +1,1440 @@ --- Ka-50 Export - -ExportScript.FoundDCSModule = true -ExportScript.Version.Ka50 = "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 - ]] - -- LAMPS - --------------------------------------------------- - --[44] = "%.1f", -- lamp_MasterWarning {0.0,0.3} - --[46] = "%.1f", -- lamp_RotorRPM {0.0,1.0} - [47] = "%.f", -- lamp_UNDERFIREwarning {0.0,1.0} - [48] = "%.f", -- lamp_LowerGear {0.0,1.0} - [78] = "%.f", -- lamp_RPM_leftEngineMax {0.0,1.0} - [79] = "%.f", -- lamp_RPM_rightEngineMax {0.0,1.0} - [80] = "%.f", -- lamp_NyMax {0.0,1.0} - [81] = "%.f", -- lamp_vibr_leftEngine {0.0,1.0} - [82] = "%.f", -- lamp_vibr_rightEngine {0.0,1.0} - [83] = "%.f", -- lamp_IAS_max {0.0,1.0} - [84] = "%.f", -- lamp_mainTransmission {0.0,1.0} - [85] = "%.f", -- lamp_Fire {0.0,1.0} - [86] = "%.f", -- lamp_IFFfailure {0.0,1.0} - -- VVI - --------------------------------------------------- - [24] = "%.4f", -- vy (Vertical Velocity Indicator) {-1.0,1.0} - -- ADI (IKP-81) - --------------------------------------------------- - [100] = "%.4f", -- ADI_Roll {-1.0,1.0} - [101] = "%.4f", -- ADI_Pitch {-math.pi/2.0,math.pi/2.0}{1.0,-1.0} - [102] = "%0.1f", -- ADI_steering_warning_flag {0.0,1.0} - [109] = "%0.1f", -- ADI_attitude_warning_flag {0.0,1.0} - [107] = "%.4f", -- ADI_bank_steering {-1.0,1.0} - [106] = "%.4f", -- ADI_pitch_steering {-1.0,1.0} - [111] = "%.4f", -- ADI_airspeed_deviation {-1.0,1.0} - [103] = "%.4f", -- ADI_track_deviation {-1.0,1.0} - [526] = "%.4f", -- ADI_height_deviation {-1.0,1.0} - [108] = "%.4f", -- ADI_sideslip {-1.0,1.0} - -- Barometric Altimeter (VM_15PV) - -------------------------------------------------- - [87] = "%.4f", -- VM_15PV_BALT_thousands {0.0,1.0} - [573] = "%.4f", -- VM_15PV_BALT_tenths {0.0,1.0} - [88] = "%0.2f", -- VM_15PV_BaroPressure {0.0,1.0} - [89] = "%.4f", -- VM_15PV_BALT_CommandedAlt {0.0,1.0} - -- HSI (PNP-72-16) - --------------------------------------------------- - [112] = "%.4f", -- HSI_heading {0.0, 1.0} - [118] = "%.4f", -- HSI_commanded_course_needle {0.0, 1.0} - [124] = "%.4f", -- HSI_commanded_heading_needle {0.0, 1.0} - [115] = "%.4f", -- HSI_bearing_needle {0.0, 1.0} - [119] = "%0.1f", -- HSI_heading_warning_flag{0.0,1.0} - [114] = "%0.1f", -- HSI_course_warning_flag{0.0, 1.0} - [125] = "%0.1f", -- HSI_glideslope_warning_flag{0.0, 1.0} - [117] = "%0.4f", -- HSI_range_counter_100 {0.0,1.0} - [527] = "%0.4f", -- HSI_range_counter_10 {0.0,1.0} - [528] = "%0.4f", -- HSI_range_counter_1 {0.0,1.0} - [127] = "%.4f", -- HSI_longitudinal_deviation{-1.0, 1.0} - [128] = "%.4f", -- HSI_lateral_deviation{-1.0, 1.0} - [116] = "%0.1f", -- HSI_range_unavailable_flag{0.0, 1.0} - [121] = "%0.1f", -- HSI_course_unavailable_flag{0.0, 1.0} - -- Rotor Pitch - --------------------------------------------------- - [53] = "%.4f", -- RotorPitch {0.0,1.0} - -- Rotor RPM - --------------------------------------------------- - [52] = "%.4f", -- RotorRPM {0.0,1.0} - -- Radar Altimeter ( A_036) - --------------------------------------------------- - [94] = "%.4f", -- A_036_RALT {0.0,1.0} - [93] = "%.4f", -- A_036_DangerRALT {0.0,1.0} - [95] = "%0.1f", -- A_036_warning_flag {0.0,1.0} - [92] = "%.f", -- A_036_DangerRALT_lamp {0.0,1.0} - -- Indicated Airspeed - --------------------------------------------------- - [51] = "%.4f", -- IAS {0.0,1.0} - -- Accelerometer (ADP_4) - --------------------------------------------------- - [97] = "%0.4f", -- ADP_4_acceleration {0.0,1.0} - [98] = "%0.2f", -- ADP_4_max_achieved_acc {0.0,1.0} - [99] = "%0.2f", -- ADP_4_min_achieved_acc {0.0,1.0} - -- Mechanic Clock - --------------------------------------------------- - [68] = "%.4f", -- CLOCK_currtime_hours {0.0,1.0} - [69] = "%.4f", -- CLOCK_currtime_minutes {0.0,1.0} - [70] = "%.4f", -- CLOCK_currtime_seconds {0.0,1.0} - --[75] = "%0.1f", -- CLOCK_flight_time_meter_status{0.0,0.1,0.2} - [72] = "%.4f", -- CLOCK_flight_hours {0.0,1.0} - [531] = "%.4f", -- CLOCK_flight_minutes {0.0,1.0} - [73] = "%.4f", -- CLOCK_seconds_meter_time_minutes {0.0,1.0} - [532] = "%.4f", -- CLOCK_seconds_meter_time_seconds {0.0,1.0} - -- backup ADI (AGR-81) - --------------------------------------------------- - [142] = "%.4f", -- AGR_81_Roll {1.0, -1.0} - [143] = "%.4f", -- AGR_81_Pitch {-1.0, 1.0} - [144] = "%.4f", -- AGR_81_sideslip {-1.0, 1.0} - [145] = "%0.1f", -- AGR_81_failure_flag{0.0, 1.0} - -- Engines temperature - --------------------------------------------------- - [133] = "%.4f", -- LeftEngineTemperatureHund {0.0,1.0} - [566] = "%.4f", -- LeftEngineTemperatureTenth {0.0,1.0} - [134] = "%.4f", -- RightEngineTemperatureHund {0.0,1.0} - [567] = "%.4f", -- RightEngineTemperatureHund {0.0,1.0} - -- Engine RPM - --------------------------------------------------- - [135] = "%.4f", -- LeftEngineRPM {0.0,1.0} - [136] = "%.4f", -- RightEngineRPM {0.0,1.0} - -- Fuel tanks - --------------------------------------------------- - [138] = "%.4f", -- RearTankAmount {0.0,1.0} - [137] = "%.4f", -- ForwardTankAmount {0.0,1.0} - [139] = "%0.1f", -- lamp_ForwardTankTest {0.0,1.0} - [140] = "%0.1f", -- lamp_RearTankTest {0.0,1.0} - -- PUI-800 Weapon panel - --------------------------------------------------- - [392] = "%.f", -- lamp_PUI800_Sta1_WeapIsPresent{0.0, 1.0} - [393] = "%.f", -- lamp_PUI800_Sta2_WeapIsPresent{0.0, 1.0} - [394] = "%.f", -- lamp_PUI800_Sta3_WeapIsPresent{0.0, 1.0} - [395] = "%.f", -- lamp_PUI800_Sta4_WeapIsPresent{0.0, 1.0} - [388] = "%.f", -- lamp_PUI800_Sta1_WeapIsReady{0.0, 1.0} - [389] = "%.f", -- lamp_PUI800_Sta2_WeapIsReady{0.0, 1.0} - [390] = "%.f", -- lamp_PUI800_Sta3_WeapIsReady{0.0, 1.0} - [391] = "%.f", -- lamp_PUI800_Sta4_WeapIsReady{0.0, 1.0} - -- LGCP - Landing gear control panel - --------------------------------------------------- - [63] = "%.f", -- LGCP_Lamp_NoseGearUp {0.0,1.0} - [64] = "%.f", -- LGCP_Lamp_NoseGearDown {0.0,1.0} - [61] = "%.f", -- LGCP_Lamp_RightMainGearUp {0.0,1.0} - [62] = "%.f", -- LGCP_Lamp_RightMainGearDown {0.0,1.0} - [59] = "%.f", -- LGCP_Lamp_LeftMainGearUp {0.0,1.0} - [60] = "%.f", -- LGCP_Lamp_LeftMainGearDown{0.0, 1.0} - -- LAMPS - --------------------------------------------------- - [170] = "%.f", -- lamp_H_RALT_stab {0.0,1.0} - [175] = "%.f", -- lamp_Hover {0.0,1.0} - [172] = "%.f", -- lamp_Descent {0.0,1.0} - [165] = "%.f", -- lamp_RouteHeadingSteering {0.0,1.0} - [171] = "%.f", -- lamp_RouteCourseSteering {0.0,1.0} - [176] = "%.f", -- lamp_Waypoint {0.0,1.0} - [166] = "%.f", -- lamp_EndOfRoute {0.0,1.0} - [164] = "%.f", -- lamp_RoughNAVcalc {0.0,1.0} - [178] = "%.f", -- lamp_Burst {0.0,1.0} - [173] = "%.f", -- lamp_CannonMovingBarr {0.0,1.0} - [177] = "%.f", -- lamp_CannonMovingBarr2 {0.0,1.0} - [211] = "%.f", -- lamp_FuelCrossfeedOn {0.0,1.0} - [187] = "%.f", -- lamp_CouplerOff {0.0,1.0} - [204] = "%.f", -- lamp_ActuatorsOilPress {0.0,1.0} - [213] = "%.f", -- lamp_LockOff {0.0,1.0} - -- Magnetic Compass (KI-13) - --------------------------------------------------- - [11] = "%.4f", -- KI_13_course {-1,1} - [12] = "%.4f", -- KI_13_pitch {-1,1} - [14] = "%.4f", -- KI_13_bank {-1,1} - -- LAMPS - --------------------------------------------------- - [167] = "%.f", -- lamp_WeapSysBUS_ON {0.0,1.0} - [180] = "%.f", -- lamp_TrainingMode {0.0,1.0} - [179] = "%.f", -- lamp_OBZOR_800 {0.0,1.0} - [188] = "%.f", -- lamp_RANET {0.0,1.0} - [189] = "%.f", -- lamp_CC_test {0.0,1.0} - [206] = "%.f", -- lamp_CC_failure {0.0,1.0} - [212] = "%.f", -- lamp_DC_AC_Inverter {0.0,1.0} - [205] = "%.f", -- lamp_I_251V {0.0,1.0} - [181] = "%.f", -- lamp_AntiIceLeftEngine {0.0,1.0} - [190] = "%.f", -- lamp_DustProtectLeftEngine {0.0,1.0} - [207] = "%.f", -- lamp_BackupModeLeftEngine {0.0,1.0} - [183] = "%.f", -- lamp_AntiIceRotors {0.0,1.0} - [182] = "%.f", -- lamp_AntiIceRightEngine {0.0,1.0} - [191] = "%.f", -- lamp_DustProtectRightEngine {0.0,1.0} - [208] = "%.f", -- lamp_BackupModeRightEngine {0.0,1.0} - [184] = "%.f", -- lamp_VUO_Heat {0.0,1.0} - [200] = "%.f", -- lamp_ForwardTank {0.0,1.0} - [209] = "%.f", -- lamp_LeftValveClosed {0.0,1.0} - [185] = "%.f", -- lamp_LeftOuterTank {0.0,1.0} - [202] = "%.f", -- lamp_LeftInnerTank {0.0,1.0} - [201] = "%.f", -- lamp_RearTank {0.0,1.0} - [210] = "%.f", -- lamp_RightValveClosed {0.0,1.0} - [186] = "%.f", -- lamp_RightOuterTank {0.0,1.0} - [203] = "%.f", -- lamp_RightInnerTank {0.0,1.0} - -- DATALINK - --------------------------------------------------- - --[159] = "%.1f", -- PRC_button_SEND {0.0,0.3} - --[150] = "%.1f", -- PRC_button_ESCAPE {0.0,0.3} - --[161] = "%.1f", -- PRC_button_ERASE {0.0,0.3} - --[15] = "%.1f", -- PRC_button_CLEAN {0.0,0.3} - --[16] = "%.1f", -- PRC_button_WINGMAN_ALL {0.0,0.3} - --[17] = "%.1f", -- PRC_button_WINGMAN_1 {0.0,0.3} - --[18] = "%.1f", -- PRC_button_WINGMAN_2 {0.0,0.3} - --[19] = "%.1f", -- PRC_button_WINGMAN_3 {0.0,0.3} - --[20] = "%.1f", -- PRC_button_WINGMAN_4 {0.0,0.3} - --[21] = "%.1f", -- PRC_button_TARGET_1 {0.0,0.3} - --[22] = "%.1f", -- PRC_button_TARGET_2 {0.0,0.3} - --[23] = "%.1f", -- PRC_button_TARGET_3 {0.0,0.3} - --[50] = "%.1f", -- PRC_button_TARGET_POINT {0.0,0.3} - -- Laser warning system - --------------------------------------------------- - [25] = "%.f", -- LWS_LampAzimuth_0 {0.0,1.0} - [28] = "%.f", -- LWS_LampAzimuth_90 {0.0,1.0} - [26] = "%.f", -- LWS_LampAzimuth_180 {0.0,1.0} - [27] = "%.f", -- LWS_LampAzimuth_270 {0.0,1.0} - [31] = "%.f", -- LWS_LampAzimuth_UpperHemisphere {0.0,1.0} - [32] = "%.f", -- LWS_LampAzimuth_LowerHemisphere {0.0,1.0} - [33] = "%.f", -- LWS_LampAzimuth_LaserRangefinder {0.0,1.0} - [34] = "%.f", -- LWS_LampAzimuth_LaserTargetingSystem {0.0,1.0} - [582] = "%.f", -- LWS_LampReady {0.0,1.0} - -- UV-26 - --------------------------------------------------- - [541] = "%.f", -- UV26_lampLeftBoard {0.0,1.0} - [542] = "%.f", -- UV26_lampRightBoard {0.0,1.0} - -- PVI (Nav Control Panel) - --------------------------------------------------- - [315] = "%0.1f", -- PVI_button_WPT{0.0, 0.3} - [519] = "%0.1f", -- PVI_button_INSREALN{0.0, 0.3} - [316] = "%0.1f", -- PVI_button_FIXPT{0.0, 0.3} - [520] = "%0.1f", -- PVI_button_PRECALN{0.0, 0.3} - [317] = "%0.1f", -- PVI_button_AERDR{0.0, 0.3} - [521] = "%0.1f", -- PVI_button_NORMALN{0.0, 0.3} - [318] = "%0.1f", -- PVI_button_TGT{0.0, 0.3} - [313] = "%0.1f", -- PVI_button_ENTER{0.0, 0.3} - [314] = "%0.1f", -- PVI_button_CANCEL{0.0, 0.3} - [522] = "%0.1f", -- PVI_button_INITCOORD{0.0, 0.3} - [319] = "%0.1f", -- PVI_button_FILAMBDA{0.0, 0.3} - [320] = "%0.1f", -- PVI_button_FIZ{0.0, 0.3} - [321] = "%0.1f", -- PVI_button_DU{0.0, 0.3} - [322] = "%0.1f", -- PVI_button_FII{0.0, 0.3} - [323] = "%0.1f", -- PVI_button_BRGRNG{0.0, 0.3} - [330] = "%0.1f", -- PPR_button_K{0.0, 0.3} - [332] = "%0.1f", -- PPR_button_H{0.0, 0.3} - [331] = "%0.1f", -- PPR_button_T{0.0, 0.3} - [333] = "%0.1f", -- PPR_button_B{0.0, 0.3} - [334] = "%0.1f", -- PPR_button_DIR{0.0, 0.3} - -- RadioCommunicator R-828 - --------------------------------------------------- - [375] = "%0.1f", -- Radio_ASU_lamp{0.0,1.0} - -- RadioCommunicator R-800 - --------------------------------------------------- - [419] = "%0.1f", -- Radio_Test_lamp {0.0,1.0} - [577] = "%.3f", -- R800Rotary1 {0.0,1.0} - [574] = "%.2f", -- R800Rotary2 {0.0,1.0} - [575] = "%.2f", -- R800Rotary3 {0.0,1.0} - [576] = "%.2f", -- R800Rotary4 {0.0,1.0} - -- WEAPON INTERFACE - --------------------------------------------------- - --[437] = "%.1f", -- PRC_button_AUTO_TURN {0.0,0.3} - --[438] = "%.1f", -- PRC_button_AIRBORNE_TARGET {0.0,0.3} - --[439] = "%.1f", -- PRC_button_FORWARD_HEMISPHERE {0.0,0.3} - --[440] = "%.1f", -- PRC_button_GROUND_MOVING_TARGET {0.0,0.3} - --[441] = "%.1f", -- PRC_button_CLEAR {0.0,0.3} - -- Engines start panel - --------------------------------------------------- - [163] = "%.f", -- lamp_EnginesStartValve{0.0, 1.0} - -- APU control panel - --------------------------------------------------- - [162] = "%.f", -- lamp_APUValveOpen{0.0, 1.0}{0.0, 1.0} - [168] = "%.f", -- lamp_APUOilPres{0.0, 1.0}{0.0, 1.0} - [169] = "%.f", -- lamp_APUStoppedByRPM{0.0, 1.0} - [174] = "%.f", -- lamp_APU_IsON{0.0, 1.0} - -- APU Temperature - --------------------------------------------------- - [6] = "%.4f", -- APUTemperature {0.0, 900.0} = {0.0, 1.0} - -- Right Side Panel - --------------------------------------------------- - [586] = "%.f", -- lamp_AC_Ground_Power{0.0, 1.0} - [261] = "%.f", -- lamp_DC_Ground_Power{0.0, 1.0} - -- Eject system - --------------------------------------------------- - [461] = "%0.1f", -- EjectSystemTestLamp{0.0, 1.0} - -- Fire Extinguishers panel - --------------------------------------------------- - [237] = "%.f", -- lamp_Exting_LeftEngineFire{0.0, 1.0} - [239] = "%.f", -- lamp_Exting_APU_Fire{0.0, 1.0} - [568] = "%.f", -- lamp_Exting_HydraulicsFire{0.0, 1.0} - [241] = "%.f", -- lamp_Exting_RightEngineFire{0.0, 1.0} - [243] = "%.f", -- lamp_Exting_VentilatorFire{0.0, 1.0} - [244] = "%.f", -- lamp_Exting_Lamp1{0.0, 1.0} - [245] = "%.f", -- lamp_Exting_Lamp2{0.0, 1.0} - -- Engines mode indicator - --------------------------------------------------- - [592] = "%.4f", -- EnginesMode {0.0,1.0} - [234] = "%0.2f", -- LeftEngineMode{0.0,1.0} - [235] = "%0.2f", -- RightEngineMode {0.0,1.0} - -- Oil pressure and temperature indicators group (Right Panel) - --------------------------------------------------- - [252] = "%.4f", -- NeedleOilPressureEngineLeft {0.0,1.0} - [253] = "%.4f", -- NeedleOilPressureEngineRight {0.0, 1.0} - [254] = "%.4f", -- NeedleOilPressureGearBox {0.0,1.0} - [255] = "%.4f", -- NeedleOilTemperatureEngineLeft {0.0,1.0} - [256] = "%.4f", -- NeedleOilTemperatureEngineRight {0.0,1.0} - [257] = "%.4f", -- NeedleOilTemperatureGearBox {0.0,1.0} - -- Right Back Panel - --------------------------------------------------- - [469] = "%.f", -- lamp_flap_hydro_1{0.0, 1.0} - [470] = "%.f", -- lamp_flap_hydro_2{0.0, 1.0} - -- Hydraulics Gauges (Back Panel) - --------------------------------------------------- - [471] = "%.4f", -- hydro_common_pressure {0.0,1.0} - [472] = "%.4f", -- hydro_main_pressure {0.0,1.0} - [473] = "%.4f", -- hydro_acc_brake_pressure {0.0,1.0} - [474] = "%.4f", -- hydro_gear_brake_pressure {0.0,1.0} - [475] = "%.4f", -- hydro_common_temperature {0.0,1.0} - [476] = "%.4f", -- hydro_main_temperature {0.0,1.0} - -- Latitude Entry Panel (PShK_7) - --------------------------------------------------- - [342] = "%.f", -- PShK7_LampAuto {0.0,1.0} - [339] = "%0.4f", -- PShK7_Latitude_counter_tenth {0.0,10.0} - [594] = "%0.4f", -- PShK7_Latitude_counter_units {0.0,10.0} - -- Magnetic Variation Entry Panel (ZMS_3) - --------------------------------------------------- - [337] = "%0.4f", -- ZMS3_MagVar_counter_hundreds_tenth {-1.0,1.0} - [596] = "%0.4f", -- ZMS3_MagVar_counter_units {0.0,1.0} - -- Ambient Temperature - --------------------------------------------------- - [587] = "%0.4f" -- Ambient Temperature {-60, 50} = {-0.946, 0.788} -} - -ExportScript.ConfigArguments = -{ - --[[ - arguments for export in low tick interval - based on "clickabledata.lua" - ]] - -- ADI - --------------------------------------------------- - [110] = "%.1f", -- TEST-IKP-PTR (ADI Test Button) {0.0,1.0} - -- HSI - --------------------------------------------------- - [113] = "%.1f", -- TEST-PNP-PTR03 (HSI test Button) - [54] = "%1d", -- ZPU-ZK-PTR (HSI Desired track angle - Desired heading, Auto - Manual) {0,1} - --laser ranger - --------------------------------------------------- - [56] = "%1d", -- LDP-LD-PTR (Laser rangefinder / designator - mode switch) - [57] = "%1d", -- LD-LDP-COVER-PTR (Laser rangefinder Cover) - [55] = "%.1f", -- CHOP-LDP-PTR (Laser designator reset) - -- RADIOALTIMETER - --------------------------------------------------- - [96] = "%.1f", -- TEST-RADIO-HIGHT-PTR (Radar altimeter test) - -- CPT MECH - --------------------------------------------------- - [572] = "%.1f", -- G--PTR (Accelerometer reset) - -- SYSTEM CONTROLLER - --------------------------------------------------- - [45] = "%.1f", -- CONTROL-ALARM-PTR (Lamps test) - -- STANDBY ADI (AGR-81) - --------------------------------------------------- - [230] = "%1d", -- RES-AG-PTR (Standby Attitude Indicator power switch) - -- Engines Start-Up Control Panel - --------------------------------------------------- - [131] = "%.1f", -- CONTROL-TEMP-WORK-PTR (Running engines exhaust gas temperature indicator test button) - [132] = "%.1f", -- CONTROL-TEMP-NOTWORK-PTR (Stopped engines exhaust gas temperature indicator test button) - -- FUEL SYSTEM - --------------------------------------------------- - [616] = "%.1f", -- CONTROL-OIL-PTR (Fuel quantity indicator self test button) - -- ABRIS Display - --------------------------------------------------- - [512] = "%.1f", -- PTR_BTN-ABRIS-01 (ABRIS Pushbutton 1) {start value 0.01 the same index for -2,-3,-4,-5,-6,-7,-8,-9,-RCL,-ENTR with increment 0.01} - [513] = "%.1f", -- PTR_BTN-ABRIS-02 (ABRIS Pushbutton 2) - [514] = "%.1f", -- PTR_BTN-ABRIS-03 (ABRIS Pushbutton 3) - [515] = "%.1f", -- PTR_BTN-ABRIS-04 (ABRIS Pushbutton 4) - [516] = "%.1f", -- PTR_BTN-ABRIS-05 (ABRIS Pushbutton 5) - [518] = "%.1f", -- ABRIS_SHUNT_PTR (ABRIS Cursor Control (rotary)){0.0,1.0} (0.04) - [523] = "%.1f", -- ABRIS_SHUNT_PTR (ABRIS Cursor Control (push)) - [517] = "%.3f", -- ABRIS_BRIGHTNESS_PTR (ABRIS Brightness) {0.0,1.0} (0.05) - [130] = "%0.1f", -- ABRIS-POWER_PTR (ABRIS Power) - -- HUD - --------------------------------------------------- - [8] = "%.3f", -- PTR_HUD-BRIGHTNESS (HUD Brightness) - [9] = "%1d", -- PTR_HUD-TMB-SETKA02 (HUD Modes Reticle/Night/Day) - [7] = "%.1f", -- PTR-HUD-TEST (HUD Test) - [510] = "%0.1f", -- PTR_HUD-FILTER (HUD Filter) - -- PUI-800 Weapons Control Panel - --------------------------------------------------- - [387] = "%1d", -- MASTER-ARM-PTR (Master Arm) - [402] = "%.1f", -- UI800-AVARCHOP-PTR (External stores jettison) - [396] = "%1d", -- MASTER-EXPLODE-PTR (Jettison arm mode - arm fuse/disarm fuse) - [403] = "%1d", -- PUI800-AUTO-PTR (Manual/Auto weapon system control switch) - [399] = "%1d", -- PUI800-OFBR-PTR (Cannon round selector switch HE/AP) - [400] = "%.1f", -- SR-PTR (Weapon mode switch - Burst Length) {0.0,0.1,0.2} - [398] = "%1d", -- MT-PTR (Cannon rate of fire setting) - [397] = "%.1f", -- MASTER-UNLOAD-PTR (Expedite emergency ATGM launch) - -- PUR Weapons Aux Panel - -- SHKVAL - --------------------------------------------------- - [404] = "%1d", -- PUR-BACKGROUND-PTR (IT-23 Black-White indication switch) - [406] = "%.3f", -- PUR-LIGHTIT-PTR (IT-23 display brightness) - [407] = "%.3f", -- PUR-CONTRAST-PTR (IT-23 display contrast) - -- SHKVAL windscreen wiper - [224] = "%.1f", -- WIPER-PTR (SHKVAL windscreen wiper) - -- HELMET - [405] = "%.3f", -- PUR-LIGHTNVU-PTR (Helmet device brightness) - -- WEAPON SYSTEM - [408] = "%0.1f", -- PUR-LIT-PTR (Laser code selector) - [409] = "%1d", -- PUR-OGR-INF-PTR (HUD/TV declutter switch) - -- Outside illumination - --------------------------------------------------- - [382] = "%0.1f", -- LANDING LIGHTS-DIR-LIGHT-PTR (Light landing-search. On/Retraction/Off) - [383] = "%1d", -- LANDING LIGHTS-BASE-RESERV-PTR (Lights landing-search change. Main/Reserved) - -- ALMAZ system - --------------------------------------------------- - [384] = "%.1f", -- SPEECH-INFO-OFF-PTR01 (Voice message system messages off) - [385] = "%.1f", -- SPEECH-INFO-RETRY-PTR (Voice message system messages repeat) - [386] = "%0.1f", -- SPEECH-INFO-AVAR-PTR (Voice message system emergency on) - [442] = "%.1f", -- SPEECH-BIT-PTR (Voice message system check) - -- CPT MECH - --------------------------------------------------- - [65] = "%1d", -- GEAR-PTR (Gear lever) - [66] = "%1d", -- AVAR-GEAR-PTR (Main/Common hydraulics for emergency gear) - [67] = "%1d", -- AVAR-GEAR-COVER-PTR (Main/Common hydraulics for emergency gear Cover) - -- OVERHEAD PANEL - --------------------------------------------------- - [146] = "%0.1f", -- ANO-PTR (Navigation Lights 10\% / 30\% / 100\% / Off) - [147] = "%0.1f", -- WINDSCREEN-WIPER-PTR (Windshield wiper switch) - [539] = "%1d", -- PPD-DUAS-PTR (Pitot static port and AoA sensors heat switch) - [151] = "%1d", -- PVD-CLOCK-PTR (Pitot ram air and clock heat switch) - [153] = "%1d", -- POS-ROTORS-PTR (Rotor de-icing system switch) - [154] = "%0.1f", -- POS-ENGINE-PZU-PTR (Engines de-icing / dust-protection systems switch) - [156] = "%.1f", -- KONTR-PVD-PTR (Pitot heat system test) - -- Laser Warning System - --------------------------------------------------- - [35] = "%.1f", -- L-140-RESET-PTR (LWS Reset button) - [583] = "%1d", -- L140-SWITCH (LWS Power switch) - [584] = "%.1f", -- L140-CNOB (LWS self-test button) - -- UV-26 CMD Control Panel - --------------------------------------------------- - [36] = "%0.1f", -- UV26-BOARD-PTR (CMD Select Left/Both/Right board flares dispensers) - [37] = "%0.1f", -- UV26-PROGR-PTR (CMD Amount flares counter/Programming) - [38] = "%.1f", -- UV26-SERIES-PTR (CMD Num of sequences) - [39] = "%.1f", -- UV26-BURST-PTR (CMD Num in sequence) - [41] = "%.1f", -- UV26-INTERVAL-PTR (CMD Dispense interval) - [43] = "%.1f", -- UV26-START-PTR (CMD Start dispense) - [42] = "%.1f", -- UV26-CANCELPRG-PTR (CMD Reset to default program) - [40] = "%.1f", -- UV26-STOP-PTR (CMD Stop dispense) - -- UV-26 related (REAR PANEL) - [496] = "%1d", -- UV26-POWER-PTR (CMD Power) - [497] = "%1d", -- UV26-POWER-COVER-PTR (CMD Power Cover) - [498] = "%1d", -- UV26-TEST-PTR (CMD BIT) - [499] = "%1d", -- UV26-TEST-COVER-PTR (CMD BIT Cover) - -- PVI NAV Panel - --------------------------------------------------- - [312] = "%0.1f", -- PVI-0-PTR (NAV '0' Btn) - [303] = "%0.1f", -- PVI-1-PTR (NAV '1' Btn) - [304] = "%0.1f", -- PVI-2-PTR (NAV '2' Btn) - [305] = "%0.1f", -- PVI-3-PTR (NAV '3' Btn) - [306] = "%0.1f", -- PVI-4-PTR (NAV '4' Btn) - [307] = "%0.1f", -- PVI-5-PTR (NAV '5' Btn) - [308] = "%0.1f", -- PVI-6-PTR (NAV '6' Btn) - [309] = "%0.1f", -- PVI-7-PTR (NAV '7' Btn) - [310] = "%0.1f", -- PVI-8-PTR (NAV '8' Btn) - [311] = "%0.1f", -- PVI-9-PTR (NAV '9' Btn) - [324] = "%0.1f", -- PVI-SWITCH-PTR (NAV Master modes) - [325] = "%1d", -- PVI_I251V_PTR (NAV INU fixtaking method) - [326] = "%1d", -- PVI_VCU_PTR (NAV Datalink power) - [327] = "%.3f", -- PVI-BRIGHTNESS-PTR (NAV Brightness) - -- DATALINK - --------------------------------------------------- - -- Datalink Mode Controls - [328] = "%0.1f", -- DTLK-SELF-ID-PTR (Datalink self ID) - [329] = "%0.1f", -- DTLK-MASTER-MODES-PTR (Datalink Master mode) - -- PPR - Autopilot Control Panel - -- AUTOPILOT - --------------------------------------------------- - [335] = "%0.1f", -- BAR-RV-PTR (Autopilot BARO/RALT altitude hold mode) - -- NAV SYSTEM - [336] = "%0.1f", -- ZK-LZP-PTR (Autopilot Desired heading - Desired track) - --ARK-22 - --------------------------------------------------- - [381] = "%0.2f", -- IANDING LIGHTS-DIR-LIGHT-PTR01 (ADF Inner-Auto-Outer NDB switch) - [355] = "%.1f", -- ARK-CONTROL-PTR (ADF Test) - [354] = "%1d", -- TLF-TLG-PTR (TLF-TLG modes) - [353] = "%.3f", -- VARK-VOLUME-PTR (ADF Volume) - [356] = "%1d", -- TLF-TLG-PTR01 (COMPASS-ANTENNA modes) - [357] = "%0.1f", -- VARK-VOLUME-PTR01 (ADF channel switch) - --R-828 - --------------------------------------------------- - [371] = "%0.1f", -- CHANNEL-PTR (R-828 (VHF-1) Radio channel selector) - [372] = "%.3f", -- RADIO-VOLUME-PTR (R-828 (VHF-1) Radio Volume) - [373] = "%.1f", -- ASU-PTR (R-828 (VHF-1) Tuner button) - [374] = "%1d", -- RADIO-PSH-SWITCH-PTR (R-828 (VHF-1) Squelch) - -- Signal Flares - --------------------------------------------------- - [376] = "%.1f", -- SIGNAL-FLARE-1-PTR (Signal flare red) - [377] = "%.1f", -- SIGNAL-FLARE-2-PTR (Signal flare green) - [378] = "%.1f", -- SIGNAL-FLARE-3-PTR (Signal flare white) - [379] = "%.1f", -- SIGNAL-FLARE-4-PTR (Signal flare yellow) - [380] = "%1d", -- SIGNAL-FLARE-SWITCH-PTR (Signal flare system power) - --R-800 - --------------------------------------------------- - [418] = "%.1f", -- START-PANEL-CONTROL-PTR (R-800 (VHF-2) BIT button) - [417] = "%1d", -- CONTR-RADIO-CHM-AM-PTR (R-800 (VHF-2) AM-FM toggle switch) - [421] = "%1d", -- CONTR-RADIO-AP-PTR (R-800 (VHF-2) Emergency receiver) - [422] = "%1d", -- CONTR-RADIO-ARK-PTR (R-800 (VHF-2) ADF switch) - [420] = "%1d", -- CONTR-RADIO-50-100-PTR01 (R-800 (VHF-2) Data transfer rate switch) - [423] = "%1d", -- CONTR-RADIO-PSH-PTR (R-800 (VHF-2) Squelch) - -- PVR - --------------------------------------------------- - -- WEAPONS - [432] = "%1d", -- PVR-DRILL-PTR (Training mode) - [431] = "%0.1f", -- PVR-MODE-PTR (Weapon system mode selector) - [436] = "%1d", -- PVR-AS-PM-PTR (Automatic Tracking / gun sight) - -- K041 - [433] = "%1d", -- K-041-PTR (K-041 Targeting-navigation system power switch) - -- LASERRANGER - [435] = "%1d", -- PVR-IZL-PTR (Laser standby ON/OFF switch) - -- HELMET - [434] = "%1d", -- PVR-OBZ-PTR (Helmet-mounted sight system power switch) - -- SHKVAL - [301] = "%0.1f", -- V-SCAN-PTR (Shkval scan rate) - -- Engines Start-Up Control Panel - --------------------------------------------------- - [412] = "%.1f", -- START-PANEL-START-PTR (Start-up selected engine button) - [413] = "%.1f", -- START-PANEL-STOP-START-PTR ("Interrupt start-up button) - [414] = "%.1f", -- START-PANEL-STOP-START-PTR01 (Stop APU button) - [415] = "%0.1f", -- START-PANEL-ROLLING-PTR (Engine Startup/Crank/False Start selector) - [416] = "%0.1f", -- START-ENGINE-SELECTOR-PTR (Engine selector) - [554] = "%1d", -- EMERGENCY-BRAKE ENGINE-LEFT-PTR (Left engine cut-off valve) - [555] = "%1d", -- EMERGENCY-BRAKE ENGINE-RIGHT-PTR (Right engine cut-off valve) - [556] = "%1d", -- BRAKE-ROTOR-LOW-PTR01 (Rotor brake) - --Radio switcher - --------------------------------------------------- - [428] = "%0.2f", -- RADIO-RATE-PTR (SPU-9 Radio communicator selector) - -- Right Side Panel - --------------------------------------------------- - -- ELECTRICS POWER - [262] = "%1d", -- ENERG-AER-RIT-PTR (DC ground power) - [263] = "%1d", -- ENERG-COVER-AER-RIT-PTR (DC ground power Cover) - [543] = "%1d", -- ENERG-AKK2-PTR (Battery 2) - [544] = "%1d", -- ENERG-COVER-AKK2-PTR (Battery 2 Cover) - [264] = "%1d", -- ENERG-AKK1-PTR (Battery 1) - [265] = "%1d", -- ENERG-COVER-AKK1-PTR (Battery 1 Cover) - [267] = "%1d", -- RAMP-POWER-PTR (AC ground power) - [268] = "%1d", -- GEN-LEFT-PTR (AC left generator) - [269] = "%1d", -- GEN-RIGHT-PTR (AC right generator) - [270] = "%01.f", -- CONVERTER-PTR (DC/AC inverter) {0.0, 0.2} - -- FUEL SYSTEM - [271] = "%1d", -- FUEL-PUMP-FRONT-PTR (Forward fuel tank pumps) - [272] = "%1d", -- FUEL-PUMP-BACK-PTR (Rear fuel tank pumps) - [273] = "%1d", -- FUEL-PUMP-INNER-PTR (Inner external fuel tanks pumps) - [274] = "%1d", -- FUEL-PUMP-OUTER-PTR (Outer external fuel tanks pumps) - [275] = "%1d", -- FUEL-METER-PTR (Fuelmeter power) - [276] = "%1d", -- PAV-CRANE-ENGINE-LEFT-PTR (Left engine fuel shutoff valve) - [277] = "%1d", -- PAV-CRANE-COVER-ENGINE-LEFT-PTR (Left engine fuel shutoff valve) - [278] = "%1d", -- PAV-CRANE-ENGINE-RIGHT-PTR (Right engine fuel shutoff valve) - [279] = "%1d", -- PAV-CRANE-COVER-ENGINE-RIGHT-PTR (Right engine fuel shutoff valve) - [280] = "%1d", -- PAV-CRANE-VSU-PTR (APU fuel shutoff valve) - [281] = "%1d", -- PAV-CRANE-COVER-VSU-PTR (APU fuel shutoff valve Cover) - [282] = "%1d", -- PAV-CRANE-CYKLIZATION-PTR (Fuel crossfeed valve) - [283] = "%1d", -- PAV-CRANE-COVER-CYKLIZATION-PTR (Fuel crossfeed valve Cover) - -- COMMS POWER - [284] = "%1d", -- COMM-PWR-AVSK-PTR (Intercom) - [285] = "%1d", -- COMM-PWR-UKV-1-PTR (VHF-1 (R828) power switch) - [286] = "%1d", -- COMM-PWR-UKV-2-PTR (VHF-2 (R-800) power switch) - [287] = "%1d", -- COMM-PWR-TLK-PTR (Radio equipment datalink TLK power switch) - [288] = "%1d", -- COMM-PWR-UKV-TLK-PTR (Radio equipment datalink UHF TLK power switch) - [289] = "%1d", -- COMM-PWR-SA-TLF-PTR (Radio equipment datalink SA-TLF power switch) - -- WEAPON SYS - [547] = "%1d", -- SUO-PTR (Weapons Control system) - [548] = "%1d", -- SUO-COVER-PTR (Weapons Control system Cover) - -- EJECT SYSTEM - [214] = "%1d", -- RIGHT-EMERG-SW1-PTR (Ejecting system power 1) - [215] = "%1d", -- RIGHT-EMERG-SW2-PTR (Ejecting system power 2) - [216] = "%1d", -- RIGHT-EMERG-SW3-PTR (Ejecting system power 3) - [217] = "%1d", -- RIGHT-COVER-EMERG-VACATION-PTR (Ejecting system power Cover) - [462] = "%0.1f", -- CONTR-SAPROTATE-PTR (Ejecting system circuit selector) - [460] = "%.1f", -- CONTR-SAP-PTR (Ejecting system circuit test) - -- HYDRAULICS - [220] = "%1d", -- HYDRO-PTR (Main hydraulics) - [221] = "%1d", -- HYDRO-COVER-PTR02 (Main hydraulics Cover) - -- IFF - [218] = "%1d", -- SRO-PTR (IFF power) - [219] = "%1d", -- COVER-SRO-PTR (IFF power Cover) - -- NAV SYSTEM - [222] = "%1d", -- PNK-PTR (Navigation system power) - [229] = "%0.1f", -- GYRO-MAG-MAN-HEADING-PTR (Gyro/Mag/Manual heading) - -- Outside illumination - [228] = "%1d", -- FLASHER-PTR (Anticollision Light) - [296] = "%1d", -- CONTUR-LIGHT-PTR (Tip Lights) - [297] = "%0.1f", -- FORMATION-PTR (Formation Lights) - -- ENGINES - [290] = "%1d", -- ERD-LEFT-PTR (EEG Left engine Electronic Engine Governor) - [291] = "%1d", -- ERD-LEFT-COVER-PTR (EEG Left engine Electronic Engine Governor Cover) - [292] = "%1d", -- ERD-RIGHT-PTR (EEG Right engine Electronic Engine Governor) - [293] = "%1d", -- ERD-RIGHT-COVER-PTR (EEG Right engine Electronic Engine Governor Cover) - [294] = "%1d", -- PAV-CRANE-VSU-PTR01 (EEG gas generator test Operate switch) - [569] = "%1d", -- PAV-CRANE-COVER-VSU-PTR01 (EEG gas generator test Operate switch Cover) - [295] = "%0.1f", -- PAV-CRANE-VSU-PTR02 (EEG power turbine channel 1 test Operate EEG power turbine channel 2 test, three-switch contactor) - [570] = "%0.1f", -- PAV-CRANE-COVER-VSU-PTR02 (EEG power turbine channel 1 test Operate EEG power turbine channel 2 test, three-switch contactor Cover) - [457] = "%.1f", -- RT-12-6-LEFT-PTR (Left EGT control threshold governor button) - [458] = "%.1f", -- RT-12-6-RIGHT-PTR (Right EGT control threshold governor button) - [459] = "%.1f", -- RT-12-6-IV-PTR (Engines vibrations monitoring system control button) - -- Lighting - [300] = "%1d", -- DESK-PTR (Lighting cockpit panel switch) - [299] = "%1d", -- DEVICES-PTR (Lighting night vision cockpit switch) - [298] = "%1d", -- AGR-PKP-PTR (Lighting ADI and SAI switch) - -- Fire Extinguishers Control Panel - [236] = "%.1f", -- PUI800-AVARCHOP-PTR01 (Left engine extinguisher) - [238] = "%.1f", -- PUI800-AVARCHOP-PTR02 (APU extinguisher) - [240] = "%.1f", -- PUI800-AVARCHOP-PTR03 (Right engine extinguisher) - [242] = "%.1f", -- PUI800-AVARCHOP-PTR04 (Ventilator extinguisher) - [248] = "%0.1f", -- FIREEXT-PTR (Fire extinguisher Work Off Test switch) - [249] = "%0.1f", -- FIREEXT-COVER-PTR (Fire extinguisher Work Off Test switch Cover) - [250] = "%1d", -- FIREEXT-INDICATION-PTR (Fire signaling) - [246] = "%1d", -- BALOONS-PTR (Fire extinguisher First (Auto) / Second (Manual) selector) - [247] = "%1d", -- BALOONS-COVER-PTR (Fire extinguisher First (Auto) / Second (Manual) selector Cover) - -- Misc. systems - [258] = "%0.1f", -- REDUCTOR-PTR (Reducing gear box oil pressure indication selector) - [259] = "%1d", -- HANGER-PTR (Sling load Auto/Manual) - -- Auxiliary panel - --------------------------------------------------- - -- Preflight Set and Check Panel - [483] = "%0.1f", -- PPK-BBTZ-PTR (ATGM Temperature selector) - [484] = "%0.1f", -- PPK-NRAKS-PTR (Unguided rocket and gun pods ballistics data settings selector) - [485] = "%1d", -- PPK-RNP-PTR (Systems BIT selector) - [486] = "%1d", -- KCVM-PTR (Control computers BIT switch) - [489] = "%.1f", -- AKS-PTR (Self test system push-button) - [490] = "%1d", -- VnK-PTR (Emergency INU alignment switch) - [491] = "%1d", -- ROPE-PTR (Stabilisation and indication of hanger cable switch) - [492] = "%1d", -- FKP-PTR (Video Tape Recorder switch) - [487] = "%1d", -- IKV-PTR (INU Power switch) - [488] = "%1d", -- HEAT_IKV-PTR (INU Heater switch) - [452] = "%1d", -- P-CONTR-VMG-HYDRO-PTR (Power plant, hydraulics, EKRAN self-test systems switch) - [453] = "%1d", -- P-CONTR-VMG-HYDRO-COVER-PTR (Power plant, hydraulics, EKRAN self-test systems switch Cover) - -- PShK_7 (Latitude Entry Panel) - [340] = "%.3f", -- LATITUDE-PTR (Latitude selection rotaty) - [341] = "%1d", -- N-S-PTR (North/South latitude selection) - -- ZMS_3 (Magnetic Variation Entry Panel) - [338] = "%.3f" -- DCLIN-PTR (Magnetic variation selection rotaty) -} - --- Lookup tables for weapons store type display -ExportScript.AF.Ka50StationTypes = -{ - ["9A4172"] = "NC", - ["S-8KOM"] = "HP", - ["S-13"] = "HP", - ["UPK-23-250"] = "NN", - ["AO-2.5RT"] = "A6", - ["PTAB-2.5KO"] = "A6", - ["FAB-250"] = "A6", - ["FAB-500"] = "A6" -} - --- State data -ExportScript.AF.Ka50Trigger = 0 - ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance -function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - -- function for Ikarus - - local lWeaponSystem = GetDevice(12) - local lCannonAmmoCount = " " - local lStationNumbers = lWeaponSystem:get_selected_weapon_stations() - local lStationCount = " " - local lStationType = " " - local lTargetingPower = mainPanelDevice:get_argument_value(433) - local lTrigger = mainPanelDevice:get_argument_value(615) - if lTrigger == 0 then - ExportScript.AF.Ka50Trigger = 1 - end - if lTrigger == -1 then - ExportScript.AF.Ka50Trigger = 0 - end - - if lTargetingPower == 1 then - lCannonAmmoCount = string.format("%02d",string.match(lWeaponSystem:get_selected_gun_ammo_count() / 10,"(%d+)")) - - if #lStationNumbers ~= 0 and ExportScript.AF.Ka50Trigger == 0 then - lStationCount = 0 - for i=1,#lStationNumbers do - lStationCount = lStationCount + lWeaponSystem:get_weapon_count_on_station(lStationNumbers[i]) - end - - lStationCount = string.format("%02d", lStationCount); - - lStationType = ExportScript.AF.Ka50StationTypes[lWeaponSystem:get_weapon_type_on_station(lStationNumbers[1])] - if lStationType == nil then - lStationType = "" - end - end - end - - -- PUI-800 Weapon panel - --------------------------------------------------- - ExportScript.Tools.SendData(2004, string.format("%s", lStationType)) - ExportScript.Tools.SendData(2005, string.format("%s", lStationCount)) - ExportScript.Tools.SendData(2006, string.format("%s", lCannonAmmoCount)) - - -- UV-26 - local lUV26 = ExportScript.Tools.getListIndicatorValue(7) - - if lUV26 ~= nil and lUV26.txt_digits ~= nil then - ExportScript.Tools.SendData(2007, string.format("%s", lUV26.txt_digits)) - else - ExportScript.Tools.SendData(2007, " ") - end - - -- EKRAN - --------------------------------------------------- - - local lEKRAN = GetDevice(10) - local lEkranSendString = "" - local lEkranText = lEKRAN:get_actual_text_frame() - --ExportScript.Tools.WriteToLog('lEkranText: '..ExportScript.Tools.dump(lEkranText)) - --if lEkranText ~= "" then - if ExportScript.utf8.len(lEkranText) > 0 then - --lEkranSendString = string.sub(lEkranText,1,8).."\n"..string.sub(lEkranText,12,19).."\n"..string.sub(lEkranText,23,30).."\n"..string.sub(lEkranText,34,41) - --ExportScript.Tools.SendData(2010, string.format("%s", string.sub(lEkranText,1,9))) - --ExportScript.Tools.SendData(2011, string.format("%s", string.sub(lEkranText,12,20))) - --ExportScript.Tools.SendData(2012, string.format("%s", string.sub(lEkranText,23,31))) - --ExportScript.Tools.SendData(2013, string.format("%s", string.sub(lEkranText,34,42))) - --ExportScript.Tools.WriteToLog('2011: '..ExportScript.Tools.dump(string.format("%s", ExportScript.utf8.sub(lEkranText,12,20)))) - ExportScript.Tools.SendData(2010, string.format("%s", ExportScript.utf8.sub(lEkranText,1,9))) - ExportScript.Tools.SendData(2011, string.format("%s", ExportScript.utf8.sub(lEkranText,12,20))) - ExportScript.Tools.SendData(2012, string.format("%s", ExportScript.utf8.sub(lEkranText,23,31))) - ExportScript.Tools.SendData(2013, string.format("%s", ExportScript.utf8.sub(lEkranText,34,42))) - else - ExportScript.Tools.SendData(2010, " ") - ExportScript.Tools.SendData(2011, " ") - ExportScript.Tools.SendData(2012, " ") - ExportScript.Tools.SendData(2013, " ") - end - - --[75] = "%0.1f", -- CLOCK_flight_time_meter_status{0.0,0.1,0.2} - -- Ikarus WPClock Ka-50 Clock - -- White = 0.2 0.0 - -- Red = 0.0 0.1 - -- White/Red = 0.6 0.2 - local lClock = string.format("%0.1f", mainPanelDevice:get_argument_value(75)) - if lClock == "0.0" then - ExportScript.Tools.SendData(75, "0.2") - elseif lClock == "0.1" then - ExportScript.Tools.SendData(75, "0.0") - elseif lClock == "0.2" then - ExportScript.Tools.SendData(75, "0.6") - end - - --[[ - local lFAILlight = "" -- FAILURE - local lMEMORYlight = "" -- MEMORY - local lTURNlight = "" -- TURN - if lEkranSendString ~= "" then - lFAILlight = "FAILURE" - end - -- DisplayWindow (main message) - -- FAILlight (failure text) - -- MEMORYlight (memmory text) - -- TURNlight (turn text) - --ExportScript.Tools.SendData(2001, string.format("%s", lEkranSendString)) - --ExportScript.Tools.SendData(2002, string.format("%s", lFAILlight)) - --ExportScript.Tools.SendData(2003, string.format("%s", lMEMORYlight)) - --ExportScript.Tools.SendData(2004, string.format("%s", lTURNlight)) - --ExportScript.Tools.WriteToLog('lEkranSendString: '..ExportScript.Tools.dump(lEkranSendString)) - --ExportScript.Tools.WriteToLog('lFAILlight: '..ExportScript.Tools.dump(lFAILlight)) - --ExportScript.Tools.WriteToLog('lMEMORYlight: '..ExportScript.Tools.dump(lMEMORYlight)) - --ExportScript.Tools.WriteToLog('lTURNlight: '..ExportScript.Tools.dump(lTURNlight)) - ]] - --[[ - --ExportScript.Tools.WriteToLog('EKRAN: '..ExportScript.Tools.dump(list_indication(4))) - local lEKRAN = list_indication(4) - lEKRAN = lEKRAN:gsub("-----------------------------------------", "") - lEKRAN = lEKRAN:gsub("\n", "") -- oder %c - - - local to1, to2, from1, from2, lEKRANframe, lEKRANtxtqueue, lEKRANtxt1, lEKRANtxt2, lEkranSendString = nil, nil, nil, nil, "", "", "", "", "" - to1, to2 = lEKRAN:find("txt_queue") - if (to1 == nil) then - from1, from2 = 1,5 -- lEKRAN:find("frame") - to1, to2 = lEKRAN:find("txt_1") - if (to1 ~= nil) then - lEKRANframe = lEKRAN:sub(from2+1, to1-1) - end - else - from1, from2 = 1,5 -- lEKRAN:find("frame") - --to1, to2 = lEKRAN:find("txt_queue") - lEKRANframe = lEKRAN:sub(from2+1, to1-1) - - from1, from2 = lEKRAN:find("txt_queue") - to1, to2 = lEKRAN:find("txt_1") - if (to1 ~= nil and from2 ~= nil) then - lEKRANtxtqueue = lEKRAN:sub(from2+1, to1-1) - end - end - from1, from2 = lEKRAN:find("txt_1") - to1, to2 = lEKRAN:find("txt_2") - if (to1 ~= nil and from2 ~= nil) then - lEKRANtxtqueue = lEKRAN:sub(from2+1, to1-1) - end - from1, from2 = lEKRAN:find("txt_2") - --to1, to2 = lEKRAN:find("txt_2") - if (from2 ~= nil) then - lEKRANtxt2 = lEKRAN:sub(from2+1, -1) - end - - --ExportScript.Tools.WriteToLog('lEKRANframe: '..ExportScript.Tools.dump(lEKRANframe)) - --ExportScript.Tools.WriteToLog('lEKRANtxtqueue: '..ExportScript.Tools.dump(lEKRANtxtqueue)) - --ExportScript.Tools.WriteToLog('lEKRANtxt1: '..ExportScript.Tools.dump(lEKRANtxt1)) - --ExportScript.Tools.WriteToLog('lEKRANtxt2: '..ExportScript.Tools.dump(lEKRANtxt2)) - - --lEkranSendString = string.sub(lEKRANtxt2,1,9).."\n"..string.sub(lEKRANtxt2,11,19).."\n"..string.sub(lEKRANtxt2,21,29).."\n"..string.sub(lEKRANtxt2,31,39) - ExportScript.Tools.SendData(2010, string.format("%s", string.sub(lEKRANtxt2,1,9))) - ExportScript.Tools.SendData(2011, string.format("%s", string.sub(lEKRANtxt2,11,19))) - ExportScript.Tools.SendData(2012, string.format("%s", string.sub(lEKRANtxt2,21,29))) - ExportScript.Tools.SendData(2013, string.format("%s", string.sub(lEKRANtxt2,31,39))) - ]] - - -- Cockpit Light - ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {300, 299, 298}) - -- Lighting cockpit panel switch, Lighting night vision cockpit switch, Lighting ADI and SAI switch - - -- Datalink Lamps - ExportScript.Tools.SendData(159, string.format("%.1f", mainPanelDevice:get_argument_value(159))) -- PRC_button_SEND {0.0,0.3} - ExportScript.Tools.SendData(150, string.format("%.1f", mainPanelDevice:get_argument_value(150))) -- PRC_button_ESCAPE {0.0,0.3} {0,1} - ExportScript.Tools.SendData(161, string.format("%.1f", mainPanelDevice:get_argument_value(161))) -- PRC_button_ERASE {0.0,0.3} {0,1} - ExportScript.Tools.SendData(15, string.format("%.1f", mainPanelDevice:get_argument_value(15))) -- PRC_button_CLEAN {0.0,0.3} {0,1} - ExportScript.Tools.SendData(16, string.format("%.1f", mainPanelDevice:get_argument_value(16))) -- PRC_button_WINGMAN_ALL {0.0,0.3} {0,1} - ExportScript.Tools.SendData(17, string.format("%.1f", mainPanelDevice:get_argument_value(17))) -- PRC_button_WINGMAN_1 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(18, string.format("%.1f", mainPanelDevice:get_argument_value(18))) -- PRC_button_WINGMAN_2 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(19, string.format("%.1f", mainPanelDevice:get_argument_value(19))) -- PRC_button_WINGMAN_3 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(20, string.format("%.1f", mainPanelDevice:get_argument_value(20))) -- PRC_button_WINGMAN_4 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(21, string.format("%.1f", mainPanelDevice:get_argument_value(21))) -- PRC_button_TARGET_1 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(22, string.format("%.1f", mainPanelDevice:get_argument_value(22))) -- PRC_button_TARGET_2 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(23, string.format("%.1f", mainPanelDevice:get_argument_value(23))) -- PRC_button_TARGET_3 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(50, string.format("%.1f", mainPanelDevice:get_argument_value(50))) -- PRC_button_TARGET_POINT {0.0,0.3} {0,1} - - -- WEAPON INTERFACE - ExportScript.Tools.SendData(437, string.format("%.1f", mainPanelDevice:get_argument_value(437))) -- PRC_button_AUTO_TURN {0.0,0.3} {0,1} - ExportScript.Tools.SendData(438, string.format("%.1f", mainPanelDevice:get_argument_value(438))) -- PRC_button_AIRBORNE_TARGET {0.0,0.3} {0,1} - ExportScript.Tools.SendData(439, string.format("%.1f", mainPanelDevice:get_argument_value(439))) -- PRC_button_FORWARD_HEMISPHERE {0.0,0.3} {0,1} - ExportScript.Tools.SendData(440, string.format("%.1f", mainPanelDevice:get_argument_value(440))) -- PRC_button_GROUND_MOVING_TARGET {0.0,0.3} {0,1} - ExportScript.Tools.SendData(441, string.format("%.1f", mainPanelDevice:get_argument_value(441))) -- PRC_button_CLEAR {0.0,0.3} {0,1} -end - --- Pointed to by ProcessDACLowImportance, if the player aircraft is a Ka-50 -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - -- Radio comunication - -- ARK_22 (ADF) Frequncy - local lARK_22 = GetDevice(46) - ExportScript.Tools.SendDataDAC("2000", string.format("%1d", lARK_22:get_channel())) - - -- R_800 - local lR_800 = GetDevice(48) - --ExportScript.Tools.SendDataDAC("2001", string.format("%7.3f", lR_800:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2001",ExportScript.Tools.RoundFreqeuncy(lR_800:get_frequency()/1000000)) - - -- R_828 Channel - local lR_828 = {[0.0]="1",[0.1]="2",[0.2]="3",[0.3]="4",[0.4]="5",[0.5]="6",[0.6]="7",[0.7]="8",[0.8]="9",[0.9]="10"} - ExportScript.Tools.SendDataDAC("2002", lR_828[ExportScript.Tools.round(mainPanelDevice:get_argument_value(371), 1)]) - - -- R_828 Frequency - local lR_828_F = GetDevice(49) - if lR_828_F:is_on() then - --ExportScript.Tools.SendDataDAC("2003", string.format("%7.3f", lR_828_F:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2003", ExportScript.Tools.RoundFreqeuncy(lR_828_F:get_frequency()/1000000)) - else - ExportScript.Tools.SendDataDAC("2003", "-") - end - - -- Weapon - local lWeaponSystem = GetDevice(12) - local lCannonAmmoCount = " " - local lStationNumbers = lWeaponSystem:get_selected_weapon_stations() - local lStationCount = " " - local lStationType = " " - local lTargetingPower = mainPanelDevice:get_argument_value(433) - local lTrigger = mainPanelDevice:get_argument_value(615) - if lTrigger == 0 then - ExportScript.AF.Ka50Trigger = 1 - end - if lTrigger == -1 then - ExportScript.AF.Ka50Trigger = 0 - end - - if lTargetingPower == 1 then - lCannonAmmoCount = string.format("%02d",string.match(lWeaponSystem:get_selected_gun_ammo_count() / 10,"(%d+)")) - - if #lStationNumbers ~= 0 and ExportScript.AF.Ka50Trigger == 0 then - lStationCount = 0 - for i=1,#lStationNumbers do - lStationCount = lStationCount + lWeaponSystem:get_weapon_count_on_station(lStationNumbers[i]) - end - - lStationCount = string.format("%02d", lStationCount); - - lStationType = ExportScript.AF.Ka50StationTypes[lWeaponSystem:get_weapon_type_on_station(lStationNumbers[1])] - if lStationType == nil then - lStationType = " " - end - end - end - - --ExportScript.Tools.SendDataDAC("2004",lStationType) - ExportScript.Tools.SendDataDAC("2005",lStationCount) - ExportScript.Tools.SendDataDAC("2006",lCannonAmmoCount) - - -- UV-26 - local lUV26 = ExportScript.Tools.getListIndicatorValue(7) - - if lUV26 ~= nil and lUV26.txt_digits ~= nil then - ExportScript.Tools.SendDataDAC("2007", string.format("%s", lUV26.txt_digits)) - else - ExportScript.Tools.SendDataDAC("2007", "-") - end - - local lPVI800 = list_indication(5) - --[[ - txt_VIT Inhalt obere Zeile - txt_NIT Inhalt untere Zeile - txt_OIT_PPM Punkt obere Zeile - txt_OIT_NOT Punkt untere Zeile - txt_VIT_apostrophe1 1. Apostroph obere Zeile 3. Ziffer - txt_VIT_apostrophe2 2. Apostroph obere Zeile 5. Ziffer - txt_NIT_apostrophe1 1. Apostroph untere Zeile 3. Ziffer - txt_NIT_apostrophe2 2. Apostroph untere Zeile 5. Ziffer - ]] - local ltxt_upper_row, ltxt_lower_row = "" - local lpos1, pos2, lpos3, pos4, ltxt_VIT, ltxt_NIT, ltxt_OIT_PPM, ltxt_OIT_NOT - local ltxt_VIT_apostrophe1, ltxt_VIT_apostrophe2, ltxt_NIT_apostrophe1, ltxt_NIT_apostrophe2 = false - lpos1, pos2 = lPVI800:find("txt_VIT%c", 1) - if pos2 ~= nil then - lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) - if lpos3 ~= nil then - ltxt_VIT = lPVI800:sub(pos2 + 1, lpos3 - 2) - else - ltxt_VIT = lPVI800:sub(pos2 + 1) - end - end - lpos1, pos2 = lPVI800:find("txt_NIT%c", 1) - if pos2 ~= nil then - lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) - if lpos3 ~= nil then - ltxt_NIT = lPVI800:sub(pos2 + 1, lpos3 - 2) - else - ltxt_NIT = lPVI800:sub(pos2 + 1) - end - end - lpos1, pos2 = lPVI800:find("txt_OIT_PPM%c", 1) - if pos2 ~= nil then - lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) - if lpos3 ~= nil then - ltxt_OIT_PPM = lPVI800:sub(pos2 + 1, lpos3 - 2) - else - ltxt_OIT_PPM = lPVI800:sub(pos2 + 1) - end - end - lpos1, pos2 = lPVI800:find("txt_OIT_NOT%c", 1) - if pos2 ~= nil then - lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) - if lpos3 ~= nil then - ltxt_OIT_NOT = lPVI800:sub(pos2 + 1, lpos3 - 2) - else - ltxt_OIT_NOT = lPVI800:sub(pos2 + 1) - end - end - lpos1, pos2 = lPVI800:find("txt_VIT_apostrophe1", 1) - if pos2 ~= nil then - ltxt_VIT_apostrophe1 = true - end - lpos1, pos2 = lPVI800:find("txt_VIT_apostrophe2", 1) - if pos2 ~= nil then - ltxt_VIT_apostrophe2 = true - end - lpos1, pos2 = lPVI800:find("txt_NIT_apostrophe1", 1) - if pos2 ~= nil then - ltxt_NIT_apostrophe1 = true - end - lpos1, pos2 = lPVI800:find("txt_NIT_apostrophe2", 1) - if pos2 ~= nil then - ltxt_NIT_apostrophe2 = true - end - - if ltxt_VIT ~= nil then - ltxt_VIT = ltxt_VIT:gsub("%c", "") - ltxt_upper_row = ltxt_VIT:sub(1, 3) - if ltxt_VIT_apostrophe1 then - ltxt_upper_row = ltxt_upper_row.."." - end - ltxt_upper_row = ltxt_upper_row..ltxt_VIT:sub(4, 5) - if ltxt_VIT_apostrophe2 then - ltxt_upper_row = ltxt_upper_row.."." - end - ltxt_upper_row = ltxt_upper_row..ltxt_VIT:sub(6) - end - - if ltxt_NIT ~= nil then - ltxt_NIT = ltxt_NIT:gsub("%c", "") - ltxt_lower_row = ltxt_NIT:sub(1, 3) - if ltxt_NIT_apostrophe1 then - ltxt_lower_row = ltxt_lower_row.."." - end - ltxt_lower_row = ltxt_lower_row..ltxt_NIT:sub(4, 5) - if ltxt_NIT_apostrophe2 then - ltxt_lower_row = ltxt_lower_row.."." - end - ltxt_lower_row = ltxt_lower_row..ltxt_NIT:sub(6) - end - - if ltxt_VIT ~= nil then - ltxt_upper_row = ltxt_upper_row..string.rep(" ", 7 - ltxt_VIT:len()) - else - ltxt_upper_row = string.rep(" ", 7) - end - - if ltxt_OIT_PPM ~= nil then - ltxt_OIT_PPM = ltxt_OIT_PPM:gsub("%c", "") - ltxt_upper_row = ltxt_upper_row..ltxt_OIT_PPM - else - ltxt_upper_row = ltxt_upper_row.." " - end - - if ltxt_NIT ~= nil then - ltxt_lower_row = ltxt_lower_row..string.rep(" ", 7 - ltxt_NIT:len()) - else - ltxt_lower_row = string.rep(" ", 7) - end - - if ltxt_OIT_NOT ~= nil then - ltxt_OIT_NOT = ltxt_OIT_NOT:gsub("%c", "") - ltxt_lower_row = ltxt_lower_row..ltxt_OIT_NOT - else - ltxt_lower_row = ltxt_lower_row.." " - end - - ExportScript.Tools.SendDataDAC("2008", string.format("%s", ltxt_upper_row)) - ExportScript.Tools.SendDataDAC("2009", string.format("%s", ltxt_lower_row)) - - -- Datalink Lamps - ExportScript.Tools.SendData(159, (mainPanelDevice:get_argument_value(159) > 0 and 1 or 0)) -- PRC_button_SEND {0.0,0.3} {0,1} - ExportScript.Tools.SendData(150, (mainPanelDevice:get_argument_value(150) > 0 and 1 or 0)) -- PRC_button_ESCAPE {0.0,0.3} {0,1} - ExportScript.Tools.SendData(161, (mainPanelDevice:get_argument_value(161) > 0 and 1 or 0)) -- PRC_button_ERASE {0.0,0.3} {0,1} - ExportScript.Tools.SendData(15, (mainPanelDevice:get_argument_value(15) > 0 and 1 or 0)) -- PRC_button_CLEAN {0.0,0.3} {0,1} - ExportScript.Tools.SendData(16, (mainPanelDevice:get_argument_value(16) > 0 and 1 or 0)) -- PRC_button_WINGMAN_ALL {0.0,0.3} {0,1} - ExportScript.Tools.SendData(17, (mainPanelDevice:get_argument_value(17) > 0 and 1 or 0)) -- PRC_button_WINGMAN_1 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(18, (mainPanelDevice:get_argument_value(18) > 0 and 1 or 0)) -- PRC_button_WINGMAN_2 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(19, (mainPanelDevice:get_argument_value(19) > 0 and 1 or 0)) -- PRC_button_WINGMAN_3 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(20, (mainPanelDevice:get_argument_value(20) > 0 and 1 or 0)) -- PRC_button_WINGMAN_4 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(21, (mainPanelDevice:get_argument_value(21) > 0 and 1 or 0)) -- PRC_button_TARGET_1 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(22, (mainPanelDevice:get_argument_value(22) > 0 and 1 or 0)) -- PRC_button_TARGET_2 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(23, (mainPanelDevice:get_argument_value(23) > 0 and 1 or 0)) -- PRC_button_TARGET_3 {0.0,0.3} {0,1} - ExportScript.Tools.SendData(50, (mainPanelDevice:get_argument_value(50) > 0 and 1 or 0)) -- PRC_button_TARGET_POINT {0.0,0.3} {0,1} - - -- WEAPON INTERFACE - ExportScript.Tools.SendData(437, (mainPanelDevice:get_argument_value(437) > 0 and 1 or 0)) -- PRC_button_AUTO_TURN {0.0,0.3} {0,1} - ExportScript.Tools.SendData(438, (mainPanelDevice:get_argument_value(438) > 0 and 1 or 0)) -- PRC_button_AIRBORNE_TARGET {0.0,0.3} {0,1} - ExportScript.Tools.SendData(439, (mainPanelDevice:get_argument_value(439) > 0 and 1 or 0)) -- PRC_button_FORWARD_HEMISPHERE {0.0,0.3} {0,1} - ExportScript.Tools.SendData(440, (mainPanelDevice:get_argument_value(440) > 0 and 1 or 0)) -- PRC_button_GROUND_MOVING_TARGET {0.0,0.3} {0,1} - ExportScript.Tools.SendData(441, (mainPanelDevice:get_argument_value(441) > 0 and 1 or 0)) -- PRC_button_CLEAR {0.0,0.3} {0,1} - - -- generic Radio display and frequency rotarys - ------------------------------------------------- - -- genericRadioConf - ExportScript.genericRadioConf = {} - ExportScript.genericRadioConf['maxRadios'] = 2 -- numbers of aviables/supported radios - ExportScript.genericRadioConf[1] = {} -- first radio - ExportScript.genericRadioConf[1]['Name'] = "R_800 FM/AM" -- name of radio - ExportScript.genericRadioConf[1]['DeviceID'] = 48 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[1]['minFrequency'] = 100.000 -- lowest frequency - ExportScript.genericRadioConf[1]['maxFrequency'] = 399.975 -- highest frequency - ExportScript.genericRadioConf[1]['Power'] = {} -- power button active - ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3011 -- power button id from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 1.0 -- power on value from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua --- ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active --- ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua --- ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active --- ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua --- ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua --- ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} --- ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change - ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active - ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3006 -- squelch button id from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 1.0 -- squelch on value from cklickable.lua - ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 0.0 -- squelch off value from cklickable.lua --- ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset --- ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua - -- ManualPreset is AM FM modus switch Manual=AM, Preset=FM - ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active - ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3002 -- ManualPreset button id from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 1.0-- ManualPreset Manual value from cklickable.lua - ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.0-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[2] = {} -- secound radio - ExportScript.genericRadioConf[2]['Name'] = "R_828 VHF" -- name of radio - ExportScript.genericRadioConf[2]['DeviceID'] = 49 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[2]['setFrequency'] = false -- change frequency active - ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style --- ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change --- ExportScript.genericRadioConf[2]['minFrequency'] = 116.000 -- lowest frequency --- ExportScript.genericRadioConf[2]['maxFrequency'] = 151.975 -- highest frequency - ExportScript.genericRadioConf[2]['Power'] = {} -- power button active - ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active - ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3002 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 371 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="1",[0.1]="2",[0.2]="3",[0.3]="4",[0.4]="5",[0.5]="6",[0.6]="7",[0.7]="8",[0.8]="9",[0.9]="10"} - ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.1 -- minimal step for preset change - ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active - ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3004 -- squelch button id from cklickable.lua - ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 1.0 -- squelch on value from cklickable.lua - ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 0.0 -- squelch off value from cklickable.lua - -- Load Button is Autotune - ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset - ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3003 -- load button id from cklickable.lua - ExportScript.genericRadioConf[2]['Load']['ArgumentID'] = 375 -- load argument id for autotune lamp on Ka-50 --- ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active --- ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua --- ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 0 -- ManualPreset button id from cklickable.lua --- ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua --- ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.0-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadio(nil, nil) - -end - ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ - --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - ExportScript.Tools.SendData(44, string.format("%.1f", mainPanelDevice:get_argument_value(44))) -- lamp_MasterWarning {0.0,0.3} {0,1} - ExportScript.Tools.SendData(46, string.format("%.1f", mainPanelDevice:get_argument_value(46))) -- lamp_RotorRPM {0.0,0.1} {0,1} -end - --- Pointed to by ProcessDACHighImportance, if the player aircraft is a Ka-50 -function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to hardware - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - ExportScript.Tools.SendDataDAC("44", mainPanelDevice:get_argument_value(44) > 0.0 and 1 or 0) -- lamp_MasterWarning {0.0,0.3} - ExportScript.Tools.SendDataDAC("46", mainPanelDevice:get_argument_value(46) > 0.0 and 1 or 0) -- lamp_RotorRPM {0.0,0.1} - ---[[ - -- ENGINE_INTERFACE - local lENGINE_INTERFACE = GetDevice(4) - ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_left_engine_temp '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_left_engine_temp())) - ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_left_engine_rpm '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_left_engine_rpm())) - ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_right_engine_temp '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_right_engine_temp())) - ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_right_engine_rpm '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_right_engine_rpm())) - ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_apu_temp '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_apu_temp())) - - -- ABRIS - local lABRIS = GetDevice(9) - ExportScript.Tools.WriteToLog('lABRIS:get_active_route '..ExportScript.Tools.dump(lABRIS:get_active_route())) - ExportScript.Tools.WriteToLog('lABRIS:get_edited_route '..ExportScript.Tools.dump(lABRIS:get_edited_route())) - ExportScript.Tools.WriteToLog('lABRIS:get_sns_mode '..ExportScript.Tools.dump(lABRIS:get_sns_mode())) - ExportScript.Tools.WriteToLog('lABRIS:get_current_route '..ExportScript.Tools.dump(lABRIS:get_current_route())) - --ExportScript.Tools.WriteToLog('lABRIS:get_current_route_segment_info '..ExportScript.Tools.dump(lABRIS:get_current_route_segment_info())) -- DCS Error - ExportScript.Tools.WriteToLog('lABRIS:get_mode '..ExportScript.Tools.dump(lABRIS:get_mode())) - ExportScript.Tools.WriteToLog('lABRIS:print_to_console '..ExportScript.Tools.dump(lABRIS:print_to_console())) - --ExportScript.Tools.WriteToLog('lABRIS:replace_last_console_line '..ExportScript.Tools.dump(lABRIS:replace_last_console_line())) -- DCS Error - - -- EKRAN - local lEKRAN = GetDevice(10) - ExportScript.Tools.WriteToLog('lEKRAN:get_actual_text_frame '..ExportScript.Tools.dump(lEKRAN:get_actual_text_frame())) - - -- WEAP_INTERFACE - local lWEAP_INTERFACE = GetDevice(12) - ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_weapon_type_on_station '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_weapon_type_on_station())) - ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_selected_weapon_stations '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_selected_weapon_stations())) - ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_selected_gun_ammo '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_selected_gun_ammo())) - ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_selected_gun_ammo_count '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_selected_gun_ammo_count())) - ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_weapon_count_on_station '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_weapon_count_on_station())) - - -- DISS - local lDISS = GetDevice(16) - ExportScript.Tools.WriteToLog('lDISS:get_w_vector '..ExportScript.Tools.dump(lDISS:get_w_vector())) - ExportScript.Tools.WriteToLog('lDISS:get_drift_angle '..ExportScript.Tools.dump(lDISS:get_drift_angle())) - - -- NAV_INTERFACE - local lNAV_INTERFACE = GetDevice(28) - ExportScript.Tools.WriteToLog('lNAV_INTERFACE:get_indicated_air_speed '..ExportScript.Tools.dump(lNAV_INTERFACE:get_indicated_air_speed())) - ExportScript.Tools.WriteToLog('lNAV_INTERFACE:get_vertical_velocity '..ExportScript.Tools.dump(lNAV_INTERFACE:get_vertical_velocity())) - - -- HSI - local lHSI = GetDevice(30) - ExportScript.Tools.WriteToLog('lHSI:get_course '..ExportScript.Tools.dump(lHSI:get_course())) - ExportScript.Tools.WriteToLog('lHSI:get_course_dev_warning_flag '..ExportScript.Tools.dump(lHSI:get_course_dev_warning_flag())) - ExportScript.Tools.WriteToLog('lHSI:get_heading '..ExportScript.Tools.dump(lHSI:get_heading())) - ExportScript.Tools.WriteToLog('lHSI:get_heading_warning_flag '..ExportScript.Tools.dump(lHSI:get_heading_warning_flag())) - ExportScript.Tools.WriteToLog('lHSI:get_glideslope_dev_warning_flag '..ExportScript.Tools.dump(lHSI:get_glideslope_dev_warning_flag())) - ExportScript.Tools.WriteToLog('lHSI:get_range '..ExportScript.Tools.dump(lHSI:get_range())) - ExportScript.Tools.WriteToLog('lHSI:get_commanded_course '..ExportScript.Tools.dump(lHSI:get_commanded_course())) - ExportScript.Tools.WriteToLog('lHSI:get_bearing '..ExportScript.Tools.dump(lHSI:get_bearing())) - ExportScript.Tools.WriteToLog('lHSI:get_commanded_heading '..ExportScript.Tools.dump(lHSI:get_commanded_heading())) - - -- ADI - local lADI = GetDevice(31) - ExportScript.Tools.WriteToLog('lADI:get_sideslip '..ExportScript.Tools.dump(lADI:get_sideslip())) - ExportScript.Tools.WriteToLog('lADI:get_attitude_warn_flag_val '..ExportScript.Tools.dump(lADI:get_attitude_warn_flag_val())) - ExportScript.Tools.WriteToLog('lADI:get_pitch_steering '..ExportScript.Tools.dump(lADI:get_pitch_steering())) - ExportScript.Tools.WriteToLog('lADI:get_track_deviation '..ExportScript.Tools.dump(lADI:get_track_deviation())) - ExportScript.Tools.WriteToLog('lADI:get_airspeed_deviation '..ExportScript.Tools.dump(lADI:get_airspeed_deviation())) - ExportScript.Tools.WriteToLog('lADI:get_height_deviation '..ExportScript.Tools.dump(lADI:get_height_deviation())) - ExportScript.Tools.WriteToLog('lADI:get_bank_steering '..ExportScript.Tools.dump(lADI:get_bank_steering())) - ExportScript.Tools.WriteToLog('lADI:get_pitch '..ExportScript.Tools.dump(lADI:get_pitch())) - ExportScript.Tools.WriteToLog('lADI:get_steering_warn_flag_val '..ExportScript.Tools.dump(lADI:get_steering_warn_flag_val())) - ExportScript.Tools.WriteToLog('lADI:get_bank '..ExportScript.Tools.dump(lADI:get_bank())) - - -- AUTOPILOT - local lAUTOPILOT = GetDevice(33) - ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Bank '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Bank())) - ExportScript.Tools.WriteToLog('lAUTOPILOT:get_directional_mode '..ExportScript.Tools.dump(lAUTOPILOT:get_directional_mode())) - ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Yaw '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Yaw())) - ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Pitch '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Pitch())) - ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Height '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Height())) - - -- RADAR_ALTIMETER - local lRADAR_ALTIMETER = GetDevice(38) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_altitude '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_altitude())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_dangerous_height_flag '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_dangerous_height_flag())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_distance_limit '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_distance_limit())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_dangerous_height '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_dangerous_height())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_warning_flag '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_warning_flag())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_mode '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_mode())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_aperture_size '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_aperture_size())) - ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_needle_value '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_needle_value())) - - -- MISC_SYSTEMS_INTERFACE - local lMISC_SYSTEMS_INTERFACE = GetDevice(41) - ExportScript.Tools.WriteToLog('lMISC_SYSTEMS_INTERFACE:get_rotor_blades_pitch '..ExportScript.Tools.dump(lMISC_SYSTEMS_INTERFACE:get_rotor_blades_pitch())) - ExportScript.Tools.WriteToLog('lMISC_SYSTEMS_INTERFACE:get_main_rotor_rpm '..ExportScript.Tools.dump(lMISC_SYSTEMS_INTERFACE:get_main_rotor_rpm())) - - -- ARK_22 - local lARK_22 = GetDevice(46) - ExportScript.Tools.WriteToLog('lARK_22:get_channel '..ExportScript.Tools.dump(lARK_22:get_channel())) - ExportScript.Tools.WriteToLog('lARK_22:get_mode '..ExportScript.Tools.dump(lARK_22:get_mode())) - ExportScript.Tools.WriteToLog('lARK_22:get_homer_selector_pos '..ExportScript.Tools.dump(lARK_22:get_homer_selector_pos())) - - -- R_800 - local lR_800 = GetDevice(48) - ExportScript.Tools.WriteToLog('lR_800:is_on '..ExportScript.Tools.dump(lR_800:is_on())) - ExportScript.Tools.WriteToLog('lR_800:get_frequency '..ExportScript.Tools.dump(lR_800:get_frequency())) - --ExportScript.Tools.WriteToLog('lR_800:set_modulation '..ExportScript.Tools.dump(lR_800:set_modulation())) -- test the parameters - --ExportScript.Tools.WriteToLog('lR_800:set_frequency '..ExportScript.Tools.dump(lR_800:(set_frequency))) -- test the parameters - - -- R_828 - local R_828 = GetDevice(49) - ExportScript.Tools.WriteToLog('R_828:is_on '..ExportScript.Tools.dump(R_828:is_on())) - ExportScript.Tools.WriteToLog('R_828:get_frequency '..ExportScript.Tools.dump(R_828:get_frequency())) - --ExportScript.Tools.WriteToLog('R_828:set_modulation '..ExportScript.Tools.dump(R_828:set_modulation())) -- test the parameters - --ExportScript.Tools.WriteToLog('R_828:set_frequency '..ExportScript.Tools.dump(R_828:(set_frequency))) -- test the parameters - --ExportScript.Tools.WriteToLog('R_828:set_channel '..ExportScript.Tools.dump(R_828:(set_channel))) -- test the parameters - - -- SPU_9 - local lSPU_9 = GetDevice(50) - ExportScript.Tools.WriteToLog('lSPU_9:get_is_on '..ExportScript.Tools.dump(lSPU_9:get_is_on())) - ExportScript.Tools.WriteToLog('lSPU_9:is_communicator_available '..ExportScript.Tools.dump(lSPU_9:is_communicator_available())) - ExportScript.Tools.WriteToLog('lSPU_9:get_selector_pos '..ExportScript.Tools.dump(lSPU_9:get_selector_pos())) - ExportScript.Tools.WriteToLog('lSPU_9:get_noise_level '..ExportScript.Tools.dump(lSPU_9:get_noise_level())) - ExportScript.Tools.WriteToLog('lSPU_9:get_signal_level '..ExportScript.Tools.dump(lSPU_9:get_signal_level())) - --ExportScript.Tools.WriteToLog('lSPU_9:set_communicator '..ExportScript.Tools.dump(lSPU_9:set_communicator())) -- test the parameters - --ExportScript.Tools.WriteToLog('lSPU_9:set_voip_mode '..ExportScript.Tools.dump(lSPU_9:set_voip_mode())) -- test the parameters - - -- STBY_ADI - local lSTBY_ADI = GetDevice(55) - ExportScript.Tools.WriteToLog('lSTBY_ADI:get_sideslip '..ExportScript.Tools.dump(lSTBY_ADI:get_sideslip())) - ExportScript.Tools.WriteToLog('lSTBY_ADI:get_bank '..ExportScript.Tools.dump(lSTBY_ADI:get_bank())) - ExportScript.Tools.WriteToLog('lSTBY_ADI:get_pitch '..ExportScript.Tools.dump(lSTBY_ADI:get_pitch())) - ]] - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) - - -- list_indication get tehe value of cockpit displays - local ltmp1 = 0 - for ltmp2 = 0, 20, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - end - ]] ---[[ - -- getmetatable get function name from devices - local ltmp1 = 0 - for ltmp2 = 1, 70, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end -]] -end +-- Ka-50 Export + +ExportScript.FoundDCSModule = true +ExportScript.Version.Ka50 = "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 + ]] + -- LAMPS + --------------------------------------------------- + --[44] = "%.1f", -- lamp_MasterWarning {0.0,0.3} + --[46] = "%.1f", -- lamp_RotorRPM {0.0,1.0} + [47] = "%.f", -- lamp_UNDERFIREwarning {0.0,1.0} + [48] = "%.f", -- lamp_LowerGear {0.0,1.0} + [78] = "%.f", -- lamp_RPM_leftEngineMax {0.0,1.0} + [79] = "%.f", -- lamp_RPM_rightEngineMax {0.0,1.0} + [80] = "%.f", -- lamp_NyMax {0.0,1.0} + [81] = "%.f", -- lamp_vibr_leftEngine {0.0,1.0} + [82] = "%.f", -- lamp_vibr_rightEngine {0.0,1.0} + [83] = "%.f", -- lamp_IAS_max {0.0,1.0} + [84] = "%.f", -- lamp_mainTransmission {0.0,1.0} + [85] = "%.f", -- lamp_Fire {0.0,1.0} + [86] = "%.f", -- lamp_IFFfailure {0.0,1.0} + -- VVI + --------------------------------------------------- + [24] = "%.4f", -- vy (Vertical Velocity Indicator) {-1.0,1.0} + -- ADI (IKP-81) + --------------------------------------------------- + [100] = "%.4f", -- ADI_Roll {-1.0,1.0} + [101] = "%.4f", -- ADI_Pitch {-math.pi/2.0,math.pi/2.0}{1.0,-1.0} + [102] = "%0.1f", -- ADI_steering_warning_flag {0.0,1.0} + [109] = "%0.1f", -- ADI_attitude_warning_flag {0.0,1.0} + [107] = "%.4f", -- ADI_bank_steering {-1.0,1.0} + [106] = "%.4f", -- ADI_pitch_steering {-1.0,1.0} + [111] = "%.4f", -- ADI_airspeed_deviation {-1.0,1.0} + [103] = "%.4f", -- ADI_track_deviation {-1.0,1.0} + [526] = "%.4f", -- ADI_height_deviation {-1.0,1.0} + [108] = "%.4f", -- ADI_sideslip {-1.0,1.0} + -- Barometric Altimeter (VM_15PV) + -------------------------------------------------- + [87] = "%.4f", -- VM_15PV_BALT_thousands {0.0,1.0} + [573] = "%.4f", -- VM_15PV_BALT_tenths {0.0,1.0} + [88] = "%0.2f", -- VM_15PV_BaroPressure {0.0,1.0} + [89] = "%.4f", -- VM_15PV_BALT_CommandedAlt {0.0,1.0} + -- HSI (PNP-72-16) + --------------------------------------------------- + [112] = "%.4f", -- HSI_heading {0.0, 1.0} + [118] = "%.4f", -- HSI_commanded_course_needle {0.0, 1.0} + [124] = "%.4f", -- HSI_commanded_heading_needle {0.0, 1.0} + [115] = "%.4f", -- HSI_bearing_needle {0.0, 1.0} + [119] = "%0.1f", -- HSI_heading_warning_flag{0.0,1.0} + [114] = "%0.1f", -- HSI_course_warning_flag{0.0, 1.0} + [125] = "%0.1f", -- HSI_glideslope_warning_flag{0.0, 1.0} + [117] = "%0.4f", -- HSI_range_counter_100 {0.0,1.0} + [527] = "%0.4f", -- HSI_range_counter_10 {0.0,1.0} + [528] = "%0.4f", -- HSI_range_counter_1 {0.0,1.0} + [127] = "%.4f", -- HSI_longitudinal_deviation{-1.0, 1.0} + [128] = "%.4f", -- HSI_lateral_deviation{-1.0, 1.0} + [116] = "%0.1f", -- HSI_range_unavailable_flag{0.0, 1.0} + [121] = "%0.1f", -- HSI_course_unavailable_flag{0.0, 1.0} + -- Rotor Pitch + --------------------------------------------------- + [53] = "%.4f", -- RotorPitch {0.0,1.0} + -- Rotor RPM + --------------------------------------------------- + [52] = "%.4f", -- RotorRPM {0.0,1.0} + -- Radar Altimeter ( A_036) + --------------------------------------------------- + [94] = "%.4f", -- A_036_RALT {0.0,1.0} + [93] = "%.4f", -- A_036_DangerRALT {0.0,1.0} + [95] = "%0.1f", -- A_036_warning_flag {0.0,1.0} + [92] = "%.f", -- A_036_DangerRALT_lamp {0.0,1.0} + -- Indicated Airspeed + --------------------------------------------------- + [51] = "%.4f", -- IAS {0.0,1.0} + -- Accelerometer (ADP_4) + --------------------------------------------------- + [97] = "%0.4f", -- ADP_4_acceleration {0.0,1.0} + [98] = "%0.2f", -- ADP_4_max_achieved_acc {0.0,1.0} + [99] = "%0.2f", -- ADP_4_min_achieved_acc {0.0,1.0} + -- Mechanic Clock + --------------------------------------------------- + [68] = "%.4f", -- CLOCK_currtime_hours {0.0,1.0} + [69] = "%.4f", -- CLOCK_currtime_minutes {0.0,1.0} + [70] = "%.4f", -- CLOCK_currtime_seconds {0.0,1.0} + --[75] = "%0.1f", -- CLOCK_flight_time_meter_status{0.0,0.1,0.2} + [72] = "%.4f", -- CLOCK_flight_hours {0.0,1.0} + [531] = "%.4f", -- CLOCK_flight_minutes {0.0,1.0} + [73] = "%.4f", -- CLOCK_seconds_meter_time_minutes {0.0,1.0} + [532] = "%.4f", -- CLOCK_seconds_meter_time_seconds {0.0,1.0} + -- backup ADI (AGR-81) + --------------------------------------------------- + [142] = "%.4f", -- AGR_81_Roll {1.0, -1.0} + [143] = "%.4f", -- AGR_81_Pitch {-1.0, 1.0} + [144] = "%.4f", -- AGR_81_sideslip {-1.0, 1.0} + [145] = "%0.1f", -- AGR_81_failure_flag{0.0, 1.0} + -- Engines temperature + --------------------------------------------------- + [133] = "%.4f", -- LeftEngineTemperatureHund {0.0,1.0} + [566] = "%.4f", -- LeftEngineTemperatureTenth {0.0,1.0} + [134] = "%.4f", -- RightEngineTemperatureHund {0.0,1.0} + [567] = "%.4f", -- RightEngineTemperatureHund {0.0,1.0} + -- Engine RPM + --------------------------------------------------- + [135] = "%.4f", -- LeftEngineRPM {0.0,1.0} + [136] = "%.4f", -- RightEngineRPM {0.0,1.0} + -- Fuel tanks + --------------------------------------------------- + [138] = "%.4f", -- RearTankAmount {0.0,1.0} + [137] = "%.4f", -- ForwardTankAmount {0.0,1.0} + [139] = "%0.1f", -- lamp_ForwardTankTest {0.0,1.0} + [140] = "%0.1f", -- lamp_RearTankTest {0.0,1.0} + -- PUI-800 Weapon panel + --------------------------------------------------- + [392] = "%.f", -- lamp_PUI800_Sta1_WeapIsPresent{0.0, 1.0} + [393] = "%.f", -- lamp_PUI800_Sta2_WeapIsPresent{0.0, 1.0} + [394] = "%.f", -- lamp_PUI800_Sta3_WeapIsPresent{0.0, 1.0} + [395] = "%.f", -- lamp_PUI800_Sta4_WeapIsPresent{0.0, 1.0} + [388] = "%.f", -- lamp_PUI800_Sta1_WeapIsReady{0.0, 1.0} + [389] = "%.f", -- lamp_PUI800_Sta2_WeapIsReady{0.0, 1.0} + [390] = "%.f", -- lamp_PUI800_Sta3_WeapIsReady{0.0, 1.0} + [391] = "%.f", -- lamp_PUI800_Sta4_WeapIsReady{0.0, 1.0} + -- LGCP - Landing gear control panel + --------------------------------------------------- + [63] = "%.f", -- LGCP_Lamp_NoseGearUp {0.0,1.0} + [64] = "%.f", -- LGCP_Lamp_NoseGearDown {0.0,1.0} + [61] = "%.f", -- LGCP_Lamp_RightMainGearUp {0.0,1.0} + [62] = "%.f", -- LGCP_Lamp_RightMainGearDown {0.0,1.0} + [59] = "%.f", -- LGCP_Lamp_LeftMainGearUp {0.0,1.0} + [60] = "%.f", -- LGCP_Lamp_LeftMainGearDown{0.0, 1.0} + -- LAMPS + --------------------------------------------------- + [170] = "%.f", -- lamp_H_RALT_stab {0.0,1.0} + [175] = "%.f", -- lamp_Hover {0.0,1.0} + [172] = "%.f", -- lamp_Descent {0.0,1.0} + [165] = "%.f", -- lamp_RouteHeadingSteering {0.0,1.0} + [171] = "%.f", -- lamp_RouteCourseSteering {0.0,1.0} + [176] = "%.f", -- lamp_Waypoint {0.0,1.0} + [166] = "%.f", -- lamp_EndOfRoute {0.0,1.0} + [164] = "%.f", -- lamp_RoughNAVcalc {0.0,1.0} + [178] = "%.f", -- lamp_Burst {0.0,1.0} + [173] = "%.f", -- lamp_CannonMovingBarr {0.0,1.0} + [177] = "%.f", -- lamp_CannonMovingBarr2 {0.0,1.0} + [211] = "%.f", -- lamp_FuelCrossfeedOn {0.0,1.0} + [187] = "%.f", -- lamp_CouplerOff {0.0,1.0} + [204] = "%.f", -- lamp_ActuatorsOilPress {0.0,1.0} + [213] = "%.f", -- lamp_LockOff {0.0,1.0} + -- Magnetic Compass (KI-13) + --------------------------------------------------- + [11] = "%.4f", -- KI_13_course {-1,1} + [12] = "%.4f", -- KI_13_pitch {-1,1} + [14] = "%.4f", -- KI_13_bank {-1,1} + -- LAMPS + --------------------------------------------------- + [167] = "%.f", -- lamp_WeapSysBUS_ON {0.0,1.0} + [180] = "%.f", -- lamp_TrainingMode {0.0,1.0} + [179] = "%.f", -- lamp_OBZOR_800 {0.0,1.0} + [188] = "%.f", -- lamp_RANET {0.0,1.0} + [189] = "%.f", -- lamp_CC_test {0.0,1.0} + [206] = "%.f", -- lamp_CC_failure {0.0,1.0} + [212] = "%.f", -- lamp_DC_AC_Inverter {0.0,1.0} + [205] = "%.f", -- lamp_I_251V {0.0,1.0} + [181] = "%.f", -- lamp_AntiIceLeftEngine {0.0,1.0} + [190] = "%.f", -- lamp_DustProtectLeftEngine {0.0,1.0} + [207] = "%.f", -- lamp_BackupModeLeftEngine {0.0,1.0} + [183] = "%.f", -- lamp_AntiIceRotors {0.0,1.0} + [182] = "%.f", -- lamp_AntiIceRightEngine {0.0,1.0} + [191] = "%.f", -- lamp_DustProtectRightEngine {0.0,1.0} + [208] = "%.f", -- lamp_BackupModeRightEngine {0.0,1.0} + [184] = "%.f", -- lamp_VUO_Heat {0.0,1.0} + [200] = "%.f", -- lamp_ForwardTank {0.0,1.0} + [209] = "%.f", -- lamp_LeftValveClosed {0.0,1.0} + [185] = "%.f", -- lamp_LeftOuterTank {0.0,1.0} + [202] = "%.f", -- lamp_LeftInnerTank {0.0,1.0} + [201] = "%.f", -- lamp_RearTank {0.0,1.0} + [210] = "%.f", -- lamp_RightValveClosed {0.0,1.0} + [186] = "%.f", -- lamp_RightOuterTank {0.0,1.0} + [203] = "%.f", -- lamp_RightInnerTank {0.0,1.0} + -- DATALINK + --------------------------------------------------- + --[159] = "%.1f", -- PRC_button_SEND {0.0,0.3} + --[150] = "%.1f", -- PRC_button_ESCAPE {0.0,0.3} + --[161] = "%.1f", -- PRC_button_ERASE {0.0,0.3} + --[15] = "%.1f", -- PRC_button_CLEAN {0.0,0.3} + --[16] = "%.1f", -- PRC_button_WINGMAN_ALL {0.0,0.3} + --[17] = "%.1f", -- PRC_button_WINGMAN_1 {0.0,0.3} + --[18] = "%.1f", -- PRC_button_WINGMAN_2 {0.0,0.3} + --[19] = "%.1f", -- PRC_button_WINGMAN_3 {0.0,0.3} + --[20] = "%.1f", -- PRC_button_WINGMAN_4 {0.0,0.3} + --[21] = "%.1f", -- PRC_button_TARGET_1 {0.0,0.3} + --[22] = "%.1f", -- PRC_button_TARGET_2 {0.0,0.3} + --[23] = "%.1f", -- PRC_button_TARGET_3 {0.0,0.3} + --[50] = "%.1f", -- PRC_button_TARGET_POINT {0.0,0.3} + -- Laser warning system + --------------------------------------------------- + [25] = "%.f", -- LWS_LampAzimuth_0 {0.0,1.0} + [28] = "%.f", -- LWS_LampAzimuth_90 {0.0,1.0} + [26] = "%.f", -- LWS_LampAzimuth_180 {0.0,1.0} + [27] = "%.f", -- LWS_LampAzimuth_270 {0.0,1.0} + [31] = "%.f", -- LWS_LampAzimuth_UpperHemisphere {0.0,1.0} + [32] = "%.f", -- LWS_LampAzimuth_LowerHemisphere {0.0,1.0} + [33] = "%.f", -- LWS_LampAzimuth_LaserRangefinder {0.0,1.0} + [34] = "%.f", -- LWS_LampAzimuth_LaserTargetingSystem {0.0,1.0} + [582] = "%.f", -- LWS_LampReady {0.0,1.0} + -- UV-26 + --------------------------------------------------- + [541] = "%.f", -- UV26_lampLeftBoard {0.0,1.0} + [542] = "%.f", -- UV26_lampRightBoard {0.0,1.0} + -- PVI (Nav Control Panel) + --------------------------------------------------- + [315] = "%0.1f", -- PVI_button_WPT{0.0, 0.3} + [519] = "%0.1f", -- PVI_button_INSREALN{0.0, 0.3} + [316] = "%0.1f", -- PVI_button_FIXPT{0.0, 0.3} + [520] = "%0.1f", -- PVI_button_PRECALN{0.0, 0.3} + [317] = "%0.1f", -- PVI_button_AERDR{0.0, 0.3} + [521] = "%0.1f", -- PVI_button_NORMALN{0.0, 0.3} + [318] = "%0.1f", -- PVI_button_TGT{0.0, 0.3} + [313] = "%0.1f", -- PVI_button_ENTER{0.0, 0.3} + [314] = "%0.1f", -- PVI_button_CANCEL{0.0, 0.3} + [522] = "%0.1f", -- PVI_button_INITCOORD{0.0, 0.3} + [319] = "%0.1f", -- PVI_button_FILAMBDA{0.0, 0.3} + [320] = "%0.1f", -- PVI_button_FIZ{0.0, 0.3} + [321] = "%0.1f", -- PVI_button_DU{0.0, 0.3} + [322] = "%0.1f", -- PVI_button_FII{0.0, 0.3} + [323] = "%0.1f", -- PVI_button_BRGRNG{0.0, 0.3} + [330] = "%0.1f", -- PPR_button_K{0.0, 0.3} + [332] = "%0.1f", -- PPR_button_H{0.0, 0.3} + [331] = "%0.1f", -- PPR_button_T{0.0, 0.3} + [333] = "%0.1f", -- PPR_button_B{0.0, 0.3} + [334] = "%0.1f", -- PPR_button_DIR{0.0, 0.3} + -- RadioCommunicator R-828 + --------------------------------------------------- + [375] = "%0.1f", -- Radio_ASU_lamp{0.0,1.0} + -- RadioCommunicator R-800 + --------------------------------------------------- + [419] = "%0.1f", -- Radio_Test_lamp {0.0,1.0} + [577] = "%.3f", -- R800Rotary1 {0.0,1.0} + [574] = "%.2f", -- R800Rotary2 {0.0,1.0} + [575] = "%.2f", -- R800Rotary3 {0.0,1.0} + [576] = "%.2f", -- R800Rotary4 {0.0,1.0} + -- WEAPON INTERFACE + --------------------------------------------------- + --[437] = "%.1f", -- PRC_button_AUTO_TURN {0.0,0.3} + --[438] = "%.1f", -- PRC_button_AIRBORNE_TARGET {0.0,0.3} + --[439] = "%.1f", -- PRC_button_FORWARD_HEMISPHERE {0.0,0.3} + --[440] = "%.1f", -- PRC_button_GROUND_MOVING_TARGET {0.0,0.3} + --[441] = "%.1f", -- PRC_button_CLEAR {0.0,0.3} + -- Engines start panel + --------------------------------------------------- + [163] = "%.f", -- lamp_EnginesStartValve{0.0, 1.0} + -- APU control panel + --------------------------------------------------- + [162] = "%.f", -- lamp_APUValveOpen{0.0, 1.0}{0.0, 1.0} + [168] = "%.f", -- lamp_APUOilPres{0.0, 1.0}{0.0, 1.0} + [169] = "%.f", -- lamp_APUStoppedByRPM{0.0, 1.0} + [174] = "%.f", -- lamp_APU_IsON{0.0, 1.0} + -- APU Temperature + --------------------------------------------------- + [6] = "%.4f", -- APUTemperature {0.0, 900.0} = {0.0, 1.0} + -- Right Side Panel + --------------------------------------------------- + [586] = "%.f", -- lamp_AC_Ground_Power{0.0, 1.0} + [261] = "%.f", -- lamp_DC_Ground_Power{0.0, 1.0} + -- Eject system + --------------------------------------------------- + [461] = "%0.1f", -- EjectSystemTestLamp{0.0, 1.0} + -- Fire Extinguishers panel + --------------------------------------------------- + [237] = "%.f", -- lamp_Exting_LeftEngineFire{0.0, 1.0} + [239] = "%.f", -- lamp_Exting_APU_Fire{0.0, 1.0} + [568] = "%.f", -- lamp_Exting_HydraulicsFire{0.0, 1.0} + [241] = "%.f", -- lamp_Exting_RightEngineFire{0.0, 1.0} + [243] = "%.f", -- lamp_Exting_VentilatorFire{0.0, 1.0} + [244] = "%.f", -- lamp_Exting_Lamp1{0.0, 1.0} + [245] = "%.f", -- lamp_Exting_Lamp2{0.0, 1.0} + -- Engines mode indicator + --------------------------------------------------- + [592] = "%.4f", -- EnginesMode {0.0,1.0} + [234] = "%0.2f", -- LeftEngineMode{0.0,1.0} + [235] = "%0.2f", -- RightEngineMode {0.0,1.0} + -- Oil pressure and temperature indicators group (Right Panel) + --------------------------------------------------- + [252] = "%.4f", -- NeedleOilPressureEngineLeft {0.0,1.0} + [253] = "%.4f", -- NeedleOilPressureEngineRight {0.0, 1.0} + [254] = "%.4f", -- NeedleOilPressureGearBox {0.0,1.0} + [255] = "%.4f", -- NeedleOilTemperatureEngineLeft {0.0,1.0} + [256] = "%.4f", -- NeedleOilTemperatureEngineRight {0.0,1.0} + [257] = "%.4f", -- NeedleOilTemperatureGearBox {0.0,1.0} + -- Right Back Panel + --------------------------------------------------- + [469] = "%.f", -- lamp_flap_hydro_1{0.0, 1.0} + [470] = "%.f", -- lamp_flap_hydro_2{0.0, 1.0} + -- Hydraulics Gauges (Back Panel) + --------------------------------------------------- + [471] = "%.4f", -- hydro_common_pressure {0.0,1.0} + [472] = "%.4f", -- hydro_main_pressure {0.0,1.0} + [473] = "%.4f", -- hydro_acc_brake_pressure {0.0,1.0} + [474] = "%.4f", -- hydro_gear_brake_pressure {0.0,1.0} + [475] = "%.4f", -- hydro_common_temperature {0.0,1.0} + [476] = "%.4f", -- hydro_main_temperature {0.0,1.0} + -- Latitude Entry Panel (PShK_7) + --------------------------------------------------- + [342] = "%.f", -- PShK7_LampAuto {0.0,1.0} + [339] = "%0.4f", -- PShK7_Latitude_counter_tenth {0.0,10.0} + [594] = "%0.4f", -- PShK7_Latitude_counter_units {0.0,10.0} + -- Magnetic Variation Entry Panel (ZMS_3) + --------------------------------------------------- + [337] = "%0.4f", -- ZMS3_MagVar_counter_hundreds_tenth {-1.0,1.0} + [596] = "%0.4f", -- ZMS3_MagVar_counter_units {0.0,1.0} + -- Ambient Temperature + --------------------------------------------------- + [587] = "%0.4f", -- Ambient Temperature {-60, 50} = {-0.946, 0.788} + + [587] = "%0.4f", -- Ambient Temperature {-60, 50} = {-0.946, 0.788} + + [104] = "%0.4f", -- collective_position + + [126] = "%0.4f", -- HSI_courseKnob + + [129] = "%0.4f", -- HSI_headingKnob + + [15] = "%0.4f", -- PRC_button_CLEAN + [150] = "%0.4f", -- PRC_button_ESCAPE + + [16] = "%0.4f", -- PRC_button_WINGMAN_ALL + [161] = "%0.4f", -- PRC_button_ERASE + + [17] = "%0.4f", -- PRC_button_WINGMAN_1 + + [18] = "%0.4f", -- PRC_button_WINGMAN_2 + + [19] = "%0.4f", -- PRC_button_WINGMAN_3 + + [20] = "%0.4f", -- PRC_button_WINGMAN_4 + + [21] = "%0.4f", -- PRC_button_TARGET_1 + + [22] = "%0.4f", -- PRC_button_TARGET_2 + + [23] = "%0.4f", -- PRC_button_TARGET_3 + + [424] = "%0.4f", -- R800Revolve1 + [425] = "%0.4f", -- R800Revolve2 + [426] = "%0.4f", -- R800Revolve3 + [427] = "%0.4f", -- R800Revolve4 + + [437] = "%0.4f", -- PRC_button_AUTO_TURN + [438] = "%0.4f", -- PRC_button_AIRBORNE_TARGET + [439] = "%0.4f", -- PRC_button_FORWARD_HEMISPHERE + [44] = "%0.4f", -- lamp_MasterWarning + [440] = "%0.4f", -- PRC_button_GROUND_MOVING_TARGET + [441] = "%0.4f", -- PRC_button_CLEAR + + [46] = "%0.4f", -- lamp_RotorRPM + + [50] = "%0.4f", -- PRC_button_RESET + + [509] = "%0.4f", -- filter + + [529] = "%0.4f", -- HSI_course_counter_hundreds_tenth + + [530] = "%0.4f", -- HSI_course_counter_units + + [533] = "%0.4f", -- left_door + [534] = "%0.4f", -- day_night_texture_switcher + + [545] = "%0.4f", -- mirrors_draw + [546] = "%0.4f", -- windscreen_wiper + + [551] = "%0.4f", -- Panels_buttons_light + + [557] = "%0.4f", -- right_engine_throttle + [558] = "%0.4f", -- coll_ReadjustFreeTurbRPM_sw + + [560] = "%0.4f", -- coll_ROUTE_DESCENT_sw + [561] = "%0.4f", -- lamp_ABRIS_button1 + [562] = "%0.4f", -- lamp_ABRIS_button2 + [563] = "%0.4f", -- lamp_ABRIS_button3 + [564] = "%0.4f", -- lamp_ABRIS_button4 + [565] = "%0.4f", -- lamp_ABRIS_button5 + + [571] = "%0.4f", -- wheel_brakes + + [578] = "%0.4f", -- left_engine_throttle + [579] = "%0.4f", -- throttle_cover + [580] = "%0.4f", -- collective_stopper + [581] = "%0.4f", -- R828_channel_selector + + [599] = "%0.4f", -- AGR_81_LongitudinalDeviationBar + + [613] = "%0.4f", -- AGR_81_LateralDeviationBar + [614] = "%0.4f", -- missile_trigger + [615] = "%0.4f", -- gun_trigger + + [71] = "%0.4f", -- stick_roll + + [74] = "%0.4f", -- stick_pitch + [75] = "%0.4f", -- CLOCK_flight_time_meter_status + + [798] = "%0.4f", -- ADI_illumination + [799] = "%0.4f", -- illumination_panels2 + + [800] = "%0.4f", -- Control_Panel_illumination + [801] = "%0.4f", -- ADI_illumination2 + [802] = "%0.4f", -- AHR_illumination + [803] = "%0.4f", -- illumination_panels +} + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + -- ADI + --------------------------------------------------- + [110] = "%.1f", -- TEST-IKP-PTR (ADI Test Button) {0.0,1.0} + -- HSI + --------------------------------------------------- + [113] = "%.1f", -- TEST-PNP-PTR03 (HSI test Button) + [54] = "%1d", -- ZPU-ZK-PTR (HSI Desired track angle - Desired heading, Auto - Manual) {0,1} + --laser ranger + --------------------------------------------------- + [56] = "%1d", -- LDP-LD-PTR (Laser rangefinder / designator - mode switch) + [57] = "%1d", -- LD-LDP-COVER-PTR (Laser rangefinder Cover) + [55] = "%.1f", -- CHOP-LDP-PTR (Laser designator reset) + -- RADIOALTIMETER + --------------------------------------------------- + [96] = "%.1f", -- TEST-RADIO-HIGHT-PTR (Radar altimeter test) + -- CPT MECH + --------------------------------------------------- + [572] = "%.1f", -- G--PTR (Accelerometer reset) + -- SYSTEM CONTROLLER + --------------------------------------------------- + [45] = "%.1f", -- CONTROL-ALARM-PTR (Lamps test) + -- STANDBY ADI (AGR-81) + --------------------------------------------------- + [230] = "%1d", -- RES-AG-PTR (Standby Attitude Indicator power switch) + -- Engines Start-Up Control Panel + --------------------------------------------------- + [131] = "%.1f", -- CONTROL-TEMP-WORK-PTR (Running engines exhaust gas temperature indicator test button) + [132] = "%.1f", -- CONTROL-TEMP-NOTWORK-PTR (Stopped engines exhaust gas temperature indicator test button) + -- FUEL SYSTEM + --------------------------------------------------- + [616] = "%.1f", -- CONTROL-OIL-PTR (Fuel quantity indicator self test button) + -- ABRIS Display + --------------------------------------------------- + [512] = "%.1f", -- PTR_BTN-ABRIS-01 (ABRIS Pushbutton 1) {start value 0.01 the same index for -2,-3,-4,-5,-6,-7,-8,-9,-RCL,-ENTR with increment 0.01} + [513] = "%.1f", -- PTR_BTN-ABRIS-02 (ABRIS Pushbutton 2) + [514] = "%.1f", -- PTR_BTN-ABRIS-03 (ABRIS Pushbutton 3) + [515] = "%.1f", -- PTR_BTN-ABRIS-04 (ABRIS Pushbutton 4) + [516] = "%.1f", -- PTR_BTN-ABRIS-05 (ABRIS Pushbutton 5) + [518] = "%.1f", -- ABRIS_SHUNT_PTR (ABRIS Cursor Control (rotary)){0.0,1.0} (0.04) + [523] = "%.1f", -- ABRIS_SHUNT_PTR (ABRIS Cursor Control (push)) + [517] = "%.3f", -- ABRIS_BRIGHTNESS_PTR (ABRIS Brightness) {0.0,1.0} (0.05) + [130] = "%0.1f", -- ABRIS-POWER_PTR (ABRIS Power) + -- HUD + --------------------------------------------------- + [8] = "%.3f", -- PTR_HUD-BRIGHTNESS (HUD Brightness) + [9] = "%1d", -- PTR_HUD-TMB-SETKA02 (HUD Modes Reticle/Night/Day) + [7] = "%.1f", -- PTR-HUD-TEST (HUD Test) + [510] = "%0.1f", -- PTR_HUD-FILTER (HUD Filter) + -- PUI-800 Weapons Control Panel + --------------------------------------------------- + [387] = "%1d", -- MASTER-ARM-PTR (Master Arm) + [402] = "%.1f", -- UI800-AVARCHOP-PTR (External stores jettison) + [396] = "%1d", -- MASTER-EXPLODE-PTR (Jettison arm mode - arm fuse/disarm fuse) + [403] = "%1d", -- PUI800-AUTO-PTR (Manual/Auto weapon system control switch) + [399] = "%1d", -- PUI800-OFBR-PTR (Cannon round selector switch HE/AP) + [400] = "%.1f", -- SR-PTR (Weapon mode switch - Burst Length) {0.0,0.1,0.2} + [398] = "%1d", -- MT-PTR (Cannon rate of fire setting) + [397] = "%.1f", -- MASTER-UNLOAD-PTR (Expedite emergency ATGM launch) + -- PUR Weapons Aux Panel + -- SHKVAL + --------------------------------------------------- + [404] = "%1d", -- PUR-BACKGROUND-PTR (IT-23 Black-White indication switch) + [406] = "%.3f", -- PUR-LIGHTIT-PTR (IT-23 display brightness) + [407] = "%.3f", -- PUR-CONTRAST-PTR (IT-23 display contrast) + -- SHKVAL windscreen wiper + [224] = "%.1f", -- WIPER-PTR (SHKVAL windscreen wiper) + -- HELMET + [405] = "%.3f", -- PUR-LIGHTNVU-PTR (Helmet device brightness) + -- WEAPON SYSTEM + [408] = "%0.1f", -- PUR-LIT-PTR (Laser code selector) + [409] = "%1d", -- PUR-OGR-INF-PTR (HUD/TV declutter switch) + -- Outside illumination + --------------------------------------------------- + [382] = "%0.1f", -- LANDING LIGHTS-DIR-LIGHT-PTR (Light landing-search. On/Retraction/Off) + [383] = "%1d", -- LANDING LIGHTS-BASE-RESERV-PTR (Lights landing-search change. Main/Reserved) + -- ALMAZ system + --------------------------------------------------- + [384] = "%.1f", -- SPEECH-INFO-OFF-PTR01 (Voice message system messages off) + [385] = "%.1f", -- SPEECH-INFO-RETRY-PTR (Voice message system messages repeat) + [386] = "%0.1f", -- SPEECH-INFO-AVAR-PTR (Voice message system emergency on) + [442] = "%.1f", -- SPEECH-BIT-PTR (Voice message system check) + -- CPT MECH + --------------------------------------------------- + [65] = "%1d", -- GEAR-PTR (Gear lever) + [66] = "%1d", -- AVAR-GEAR-PTR (Main/Common hydraulics for emergency gear) + [67] = "%1d", -- AVAR-GEAR-COVER-PTR (Main/Common hydraulics for emergency gear Cover) + -- OVERHEAD PANEL + --------------------------------------------------- + [146] = "%0.1f", -- ANO-PTR (Navigation Lights 10\% / 30\% / 100\% / Off) + [147] = "%0.1f", -- WINDSCREEN-WIPER-PTR (Windshield wiper switch) + [539] = "%1d", -- PPD-DUAS-PTR (Pitot static port and AoA sensors heat switch) + [151] = "%1d", -- PVD-CLOCK-PTR (Pitot ram air and clock heat switch) + [153] = "%1d", -- POS-ROTORS-PTR (Rotor de-icing system switch) + [154] = "%0.1f", -- POS-ENGINE-PZU-PTR (Engines de-icing / dust-protection systems switch) + [156] = "%.1f", -- KONTR-PVD-PTR (Pitot heat system test) + -- Laser Warning System + --------------------------------------------------- + [35] = "%.1f", -- L-140-RESET-PTR (LWS Reset button) + [583] = "%1d", -- L140-SWITCH (LWS Power switch) + [584] = "%.1f", -- L140-CNOB (LWS self-test button) + -- UV-26 CMD Control Panel + --------------------------------------------------- + [36] = "%0.1f", -- UV26-BOARD-PTR (CMD Select Left/Both/Right board flares dispensers) + [37] = "%0.1f", -- UV26-PROGR-PTR (CMD Amount flares counter/Programming) + [38] = "%.1f", -- UV26-SERIES-PTR (CMD Num of sequences) + [39] = "%.1f", -- UV26-BURST-PTR (CMD Num in sequence) + [41] = "%.1f", -- UV26-INTERVAL-PTR (CMD Dispense interval) + [43] = "%.1f", -- UV26-START-PTR (CMD Start dispense) + [42] = "%.1f", -- UV26-CANCELPRG-PTR (CMD Reset to default program) + [40] = "%.1f", -- UV26-STOP-PTR (CMD Stop dispense) + -- UV-26 related (REAR PANEL) + [496] = "%1d", -- UV26-POWER-PTR (CMD Power) + [497] = "%1d", -- UV26-POWER-COVER-PTR (CMD Power Cover) + [498] = "%1d", -- UV26-TEST-PTR (CMD BIT) + [499] = "%1d", -- UV26-TEST-COVER-PTR (CMD BIT Cover) + -- PVI NAV Panel + --------------------------------------------------- + [312] = "%0.1f", -- PVI-0-PTR (NAV '0' Btn) + [303] = "%0.1f", -- PVI-1-PTR (NAV '1' Btn) + [304] = "%0.1f", -- PVI-2-PTR (NAV '2' Btn) + [305] = "%0.1f", -- PVI-3-PTR (NAV '3' Btn) + [306] = "%0.1f", -- PVI-4-PTR (NAV '4' Btn) + [307] = "%0.1f", -- PVI-5-PTR (NAV '5' Btn) + [308] = "%0.1f", -- PVI-6-PTR (NAV '6' Btn) + [309] = "%0.1f", -- PVI-7-PTR (NAV '7' Btn) + [310] = "%0.1f", -- PVI-8-PTR (NAV '8' Btn) + [311] = "%0.1f", -- PVI-9-PTR (NAV '9' Btn) + [324] = "%0.1f", -- PVI-SWITCH-PTR (NAV Master modes) + [325] = "%1d", -- PVI_I251V_PTR (NAV INU fixtaking method) + [326] = "%1d", -- PVI_VCU_PTR (NAV Datalink power) + [327] = "%.3f", -- PVI-BRIGHTNESS-PTR (NAV Brightness) + -- DATALINK + --------------------------------------------------- + -- Datalink Mode Controls + [328] = "%0.1f", -- DTLK-SELF-ID-PTR (Datalink self ID) + [329] = "%0.1f", -- DTLK-MASTER-MODES-PTR (Datalink Master mode) + -- PPR - Autopilot Control Panel + -- AUTOPILOT + --------------------------------------------------- + [335] = "%0.1f", -- BAR-RV-PTR (Autopilot BARO/RALT altitude hold mode) + -- NAV SYSTEM + [336] = "%0.1f", -- ZK-LZP-PTR (Autopilot Desired heading - Desired track) + --ARK-22 + --------------------------------------------------- + [381] = "%0.2f", -- IANDING LIGHTS-DIR-LIGHT-PTR01 (ADF Inner-Auto-Outer NDB switch) + [355] = "%.1f", -- ARK-CONTROL-PTR (ADF Test) + [354] = "%1d", -- TLF-TLG-PTR (TLF-TLG modes) + [353] = "%.3f", -- VARK-VOLUME-PTR (ADF Volume) + [356] = "%1d", -- TLF-TLG-PTR01 (COMPASS-ANTENNA modes) + [357] = "%0.1f", -- VARK-VOLUME-PTR01 (ADF channel switch) + --R-828 + --------------------------------------------------- + [371] = "%0.1f", -- CHANNEL-PTR (R-828 (VHF-1) Radio channel selector) + [372] = "%.3f", -- RADIO-VOLUME-PTR (R-828 (VHF-1) Radio Volume) + [373] = "%.1f", -- ASU-PTR (R-828 (VHF-1) Tuner button) + [374] = "%1d", -- RADIO-PSH-SWITCH-PTR (R-828 (VHF-1) Squelch) + -- Signal Flares + --------------------------------------------------- + [376] = "%.1f", -- SIGNAL-FLARE-1-PTR (Signal flare red) + [377] = "%.1f", -- SIGNAL-FLARE-2-PTR (Signal flare green) + [378] = "%.1f", -- SIGNAL-FLARE-3-PTR (Signal flare white) + [379] = "%.1f", -- SIGNAL-FLARE-4-PTR (Signal flare yellow) + [380] = "%1d", -- SIGNAL-FLARE-SWITCH-PTR (Signal flare system power) + --R-800 + --------------------------------------------------- + [418] = "%.1f", -- START-PANEL-CONTROL-PTR (R-800 (VHF-2) BIT button) + [417] = "%1d", -- CONTR-RADIO-CHM-AM-PTR (R-800 (VHF-2) AM-FM toggle switch) + [421] = "%1d", -- CONTR-RADIO-AP-PTR (R-800 (VHF-2) Emergency receiver) + [422] = "%1d", -- CONTR-RADIO-ARK-PTR (R-800 (VHF-2) ADF switch) + [420] = "%1d", -- CONTR-RADIO-50-100-PTR01 (R-800 (VHF-2) Data transfer rate switch) + [423] = "%1d", -- CONTR-RADIO-PSH-PTR (R-800 (VHF-2) Squelch) + -- PVR + --------------------------------------------------- + -- WEAPONS + [432] = "%1d", -- PVR-DRILL-PTR (Training mode) + [431] = "%0.1f", -- PVR-MODE-PTR (Weapon system mode selector) + [436] = "%1d", -- PVR-AS-PM-PTR (Automatic Tracking / gun sight) + -- K041 + [433] = "%1d", -- K-041-PTR (K-041 Targeting-navigation system power switch) + -- LASERRANGER + [435] = "%1d", -- PVR-IZL-PTR (Laser standby ON/OFF switch) + -- HELMET + [434] = "%1d", -- PVR-OBZ-PTR (Helmet-mounted sight system power switch) + -- SHKVAL + [301] = "%0.1f", -- V-SCAN-PTR (Shkval scan rate) + -- Engines Start-Up Control Panel + --------------------------------------------------- + [412] = "%.1f", -- START-PANEL-START-PTR (Start-up selected engine button) + [413] = "%.1f", -- START-PANEL-STOP-START-PTR ("Interrupt start-up button) + [414] = "%.1f", -- START-PANEL-STOP-START-PTR01 (Stop APU button) + [415] = "%0.1f", -- START-PANEL-ROLLING-PTR (Engine Startup/Crank/False Start selector) + [416] = "%0.1f", -- START-ENGINE-SELECTOR-PTR (Engine selector) + [554] = "%1d", -- EMERGENCY-BRAKE ENGINE-LEFT-PTR (Left engine cut-off valve) + [555] = "%1d", -- EMERGENCY-BRAKE ENGINE-RIGHT-PTR (Right engine cut-off valve) + [556] = "%1d", -- BRAKE-ROTOR-LOW-PTR01 (Rotor brake) + --Radio switcher + --------------------------------------------------- + [428] = "%0.2f", -- RADIO-RATE-PTR (SPU-9 Radio communicator selector) + -- Right Side Panel + --------------------------------------------------- + -- ELECTRICS POWER + [262] = "%1d", -- ENERG-AER-RIT-PTR (DC ground power) + [263] = "%1d", -- ENERG-COVER-AER-RIT-PTR (DC ground power Cover) + [543] = "%1d", -- ENERG-AKK2-PTR (Battery 2) + [544] = "%1d", -- ENERG-COVER-AKK2-PTR (Battery 2 Cover) + [264] = "%1d", -- ENERG-AKK1-PTR (Battery 1) + [265] = "%1d", -- ENERG-COVER-AKK1-PTR (Battery 1 Cover) + [267] = "%1d", -- RAMP-POWER-PTR (AC ground power) + [268] = "%1d", -- GEN-LEFT-PTR (AC left generator) + [269] = "%1d", -- GEN-RIGHT-PTR (AC right generator) + [270] = "%01.f", -- CONVERTER-PTR (DC/AC inverter) {0.0, 0.2} + -- FUEL SYSTEM + [271] = "%1d", -- FUEL-PUMP-FRONT-PTR (Forward fuel tank pumps) + [272] = "%1d", -- FUEL-PUMP-BACK-PTR (Rear fuel tank pumps) + [273] = "%1d", -- FUEL-PUMP-INNER-PTR (Inner external fuel tanks pumps) + [274] = "%1d", -- FUEL-PUMP-OUTER-PTR (Outer external fuel tanks pumps) + [275] = "%1d", -- FUEL-METER-PTR (Fuelmeter power) + [276] = "%1d", -- PAV-CRANE-ENGINE-LEFT-PTR (Left engine fuel shutoff valve) + [277] = "%1d", -- PAV-CRANE-COVER-ENGINE-LEFT-PTR (Left engine fuel shutoff valve) + [278] = "%1d", -- PAV-CRANE-ENGINE-RIGHT-PTR (Right engine fuel shutoff valve) + [279] = "%1d", -- PAV-CRANE-COVER-ENGINE-RIGHT-PTR (Right engine fuel shutoff valve) + [280] = "%1d", -- PAV-CRANE-VSU-PTR (APU fuel shutoff valve) + [281] = "%1d", -- PAV-CRANE-COVER-VSU-PTR (APU fuel shutoff valve Cover) + [282] = "%1d", -- PAV-CRANE-CYKLIZATION-PTR (Fuel crossfeed valve) + [283] = "%1d", -- PAV-CRANE-COVER-CYKLIZATION-PTR (Fuel crossfeed valve Cover) + -- COMMS POWER + [284] = "%1d", -- COMM-PWR-AVSK-PTR (Intercom) + [285] = "%1d", -- COMM-PWR-UKV-1-PTR (VHF-1 (R828) power switch) + [286] = "%1d", -- COMM-PWR-UKV-2-PTR (VHF-2 (R-800) power switch) + [287] = "%1d", -- COMM-PWR-TLK-PTR (Radio equipment datalink TLK power switch) + [288] = "%1d", -- COMM-PWR-UKV-TLK-PTR (Radio equipment datalink UHF TLK power switch) + [289] = "%1d", -- COMM-PWR-SA-TLF-PTR (Radio equipment datalink SA-TLF power switch) + -- WEAPON SYS + [547] = "%1d", -- SUO-PTR (Weapons Control system) + [548] = "%1d", -- SUO-COVER-PTR (Weapons Control system Cover) + -- EJECT SYSTEM + [214] = "%1d", -- RIGHT-EMERG-SW1-PTR (Ejecting system power 1) + [215] = "%1d", -- RIGHT-EMERG-SW2-PTR (Ejecting system power 2) + [216] = "%1d", -- RIGHT-EMERG-SW3-PTR (Ejecting system power 3) + [217] = "%1d", -- RIGHT-COVER-EMERG-VACATION-PTR (Ejecting system power Cover) + [462] = "%0.1f", -- CONTR-SAPROTATE-PTR (Ejecting system circuit selector) + [460] = "%.1f", -- CONTR-SAP-PTR (Ejecting system circuit test) + -- HYDRAULICS + [220] = "%1d", -- HYDRO-PTR (Main hydraulics) + [221] = "%1d", -- HYDRO-COVER-PTR02 (Main hydraulics Cover) + -- IFF + [218] = "%1d", -- SRO-PTR (IFF power) + [219] = "%1d", -- COVER-SRO-PTR (IFF power Cover) + -- NAV SYSTEM + [222] = "%1d", -- PNK-PTR (Navigation system power) + [229] = "%0.1f", -- GYRO-MAG-MAN-HEADING-PTR (Gyro/Mag/Manual heading) + -- Outside illumination + [228] = "%1d", -- FLASHER-PTR (Anticollision Light) + [296] = "%1d", -- CONTUR-LIGHT-PTR (Tip Lights) + [297] = "%0.1f", -- FORMATION-PTR (Formation Lights) + -- ENGINES + [290] = "%1d", -- ERD-LEFT-PTR (EEG Left engine Electronic Engine Governor) + [291] = "%1d", -- ERD-LEFT-COVER-PTR (EEG Left engine Electronic Engine Governor Cover) + [292] = "%1d", -- ERD-RIGHT-PTR (EEG Right engine Electronic Engine Governor) + [293] = "%1d", -- ERD-RIGHT-COVER-PTR (EEG Right engine Electronic Engine Governor Cover) + [294] = "%1d", -- PAV-CRANE-VSU-PTR01 (EEG gas generator test Operate switch) + [569] = "%1d", -- PAV-CRANE-COVER-VSU-PTR01 (EEG gas generator test Operate switch Cover) + [295] = "%0.1f", -- PAV-CRANE-VSU-PTR02 (EEG power turbine channel 1 test Operate EEG power turbine channel 2 test, three-switch contactor) + [570] = "%0.1f", -- PAV-CRANE-COVER-VSU-PTR02 (EEG power turbine channel 1 test Operate EEG power turbine channel 2 test, three-switch contactor Cover) + [457] = "%.1f", -- RT-12-6-LEFT-PTR (Left EGT control threshold governor button) + [458] = "%.1f", -- RT-12-6-RIGHT-PTR (Right EGT control threshold governor button) + [459] = "%.1f", -- RT-12-6-IV-PTR (Engines vibrations monitoring system control button) + -- Lighting + [300] = "%1d", -- DESK-PTR (Lighting cockpit panel switch) + [299] = "%1d", -- DEVICES-PTR (Lighting night vision cockpit switch) + [298] = "%1d", -- AGR-PKP-PTR (Lighting ADI and SAI switch) + -- Fire Extinguishers Control Panel + [236] = "%.1f", -- PUI800-AVARCHOP-PTR01 (Left engine extinguisher) + [238] = "%.1f", -- PUI800-AVARCHOP-PTR02 (APU extinguisher) + [240] = "%.1f", -- PUI800-AVARCHOP-PTR03 (Right engine extinguisher) + [242] = "%.1f", -- PUI800-AVARCHOP-PTR04 (Ventilator extinguisher) + [248] = "%0.1f", -- FIREEXT-PTR (Fire extinguisher Work Off Test switch) + [249] = "%0.1f", -- FIREEXT-COVER-PTR (Fire extinguisher Work Off Test switch Cover) + [250] = "%1d", -- FIREEXT-INDICATION-PTR (Fire signaling) + [246] = "%1d", -- BALOONS-PTR (Fire extinguisher First (Auto) / Second (Manual) selector) + [247] = "%1d", -- BALOONS-COVER-PTR (Fire extinguisher First (Auto) / Second (Manual) selector Cover) + -- Misc. systems + [258] = "%0.1f", -- REDUCTOR-PTR (Reducing gear box oil pressure indication selector) + [259] = "%1d", -- HANGER-PTR (Sling load Auto/Manual) + -- Auxiliary panel + --------------------------------------------------- + -- Preflight Set and Check Panel + [483] = "%0.1f", -- PPK-BBTZ-PTR (ATGM Temperature selector) + [484] = "%0.1f", -- PPK-NRAKS-PTR (Unguided rocket and gun pods ballistics data settings selector) + [485] = "%1d", -- PPK-RNP-PTR (Systems BIT selector) + [486] = "%1d", -- KCVM-PTR (Control computers BIT switch) + [489] = "%.1f", -- AKS-PTR (Self test system push-button) + [490] = "%1d", -- VnK-PTR (Emergency INU alignment switch) + [491] = "%1d", -- ROPE-PTR (Stabilisation and indication of hanger cable switch) + [492] = "%1d", -- FKP-PTR (Video Tape Recorder switch) + [487] = "%1d", -- IKV-PTR (INU Power switch) + [488] = "%1d", -- HEAT_IKV-PTR (INU Heater switch) + [452] = "%1d", -- P-CONTR-VMG-HYDRO-PTR (Power plant, hydraulics, EKRAN self-test systems switch) + [453] = "%1d", -- P-CONTR-VMG-HYDRO-COVER-PTR (Power plant, hydraulics, EKRAN self-test systems switch Cover) + -- PShK_7 (Latitude Entry Panel) + [340] = "%.3f", -- LATITUDE-PTR (Latitude selection rotaty) + [341] = "%1d", -- N-S-PTR (North/South latitude selection) + -- ZMS_3 (Magnetic Variation Entry Panel) + [338] = "%.3f" -- DCLIN-PTR (Magnetic variation selection rotaty) +} + +-- Lookup tables for weapons store type display +ExportScript.AF.Ka50StationTypes = +{ + ["9A4172"] = "NC", + ["S-8KOM"] = "HP", + ["S-13"] = "HP", + ["UPK-23-250"] = "NN", + ["AO-2.5RT"] = "A6", + ["PTAB-2.5KO"] = "A6", + ["FAB-250"] = "A6", + ["FAB-500"] = "A6" +} + +-- State data +ExportScript.AF.Ka50Trigger = 0 + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- function for Ikarus + + local lWeaponSystem = GetDevice(12) + local lCannonAmmoCount = " " + local lStationNumbers = lWeaponSystem:get_selected_weapon_stations() + local lStationCount = " " + local lStationType = " " + local lTargetingPower = mainPanelDevice:get_argument_value(433) + local lTrigger = mainPanelDevice:get_argument_value(615) + if lTrigger == 0 then + ExportScript.AF.Ka50Trigger = 1 + end + if lTrigger == -1 then + ExportScript.AF.Ka50Trigger = 0 + end + + if lTargetingPower == 1 then + lCannonAmmoCount = string.format("%02d",string.match(lWeaponSystem:get_selected_gun_ammo_count() / 10,"(%d+)")) + + if #lStationNumbers ~= 0 and ExportScript.AF.Ka50Trigger == 0 then + lStationCount = 0 + for i=1,#lStationNumbers do + lStationCount = lStationCount + lWeaponSystem:get_weapon_count_on_station(lStationNumbers[i]) + end + + lStationCount = string.format("%02d", lStationCount); + + lStationType = ExportScript.AF.Ka50StationTypes[lWeaponSystem:get_weapon_type_on_station(lStationNumbers[1])] + if lStationType == nil then + lStationType = "" + end + end + end + + -- PUI-800 Weapon panel + --------------------------------------------------- + ExportScript.Tools.SendData(2004, string.format("%s", lStationType)) + ExportScript.Tools.SendData(2005, string.format("%s", lStationCount)) + ExportScript.Tools.SendData(2006, string.format("%s", lCannonAmmoCount)) + + -- UV-26 + local lUV26 = ExportScript.Tools.getListIndicatorValue(7) + + if lUV26 ~= nil and lUV26.txt_digits ~= nil then + ExportScript.Tools.SendData(2007, string.format("%s", lUV26.txt_digits)) + else + ExportScript.Tools.SendData(2007, " ") + end + + -- EKRAN + --------------------------------------------------- + + local lEKRAN = GetDevice(10) + local lEkranSendString = "" + local lEkranText = lEKRAN:get_actual_text_frame() + --ExportScript.Tools.WriteToLog('lEkranText: '..ExportScript.Tools.dump(lEkranText)) + --if lEkranText ~= "" then + if ExportScript.utf8.len(lEkranText) > 0 then + --lEkranSendString = string.sub(lEkranText,1,8).."\n"..string.sub(lEkranText,12,19).."\n"..string.sub(lEkranText,23,30).."\n"..string.sub(lEkranText,34,41) + --ExportScript.Tools.SendData(2010, string.format("%s", string.sub(lEkranText,1,9))) + --ExportScript.Tools.SendData(2011, string.format("%s", string.sub(lEkranText,12,20))) + --ExportScript.Tools.SendData(2012, string.format("%s", string.sub(lEkranText,23,31))) + --ExportScript.Tools.SendData(2013, string.format("%s", string.sub(lEkranText,34,42))) + --ExportScript.Tools.WriteToLog('2011: '..ExportScript.Tools.dump(string.format("%s", ExportScript.utf8.sub(lEkranText,12,20)))) + ExportScript.Tools.SendData(2010, string.format("%s", ExportScript.utf8.sub(lEkranText,1,9))) + ExportScript.Tools.SendData(2011, string.format("%s", ExportScript.utf8.sub(lEkranText,12,20))) + ExportScript.Tools.SendData(2012, string.format("%s", ExportScript.utf8.sub(lEkranText,23,31))) + ExportScript.Tools.SendData(2013, string.format("%s", ExportScript.utf8.sub(lEkranText,34,42))) + else + ExportScript.Tools.SendData(2010, " ") + ExportScript.Tools.SendData(2011, " ") + ExportScript.Tools.SendData(2012, " ") + ExportScript.Tools.SendData(2013, " ") + end + + --[75] = "%0.1f", -- CLOCK_flight_time_meter_status{0.0,0.1,0.2} + -- Ikarus WPClock Ka-50 Clock + -- White = 0.2 0.0 + -- Red = 0.0 0.1 + -- White/Red = 0.6 0.2 + local lClock = string.format("%0.1f", mainPanelDevice:get_argument_value(75)) + if lClock == "0.0" then + ExportScript.Tools.SendData(75, "0.2") + elseif lClock == "0.1" then + ExportScript.Tools.SendData(75, "0.0") + elseif lClock == "0.2" then + ExportScript.Tools.SendData(75, "0.6") + end + + --[[ + local lFAILlight = "" -- FAILURE + local lMEMORYlight = "" -- MEMORY + local lTURNlight = "" -- TURN + if lEkranSendString ~= "" then + lFAILlight = "FAILURE" + end + -- DisplayWindow (main message) + -- FAILlight (failure text) + -- MEMORYlight (memmory text) + -- TURNlight (turn text) + --ExportScript.Tools.SendData(2001, string.format("%s", lEkranSendString)) + --ExportScript.Tools.SendData(2002, string.format("%s", lFAILlight)) + --ExportScript.Tools.SendData(2003, string.format("%s", lMEMORYlight)) + --ExportScript.Tools.SendData(2004, string.format("%s", lTURNlight)) + --ExportScript.Tools.WriteToLog('lEkranSendString: '..ExportScript.Tools.dump(lEkranSendString)) + --ExportScript.Tools.WriteToLog('lFAILlight: '..ExportScript.Tools.dump(lFAILlight)) + --ExportScript.Tools.WriteToLog('lMEMORYlight: '..ExportScript.Tools.dump(lMEMORYlight)) + --ExportScript.Tools.WriteToLog('lTURNlight: '..ExportScript.Tools.dump(lTURNlight)) + ]] + --[[ + --ExportScript.Tools.WriteToLog('EKRAN: '..ExportScript.Tools.dump(list_indication(4))) + local lEKRAN = list_indication(4) + lEKRAN = lEKRAN:gsub("-----------------------------------------", "") + lEKRAN = lEKRAN:gsub("\n", "") -- oder %c + + + local to1, to2, from1, from2, lEKRANframe, lEKRANtxtqueue, lEKRANtxt1, lEKRANtxt2, lEkranSendString = nil, nil, nil, nil, "", "", "", "", "" + to1, to2 = lEKRAN:find("txt_queue") + if (to1 == nil) then + from1, from2 = 1,5 -- lEKRAN:find("frame") + to1, to2 = lEKRAN:find("txt_1") + if (to1 ~= nil) then + lEKRANframe = lEKRAN:sub(from2+1, to1-1) + end + else + from1, from2 = 1,5 -- lEKRAN:find("frame") + --to1, to2 = lEKRAN:find("txt_queue") + lEKRANframe = lEKRAN:sub(from2+1, to1-1) + + from1, from2 = lEKRAN:find("txt_queue") + to1, to2 = lEKRAN:find("txt_1") + if (to1 ~= nil and from2 ~= nil) then + lEKRANtxtqueue = lEKRAN:sub(from2+1, to1-1) + end + end + from1, from2 = lEKRAN:find("txt_1") + to1, to2 = lEKRAN:find("txt_2") + if (to1 ~= nil and from2 ~= nil) then + lEKRANtxtqueue = lEKRAN:sub(from2+1, to1-1) + end + from1, from2 = lEKRAN:find("txt_2") + --to1, to2 = lEKRAN:find("txt_2") + if (from2 ~= nil) then + lEKRANtxt2 = lEKRAN:sub(from2+1, -1) + end + + --ExportScript.Tools.WriteToLog('lEKRANframe: '..ExportScript.Tools.dump(lEKRANframe)) + --ExportScript.Tools.WriteToLog('lEKRANtxtqueue: '..ExportScript.Tools.dump(lEKRANtxtqueue)) + --ExportScript.Tools.WriteToLog('lEKRANtxt1: '..ExportScript.Tools.dump(lEKRANtxt1)) + --ExportScript.Tools.WriteToLog('lEKRANtxt2: '..ExportScript.Tools.dump(lEKRANtxt2)) + + --lEkranSendString = string.sub(lEKRANtxt2,1,9).."\n"..string.sub(lEKRANtxt2,11,19).."\n"..string.sub(lEKRANtxt2,21,29).."\n"..string.sub(lEKRANtxt2,31,39) + ExportScript.Tools.SendData(2010, string.format("%s", string.sub(lEKRANtxt2,1,9))) + ExportScript.Tools.SendData(2011, string.format("%s", string.sub(lEKRANtxt2,11,19))) + ExportScript.Tools.SendData(2012, string.format("%s", string.sub(lEKRANtxt2,21,29))) + ExportScript.Tools.SendData(2013, string.format("%s", string.sub(lEKRANtxt2,31,39))) + ]] + + -- Cockpit Light + ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, {300, 299, 298}) + -- Lighting cockpit panel switch, Lighting night vision cockpit switch, Lighting ADI and SAI switch + + -- Datalink Lamps + ExportScript.Tools.SendData(159, string.format("%.1f", mainPanelDevice:get_argument_value(159))) -- PRC_button_SEND {0.0,0.3} + ExportScript.Tools.SendData(150, string.format("%.1f", mainPanelDevice:get_argument_value(150))) -- PRC_button_ESCAPE {0.0,0.3} {0,1} + ExportScript.Tools.SendData(161, string.format("%.1f", mainPanelDevice:get_argument_value(161))) -- PRC_button_ERASE {0.0,0.3} {0,1} + ExportScript.Tools.SendData(15, string.format("%.1f", mainPanelDevice:get_argument_value(15))) -- PRC_button_CLEAN {0.0,0.3} {0,1} + ExportScript.Tools.SendData(16, string.format("%.1f", mainPanelDevice:get_argument_value(16))) -- PRC_button_WINGMAN_ALL {0.0,0.3} {0,1} + ExportScript.Tools.SendData(17, string.format("%.1f", mainPanelDevice:get_argument_value(17))) -- PRC_button_WINGMAN_1 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(18, string.format("%.1f", mainPanelDevice:get_argument_value(18))) -- PRC_button_WINGMAN_2 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(19, string.format("%.1f", mainPanelDevice:get_argument_value(19))) -- PRC_button_WINGMAN_3 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(20, string.format("%.1f", mainPanelDevice:get_argument_value(20))) -- PRC_button_WINGMAN_4 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(21, string.format("%.1f", mainPanelDevice:get_argument_value(21))) -- PRC_button_TARGET_1 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(22, string.format("%.1f", mainPanelDevice:get_argument_value(22))) -- PRC_button_TARGET_2 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(23, string.format("%.1f", mainPanelDevice:get_argument_value(23))) -- PRC_button_TARGET_3 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(50, string.format("%.1f", mainPanelDevice:get_argument_value(50))) -- PRC_button_TARGET_POINT {0.0,0.3} {0,1} + + -- WEAPON INTERFACE + ExportScript.Tools.SendData(437, string.format("%.1f", mainPanelDevice:get_argument_value(437))) -- PRC_button_AUTO_TURN {0.0,0.3} {0,1} + ExportScript.Tools.SendData(438, string.format("%.1f", mainPanelDevice:get_argument_value(438))) -- PRC_button_AIRBORNE_TARGET {0.0,0.3} {0,1} + ExportScript.Tools.SendData(439, string.format("%.1f", mainPanelDevice:get_argument_value(439))) -- PRC_button_FORWARD_HEMISPHERE {0.0,0.3} {0,1} + ExportScript.Tools.SendData(440, string.format("%.1f", mainPanelDevice:get_argument_value(440))) -- PRC_button_GROUND_MOVING_TARGET {0.0,0.3} {0,1} + ExportScript.Tools.SendData(441, string.format("%.1f", mainPanelDevice:get_argument_value(441))) -- PRC_button_CLEAR {0.0,0.3} {0,1} +end + +-- Pointed to by ProcessDACLowImportance, if the player aircraft is a Ka-50 +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + -- Radio comunication + -- ARK_22 (ADF) Frequncy + local lARK_22 = GetDevice(46) + ExportScript.Tools.SendDataDAC("2000", string.format("%1d", lARK_22:get_channel())) + + -- R_800 + local lR_800 = GetDevice(48) + --ExportScript.Tools.SendDataDAC("2001", string.format("%7.3f", lR_800:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2001",ExportScript.Tools.RoundFreqeuncy(lR_800:get_frequency()/1000000)) + + -- R_828 Channel + local lR_828 = {[0.0]="1",[0.1]="2",[0.2]="3",[0.3]="4",[0.4]="5",[0.5]="6",[0.6]="7",[0.7]="8",[0.8]="9",[0.9]="10"} + ExportScript.Tools.SendDataDAC("2002", lR_828[ExportScript.Tools.round(mainPanelDevice:get_argument_value(371), 1)]) + + -- R_828 Frequency + local lR_828_F = GetDevice(49) + if lR_828_F:is_on() then + --ExportScript.Tools.SendDataDAC("2003", string.format("%7.3f", lR_828_F:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2003", ExportScript.Tools.RoundFreqeuncy(lR_828_F:get_frequency()/1000000)) + else + ExportScript.Tools.SendDataDAC("2003", "-") + end + + -- Weapon + local lWeaponSystem = GetDevice(12) + local lCannonAmmoCount = " " + local lStationNumbers = lWeaponSystem:get_selected_weapon_stations() + local lStationCount = " " + local lStationType = " " + local lTargetingPower = mainPanelDevice:get_argument_value(433) + local lTrigger = mainPanelDevice:get_argument_value(615) + if lTrigger == 0 then + ExportScript.AF.Ka50Trigger = 1 + end + if lTrigger == -1 then + ExportScript.AF.Ka50Trigger = 0 + end + + if lTargetingPower == 1 then + lCannonAmmoCount = string.format("%02d",string.match(lWeaponSystem:get_selected_gun_ammo_count() / 10,"(%d+)")) + + if #lStationNumbers ~= 0 and ExportScript.AF.Ka50Trigger == 0 then + lStationCount = 0 + for i=1,#lStationNumbers do + lStationCount = lStationCount + lWeaponSystem:get_weapon_count_on_station(lStationNumbers[i]) + end + + lStationCount = string.format("%02d", lStationCount); + + lStationType = ExportScript.AF.Ka50StationTypes[lWeaponSystem:get_weapon_type_on_station(lStationNumbers[1])] + if lStationType == nil then + lStationType = " " + end + end + end + + --ExportScript.Tools.SendDataDAC("2004",lStationType) + ExportScript.Tools.SendDataDAC("2005",lStationCount) + ExportScript.Tools.SendDataDAC("2006",lCannonAmmoCount) + + -- UV-26 + local lUV26 = ExportScript.Tools.getListIndicatorValue(7) + + if lUV26 ~= nil and lUV26.txt_digits ~= nil then + ExportScript.Tools.SendDataDAC("2007", string.format("%s", lUV26.txt_digits)) + else + ExportScript.Tools.SendDataDAC("2007", "-") + end + + local lPVI800 = list_indication(5) + --[[ + txt_VIT Inhalt obere Zeile + txt_NIT Inhalt untere Zeile + txt_OIT_PPM Punkt obere Zeile + txt_OIT_NOT Punkt untere Zeile + txt_VIT_apostrophe1 1. Apostroph obere Zeile 3. Ziffer + txt_VIT_apostrophe2 2. Apostroph obere Zeile 5. Ziffer + txt_NIT_apostrophe1 1. Apostroph untere Zeile 3. Ziffer + txt_NIT_apostrophe2 2. Apostroph untere Zeile 5. Ziffer + ]] + local ltxt_upper_row, ltxt_lower_row = "" + local lpos1, pos2, lpos3, pos4, ltxt_VIT, ltxt_NIT, ltxt_OIT_PPM, ltxt_OIT_NOT + local ltxt_VIT_apostrophe1, ltxt_VIT_apostrophe2, ltxt_NIT_apostrophe1, ltxt_NIT_apostrophe2 = false + lpos1, pos2 = lPVI800:find("txt_VIT%c", 1) + if pos2 ~= nil then + lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) + if lpos3 ~= nil then + ltxt_VIT = lPVI800:sub(pos2 + 1, lpos3 - 2) + else + ltxt_VIT = lPVI800:sub(pos2 + 1) + end + end + lpos1, pos2 = lPVI800:find("txt_NIT%c", 1) + if pos2 ~= nil then + lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) + if lpos3 ~= nil then + ltxt_NIT = lPVI800:sub(pos2 + 1, lpos3 - 2) + else + ltxt_NIT = lPVI800:sub(pos2 + 1) + end + end + lpos1, pos2 = lPVI800:find("txt_OIT_PPM%c", 1) + if pos2 ~= nil then + lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) + if lpos3 ~= nil then + ltxt_OIT_PPM = lPVI800:sub(pos2 + 1, lpos3 - 2) + else + ltxt_OIT_PPM = lPVI800:sub(pos2 + 1) + end + end + lpos1, pos2 = lPVI800:find("txt_OIT_NOT%c", 1) + if pos2 ~= nil then + lpos3, pos4 = lPVI800:find("-----------------------------------------", pos2) + if lpos3 ~= nil then + ltxt_OIT_NOT = lPVI800:sub(pos2 + 1, lpos3 - 2) + else + ltxt_OIT_NOT = lPVI800:sub(pos2 + 1) + end + end + lpos1, pos2 = lPVI800:find("txt_VIT_apostrophe1", 1) + if pos2 ~= nil then + ltxt_VIT_apostrophe1 = true + end + lpos1, pos2 = lPVI800:find("txt_VIT_apostrophe2", 1) + if pos2 ~= nil then + ltxt_VIT_apostrophe2 = true + end + lpos1, pos2 = lPVI800:find("txt_NIT_apostrophe1", 1) + if pos2 ~= nil then + ltxt_NIT_apostrophe1 = true + end + lpos1, pos2 = lPVI800:find("txt_NIT_apostrophe2", 1) + if pos2 ~= nil then + ltxt_NIT_apostrophe2 = true + end + + if ltxt_VIT ~= nil then + ltxt_VIT = ltxt_VIT:gsub("%c", "") + ltxt_upper_row = ltxt_VIT:sub(1, 3) + if ltxt_VIT_apostrophe1 then + ltxt_upper_row = ltxt_upper_row.."." + end + ltxt_upper_row = ltxt_upper_row..ltxt_VIT:sub(4, 5) + if ltxt_VIT_apostrophe2 then + ltxt_upper_row = ltxt_upper_row.."." + end + ltxt_upper_row = ltxt_upper_row..ltxt_VIT:sub(6) + end + + if ltxt_NIT ~= nil then + ltxt_NIT = ltxt_NIT:gsub("%c", "") + ltxt_lower_row = ltxt_NIT:sub(1, 3) + if ltxt_NIT_apostrophe1 then + ltxt_lower_row = ltxt_lower_row.."." + end + ltxt_lower_row = ltxt_lower_row..ltxt_NIT:sub(4, 5) + if ltxt_NIT_apostrophe2 then + ltxt_lower_row = ltxt_lower_row.."." + end + ltxt_lower_row = ltxt_lower_row..ltxt_NIT:sub(6) + end + + if ltxt_VIT ~= nil then + ltxt_upper_row = ltxt_upper_row..string.rep(" ", 7 - ltxt_VIT:len()) + else + ltxt_upper_row = string.rep(" ", 7) + end + + if ltxt_OIT_PPM ~= nil then + ltxt_OIT_PPM = ltxt_OIT_PPM:gsub("%c", "") + ltxt_upper_row = ltxt_upper_row..ltxt_OIT_PPM + else + ltxt_upper_row = ltxt_upper_row.." " + end + + if ltxt_NIT ~= nil then + ltxt_lower_row = ltxt_lower_row..string.rep(" ", 7 - ltxt_NIT:len()) + else + ltxt_lower_row = string.rep(" ", 7) + end + + if ltxt_OIT_NOT ~= nil then + ltxt_OIT_NOT = ltxt_OIT_NOT:gsub("%c", "") + ltxt_lower_row = ltxt_lower_row..ltxt_OIT_NOT + else + ltxt_lower_row = ltxt_lower_row.." " + end + + ExportScript.Tools.SendDataDAC("2008", string.format("%s", ltxt_upper_row)) + ExportScript.Tools.SendDataDAC("2009", string.format("%s", ltxt_lower_row)) + + -- Datalink Lamps + ExportScript.Tools.SendData(159, (mainPanelDevice:get_argument_value(159) > 0 and 1 or 0)) -- PRC_button_SEND {0.0,0.3} {0,1} + ExportScript.Tools.SendData(150, (mainPanelDevice:get_argument_value(150) > 0 and 1 or 0)) -- PRC_button_ESCAPE {0.0,0.3} {0,1} + ExportScript.Tools.SendData(161, (mainPanelDevice:get_argument_value(161) > 0 and 1 or 0)) -- PRC_button_ERASE {0.0,0.3} {0,1} + ExportScript.Tools.SendData(15, (mainPanelDevice:get_argument_value(15) > 0 and 1 or 0)) -- PRC_button_CLEAN {0.0,0.3} {0,1} + ExportScript.Tools.SendData(16, (mainPanelDevice:get_argument_value(16) > 0 and 1 or 0)) -- PRC_button_WINGMAN_ALL {0.0,0.3} {0,1} + ExportScript.Tools.SendData(17, (mainPanelDevice:get_argument_value(17) > 0 and 1 or 0)) -- PRC_button_WINGMAN_1 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(18, (mainPanelDevice:get_argument_value(18) > 0 and 1 or 0)) -- PRC_button_WINGMAN_2 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(19, (mainPanelDevice:get_argument_value(19) > 0 and 1 or 0)) -- PRC_button_WINGMAN_3 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(20, (mainPanelDevice:get_argument_value(20) > 0 and 1 or 0)) -- PRC_button_WINGMAN_4 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(21, (mainPanelDevice:get_argument_value(21) > 0 and 1 or 0)) -- PRC_button_TARGET_1 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(22, (mainPanelDevice:get_argument_value(22) > 0 and 1 or 0)) -- PRC_button_TARGET_2 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(23, (mainPanelDevice:get_argument_value(23) > 0 and 1 or 0)) -- PRC_button_TARGET_3 {0.0,0.3} {0,1} + ExportScript.Tools.SendData(50, (mainPanelDevice:get_argument_value(50) > 0 and 1 or 0)) -- PRC_button_TARGET_POINT {0.0,0.3} {0,1} + + -- WEAPON INTERFACE + ExportScript.Tools.SendData(437, (mainPanelDevice:get_argument_value(437) > 0 and 1 or 0)) -- PRC_button_AUTO_TURN {0.0,0.3} {0,1} + ExportScript.Tools.SendData(438, (mainPanelDevice:get_argument_value(438) > 0 and 1 or 0)) -- PRC_button_AIRBORNE_TARGET {0.0,0.3} {0,1} + ExportScript.Tools.SendData(439, (mainPanelDevice:get_argument_value(439) > 0 and 1 or 0)) -- PRC_button_FORWARD_HEMISPHERE {0.0,0.3} {0,1} + ExportScript.Tools.SendData(440, (mainPanelDevice:get_argument_value(440) > 0 and 1 or 0)) -- PRC_button_GROUND_MOVING_TARGET {0.0,0.3} {0,1} + ExportScript.Tools.SendData(441, (mainPanelDevice:get_argument_value(441) > 0 and 1 or 0)) -- PRC_button_CLEAR {0.0,0.3} {0,1} + + -- generic Radio display and frequency rotarys + ------------------------------------------------- + -- genericRadioConf + ExportScript.genericRadioConf = {} + ExportScript.genericRadioConf['maxRadios'] = 2 -- numbers of aviables/supported radios + ExportScript.genericRadioConf[1] = {} -- first radio + ExportScript.genericRadioConf[1]['Name'] = "R_800 FM/AM" -- name of radio + ExportScript.genericRadioConf[1]['DeviceID'] = 48 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active + ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style + ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change + ExportScript.genericRadioConf[1]['minFrequency'] = 100.000 -- lowest frequency + ExportScript.genericRadioConf[1]['maxFrequency'] = 399.975 -- highest frequency + ExportScript.genericRadioConf[1]['Power'] = {} -- power button active + ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3011 -- power button id from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 1.0 -- power on value from cklickable.lua + ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua +-- ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active +-- ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua +-- ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active +-- ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua +-- ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua +-- ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} +-- ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change + ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3006 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 1.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 0.0 -- squelch off value from cklickable.lua +-- ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset +-- ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua + -- ManualPreset is AM FM modus switch Manual=AM, Preset=FM + ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active + ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3002 -- ManualPreset button id from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 1.0-- ManualPreset Manual value from cklickable.lua + ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.0-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadioConf[2] = {} -- secound radio + ExportScript.genericRadioConf[2]['Name'] = "R_828 VHF" -- name of radio + ExportScript.genericRadioConf[2]['DeviceID'] = 49 -- DeviceID for GetDevice from device.lua + ExportScript.genericRadioConf[2]['setFrequency'] = false -- change frequency active + ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz + ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style +-- ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change +-- ExportScript.genericRadioConf[2]['minFrequency'] = 116.000 -- lowest frequency +-- ExportScript.genericRadioConf[2]['maxFrequency'] = 151.975 -- highest frequency + ExportScript.genericRadioConf[2]['Power'] = {} -- power button active + ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3003 -- power button id from cklickable.lua + ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua + ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua + ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active + ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3002 -- volume button id from cklickable.lua + ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active + ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 371 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua + -- Preset based on switchlogic on clickabledata.lua + ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="1",[0.1]="2",[0.2]="3",[0.3]="4",[0.4]="5",[0.5]="6",[0.6]="7",[0.7]="8",[0.8]="9",[0.9]="10"} + ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.1 -- minimal step for preset change + ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active + ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3004 -- squelch button id from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 1.0 -- squelch on value from cklickable.lua + ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 0.0 -- squelch off value from cklickable.lua + -- Load Button is Autotune + ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset + ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3003 -- load button id from cklickable.lua + ExportScript.genericRadioConf[2]['Load']['ArgumentID'] = 375 -- load argument id for autotune lamp on Ka-50 +-- ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active +-- ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua +-- ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 0 -- ManualPreset button id from cklickable.lua +-- ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua +-- ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.0-- ManualPreset Preset value from cklickable.lua + + ExportScript.genericRadio(nil, nil) + +end + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + ExportScript.Tools.SendData(44, string.format("%.1f", mainPanelDevice:get_argument_value(44))) -- lamp_MasterWarning {0.0,0.3} {0,1} + ExportScript.Tools.SendData(46, string.format("%.1f", mainPanelDevice:get_argument_value(46))) -- lamp_RotorRPM {0.0,0.1} {0,1} +end + +-- Pointed to by ProcessDACHighImportance, if the player aircraft is a Ka-50 +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to hardware + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + ExportScript.Tools.SendDataDAC("44", mainPanelDevice:get_argument_value(44) > 0.0 and 1 or 0) -- lamp_MasterWarning {0.0,0.3} + ExportScript.Tools.SendDataDAC("46", mainPanelDevice:get_argument_value(46) > 0.0 and 1 or 0) -- lamp_RotorRPM {0.0,0.1} + +--[[ + -- ENGINE_INTERFACE + local lENGINE_INTERFACE = GetDevice(4) + ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_left_engine_temp '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_left_engine_temp())) + ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_left_engine_rpm '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_left_engine_rpm())) + ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_right_engine_temp '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_right_engine_temp())) + ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_right_engine_rpm '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_right_engine_rpm())) + ExportScript.Tools.WriteToLog('lENGINE_INTERFACE:get_apu_temp '..ExportScript.Tools.dump(lENGINE_INTERFACE:get_apu_temp())) + + -- ABRIS + local lABRIS = GetDevice(9) + ExportScript.Tools.WriteToLog('lABRIS:get_active_route '..ExportScript.Tools.dump(lABRIS:get_active_route())) + ExportScript.Tools.WriteToLog('lABRIS:get_edited_route '..ExportScript.Tools.dump(lABRIS:get_edited_route())) + ExportScript.Tools.WriteToLog('lABRIS:get_sns_mode '..ExportScript.Tools.dump(lABRIS:get_sns_mode())) + ExportScript.Tools.WriteToLog('lABRIS:get_current_route '..ExportScript.Tools.dump(lABRIS:get_current_route())) + --ExportScript.Tools.WriteToLog('lABRIS:get_current_route_segment_info '..ExportScript.Tools.dump(lABRIS:get_current_route_segment_info())) -- DCS Error + ExportScript.Tools.WriteToLog('lABRIS:get_mode '..ExportScript.Tools.dump(lABRIS:get_mode())) + ExportScript.Tools.WriteToLog('lABRIS:print_to_console '..ExportScript.Tools.dump(lABRIS:print_to_console())) + --ExportScript.Tools.WriteToLog('lABRIS:replace_last_console_line '..ExportScript.Tools.dump(lABRIS:replace_last_console_line())) -- DCS Error + + -- EKRAN + local lEKRAN = GetDevice(10) + ExportScript.Tools.WriteToLog('lEKRAN:get_actual_text_frame '..ExportScript.Tools.dump(lEKRAN:get_actual_text_frame())) + + -- WEAP_INTERFACE + local lWEAP_INTERFACE = GetDevice(12) + ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_weapon_type_on_station '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_weapon_type_on_station())) + ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_selected_weapon_stations '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_selected_weapon_stations())) + ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_selected_gun_ammo '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_selected_gun_ammo())) + ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_selected_gun_ammo_count '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_selected_gun_ammo_count())) + ExportScript.Tools.WriteToLog('lWEAP_INTERFACE:get_weapon_count_on_station '..ExportScript.Tools.dump(lWEAP_INTERFACE:get_weapon_count_on_station())) + + -- DISS + local lDISS = GetDevice(16) + ExportScript.Tools.WriteToLog('lDISS:get_w_vector '..ExportScript.Tools.dump(lDISS:get_w_vector())) + ExportScript.Tools.WriteToLog('lDISS:get_drift_angle '..ExportScript.Tools.dump(lDISS:get_drift_angle())) + + -- NAV_INTERFACE + local lNAV_INTERFACE = GetDevice(28) + ExportScript.Tools.WriteToLog('lNAV_INTERFACE:get_indicated_air_speed '..ExportScript.Tools.dump(lNAV_INTERFACE:get_indicated_air_speed())) + ExportScript.Tools.WriteToLog('lNAV_INTERFACE:get_vertical_velocity '..ExportScript.Tools.dump(lNAV_INTERFACE:get_vertical_velocity())) + + -- HSI + local lHSI = GetDevice(30) + ExportScript.Tools.WriteToLog('lHSI:get_course '..ExportScript.Tools.dump(lHSI:get_course())) + ExportScript.Tools.WriteToLog('lHSI:get_course_dev_warning_flag '..ExportScript.Tools.dump(lHSI:get_course_dev_warning_flag())) + ExportScript.Tools.WriteToLog('lHSI:get_heading '..ExportScript.Tools.dump(lHSI:get_heading())) + ExportScript.Tools.WriteToLog('lHSI:get_heading_warning_flag '..ExportScript.Tools.dump(lHSI:get_heading_warning_flag())) + ExportScript.Tools.WriteToLog('lHSI:get_glideslope_dev_warning_flag '..ExportScript.Tools.dump(lHSI:get_glideslope_dev_warning_flag())) + ExportScript.Tools.WriteToLog('lHSI:get_range '..ExportScript.Tools.dump(lHSI:get_range())) + ExportScript.Tools.WriteToLog('lHSI:get_commanded_course '..ExportScript.Tools.dump(lHSI:get_commanded_course())) + ExportScript.Tools.WriteToLog('lHSI:get_bearing '..ExportScript.Tools.dump(lHSI:get_bearing())) + ExportScript.Tools.WriteToLog('lHSI:get_commanded_heading '..ExportScript.Tools.dump(lHSI:get_commanded_heading())) + + -- ADI + local lADI = GetDevice(31) + ExportScript.Tools.WriteToLog('lADI:get_sideslip '..ExportScript.Tools.dump(lADI:get_sideslip())) + ExportScript.Tools.WriteToLog('lADI:get_attitude_warn_flag_val '..ExportScript.Tools.dump(lADI:get_attitude_warn_flag_val())) + ExportScript.Tools.WriteToLog('lADI:get_pitch_steering '..ExportScript.Tools.dump(lADI:get_pitch_steering())) + ExportScript.Tools.WriteToLog('lADI:get_track_deviation '..ExportScript.Tools.dump(lADI:get_track_deviation())) + ExportScript.Tools.WriteToLog('lADI:get_airspeed_deviation '..ExportScript.Tools.dump(lADI:get_airspeed_deviation())) + ExportScript.Tools.WriteToLog('lADI:get_height_deviation '..ExportScript.Tools.dump(lADI:get_height_deviation())) + ExportScript.Tools.WriteToLog('lADI:get_bank_steering '..ExportScript.Tools.dump(lADI:get_bank_steering())) + ExportScript.Tools.WriteToLog('lADI:get_pitch '..ExportScript.Tools.dump(lADI:get_pitch())) + ExportScript.Tools.WriteToLog('lADI:get_steering_warn_flag_val '..ExportScript.Tools.dump(lADI:get_steering_warn_flag_val())) + ExportScript.Tools.WriteToLog('lADI:get_bank '..ExportScript.Tools.dump(lADI:get_bank())) + + -- AUTOPILOT + local lAUTOPILOT = GetDevice(33) + ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Bank '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Bank())) + ExportScript.Tools.WriteToLog('lAUTOPILOT:get_directional_mode '..ExportScript.Tools.dump(lAUTOPILOT:get_directional_mode())) + ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Yaw '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Yaw())) + ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Pitch '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Pitch())) + ExportScript.Tools.WriteToLog('lAUTOPILOT:get_channel_status_Height '..ExportScript.Tools.dump(lAUTOPILOT:get_channel_status_Height())) + + -- RADAR_ALTIMETER + local lRADAR_ALTIMETER = GetDevice(38) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_altitude '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_altitude())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_dangerous_height_flag '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_dangerous_height_flag())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_distance_limit '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_distance_limit())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_dangerous_height '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_dangerous_height())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_warning_flag '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_warning_flag())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_mode '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_mode())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_aperture_size '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_aperture_size())) + ExportScript.Tools.WriteToLog('lRADAR_ALTIMETER:get_needle_value '..ExportScript.Tools.dump(lRADAR_ALTIMETER:get_needle_value())) + + -- MISC_SYSTEMS_INTERFACE + local lMISC_SYSTEMS_INTERFACE = GetDevice(41) + ExportScript.Tools.WriteToLog('lMISC_SYSTEMS_INTERFACE:get_rotor_blades_pitch '..ExportScript.Tools.dump(lMISC_SYSTEMS_INTERFACE:get_rotor_blades_pitch())) + ExportScript.Tools.WriteToLog('lMISC_SYSTEMS_INTERFACE:get_main_rotor_rpm '..ExportScript.Tools.dump(lMISC_SYSTEMS_INTERFACE:get_main_rotor_rpm())) + + -- ARK_22 + local lARK_22 = GetDevice(46) + ExportScript.Tools.WriteToLog('lARK_22:get_channel '..ExportScript.Tools.dump(lARK_22:get_channel())) + ExportScript.Tools.WriteToLog('lARK_22:get_mode '..ExportScript.Tools.dump(lARK_22:get_mode())) + ExportScript.Tools.WriteToLog('lARK_22:get_homer_selector_pos '..ExportScript.Tools.dump(lARK_22:get_homer_selector_pos())) + + -- R_800 + local lR_800 = GetDevice(48) + ExportScript.Tools.WriteToLog('lR_800:is_on '..ExportScript.Tools.dump(lR_800:is_on())) + ExportScript.Tools.WriteToLog('lR_800:get_frequency '..ExportScript.Tools.dump(lR_800:get_frequency())) + --ExportScript.Tools.WriteToLog('lR_800:set_modulation '..ExportScript.Tools.dump(lR_800:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('lR_800:set_frequency '..ExportScript.Tools.dump(lR_800:(set_frequency))) -- test the parameters + + -- R_828 + local R_828 = GetDevice(49) + ExportScript.Tools.WriteToLog('R_828:is_on '..ExportScript.Tools.dump(R_828:is_on())) + ExportScript.Tools.WriteToLog('R_828:get_frequency '..ExportScript.Tools.dump(R_828:get_frequency())) + --ExportScript.Tools.WriteToLog('R_828:set_modulation '..ExportScript.Tools.dump(R_828:set_modulation())) -- test the parameters + --ExportScript.Tools.WriteToLog('R_828:set_frequency '..ExportScript.Tools.dump(R_828:(set_frequency))) -- test the parameters + --ExportScript.Tools.WriteToLog('R_828:set_channel '..ExportScript.Tools.dump(R_828:(set_channel))) -- test the parameters + + -- SPU_9 + local lSPU_9 = GetDevice(50) + ExportScript.Tools.WriteToLog('lSPU_9:get_is_on '..ExportScript.Tools.dump(lSPU_9:get_is_on())) + ExportScript.Tools.WriteToLog('lSPU_9:is_communicator_available '..ExportScript.Tools.dump(lSPU_9:is_communicator_available())) + ExportScript.Tools.WriteToLog('lSPU_9:get_selector_pos '..ExportScript.Tools.dump(lSPU_9:get_selector_pos())) + ExportScript.Tools.WriteToLog('lSPU_9:get_noise_level '..ExportScript.Tools.dump(lSPU_9:get_noise_level())) + ExportScript.Tools.WriteToLog('lSPU_9:get_signal_level '..ExportScript.Tools.dump(lSPU_9:get_signal_level())) + --ExportScript.Tools.WriteToLog('lSPU_9:set_communicator '..ExportScript.Tools.dump(lSPU_9:set_communicator())) -- test the parameters + --ExportScript.Tools.WriteToLog('lSPU_9:set_voip_mode '..ExportScript.Tools.dump(lSPU_9:set_voip_mode())) -- test the parameters + + -- STBY_ADI + local lSTBY_ADI = GetDevice(55) + ExportScript.Tools.WriteToLog('lSTBY_ADI:get_sideslip '..ExportScript.Tools.dump(lSTBY_ADI:get_sideslip())) + ExportScript.Tools.WriteToLog('lSTBY_ADI:get_bank '..ExportScript.Tools.dump(lSTBY_ADI:get_bank())) + ExportScript.Tools.WriteToLog('lSTBY_ADI:get_pitch '..ExportScript.Tools.dump(lSTBY_ADI:get_pitch())) + ]] + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get tehe value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + ]] +--[[ + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/Ka-50_3.lua b/Scripts/DCS-ExportScript/ExportsModules/Ka-50_3.lua new file mode 100644 index 00000000..929464a3 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Ka-50_3.lua @@ -0,0 +1,399 @@ +-- Ka-50_3 + +ExportScript.FoundDCSModule = true +ExportScript.Version.Ka50_3 = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [6] = "%0.4f", -- APUTemperature + [11] = "%0.4f", -- KI_13_course + [12] = "%0.4f", -- KI_13_pitch + [14] = "%0.4f", -- KI_13_bank + [15] = "%0.4f", -- PRC_button_CLEAN + [16] = "%0.4f", -- PRC_button_WINGMAN_ALL + [17] = "%0.4f", -- PRC_button_WINGMAN_1 + [18] = "%0.4f", -- PRC_button_WINGMAN_2 + [19] = "%0.4f", -- PRC_button_WINGMAN_3 + [20] = "%0.4f", -- PRC_button_WINGMAN_4 + [21] = "%0.4f", -- PRC_button_TARGET_1 + [22] = "%0.4f", -- PRC_button_TARGET_2 + [23] = "%0.4f", -- PRC_button_TARGET_3 + [24] = "%0.4f", -- vy + [25] = "%0.4f", -- LWS_LampAzimuth_0 + [26] = "%0.4f", -- LWS_LampAzimuth_180 + [27] = "%0.4f", -- LWS_LampAzimuth_270 + [28] = "%0.4f", -- LWS_LampAzimuth_90 + [31] = "%0.4f", -- LWS_LampAzimuth_UpperHemisphere + [32] = "%0.4f", -- LWS_LampAzimuth_LowerHemisphere + [33] = "%0.4f", -- LWS_LampAzimuth_LaserRangefinder + [34] = "%0.4f", -- LWS_LampAzimuth_LaserTargetingSystem + [44] = "%0.4f", -- lamp_MasterWarning + [46] = "%0.4f", -- lamp_RotorRPM + [47] = "%0.4f", -- lamp_UNDERFIREwarning + [48] = "%0.4f", -- lamp_LowerGear + [50] = "%0.4f", -- PRC_button_RESET -- PRC_button_TARGET_POINT + [51] = "%0.4f", -- IAS + [52] = "%0.4f", -- RotorRPM + [53] = "%0.4f", -- RotorPitch + [59] = "%0.4f", -- LGCP_Lamp_LeftMainGearUp + [60] = "%0.4f", -- LGCP_Lamp_LeftMainGearDown + [61] = "%0.4f", -- LGCP_Lamp_RightMainGearUp + [62] = "%0.4f", -- LGCP_Lamp_RightMainGearDown + [63] = "%0.4f", -- LGCP_Lamp_NoseGearUp + [64] = "%0.4f", -- LGCP_Lamp_NoseGearDown + [65] = "%0.4f", -- LGCP_gear_handle + [68] = "%0.4f", -- CLOCK_currtime_hours + [69] = "%0.4f", -- CLOCK_currtime_minutes + [70] = "%0.4f", -- CLOCK_currtime_seconds + [71] = "%0.4f", -- stick_roll + [72] = "%0.4f", -- CLOCK_flight_hours + [73] = "%0.4f", -- CLOCK_seconds_meter_time_minutes + [74] = "%0.4f", -- stick_pitch + [75] = "%0.4f", -- CLOCK_flight_time_meter_status + [78] = "%0.4f", -- lamp_RPM_leftEngineMax + [79] = "%0.4f", -- lamp_RPM_rightEngineMax + [80] = "%0.4f", -- lamp_NyMax + [81] = "%0.4f", -- lamp_vibr_leftEngine + [82] = "%0.4f", -- lamp_vibr_rightEngine + [83] = "%0.4f", -- lamp_IAS_max + [84] = "%0.4f", -- lamp_mainTransmission + [85] = "%0.4f", -- lamp_Fire + [86] = "%0.4f", -- lamp_IFFfailure + [87] = "%0.4f", -- VM_15PV_BALT_thousands + [88] = "%0.4f", -- VM_15PV_BaroPressure + [89] = "%0.4f", -- VM_15PV_BALT_CommandedAlt + [90] = "%0.4f", -- VM_15PV_BaroPressureRotary + [92] = "%0.4f", -- A_036_DangerRALT_lamp + [93] = "%0.4f", -- A_036_DangerRALT_index + [94] = "%0.4f", -- A_036_RALT + [95] = "%0.4f", -- A_036_warning_flag + [97] = "%0.4f", -- ADP_4_acceleration + [98] = "%0.4f", -- ADP_4_max_achieved_acc + [99] = "%0.4f", -- ADP_4_min_achieved_acc + [100] = "%0.4f", -- ADI_Roll + [101] = "%0.4f", -- ADI_Pitch + [102] = "%0.4f", -- ADI_steering_warning_flag + [103] = "%0.4f", -- ADI_track_deviation + [104] = "%0.4f", -- collective_position + [106] = "%0.4f", -- ADI_pitch_steering + [107] = "%0.4f", -- ADI_bank_steering + [108] = "%0.4f", -- ADI_sideslip + [109] = "%0.4f", -- ADI_attitude_warning_flag + [111] = "%0.4f", -- ADI_airspeed_deviation + [112] = "%0.4f", -- HSI_heading + [114] = "%0.4f", -- HSI_course_warning_flag + [115] = "%0.4f", -- HSI_bearing_needle + [116] = "%0.4f", -- HSI_range_unavailable_flag + [117] = "%0.4f", -- HSI_range_counter_hundreds + [118] = "%0.4f", -- HSI_commanded_course_needle + [119] = "%0.4f", -- HSI_heading_warning_flag + [121] = "%0.4f", -- HSI_course_unavailable_flag + [124] = "%0.4f", -- HSI_commanded_heading_needle + [125] = "%0.4f", -- HSI_glideslope_warning_flag + [126] = "%0.4f", -- HSI_courseKnob + [127] = "%0.4f", -- HSI_longitudinal_deviation + [128] = "%0.4f", -- HSI_lateral_deviation + [129] = "%0.4f", -- HSI_headingKnob + [133] = "%0.4f", -- LeftEngineTemperatureHund + [134] = "%0.4f", -- RightEngineTemperatureHund + [135] = "%0.4f", -- LeftEngineRPM + [136] = "%0.4f", -- RightEngineRPM + [137] = "%0.4f", -- ForwardTankAmount + [138] = "%0.4f", -- RearTankAmount + [139] = "%0.4f", -- lamp_ForwardTankTest + [140] = "%0.4f", -- lamp_RearTankTest + [142] = "%0.4f", -- AGR_81_Roll + [143] = "%0.4f", -- AGR_81_Pitch + [144] = "%0.4f", -- AGR_81_sideslip + [145] = "%0.4f", -- AGR_81_failure_flag + [150] = "%0.4f", -- PRC_button_ESCAPE + [155] = "%0.4f", -- lamp_LeftPitotHeatTest + [157] = "%0.4f", -- lamp_RightPitotHeatTest + [159] = "%0.4f", -- PRC_button_SEND + [161] = "%0.4f", -- PRC_button_ERASE + [162] = "%0.4f", -- lamp_APUValveOpen + [163] = "%0.4f", -- lamp_EnginesStartValve + [164] = "%0.4f", -- lamp_RoughNAVcalc + [165] = "%0.4f", -- lamp_RouteHeadingSteering + [166] = "%0.4f", -- lamp_EndOfRoute + [167] = "%0.4f", -- lamp_WeapSysBUS_ON + [168] = "%0.4f", -- lamp_APUOilPres + [169] = "%0.4f", -- lamp_APUStoppedByRPM + [170] = "%0.4f", -- lamp_H_RALT_stab + [171] = "%0.4f", -- lamp_RouteCourseSteering + [172] = "%0.4f", -- lamp_Descent + [173] = "%0.4f", -- lamp_CannonMovingBarr + [174] = "%0.4f", -- lamp_APU_IsON + [175] = "%0.4f", -- lamp_Hover + [176] = "%0.4f", -- lamp_Waypoint + [177] = "%0.4f", -- lamp_CannonMovingBarr2 + [178] = "%0.4f", -- lamp_Burst + [179] = "%0.4f", -- lamp_OBZOR_800 + [180] = "%0.4f", -- lamp_TrainingMode + [181] = "%0.4f", -- lamp_AntiIceLeftEngine + [182] = "%0.4f", -- lamp_AntiIceRightEngine + [183] = "%0.4f", -- lamp_AntiIceRotors + [184] = "%0.4f", -- lamp_VUO_Heat + [185] = "%0.4f", -- lamp_LeftOuterTank + [186] = "%0.4f", -- lamp_RightOuterTank + [187] = "%0.4f", -- lamp_CouplerOff + [188] = "%0.4f", -- lamp_RANET + [189] = "%0.4f", -- lamp_CC_test + [190] = "%0.4f", -- lamp_DustProtectLeftEngine + [191] = "%0.4f", -- lamp_DustProtectRightEngine + [200] = "%0.4f", -- lamp_ForwardTank + [201] = "%0.4f", -- lamp_RearTank + [202] = "%0.4f", -- lamp_LeftInnerTank + [203] = "%0.4f", -- lamp_RightInnerTank + [204] = "%0.4f", -- lamp_ActuatorsOilPress + [205] = "%0.4f", -- lamp_I_251V + [206] = "%0.4f", -- lamp_CC_failure + [207] = "%0.4f", -- lamp_BackupModeLeftEngine + [208] = "%0.4f", -- lamp_BackupModeRightEngine + [209] = "%0.4f", -- lamp_LeftValveClosed + [210] = "%0.4f", -- lamp_RightValveClosed + [211] = "%0.4f", -- lamp_FuelCrossfeedOn + [212] = "%0.4f", -- lamp_DC_AC_Inverter + [213] = "%0.4f", -- lamp_LockOff + [234] = "%0.4f", -- LeftEngineMode + [235] = "%0.4f", -- RightEngineMode + [237] = "%0.4f", -- lamp_Exting_LeftEngineFire + [239] = "%0.4f", -- lamp_Exting_APU_Fire + [241] = "%0.4f", -- lamp_Exting_RightEngineFire + [243] = "%0.4f", -- lamp_Exting_VentilatorFire + [244] = "%0.4f", -- lamp_Exting_Lamp1 + [245] = "%0.4f", -- lamp_Exting_Lamp2 + [252] = "%0.4f", -- NeedleOilPressureEngineLeft + [253] = "%0.4f", -- NeedleOilPressureEngineRight + [254] = "%0.4f", -- NeedleOilPressureGearBox + [255] = "%0.4f", -- NeedleOilTemperatureEngineLeft + [256] = "%0.4f", -- NeedleOilTemperatureEngineRight + [257] = "%0.4f", -- NeedleOilTemperatureGearBox + [261] = "%0.4f", -- lamp_DC_Ground_Power + [266] = "%0.4f", -- rudder + [313] = "%0.4f", -- PVI_button_ENTER + [314] = "%0.4f", -- PVI_button_CANCEL + [315] = "%0.4f", -- PVI_button_WPT + [316] = "%0.4f", -- PVI_button_FIXPT + [317] = "%0.4f", -- PVI_button_AERDR + [318] = "%0.4f", -- PVI_button_TGT + [319] = "%0.4f", -- PVI_button_FILAMBDA + [320] = "%0.4f", -- PVI_button_FIZ + [321] = "%0.4f", -- PVI_button_DU + [322] = "%0.4f", -- PVI_button_FII + [323] = "%0.4f", -- PVI_button_BRGRNG + [330] = "%0.4f", -- PPR_button_K + [331] = "%0.4f", -- PPR_button_T + [332] = "%0.4f", -- PPR_button_H + [333] = "%0.4f", -- PPR_button_B + [334] = "%0.4f", -- PPR_button_DIR + [337] = "%0.4f", -- ZMS3_MagVar_counter_hundreds_tenth + [339] = "%0.4f", -- PShK7_Latitude_counter_tenth + [342] = "%0.4f", -- PShK7_LampAuto + [375] = "%0.4f", -- Radio_ASU_lamp + [388] = "%0.4f", -- lamp_PUI800_Sta1_WeapIsReady + [389] = "%0.4f", -- lamp_PUI800_Sta2_WeapIsReady + [390] = "%0.4f", -- lamp_PUI800_Sta3_WeapIsReady + [391] = "%0.4f", -- lamp_PUI800_Sta4_WeapIsReady + [392] = "%0.4f", -- lamp_PUI800_Sta1_WeapIsPresent + [393] = "%0.4f", -- lamp_PUI800_Sta2_WeapIsPresent + [394] = "%0.4f", -- lamp_PUI800_Sta3_WeapIsPresent + [395] = "%0.4f", -- lamp_PUI800_Sta4_WeapIsPresent + [419] = "%0.4f", -- Radio_Test_lamp + [424] = "%0.4f", -- R800Revolve1 + [425] = "%0.4f", -- R800Revolve2 + [426] = "%0.4f", -- R800Revolve3 + [427] = "%0.4f", -- R800Revolve4 + [437] = "%0.4f", -- PRC_button_AUTO_TURN + [438] = "%0.4f", -- PRC_button_AIRBORNE_TARGET + [439] = "%0.4f", -- PRC_button_FORWARD_HEMISPHERE + [440] = "%0.4f", -- PRC_button_GROUND_MOVING_TARGET + [441] = "%0.4f", -- PRC_button_CLEAR + [461] = "%0.4f", -- EjectSystemTestLamp + [469] = "%0.4f", -- lamp_flap_hydro_1 + [470] = "%0.4f", -- lamp_flap_hydro_2 + [471] = "%0.4f", -- hydro_common_pressure + [472] = "%0.4f", -- hydro_main_pressure + [473] = "%0.4f", -- hydro_acc_brake_pressure + [474] = "%0.4f", -- hydro_gear_brake_pressure + [475] = "%0.4f", -- hydro_common_temperature + [476] = "%0.4f", -- hydro_main_temperature + [509] = "%0.4f", -- filter + [510] = "%0.4f", -- filter_handle + [519] = "%0.4f", -- PVI_button_INSREALN + [520] = "%0.4f", -- PVI_button_PRECALN + [521] = "%0.4f", -- PVI_button_NORMALN + [522] = "%0.4f", -- PVI_button_INITCOORD + [526] = "%0.4f", -- ADI_height_deviation + [527] = "%0.4f", -- HSI_range_counter_tenth + [528] = "%0.4f", -- HSI_range_counter_units + [529] = "%0.4f", -- HSI_course_counter_hundreds_tenth + [530] = "%0.4f", -- HSI_course_counter_units + [531] = "%0.4f", -- CLOCK_flight_minutes + [532] = "%0.4f", -- CLOCK_seconds_meter_time_seconds + [533] = "%0.4f", -- left_door + [540] = "%0.4f", -- pilot_draw + [541] = "%0.4f", -- UV26_lampLeftBoard + [542] = "%0.4f", -- UV26_lampRightBoard + [545] = "%0.4f", -- mirrors_draw + [546] = "%0.4f", -- windscreen_wiper + [551] = "%0.4f", -- Panels_buttons_light + [554] = "%0.4f", -- left_engine_break_hangle + [555] = "%0.4f", -- right_engine_break_hangle + [557] = "%0.4f", -- right_engine_throttle + [558] = "%0.4f", -- coll_ReadjustFreeTurbRPM_sw + [560] = "%0.4f", -- coll_ROUTE_DESCENT_sw + [561] = "%0.4f", -- lamp_ABRIS_button1 + [562] = "%0.4f", -- lamp_ABRIS_button2 + [563] = "%0.4f", -- lamp_ABRIS_button3 + [564] = "%0.4f", -- lamp_ABRIS_button4 + [565] = "%0.4f", -- lamp_ABRIS_button5 + [566] = "%0.4f", -- LeftEngineTemperatureTenth + [567] = "%0.4f", -- RightEngineTemperatureTenth + [568] = "%0.4f", -- lamp_Exting_HydraulicsFire + [571] = "%0.4f", -- wheel_brakes + [573] = "%0.4f", -- VM_15PV_BALT_tenth + [574] = "%0.4f", -- R800Rotary2 + [575] = "%0.4f", -- R800Rotary3 + [576] = "%0.4f", -- R800Rotary4 + [577] = "%0.4f", -- R800Rotary1 + [578] = "%0.4f", -- left_engine_throttle + [579] = "%0.4f", -- throttle_cover + [580] = "%0.4f", -- collective_stopper + [581] = "%0.4f", -- R828_channel_selector + [582] = "%0.4f", -- LWS_LampReady + [586] = "%0.4f", -- lamp_AC_Ground_Power + [587] = "%0.4f", -- ambientTemperature + [592] = "%0.4f", -- EnginesMode + [594] = "%0.4f", -- PShK7_Latitude_counter_units + [596] = "%0.4f", -- ZMS3_MagVar_counter_units + [599] = "%0.4f", -- AGR_81_LongitudinalDeviationBar + [613] = "%0.4f", -- AGR_81_LateralDeviationBar + [614] = "%0.4f", -- missile_trigger + [615] = "%0.4f", -- gun_trigger + [798] = "%0.4f", -- ADI_illumination + [799] = "%0.4f", -- illumination_panels2 + [800] = "%0.4f", -- Control_Panel_illumination + [801] = "%0.4f", -- ADI_illumination2 + [802] = "%0.4f", -- AHR_illumination + [803] = "%0.4f", -- illumination_panels + [1000] = "%0.4f", -- Plafond + [1010] = "%0.4f", -- HMD_PrismsRotPhase + [1015] = "%0.4f", -- lamp_MasterWarning_brightness + [1016] = "%0.4f", -- lamp_RotorRPM_brightness +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/L-39C.lua b/Scripts/DCS-ExportScript/ExportsModules/L-39C.lua index 47e58e93..8d19da9b 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/L-39C.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/L-39C.lua @@ -355,7 +355,7 @@ ExportScript.ConfigArguments = [187] = "%1d", -- Initial Azimuth {-1.0,0.0,1.0} [188] = "%1d", -- Initial Range {-1.0,0.0,1.0} [191] = "%.3f", -- RSBN Navigation Channel Selector Knob (Axis) {0.0, 1.0} in 0.025 Steps - [192] = "%1d", -- RSBN Landing Channel Selector Knob (Axis) {0.0, 1.0} in 0.025 Steps + [192] = "%.3f", -- RSBN Landing Channel Selector Knob (Axis) {0.0, 1.0} in 0.025 Steps [193] = "%1d", -- Set 0 Azimuth [201] = "%.2f", -- RSBN Field Elevation Knob (Axis) {0.0, 1.0} in 0.02 Steps [297] = "%1d", -- RSBN Listen Callsign Button - Push to listen diff --git a/Scripts/DCS-ExportScript/ExportsModules/M-2000C.lua b/Scripts/DCS-ExportScript/ExportsModules/M-2000C.lua index 7db1e641..e9507111 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/M-2000C.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/M-2000C.lua @@ -1,1325 +1,1655 @@ --- Mirage M-2000C - -ExportScript.FoundDCSModule = true -ExportScript.Version.M2000C = "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 - ]] - --- LAMPS / DISPLAYS -------------------------------------- - [185] = "%.1f", --LIM, MIP, - [186] = "%.1f", --IFF, MIP, Acc - [187] = "%.1f", --LED green, ADI - [188] = "%.1f", --LED green, ADI - --- RWR Lamps - [229] = "%.1f", --V - [230] = "%.1f", --BR - [231] = "%.1f", --DA - [232] = "%.1f", --D2M - [233] = "%.1f", --LL - --- Autopilot Controls/Indicator Lights - [267] = "%.1f", --button P light - [268] = "%.1f", --button MIS light - [270] = "%.1f", --button AUT light - [271] = "%.1f", --button MAN light - [273] = "%.1f", --button MAG-P light - [274] = "%.1f", --button MAG-MAG light - - [280] = "%.1f", --button TOT light - [281] = "%.1f", --button PAP light - --- Weapon panel - [236] = "%.1f", --button1 S 001 light - [238] = "%.1f", --button2 S 001 light - [240] = "%.1f", --button3 S 001 light - [242] = "%.1f", --button4 S 001 light - [244] = "%.1f", --button5 S 001 light - - [251] = "%.1f", --button1 S 002 light - [252] = "%.1f", --button1 P 002 light - [254] = "%.1f", --button2 S 002 light - [255] = "%.1f", --button2 P 002 light - [257] = "%.1f", --button3 S 002 light - [258] = "%.1f", --button3 P 002 light - [260] = "%.1f", --button4 S 002 light - [261] = "%.1f", --button4 P 002 light - [263] = "%.1f", --button5 S 002 light - [264] = "%.1f", --button5 P 002 light - - [246] = "%.1f", --button KL1 light - [247] = "%.1f", --button KL2 light - - [321] = "%.1f", --ADI ILS light - [374] = "%.1f", --Fire light 1 - [375] = "%.1f", --Fire light 2 - --- AUTOPILOT lights - [283] = "%.1f", --P - [284] = "%.1f", --A - [286] = "%.1f", --Alt 1 - [287] = "%.1f", --blank Alt - [289] = "%.1f", --Alt 2 - [290] = "%.1f", --AFF - [292] = "%.1f", --blank1 - [293] = "%.1f", --blank2 - [295] = "%.1f", --left - [296] = "%.1f", --blank L - [297] = "%.1f", --G - [298] = "%.1f", --blank G - --- div. lights - [373] = "%.1f", --Afterburner light - [376] = "%.1f", --starter light - [198] = "%.1f", --tranfere - [199] = "%.1f", --master-warning - [200] = "%.1f", --master-caution --- INSTRUMENTS ------------------------------------------- - --- Display Settings - --[224] = "%.4f", --Drum X000 - --[225] = "%.4f", --Drum 0X00 - --[226] = "%.4f", --Drum 00X0 - --[227] = "%.4f", --Drum 000X - --- AUTOPILOT ALTITUDE SELECTOR: Adjust autopilot altitude hold value. - --[299] = "%.4f", --Alt Drum X00 - --[300] = "%.4f", --Alt Drum 0X0 - --[301] = "%.4f", --Alt Drum 00X - --- BINGO FUEL SELECTOR: Adjust the value for the Bingo Fuel warning - [360] = "%.4f", --Drum X0 - [361] = "%.4f", --Drum 0X - --- ASI - [303] = "%.4f", --asi needle - [304] = "%.4f", --mach wheel - --- ALTITUDE INDICATOR: indicates barometric altitude (MSL) in feet - [305] = "%.4f", --Needle - [306] = "%.4f", --Alt Drum X00 - [307] = "%.4f", --Alt Drum 0X0 - [308] = "%.4f", --Alt Drum 00X - [310] = "%.4f", --Pressure Drum X000 - [311] = "%.4f", --Pressure Drum 0X00 - [312] = "%.4f", --Pressure Drum 00X0 - [313] = "%.4f", --Pressure Drum 000X - --- ADI - [316] = "%.4f", --pitch - [317] = "%.4f", --bank - [318] = "%.4f", --heading - [319] = "%.1f", --off flag - [320] = "%.4f", --slip ball - [322] = "%.4f", --ILS bar course - [323] = "%.4f", --ILS bar alt - --- VVI - [324] = "%.4f", --VVI needle - --- ADI Standby - [327] = "%.4f", --pitch - [326] = "%.4f", --bank - [328] = "%.4f", --adjust / White Silhouette - [329] = "%.1f", --off flag - --- AOA - [331] = "%.4f", --needle - --- Flag black/red - [332] = "%.1f", --flag - --- HSI - [333] = "%.4f", --HDG Indicator - [334] = "%.4f", --Needle - [335] = "%.4f", --Needle small - [336] = "%.4f", --Drum X000 - [337] = "%.4f", --Drum 0X00 - [338] = "%.4f", --Drum 00X0 - [339] = "%.4f", --Drum 000X - [342] = "%.4f", --Compass rose - [344] = "%.1f", --HSI Flag 1 - [345] = "%.1f", --HSI Flag 2 - [346] = "%.1f", --HSI Flag CAP - [341] = "%.1f", --HSI Mode - [343] = "%.1f", --DME Off Flag - --- ACC indicator - [347] = "%.4f", --needle - --- JAUG fuel - [349] = "%.4f", --Drum X00 - [350] = "%.4f", --Drum 0X0 - [351] = "%.4f", --Drum 00X - --- DETOT fuel - [352] = "%.4f", --Drum X00 - [353] = "%.4f", --Drum 0X0 - [354] = "%.4f", --Drum 00X - --- Fuel indicator - [358] = "%.4f", --v-needle left - [359] = "%.4f", --v-needle right - [362] = "%.1f", --light L RL - [363] = "%.1f", --light C RL - [364] = "%.1f", --light R RL - [365] = "%.1f", --light L AV - [366] = "%.1f", --light R AV - [367] = "%.1f", --light L V - [368] = "%.1f", --light R V - --- ENGINE INSTRUMENTS: Indicates engine RPM and Temperature. - [369] = "%.4f", --N needle - [370] = "%.4f", --Tt7 needle - [371] = "%.4f", --Drum XX0 - [372] = "%.4f", --Drum 00X - --- Center console IFF - [377] = "%.4f", -- X0 MODE - [378] = "%.4f", -- 0X - - [379] = "%.4f", -- X000 MODE 3A - [380] = "%.4f", -- 0X00 - [381] = "%.4f", -- 00X0 - [382] = "%.4f", -- 000X - - [388] = "%.1f", -- Rote Kontrollampe MODE-4 Panel - [394] = "%.1f", -- gelbe „FAULT“ Anzeige - --- Pressuge - [397] = "%.4f", --Needle left - [398] = "%.4f", --Needle right - --- Cabin climb (x 1000 ft) - [399] = "%.4f", --Needle - --- Clock - [401] = "%.4f", --hours - [402] = "%.4f", --minutes - [403] = "%.4f", --seconds - --- GEARPANEL - [405] = "%.1f", -- Gearhandle Innenleuchte, rot - [410] = "%.1f", -- „A“ Warnlamp - [411] = "%.1f", -- „F“ Warnlamp - [412] = "%.1f", -- „DIRA“ Warnlamp, blau - [413] = "%.1f", -- „FREIN“ - [414] = "%.1f", -- „Cross“ - [415] = "%.1f", -- „SPAD“ - [416] = "%.1f", -- Rote Warnlamp unter „BIP“ - [417] = "%.1f", -- Left Gear ?, grüne Warnlampen - [418] = "%.1f", -- Nose Gear ? - [419] = "%.1f", -- Right Gear ? - --- CS indicator - [424] = "%.4f", -- 1. waagerechte Balkenanzeige - [425] = "%.4f", -- 2. - [426] = "%.4f", -- 1. senkrechte Balkenanzeige - [427] = "%.4f", -- 3. waagerechte BA - [428] = "%.4f", -- 4. - --- Com - --[436] = "%.4f", -- Preset display (1-20) - --[440] = "%.4f", -- Drum X000 (0-9-0) COM Panel - --[441] = "%.4f", -- Drum 0X00.00 - --[442] = "%.4f", -- Drum 00X0.00 - --[443] = "%.4f", -- Drum 000X.00 - --[444] = "%.4f", -- Drum 0000.XX (00-25-50-75-00) - --[190] = "%.4f", -- Drum X0 Preset (0-1-2) - --[189] = "%.4f", -- Drum 0X Preset (0-9-0) - [675] = "%.1f", -- TEST Button COM Panel, red - [676] = "%.1f", -- Test Button Panel over COM Panel, red - [677] = "%.1f", -- Left green lamp - --- Compass - [906] = "%.4f", --Rose - --- Oxygen - [518] = "%.4f", --Needle - [519] = "%.1f", --Oxy flow lamp (blue) - - --- Left consule Lamps - [490] = "%.1f", -- „VAL” - [492] = "%.1f", -- „A“ Kontrolllampe mittleres Panel - [494] = "%.1f", -- „DEC“ Kontrollampe - [496] = "%.1f", -- „VISU“ - [505] = "%.1f", -- „PSIC“ - [510] = "%.1f", -- „ELEC“ - [511] = "%.1f", -- „HYD“ - [512] = "%.1f", -- Red - [513] = "%.1f", -- GREEN - --- LOX - [518] = "%.4f", -- needle - --[519] = "%.4f", -- LOX flow blinker - --- WARNING PANEL - [525] = "%.1f", -- BATT - [526] = "%.1f", -- TR - [527] = "%.1f", -- ALT 1 - [528] = "%.1f", -- ALT2 - [529] = "%.1f", -- HUILLE - [530] = "%.1f", -- T7 - [531] = "%.1f", -- CALC C - [532] = "%.1f", -- SOURIS - [533] = "%.1f", -- PELLE - [534] = "%.1f", -- B.P - [535] = "%.1f", -- BP.G - [536] = "%.1f", -- BP.D - [537] = "%.1f", -- TRANSF - [538] = "%.1f", -- NIVEAU - [539] = "%.1f", -- HYD 1 - [540] = "%.1f", -- HYD 2 - [541] = "%.1f", -- HYD 3 - [542] = "%.1f", -- EP - [543] = "%.1f", -- BINGO - [544] = "%.1f", -- P.CAB - [545] = "%.1f", -- TEMP - [546] = "%.1f", -- REG O2 - [547] = "%.1f", -- 5nm O2 - [548] = "%.1f", -- O2 HA - [549] = "%.1f", -- ANEMO - [550] = "%.1f", -- CC - [551] = "%.1f", -- DSV - [552] = "%.1f", -- CONDIT - [553] = "%.1f", -- CONF - [554] = "%.1f", -- PA - [555] = "%.1f", -- MAN - [556] = "%.1f", -- DOM - [557] = "%.1f", -- BECS - [558] = "%.1f", -- U.S.EL - [559] = "%.1f", -- ZEICHEN - [560] = "%.1f", -- GAIN - [561] = "%.1f", -- RPM - [562] = "%.1f", -- DECOL - [563] = "%.1f", -- PARK. - --- Lamps Right Console - [564] = "%.1f", -- “PRET” grüne Doppelanzeige, unten - [565] = "%.1f", -- „ALN“ - [566] = "%.1f", -- „MIP“ - [567] = "%.1f", -- „N.DEG“ - [568] = "%.1f", -- „SEC“ - [569] = "%.1f", -- „UNI“ - [669] = "%.1f", -- „M01” - [670] = "%.1f", -- „M02“ - [671] = "%.1f", -- „M03“ - - [571] = "%.1f", -- “PREP” WL, gelb - [573] = "%.1f", -- “DEST” WL, gelb - [577] = "%.1f", -- “BAD” WL gelb/grün - [579] = "%.1f", -- “REC” - [581] = "%.1f", -- “VAL” - [583] = "%.1f", -- “MRC” - [595] = "%.1f", -- “EFF” runde Warnlampe - [597] = "%.1f", -- “INS” runde WL - [668] = "%.1f", -- “ENC” WL gelb/grün - --- VIERER ANZEIGE - [601] = "%.4f", -- 1. Drum - [602] = "%.4f", -- 2. - [603] = "%.4f", -- 3. - [604] = "%.4f", -- 4. - --- VOR ILS - [611] = "%.4f", -- 1. Drum - [612] = "%.4f", -- 2. - [613] = "%.4f", -- 3. - [614] = "%.4f", -- 4. - [615] = "%.4f", -- 5. - --- TACAN - [620] = "%.1f", -- X/Y - [621] = "%.4f", -- Drum XX0 left (--;1-12;--) - [622] = "%.4f", -- Drum 00X right (0;1-9;0) - - - [632] = "%.1f", -- Taster mit Warnlampe “C” - [634] = "%.1f", -- Taster mit Warnlampe “F” - --- Panel lights - [720] = "%.4f", -- MIP Aufleuchte, red - [721] = "%.4f", -- MIP Hintergrundbeleuchtung, red - [722] = "%.4f", -- MIP Aufleuchte, weiß - [723] = "%.4f", -- Linke und rechte Seitenpanels Hintergrundbeleuchtung, red - [724] = "%.4f", -- Seitenpanels Aufleuchten, red (links, rechts) - [726] = "%.4f", -- Warnlampen Dimmer - [727] = "%.4f", -- Warnlampen Dimmer (Seitenpanels?) - -} - -ExportScript.ConfigArguments = -{ - --[[ - arguments for export in low tick interval - based on "clickabledata.lua" - ]] - --- Fuel - [193] = "%.1f", --Refuel Transfer Switch - --- Landing Gear - [404] = "%.1f", --Landing Gear Lever - --- HUD/VTB - [201] = "%.1f", --HUD Power Switch - [203] = "%.1f", --HUD Decluter Switch - [204] = "%.1f", --HUD Altimeter Selector Switch - [205] = "%.1f", --Radar Altimeter Power Switch - [208] = "%.1f", --Gun AG Reticle Selector - [209] = "%.1f", --Gun Target Wingspan Selector - [210] = "%.1f", --HUD Clear Switch - [192] = "%.4f", --Radar Altimeter Minimum Altitude Selector - [213] = "%.1f", --Radar Interception Switch - [214] = "%.1f", --Radar N Parameter Switch - [215] = "%.1f", --Radar P Parameter Switch - [216] = "%.1f", --Radar B Parameter Switch - [217] = "%.1f", --Radar C Parameter Switch - [218] = "%.1f", --Radar Z Parameter Switch - [219] = "%.1f", --Radar M Parameter Switch - [220] = "%.1f", --Radar T Parameter Switch - [221] = "%.1f", --VTB Power Switch - [222] = "%.1f", --VTB Switch - [223] = "%.1f", --VTB Switch - --- PCA/PPA +++++++++++ HJP HBook Side 129 - [463] = "%.1f", --Gun Arm/Safe Switch - [234] = "%.1f", --Master Arm Switch - [248] = "%.1f", --Jett Switch Cover - [249] = "%.1f", --Selective Jettison Switch - [235] = "%.1f", --PCA Button 1 - [237] = "%.1f", --PCA Button 2 - [239] = "%.1f", --PCA Button 3 - [241] = "%.1f", --PCA Button 4 - [243] = "%.1f", --PCA Button 5 - [245] = "%.1f", --Gun Mode Selector - [250] = "%.1f", --Weapons Selector Button 1 - [253] = "%.1f", --Weapons Selector Button 2 - [256] = "%.1f", --Weapons Selector Button 3 - [259] = "%.1f", --Weapons Selector Button 4 - [262] = "%.1f", --Weapons Selector Button 5 - [266] = "%.1f", --S530 Standby - [269] = "%.1f", --AUTO/MAN Button - [272] = "%.1f", --MAGIC Standby - [279] = "%.1f", --Cannon Fire rate/Rockets Simul Launch - [265] = "%.1f", --Missile Selector Switch - [275] = "%.1f", --PPA Test Switch - [276] = "%.1f", --Bomb Fuze Selector Switch - [277] = "%.1f", --Bomb Release Quantity Selector Switch - [278] = "%.1f", --Bomb Release Interval Selector Switch - [409] = "%.1f", --Emergency Jettison - ---AFCS - [282] = "%.1f", --Autopilot Master - [285] = "%.1f", --Autopilot - Altitude Hold - [288] = "%.1f", --Autopilot - Selected Altitude Hold - [294] = "%.1f", --Autopilot - Approach Hold - [302] = "%.1f", --Autopilot - Lights Test - [299] = "%.1f", --Autopilot - Altitude Selector 10K - [300] = "%.1f", --Autopilot - Altitude Selector 1K - [301] = "%.1f", --Autopilot - Altitude Selector 1C - [514] = "%.1f", --Autopilot Test Cover - [515] = "%.1f", --Autopilot Test Switch - [516] = "%.1f", --FBW Test Cover - [517] = "%.1f", --FBW Test Switch - ---FBW - [330] = "%.1f", --FBW Spin Switch - [420] = "%.1f", --FBW Disconnect Cover - [421] = "%.1f", --FBW Disconnect Switch - [422] = "%.1f", --FBW G Limiter Switch - [460] = "%.1f", --Intake slats Operation Switch - [461] = "%.1f", --Intake cones Operation Switch - --- HSI - [340] = "%.4f", --HSI Heading Selector - [341] = "%.1f", --HSI Mode Selector Switch - --- PELLES, SOURIES AND BECS - [462] = "%.1f", --Slats Operation Switch - [395] = "%.1f", --Hydraulic System Selector - [396] = "%.1f", --Pedal Adjust Lever - --- RADAR - [481] = "%.1f", --Radar Illumination Switch - [482] = "%.1f", --Radar Test Switch - [483] = "%.1f", --Radar Rearm Switch - [484] = "%.1f", --Radar Doppler Reject Selector - [486] = "%.1f", --Radar Power Switch - [488] = "%.4f", --Radar Gain Dial - [491] = "%.1f", --A/G Radar A Mode - [493] = "%.1f", --A/G Radar DEC Mode - [495] = "%.1f", --A/G Radar VISU Mode - [499] = "%.1f", --Radar Grid Selector - [500] = "%.1f", --Target Memory Time Selector - [502] = "%.1f", --Radar Scan Lines Selector - [503] = "%.1f", --Radar Range Selector - [504] = "%.1f", --AA Radar STT Selector - [506] = "%.1f", --Radar Azimuth Aperture Selector - [598] = "%.1f", --Radar IFF Mode Switch - [599] = "%.1f", --Radar IFF L/R Selector - [600] = "%.1f", --Radar IFF Power Switch - [601] = "%.1f", --Radar IFF Code-4 Selector - [602] = "%.1f", --Radar IFF Code-3 Selector - [603] = "%.1f", --Radar IFF Code-2 Selector - [604] = "%.1f", --Radar IFF Code-1 Selector - [709] = "%.1f", --Radar PRF Selector - [710] = "%.1f", --TDC Mode - --- ELECTRICAL PANEL - [520] = "%.1f", --Main Battery Switch - [521] = "%.1f", --Electric Power Transfer Switch - [522] = "%.1f", --Alternator 1 Switch - [523] = "%.1f", --Alternator 2 Switch - [524] = "%.1f", --Lights Test Switch - [654] = "%.1f", --Alert Network (QRA) Switch - --- PCN - [570] = "%.1f", --INS PREP Switch - [572] = "%.1f", --INS DEST Switch - [574] = "%.1f", --INS Parameter Selector - [575] = "%.4f", --Light Brightnes Control/Test - [576] = "%.1f", --Offset Waypoint/Target - [578] = "%.1f", --INS Update - [580] = "%.1f", --Validate Data Entry - [582] = "%.1f", --Mark Position - [584] = "%.1f", --INS Button 1 - [585] = "%.1f", --INS Button 2 - [586] = "%.1f", --INS Button 3 - [587] = "%.1f", --INS Button 4 - [588] = "%.1f", --INS Button 5 - [589] = "%.1f", --INS Button 6 - [590] = "%.1f", --INS Button 7 - [591] = "%.1f", --INS Button 8 - [592] = "%.1f", --INS Button 9 - [593] = "%.1f", --INS Button 0 - [594] = "%.1f", --INS Clear Button - [596] = "%.1f", --INS ENTER Button - [667] = "%.1f", --AUTO Navigation - --- PSM - [627] = "%.1f", --INS Mode Selector - [629] = "%.1f", --INS Operational Mode - [665] = "%.1f", --INS Auxiliary Heading/Horizon - --- EW PANEL - [228] = "%.4f", --RWR Light Brightnes Control - [605] = "%.1f", --EW Mode Selector Switch - [606] = "%.1f", --BR Switch - [607] = "%.1f", --RWR Switch - [608] = "%.1f", --D2M Switch - [609] = "%.1f", --LL (Jammer) Switch - [610] = "%.1f", --Jammer Strength - --- ECM BOX - [194] = "%.1f", --ECM Box Mode Switch - [195] = "%.1f", --ECM Box Switch - [196] = "%.1f", --ECM Box Lighs Switch - [197] = "%.1f", --ECM Box LCD Display Brightness - --- Panel Lights - [449] = "%.1f", --Police Lights - [450] = "%.1f", --Landing Lights - [452] = "%.1f", --Refuel Lights - [453] = "%.1f", --Anti-Collision Lights - [454] = "%.1f", --Navigation Lights - [455] = "%.1f", --Formation Lights - [639] = "%.4f", --Dashboard Flood Lights - [640] = "%.4f", --Dashboard Panel Lights - [641] = "%.4f", --Console Flood Lights - [642] = "%.4f", --Console Panel Lights - [643] = "%.4f", --Casution/Advisory Lights Rheostat - [644] = "%.4f", --White Flood Lights Knob - [920] = "%.4f", --Refuel Lights Brightness Knob - --- Engine Start Panel - [468] = "%.1f", --Engine In-Flight Start Switch - [467] = "%.1f", --Engine Shutdown Button - [645] = "%.1f", --Engine Start Switch Cover - [646] = "%.1f", --Starter Fuel Pump Switch - [647] = "%.1f", --Engine Fuel Left Boost Pump Switch - [648] = "%.1f", --Engine Fuel Right Boost Pump Switch - [649] = "%.1f", --Engine Start Switch - [650] = "%.1f", --Ventilation Selector Switch - [651] = "%.1f", --Fuel Cutoff Switch Cover - [652] = "%.1f", --Fuel Cutoff Switch - [477] = "%.1f", --Fuel Dump Switch Cover - [478] = "%.1f", --Fuel Dump Switch - [471] = "%.1f", --A/B Emergency Cutoff Switch Cover - [472] = "%.1f", --A/B Emergency Cutoff Switch - [464] = "%.1f", --Emergency Throttle Cover - [465] = "%.1f", --Emergency Throttle Handle - [473] = "%.1f", --Secondary Oil Control Cover - [474] = "%.1f", --Secondary Oil Control Switch - [475] = "%.1f", --Engine Emergency Control Cover - [476] = "%.1f", --Engine Emergency Control Switch - - -- Radio Panel - [429] = "%.1f", --UHF Power 5W/25W Switch - [430] = "%.1f", --UHF SIL Switch - [431] = "%.1f", --UHF E-A2 Switch - [432] = "%.1f", --UHF CDE Switch - [433] = "%.1f", --UHF Mode Switch - [434] = "%.1f", --UHF TEST Switch - [435] = "%.1f", --UHF Knob - [437] = "%.1f", --U/VHF TEST Switch - [438] = "%.1f", --U/VHF E+A2 Switch - [439] = "%.1f", --U/VHF SIL Switch - [440] = "%.1f", --U/VHF Select 100 MHz - [441] = "%.1f", --U/VHF Select 10 MHz - [442] = "%.1f", --U/VHF Select 1 MHz - [443] = "%.1f", --U/VHF Select 100 KHz - [444] = "%.1f", --U/VHF Select 25 KHz - [445] = "%.1f", --U/VHF Knob - [446] = "%.1f", --U/VHF Mode Switch 1 - [447] = "%.1f", --U/VHF Power 5W/25W Switch - [448] = "%.1f", --U/VHF Manual/Preset - --- Navigational Antennas - [616] = "%.1f", --VOR/ILS Frequency Change Whole - [617] = "%.1f", --VOR/ILS Power Dial - [618] = "%.1f", --VOR/ILS Frequency Change Decimal - [619] = "%.1f", --VOR/ILS Test Dial - --- TACAN - [623] = "%.1f", --TACAN Channel Change Tens - [624] = "%.1f", --TACAN X/Y Select - [625] = "%.1f", --TACAN Channel Change Ones - [626] = "%.1f", --TACAN Mode Select - --- Miscelaneous Right Panel - [657] = "%.1f", -- Hydraulic Emergency Pump Switch - --- Miscelaneous Left Panel - [191] = "%.1f", --Audio Warning Reset - --- Miscelaneous Seat - [900] = "%.1f", --Seat adjustment switch - [458] = "%.1f", --Anti-Skid Cover - [459] = "%.1f", --Anti-Skid Switch - [666] = "%.1f", --Parking Brake Lever - [807] = "%.1f", --Nose Wheel Steering / IFF - --- Sound Panel - [700] = "%.1f", --AMPLIS Selector - [701] = "%.1f", --VOR/ILS Volume {0.0,1.0} in 0.1 steps - [702] = "%.1f", --TACAN Volume {0.0,1.0} in 0.1 steps - [703] = "%.1f", --MAGIC Tone Volume {0.0,1.0} in 0.1 steps - [704] = "%.1f", --TB APP Volume {0.0,1.0} in 0.1 steps - [705] = "%.1f", --Marker Signal Volume {0.0,1.0} in 0.1 steps - [706] = "%.1f", --V/UHF Radio Volume {0.0,1.0} in 0.1 steps - [707] = "%.1f", --VHF Radio Volume {0.0,1.0} in 0.1 steps - --- ALT - [309] = "%.1f", --Barometric Pressure Calibration - [314] = "%.1f", --ADI Cage Lever - [315] = "%.1f", --ADI Backlight Switch - [325] = "%.1f", --Backup ADI Cage - --[328] = "%.4f", --Backup ADI Pitch Adjust Knob {-1.0,1.0} in 0.1 steps --- Center console IFF - [383] = "%.1f", --Ident Power Switch {-1.0,0.0,1.0} - [384] = "%.1f", --Mode-1 Switch - [385] = "%.1f", --Mode-2 Switch - [386] = "%.1f", --Mode-3A Switch - [387] = "%.1f", --Mode-C Switch --- Miscelaneous Seat - [900] = "%.1f", --Seat Adjustment Switch - [910] = "%.1f", --LOX Dilution Lever - [912] = "%.1f", --LOX Emergency Supply - [911] = "%.1f", --LOX Test Switch --- ECS Panel - [630] = "%.1f", --ECS Main Mode Switch - [631] = "%.1f", --ECS C Button - [633] = "%.1f", --ECS F Button - [635] = "%.1f", --ECS Cond Switch - [636] = "%.1f", --ECS Air Exchange Switch - [637] = "%.1f", --ECS Temperature Select Knob {-1.0,1.0} in 0.1 steps - [638] = "%.1f", --ECS Defog Switch -} - ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ - --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] -end - -function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] -end - ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance -function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - -- ECM Mode Switch - -- [194] = "%.1f", --ECM Box Mode Switch - local lECM_On = (mainPanelDevice:get_argument_value(194) > 0.0 and true or false) - - -- ECM_CHF - local lECM_CHF = ExportScript.Tools.getListIndicatorValue(3) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lECM_CHF : '..ExportScript.Tools.dump(lECM_CHF)) - end - - if lECM_On and lECM_CHF ~= nil and lECM_CHF.text_ECM_CHF ~= nil then - -- string with max 3 charachters - ExportScript.Tools.SendData(2001, string.format("%s", lECM_CHF.text_ECM_CHF)) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('2001: '..ExportScript.Tools.dump(lECM_CHF.text_ECM_CHF)) - end - else - ExportScript.Tools.SendData(2001, " ") - end - - -- ECM_FLR - local lECM_FLR = ExportScript.Tools.getListIndicatorValue(4) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lECM_FLR : '..ExportScript.Tools.dump(lECM_FLR)) - end - - if lECM_On and lECM_FLR ~= nil and lECM_FLR.text_ECM_FLR ~= nil then - -- string with max 2 charachters - ExportScript.Tools.SendData(2002, string.format("%s", lECM_FLR.text_ECM_FLR)) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('2002: '..ExportScript.Tools.dump(lECM_FLR.text_ECM_FLR)) - end - else - ExportScript.Tools.SendData(2002, " ") - end - - -- FUEL - local lFUEL = ExportScript.Tools.getListIndicatorValue(5) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lFUEL : '..ExportScript.Tools.dump(lFUEL)) - end - - if lFUEL ~= nil and lFUEL.txt_fuel_g ~= nil then - -- string with max 3 charachters - ExportScript.Tools.SendData(2003, string.format("%s", lFUEL.txt_fuel_g)) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('2003: '..ExportScript.Tools.dump(lFUEL.txt_fuel_g)) - end - else - ExportScript.Tools.SendData(2003, " ") - end - - -- PCA_UR (Weappon Panel top line) - local lPCAUR = list_indication(6) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lPCAUR : '..ExportScript.Tools.dump(lPCAUR)) - end - - local to1, to2, from1, from2 = nil, nil, nil, nil - local lPCA_UR = {"", "", "", "", ""} - to1, to2 = lPCAUR:find("PCA_UR") - if (to1 ~= nil) then - for lIndex = 1, 5, 1 do - from1, from2 = lPCAUR:find("text_PCA_UR"..lIndex.."%c") - if (from2 ~= nill) then - to1, to2 = lPCAUR:find("%c", from2+2) - if (to1 ~= nil) then - lPCA_UR[lIndex] = lPCAUR:sub(from2+1, to1-1) - end - end - end -- for - end - - -- string with max 3 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2010: "..string.format("%s", lPCA_UR[1])) - ExportScript.Tools.WriteToLog("2011: "..string.format("%s", lPCA_UR[2])) - ExportScript.Tools.WriteToLog("2012: "..string.format("%s", lPCA_UR[3])) - ExportScript.Tools.WriteToLog("2013: "..string.format("%s", lPCA_UR[4])) - ExportScript.Tools.WriteToLog("2014: "..string.format("%s", lPCA_UR[5])) - end - ExportScript.Tools.SendData(2010, string.format("%s", lPCA_UR[1])) - ExportScript.Tools.SendData(2011, string.format("%s", lPCA_UR[2])) - ExportScript.Tools.SendData(2012, string.format("%s", lPCA_UR[3])) - ExportScript.Tools.SendData(2013, string.format("%s", lPCA_UR[4])) - ExportScript.Tools.SendData(2014, string.format("%s", lPCA_UR[5])) - - -- PCA_BR (Weappon Panel bottom line) - local lPCABR = list_indication(7) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lPCABR : '..ExportScript.Tools.dump(lPCABR)) - end - - local to1, to2, from1, from2 = nil, nil, nil, nil - local lPCA_BR = {"", "", "", "", ""} - to1, to2 = lPCABR:find("PCA_BR") - if (to1 ~= nil) then - for lIndex = 1, 5, 1 do - from1, from2 = lPCABR:find("text_PCA_BR"..lIndex.."%c") - if (from2 ~= nill) then - to1, to2 = lPCABR:find("%c", from2+2) - if (to1 ~= nil) then - lPCA_BR[lIndex] = lPCABR:sub(from2+1, to1-1) - end - end - end-- for - end - - -- string with max 3 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2015: "..string.format("%s", lPCA_BR[1])) - ExportScript.Tools.WriteToLog("2016: "..string.format("%s", lPCA_BR[2])) - ExportScript.Tools.WriteToLog("2017: "..string.format("%s", lPCA_BR[3])) - ExportScript.Tools.WriteToLog("2018: "..string.format("%s", lPCA_BR[4])) - ExportScript.Tools.WriteToLog("2019: "..string.format("%s", lPCA_BR[5])) - end - ExportScript.Tools.SendData(2015, string.format("%s", lPCA_BR[1])) - ExportScript.Tools.SendData(2016, string.format("%s", lPCA_BR[2])) - ExportScript.Tools.SendData(2017, string.format("%s", lPCA_BR[3])) - ExportScript.Tools.SendData(2018, string.format("%s", lPCA_BR[4])) - ExportScript.Tools.SendData(2019, string.format("%s", lPCA_BR[5])) - - -- COM - local lCOM = list_indication(9) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lCOM : '..ExportScript.Tools.dump(lCOM)) - end - - local to1, to2, from1, from2, lCOM1, lCOM2 = nil, nil, nil, nil, "", "" - to1, to2 = lCOM:find("COM") - if (to1 ~= nil) then - from1, from2 = lCOM:find("text_COM_UHF1%c") - if (from2 ~= nil) then - to1, to2 = lCOM:find("%c", from2+2) - if (to1 ~= nil) then - lCOM1 = lCOM:sub(from2+1, to1-1) - end - end - - from1, from2 = lCOM:find("text_COM_UHF2%c", to2) - if (from2 ~= nil) then - to1, to2 = lCOM:find("%c", from2+2) - if (to1 ~= nil) then - lCOM2 = lCOM:sub(from2+1, to1-1) - end - end - end - - -- string with max 7 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2020: "..string.format("%s", lCOM1)) - ExportScript.Tools.WriteToLog("2021: "..string.format("%s", lCOM2)) - end - ExportScript.Tools.SendData(2020, string.format("%s", lCOM1)) - ExportScript.Tools.SendData(2021, string.format("%s", lCOM2)) - - -- PPA Bomb Display - local lPPA = list_indication(8) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lPPA : '..ExportScript.Tools.dump(lPPA)) - end - - local to1, to2, from1, from2, lPPA1, lPPA2 = nil, nil, nil, nil, "", "" - to1, to2 = lPPA:find("PPA") - if (to1 ~= nil) then - from1, from2 = lPPA:find("text_PPA_QTY%c") - if (from2 ~= nil) then - to1, to2 = lPPA:find("%c", from2+2) - if (to1 ~= nil) then - lPPA1 = lPPA:sub(from2+1, to1-1) - end - end - - from1, from2 = lPPA:find("text_PPA_INT%c", to2) - if (from2 ~= nil) then - to1, to2 = lPPA:find("%c", from2+2) - if (to1 ~= nil) then - lPPA2 = lPPA:sub(from2+1, to1-1) - end - end - end - - -- string with max 2 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2022: "..string.format("%s", lPPA1)) - ExportScript.Tools.WriteToLog("2023: "..string.format("%s", lPPA2)) - end - ExportScript.Tools.SendData(2022, string.format("%s", lPPA1)) - ExportScript.Tools.SendData(2023, string.format("%s", lPPA2)) - - -- PCN_UR Navigation Displays - if ExportScript.Config.Debug then - local lPCNUR = list_indication(10) - ExportScript.Tools.WriteToLog('lPCNUR : '..ExportScript.Tools.dump(lPCNUR)) - end - - -- SubLeftTop SubRightTop SubLeftBottom SubRightBottom MainLeft MainRight - local lPCN_sub_L_T, lPCN_sub_R_T, lPCN_sub_L_B, lPCN_sub_R_B, lPCN_main_L, lPCN_main_R = "", "", "", "", "", "" - local lPCNUR = ExportScript.Tools.getListIndicatorValue(10) - -- das untere durch solche aufrufe ersetzen - if lPCNUR.text_PCN_R_INT ~= nil then - lPCN_main_R = lPCNUR.text_PCN_R_INT - end - if lPCNUR.text_PCN_L_INT ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_INT - end - if lPCNUR.text_PCN_L_TR ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_TR - end - if lPCNUR.text_PCN_NORD ~= nil then - lPCN_sub_L_T = lPCNUR.text_PCN_NORD - end - if lPCNUR.text_PCN_EST ~= nil then - lPCN_sub_R_T = lPCNUR.text_PCN_EST - end - if lPCNUR.text_PCN_SUD ~= nil then - lPCN_sub_L_B = lPCNUR.text_PCN_SUD - end - if lPCNUR.text_PCN_OUEST ~= nil then - lPCN_sub_R_B = lPCNUR.text_PCN_OUEST - end - if lPCNUR.text_PCN_L_MRQ_LAT ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_MRQ_LAT - end - if lPCNUR.text_PCN_R_MRQ_LON ~= nil then - lPCN_main_R = lPCNUR.text_PCN_R_MRQ_LON - end - if lPCNUR.text_PCN_PLUS_R ~= nil then - lPCN_sub_R_T = lPCN_sub_R_T..lPCNUR.text_PCN_PLUS_R - end - if lPCNUR.text_PCN_PLUS_L ~= nil then - lPCN_sub_L_T = lPCN_sub_L_T..lPCNUR.text_PCN_PLUS_L - end - if lPCNUR.text_PCN_MOINS_L ~= nil then - lPCN_sub_L_B = lPCN_sub_L_B..lPCNUR.text_PCN_MOINS_L - end - if lPCNUR.text_PCN_MOINS_R ~= nil then - lPCN_sub_R_B = lPCN_sub_R_B..lPCNUR.text_PCN_MOINS_R - end - if lPCNUR.text_PCN_L_DR ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_DR - end - if lPCNUR.text_PCN_R_DEG ~= nil then - lPCN_main_R = lPCNUR.text_PCN_R_DEG - end - if lPCNUR.text_PCN_L_DEG ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_DEG - end - if lPCNUR.text_PCN_RDE ~= nil then - lPCN_main_R = lPCNUR.text_PCN_RDE - end - if lPCNUR.text_PCN_LDE ~= nil then - lPCN_main_L = lPCNUR.text_PCN_LDE - end - if lPCNUR.text_PCN_L_LG ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_LG - end - if lPCNUR.text_PCN_R_LG ~= nil then - lPCN_main_R = lPCNUR.text_PCN_R_LG - end - if lPCNUR.text_PCN_R_TD ~= nil then - lPCN_main_R = lPCNUR.text_PCN_R_TD - end - if lPCNUR.text_PCN_L_TD ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_TD - end - if lPCNUR.text_PCN_R_ASTS ~= nil then - lPCN_main_R = lPCNUR.text_PCN_R_ASTS - end - if lPCNUR.text_PCN_L_ACLASS ~= nil then - lPCN_main_L = lPCNUR.text_PCN_L_ACLASS - end - if lPCNUR.text_PCN_L_ACTMR ~= nil then - lPCN_main_L = lPCN_main_L.." "..lPCNUR.text_PCN_L_ACTMR - end - if lPCNUR.text_PCN_MSG ~= nil then - lPCN_main_L = lPCNUR.text_PCN_MSG - end - - if ExportScript.Config.Debug then - -- string with max 1 charachters - ExportScript.Tools.WriteToLog("2024: "..string.format("%s", lPCN_sub_L_T)) - ExportScript.Tools.WriteToLog("2025: "..string.format("%s", lPCN_sub_R_T)) - ExportScript.Tools.WriteToLog("2026: "..string.format("%s", lPCN_sub_L_B)) - ExportScript.Tools.WriteToLog("2027: "..string.format("%s", lPCN_sub_R_B)) - -- string with max 9 charachters - ExportScript.Tools.WriteToLog("2028: "..string.format("%s", lPCN_main_L)) - ExportScript.Tools.WriteToLog("2029: "..string.format("%s", lPCN_main_R)) - end - - lPCN_main_L = lPCN_main_L:gsub(":", "¦") - lPCN_main_R = lPCN_main_R:gsub(":", "¦") - lPCN_main_L = lPCN_main_L:sub(0, 10) - lPCN_main_R = lPCN_main_R:sub(0, 10) - lPCN_sub_L_T = lPCN_sub_L_T:sub(0, 2) - lPCN_sub_R_T = lPCN_sub_R_T:sub(0, 2) - lPCN_sub_L_B = lPCN_sub_L_B:sub(0, 2) - lPCN_sub_R_B = lPCN_sub_R_B:sub(0, 2) - - ExportScript.Tools.SendData(2024, string.format("%s", lPCN_sub_L_T)) - ExportScript.Tools.SendData(2025, string.format("%s", lPCN_sub_R_T)) - ExportScript.Tools.SendData(2026, string.format("%s", lPCN_sub_L_B)) - ExportScript.Tools.SendData(2027, string.format("%s", lPCN_sub_R_B)) - ExportScript.Tools.SendData(2028, string.format("%s", lPCN_main_L)) - ExportScript.Tools.SendData(2029, string.format("%s", lPCN_main_R)) - - -- PCN_BR (Naviagation, wahrscheinlich die Wegpunktanzeige) - local lPCNBR = list_indication(11) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('lPCNBR : '..ExportScript.Tools.dump(lPCNBR)) - end - - local to1, to2, from1, from2, lPCN_BR1, lPCN_BR2 = nil, nil, nil, nil, "", "" - to1, to2 = lPCNBR:find("PCN_BR") - if (to1 ~= nil) then - from1, from2 = lPCNBR:find("text_PCN_BR1%c") - if (from2 ~= nil) then - to1, to2 = lPCNBR:find("%c", from2+2) - if (to1 ~= nil) then - lPCN_BR1 = lPCNBR:sub(from2+1, to1-1) - end - end - - from1, from2 = lPCNBR:find("text_PCN_BR2%c", to2) - if (from2 ~= nil) then - to1, to2 = lPCNBR:find("%c", from2+2) - if (to1 ~= nil) then - lPCN_BR2 = lPCNBR:sub(from2+1, to1-1) - end - end - end - - -- string with max 2 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2030: "..string.format("%s", lPCN_BR1)) - ExportScript.Tools.WriteToLog("2031: "..string.format("%s", lPCN_BR2)) - end - ExportScript.Tools.SendData(2030, string.format("%s", lPCN_BR1)) - ExportScript.Tools.SendData(2031, string.format("%s", lPCN_BR2)) - --- Radar IFF Mode ---[[ - [601] = "%.1f", -- 1. Drum - [602] = "%.1f", -- 2. - [603] = "%.1f", -- 3. - [604] = "%.1f", -- 4. -]] - digits = {} - digits[1] = string.format("%1.0f",mainPanelDevice:get_argument_value(601) * 10) - digits[2] = string.format("%1.0f",mainPanelDevice:get_argument_value(602) * 10) - digits[3] = string.format("%1.0f",mainPanelDevice:get_argument_value(603) * 10) - digits[4] = string.format("%1.0f",mainPanelDevice:get_argument_value(604) * 10) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2032: "..string.format("%s", digits[1])) - ExportScript.Tools.WriteToLog("2033: "..string.format("%s", digits[2])) - ExportScript.Tools.WriteToLog("2034: "..string.format("%s", digits[3])) - ExportScript.Tools.WriteToLog("2035: "..string.format("%s", digits[4])) - end - - ExportScript.Tools.SendData(2032, digits[1]) - ExportScript.Tools.SendData(2033, digits[2]) - ExportScript.Tools.SendData(2034, digits[3]) - ExportScript.Tools.SendData(2035, digits[4]) - --- VOR ILS ---[[ - [611] = "%.4f", -- 1. Drum - [612] = "%.4f", -- 2. - [613] = "%.4f", -- 3. - [614] = "%.4f", -- 4. - [615] = "%.4f", -- 5. -]] - digits = {} - digits[1] = string.format("%1.0f",mainPanelDevice:get_argument_value(611) * 10) - digits[2] = string.format("%1.0f",mainPanelDevice:get_argument_value(612) * 10) - digits[3] = string.format("%1.0f",mainPanelDevice:get_argument_value(613) * 10) - digits[4] = string.format("%1.0f",mainPanelDevice:get_argument_value(614) * 10) - digits[5] = string.format("%1.0f",mainPanelDevice:get_argument_value(615) * 10) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("2036-1: "..string.format("%s", digits[1])) - ExportScript.Tools.WriteToLog("2036-2: "..string.format("%s", digits[2])) - ExportScript.Tools.WriteToLog("2036-3: "..string.format("%s", digits[3])) - ExportScript.Tools.WriteToLog("2036-4: "..string.format("%s", digits[4])) - ExportScript.Tools.WriteToLog("2036-5: "..string.format("%s", digits[5])) - end - - ExportScript.Tools.SendData(2036, digits[1]..digits[2]..digits[3].."."..digits[4]..digits[5]) - --- TACAN ---[[ - [620] = "%.1f", -- X/Y - [621] = "%.4f", -- Drum XX0 left (--;1-12;--) - [622] = "%.4f", -- Drum 00X right (0;1-9;0) -]] - local lTACAN_FREQUENCE1 = {[-0.3]=" ",[-0.2]="1",[-0.1]="2",[0.0]="3",[0.1]="4",[0.2]="5",[0.3]="6",[0.4]="7",[0.5]="8",[0.6]="9",[0.7]="10",[0.8]="11",[0.9]="12",[1.0]=" "} - digits = {} - --digits[1] = string.format("%1.0f",mainPanelDevice:get_argument_value(620) * 10) - --digits[2] = string.format("%1.0f",mainPanelDevice:get_argument_value(621) * 10) - digits[1] = (mainPanelDevice:get_argument_value(620) == 0 and "X" or "Y") - digits[2] = lTACAN_FREQUENCE1[tonumber(string.format("%0.1f",mainPanelDevice:get_argument_value(621)))] - digits[3] = string.format("%1.0f",mainPanelDevice:get_argument_value(622) * 10) - digits[3] = (digits[3] == "10" and "0" or digits[3]) - - ExportScript.Tools.SendData(2037, digits[1]..digits[2]..digits[3]) - --- U/VHF Com - ExportScript.Tools.SendData(2038, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(440) * 10), 1)) - ExportScript.Tools.SendData(2039, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(441) * 10), 1)) - ExportScript.Tools.SendData(2040, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(442) * 10), 1)) - ExportScript.Tools.SendData(2041, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(443) * 10), 1)) - local lTmpNumber = tonumber(string.format("%1.0f",mainPanelDevice:get_argument_value(444) * 100)) - if lTmpNumber == 0 then - lTmpNumber = "00" - end - ExportScript.Tools.SendData(2042, ExportScript.Tools.DisplayFormat(tostring(lTmpNumber), 2)) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('2038: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(440) * 10))) - ExportScript.Tools.WriteToLog('2039: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(441) * 10))) - ExportScript.Tools.WriteToLog('2040: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(442) * 10))) - ExportScript.Tools.WriteToLog('2041: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(443) * 10))) - ExportScript.Tools.WriteToLog('2042: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(444) * 100))) - ExportScript.Tools.WriteToLog('2042-2: '..ExportScript.Tools.dump(lTmpNumber)) - end - --- U/VHF Com Preset - --[436] = "%.4f", -- Preset display (1-20) - local lUVHF_RADIO_PRESET = {[0.00]="1",[0.10]="2",[0.15]="3",[0.20]="4",[0.25]="5",[0.30]="6",[0.35]="7",[0.40]="8",[0.45]="9",[0.50]="10",[0.55]="11",[0.60]="12",[0.65]="13",[0.70]="14",[0.75]="15",[0.80]="16",[0.85]="17",[0.90]="18",[0.95]="19",[1.00]="20"} - ExportScript.Tools.SendData(436, ExportScript.Tools.DisplayFormat(lUVHF_RADIO_PRESET[tonumber(string.format("%1.2f",mainPanelDevice:get_argument_value(436)))], 2)) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('436-1: '..ExportScript.Tools.dump(string.format("%1.2f",mainPanelDevice:get_argument_value(436)))) - ExportScript.Tools.WriteToLog('436-2: '..ExportScript.Tools.dump(lUVHF_RADIO_PRESET[tonumber(string.format("%1.2f",mainPanelDevice:get_argument_value(436)))])) - end - --- VHF Com Preset - --[190] = "%.4f", -- Drum X0 Preset (0-1-2) - --[189] = "%.4f", -- Drum 0X Preset (0-9-0) - local lVHF_RADIO_PRESET = {[0.0]="0",[0.1]="1",[0.2]="2",[0.3]="3",[0.4]="4",[0.5]="5",[0.6]="6",[0.7]="7",[0.8]="8",[0.9]="9",[1.0]="0"} - local lTmpNumber = mainPanelDevice:get_argument_value(190) - if lTmpNumber > 0.2 then - lTmpNumber = 0.2 - end - ExportScript.Tools.SendData(189, ExportScript.Tools.DisplayFormat(lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",lTmpNumber))]..lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",mainPanelDevice:get_argument_value(189)))], 2)) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('189: '..ExportScript.Tools.dump(lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",lTmpNumber))]..lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",mainPanelDevice:get_argument_value(189)))])) - end - --- Display Settings - --[224] = "%.4f", --Drum X000 - --[225] = "%.4f", --Drum 0X00 - --[226] = "%.4f", --Drum 00X0 - --[227] = "%.4f", --Drum 000X - digits = {} - digits[1] = mainPanelDevice:get_argument_value(224) * 10 - digits[2] = mainPanelDevice:get_argument_value(225) * 10 - digits[3] = mainPanelDevice:get_argument_value(226) * 10 - digits[4] = mainPanelDevice:get_argument_value(227) * 10 - digits[1] = (digits[1] > 7 and 7 or digits[1]) - digits[2] = (digits[2] > 7 and 7 or digits[2]) - digits[3] = (digits[3] > 7 and 7 or digits[3]) - digits[4] = (digits[4] > 7 and 7 or digits[4]) - ExportScript.Tools.SendData(224, string.format("%1.0f",digits[1])) - ExportScript.Tools.SendData(225, string.format("%1.0f",digits[2])) - ExportScript.Tools.SendData(226, string.format("%1.0f",digits[3])) - ExportScript.Tools.SendData(227, string.format("%1.0f",digits[4])) - - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('224: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(224) * 10))) - ExportScript.Tools.WriteToLog('225: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(225) * 10))) - ExportScript.Tools.WriteToLog('226: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(226) * 10))) - ExportScript.Tools.WriteToLog('227: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(227) * 10))) - end - - ExportScript.Tools.FlushData() -end - -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - - -- ECM_CHF - local lECM_CHF = ExportScript.Tools.getListIndicatorValue(3) - - if lECM_CHF ~= nil and lECM_CHF.text_ECM_CHF ~= nil then - -- string with max 3 charachters - ExportScript.Tools.SendDataDAC(2001, string.format("%s", lECM_CHF.text_ECM_CHF)) - else - ExportScript.Tools.SendDataDAC(2001, "-") - end - - -- ECM_FLR - local lECM_FLR = ExportScript.Tools.getListIndicatorValue(4) - - if lECM_FLR ~= nil and lECM_FLR.text_ECM_FLR ~= nil then - -- string with max 2 charachters - ExportScript.Tools.SendDataDAC(2002, string.format("%s", lECM_FLR.text_ECM_FLR)) - else - ExportScript.Tools.SendDataDAC(2002, "-") - end - - -- FUEL - local lFUEL = ExportScript.Tools.getListIndicatorValue(5) - - if lFUEL ~= nil and lFUEL.txt_fuel_g ~= nil then - -- string with max 3 charachters - ExportScript.Tools.SendDataDAC(2003, string.format("%s", lFUEL.txt_fuel_g)) - else - ExportScript.Tools.SendDataDAC(2003, "-") - end - - -- COM - local lCOM = list_indication(9) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('COM : '..ExportScript.Tools.dump(lCOM)) - end - - local to1, to2, from1, from2, lCOM1, lCOM2 = nil, nil, nil, nil, "-", "-" - to1, to2 = lCOM:find("COM") - if (to1 ~= nil) then - from1, from2 = lCOM:find("text_COM_UHF1%c") - if (from2 ~= nil) then - to1, to2 = lCOM:find("%c", from2+2) - if (to1 ~= nil) then - lCOM1 = lCOM:sub(from2+1, to1-1) - end - end - - from1, from2 = lCOM:find("text_COM_UHF2%c", to2) - if (from2 ~= nil) then - to1, to2 = lCOM:find("%c", from2+2) - if (to1 ~= nil) then - lCOM2 = lCOM:sub(from2+1, to1-1) - end - end - end - - -- string with max 7 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("lCOM1: "..string.format("%s", lCOM1)) - ExportScript.Tools.WriteToLog("lCOM2: "..string.format("%s", lCOM2)) - end - ExportScript.Tools.SendDataDAC(2020, string.format("%s", lCOM1)) - ExportScript.Tools.SendDataDAC(2021, string.format("%s", lCOM2)) - - -- PPA (vielelicht die Bomben Anzeige unten rechts) - local lPPA = list_indication(8) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('PPA : '..ExportScript.Tools.dump(lPPA)) - end - - local to1, to2, from1, from2, lPPA1, lPPA2 = nil, nil, nil, nil, "-", "-" - to1, to2 = lPPA:find("PPA") - if (to1 ~= nil) then - from1, from2 = lPPA:find("text_PPA_QTY%c") - if (from2 ~= nil) then - to1, to2 = lPPA:find("%c", from2+2) - if (to1 ~= nil) then - lPPA1 = lPPA:sub(from2+1, to1-1) - end - end - - from1, from2 = lPPA:find("text_PPA_INT%c", to2) - if (from2 ~= nil) then - to1, to2 = lPPA:find("%c", from2+2) - if (to1 ~= nil) then - lPPA2 = lPPA:sub(from2+1, to1-1) - end - end - end - - -- string with max 2 charachters - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("lPPA1: "..string.format("%s", lPPA1)) - ExportScript.Tools.WriteToLog("lPPA2: "..string.format("%s", lPPA2)) - end - ExportScript.Tools.SendDataDAC(2022, string.format("%s", lPPA1)) - ExportScript.Tools.SendDataDAC(2023, string.format("%s", lPPA2)) - - -- send data - ExportScript.Tools.FlushDataDAC(#ExportScript.Config.DAC) - - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) - - -- list_indication get tehe value of cockpit displays - local ltmp1 = 0 - for ltmp2 = 0, 20, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - end - ]] ---[[ - -- getmetatable get function name from devices - local ltmp1 = 0 - for ltmp2 = 1, 70, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) - end -]] -end - - ------------------------------ --- Custom functions -- ------------------------------ \ No newline at end of file +-- Mirage M-2000C +-- for DCS Export Scripts +-- initial version by s-d-a with additions and update by Blue Storm + Bearcat +-- __ __ _ ___ ___ ___ ___ _____ +-- | \/ (_) |__ \ / _ \ / _ \ / _ \ / ____| +-- | \ / |_ _ __ __ _ __ _ ___ ) | | | | | | | | | | | +-- | |\/| | | '__/ _` |/ _` |/ _ \ / /| | | | | | | | | | | +-- | | | | | | | (_| | (_| | __/ / /_| |_| | |_| | |_| | |____ +-- |_| |_|_|_| \__,_|\__, |\___| |____|\___/ \___/ \___/ \_____| +-- __/ | +-- |___/ + + +ExportScript.FoundDCSModule = true +ExportScript.Version.M2000C = "2.1.8" + +----------------------------- +-- Helper functions -- +----------------------------- +local function decodeSegment(segment) + local segDecode = { + ["1111101"] = "0", + ["0011000"] = "1", + ["0110111"] = "2", + ["0111110"] = "3", + ["1011010"] = "4", + ["1101110"] = "5", + ["1101111"] = "6", + ["0111000"] = "7", + ["1111111"] = "8", + ["1111110"] = "9", + ["0000000"] = " " + } + local retval = segDecode[segment] + if retval == nil then + retval = "X" -- a digit is malfunctionning + end + return retval +end + +local function decodePCNDisplay(digits, seg1, seg2, seg3, seg4, seg5, seg6, seg0, seg7) + local lPCN_DIGIT = {} + local lPCN_DECODED = "" + for i = 1, digits do + lPCN_DIGIT[i] = string.sub(seg1, i, i)..string.sub(seg2, i, i)..string.sub(seg3, i, i)..string.sub(seg4, i, i)..string.sub(seg5, i, i)..string.sub(seg6, i, i)..string.sub(seg0, i, i) + lPCN_DIGIT[i] = string.gsub(lPCN_DIGIT[i], "([a-z])", "1") + lPCN_DIGIT[i] = string.gsub(lPCN_DIGIT[i], " ", "0") + lPCN_DECODED = lPCN_DECODED..string.format("%s", decodeSegment(lPCN_DIGIT[i])) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('PCN_DIGIT['..string.format("%s", i)..']='..string.format("%s", lPCN_DIGIT[i])) + ExportScript.Tools.WriteToLog('PCN_DIGIT['..string.format("%s", i)..']='..string.format("%s", decodeSegment(lPCN_DIGIT[i]))) + end + end + + + local n = 0 + local m = 1 + for i = 1, digits do + if string.sub(seg7, i, i) ~= " " then + lPCN_DECODED = string.sub(lPCN_DECODED, 1, i - n).."."..string.sub(lPCN_DECODED, i + m, string.len(lPCN_DECODED)) + n = n - 1 + m = m + 1 + end + end + + return lPCN_DECODED +end + +local function getPCN2DigitR() + local li = list_indication(9) + local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n") + local east = " " + local west = " " + local plus = " " + local minus = " " + while true do + local name, value = m() + if not name then break end + + if name == "PCN_UR_E" then + east="E" + end + if name == "PCN_UR_W" then + west="W" + end + if name == "PCN_UR_P" then + plus="+" + end + if name == "PCN_UR_M" then + minus="-" + end + end + return string.format("%-4s", string.sub(east..west..plus..minus,1,4)) +end + +local function getPCN2DigitL() + local li = list_indication(9) + local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n") + local north = " " + local south = " " + local plus = " " + local minus = " " + while true do + local name, value = m() + if not name then break end + + if name == "PCN_UL_N" then + north="N" + end + if name == "PCN_UL_S" then + south="S" + end + if name == "PCN_UL_P" then + plus="+" + end + if name == "PCN_UL_M" then + minus="-" + end + end + return string.format("%-4s", string.sub(north..south..plus..minus,1,4)) +end + +local function getPCNValue(nameStr, id) + local li = list_indication(id) + local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n") + while true do + local name, value = m() + if not name then break end + + if name == nameStr then + value = " " .. value + return value:sub(-2) + end + end + return " " +end + +function ExportScript.M2000C_getListIndicatorValueByName(IndicatorID, NameID, Length) + local ListIindicator = list_indication(IndicatorID) + + if ListIindicator == "" then + return nil + end + + local data = "" + while data:len() < Length do data = data .. " " end + + local ListindicatorMatch = ListIindicator:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n") + while true do + local Key, Value = ListindicatorMatch() + if not Key then + break + end + if Key == NameID then + Value = data .. Value + return Value:sub(-Length) + end + end + return data +end + +-- Uses unicode characters to mask part of a streamdeck icon with text. +-- Make sure that streamdeck text is in Courier New, 9pts, centered. +function text_for_split_indicator_light(first_light, second_light) + local stringOutput = "" + + if first_light == true then + stringOutput = stringOutput .. "\n \n" + else + stringOutput = stringOutput .. "██████████\n▀▀▀▀▀▀▀▀▀▀\n" + end + if second_light == true then + stringOutput = stringOutput .. " \n \n\n" + else + stringOutput = stringOutput .. "▄▄▄▄▄▄▄▄▄▄\n██████████\n" + end + + return stringOutput +end + +----------------------------- +-- Core M-2000C -- +----------------------------- +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 + ]] + +-- LAMPS / DISPLAYS -------------------------------------- + [185] = "%.1f", --LIM, MIP, + [186] = "%.1f", --IFF, MIP, Acc + [187] = "%.1f", --LED green, ADI + [188] = "%.1f", --LED green, ADI + +-- VCM voyants (RWR) + [229] = "%.1f", --V + [230] = "%.1f", --BR + [231] = "%.1f", --DA + [232] = "%.1f", --D2M + [233] = "%.1f", --LL + +-- Autopilot Controls/Indicator Lights + [267] = "%.1f", --button P light + [268] = "%.1f", --button MIS light + [270] = "%.1f", --button AUT light + [271] = "%.1f", --button MAN light + [273] = "%.1f", --button MAG-P light + [274] = "%.1f", --button MAG-MAG light + + [280] = "%.1f", --button TOT light + [281] = "%.1f", --button PAP light + +-- Weapon panel + [236] = "%.1f", --button1 S 001 light + [238] = "%.1f", --button2 S 001 light + [240] = "%.1f", --button3 S 001 light + [242] = "%.1f", --button4 S 001 light + [244] = "%.1f", --button5 S 001 light + + [251] = "%.1f", --button1 S 002 light + [252] = "%.1f", --button1 P 002 light + [254] = "%.1f", --button2 S 002 light + [255] = "%.1f", --button2 P 002 light + [257] = "%.1f", --button3 S 002 light + [258] = "%.1f", --button3 P 002 light + [260] = "%.1f", --button4 S 002 light + [261] = "%.1f", --button4 P 002 light + [263] = "%.1f", --button5 S 002 light + [264] = "%.1f", --button5 P 002 light + + [246] = "%.1f", --button KL1 light + [247] = "%.1f", --button KL2 light + + [321] = "%.1f", --ADI ILS light + [374] = "%.1f", --Fire light 1 + [375] = "%.1f", --Fire light 2 + +-- AUTOPILOT lights + [283] = "%.1f", --P + [284] = "%.1f", --A + [286] = "%.1f", --Alt 1 + [287] = "%.1f", --blank Alt + [289] = "%.1f", --Alt 2 + [290] = "%.1f", --AFF + [292] = "%.1f", --blank1 + [293] = "%.1f", --blank2 + [295] = "%.1f", --left + [296] = "%.1f", --blank L + [297] = "%.1f", --G + [298] = "%.1f", --blank G + +-- div. lights + [373] = "%.1f", --Afterburner light + [376] = "%.1f", --starter light + [198] = "%.1f", --tranfer + +-- Master Caution / Warning Lights + [199] = "%.1f", --master-warning + [200] = "%.1f", --master-caution +-- INSTRUMENTS ------------------------------------------- + +-- Display Settings + --[224] = "%.1f", --Drum X000 + --[225] = "%.1f", --Drum 0X00 + --[226] = "%.1f", --Drum 00X0 + --[227] = "%.1f", --Drum 000X + +-- AUTOPILOT ALTITUDE SELECTOR: Adjust autopilot altitude hold value. + --[299] = "%.4f", --Alt Drum X00 + --[300] = "%.4f", --Alt Drum 0X0 + --[301] = "%.4f", --Alt Drum 00X + +-- BINGO FUEL SELECTOR: Adjust the value for the Bingo Fuel warning + [360] = "%.4f", --Drum X0 + [361] = "%.4f", --Drum 0X + +-- ASI + [303] = "%.4f", --asi needle + [304] = "%.4f", --mach wheel + +-- ALTITUDE INDICATOR: indicates barometric altitude (MSL) in feet + [305] = "%.4f", --Needle + [306] = "%.4f", --Alt Drum X00 + [307] = "%.4f", --Alt Drum 0X0 + [308] = "%.4f", --Alt Drum 00X + [310] = "%.4f", --Pressure Drum X000 + [311] = "%.4f", --Pressure Drum 0X00 + [312] = "%.4f", --Pressure Drum 00X0 + [313] = "%.4f", --Pressure Drum 000X + +-- ADI + [316] = "%.4f", --pitch + [317] = "%.4f", --bank + [318] = "%.4f", --heading + [319] = "%.1f", --off flag + [320] = "%.4f", --slip ball + [322] = "%.4f", --ILS bar course + [323] = "%.4f", --ILS bar alt + +-- VVI + [324] = "%.4f", --VVI needle + +-- ADI Standby + [327] = "%.4f", --pitch + [326] = "%.4f", --bank + [328] = "%.4f", --adjust / White Silhouette + [329] = "%.1f", --off flag + +-- AOA + [331] = "%.4f", --needle + +-- Flag black/red + [332] = "%.1f", --flag + +-- HSI + [333] = "%.4f", --HDG Indicator + [334] = "%.4f", --Needle + [335] = "%.4f", --Needle small + [336] = "%.4f", --Drum X000 + [337] = "%.4f", --Drum 0X00 + [338] = "%.4f", --Drum 00X0 + [339] = "%.4f", --Drum 000X + [340] = "%.4f", --HSI Heading Selector + [341] = "%.1f", --HSI Mode Selector Switch + [342] = "%.4f", --Compass rose + [344] = "%.1f", --HSI Flag 1 + [345] = "%.1f", --HSI Flag 2 + [346] = "%.1f", --HSI Flag CAP + --[341] = "%.1f", --HSI Mode + [343] = "%.1f", --DME Off Flag + +-- ACC indicator + [347] = "%.4f", --needle + +-- JAUG fuel + [349] = "%.4f", --Drum X00 + [350] = "%.4f", --Drum 0X0 + [351] = "%.4f", --Drum 00X + +-- DETOT fuel + [352] = "%.4f", --Drum X00 + [353] = "%.4f", --Drum 0X0 + [354] = "%.4f", --Drum 00X + [357] = "%.1f", --Intercom + +-- Fuel indicator + [358] = "%.4f", --v-needle left + [359] = "%.4f", --v-needle right + [362] = "%.1f", --light L RL + [363] = "%.1f", --light C RL + [364] = "%.1f", --light R RL + [365] = "%.1f", --light L AV + [366] = "%.1f", --light R AV + [367] = "%.1f", --light L V + [368] = "%.1f", --light R V + +-- ENGINE INSTRUMENTS: Indicates engine RPM and Temperature. + [369] = "%.4f", --N needle + [370] = "%.4f", --Tt7 needle + [371] = "%.4f", --Drum XX0 + [372] = "%.4f", --Drum 00X + +-- Center console IFF + [377] = "%.4f", -- X0 MODE + [378] = "%.4f", -- 0X + + [379] = "%.4f", -- X000 MODE 3A + [380] = "%.4f", -- 0X00 + [381] = "%.4f", -- 00X0 + [382] = "%.4f", -- 000X + + [388] = "%.1f", -- Voyant de contrôle rouge Panneau MODE-4 + [394] = "%.1f", -- voyant jaune "PANNE" + +-- Pressure + [397] = "%.4f", --Needle left + [398] = "%.4f", --Needle right + +-- Cabin climb (x 1000 ft) + [399] = "%.4f", --Needle + +-- Clock + [401] = "%.4f", --hours + [402] = "%.4f", --minutes + [403] = "%.4f", --seconds + +-- GEARPANEL + [405] = "%.1f", -- Eclairage Manette de commande train rouge + [410] = "%.1f", -- „A“ Warnlamp + [411] = "%.1f", -- „F“ Warnlamp + [412] = "%.1f", -- „DIRAV“ Warnlamp, bleu + [413] = "%.1f", -- „FREIN“ + [414] = "%.1f", -- „Cross“ + [415] = "%.1f", -- „SPAD“ + [416] = "%.1f", -- voyant rouge „BIP“ + [417] = "%.1f", -- Left Gear, lampe verte + [418] = "%.1f", -- Nose Gear + [419] = "%.1f", -- Right Gear + +-- CS indicator + [424] = "%.4f", -- 1. waagerechte Balkenanzeige + [425] = "%.4f", -- 2. + [426] = "%.4f", -- 1. senkrechte Balkenanzeige + [427] = "%.4f", -- 3. waagerechte BA + [428] = "%.4f", -- 4. + +-- Com + --[436] = "%.4f", -- Preset display (1-20) + --[440] = "%.4f", -- Drum X000 (0-9-0) COM Panel + --[441] = "%.4f", -- Drum 0X00.00 + --[442] = "%.4f", -- Drum 00X0.00 + --[443] = "%.4f", -- Drum 000X.00 + --[444] = "%.4f", -- Drum 0000.XX (00-25-50-75-00) + --[190] = "%.4f", -- Drum X0 Preset (0-1-2) + --[189] = "%.4f", -- Drum 0X Preset (0-9-0) + [675] = "%.1f", -- TEST Button COM Panel, red + [676] = "%.1f", -- Test Button Panel over COM Panel, red + [677] = "%.1f", -- Left green lamp + +-- Compass + [906] = "%.4f", --Rose + +-- Oxygen + [518] = "%.4f", --Needle + [519] = "%.1f", --Oxy flow lamp (blue) + + +-- Left consule Lamps + [490] = "%.1f", -- „VAL” + [492] = "%.1f", -- „A“ voyant Panneau + [494] = "%.1f", -- „DEC“ Voyant + [496] = "%.1f", -- „VISU“ + [505] = "%.1f", -- „PSIC“ + [510] = "%.1f", -- „ELEC“ + [511] = "%.1f", -- „HYD“ + [512] = "%.1f", -- Red + [513] = "%.1f", -- GREEN + + +-- TRIM + [508] = "%.1f", -- Trim mode + [509] = "%.1f", -- Trim direction + +-- LOX + --[518] = "%.4f", -- needle + --[519] = "%.4f", -- LOX flow blinker + +-- WARNING PANEL + [525] = "%.1f", -- BATT + [526] = "%.1f", -- TR + [527] = "%.1f", -- ALT 1 + [528] = "%.1f", -- ALT2 + [529] = "%.1f", -- HUILLE + [530] = "%.1f", -- T7 + [531] = "%.1f", -- CALC C + [532] = "%.1f", -- SOURIS + [533] = "%.1f", -- PELLE + [534] = "%.1f", -- B.P + [535] = "%.1f", -- BP.G + [536] = "%.1f", -- BP.D + [537] = "%.1f", -- TRANSF + [538] = "%.1f", -- NIVEAU + [539] = "%.1f", -- HYD 1 + [540] = "%.1f", -- HYD 2 + [541] = "%.1f", -- HYD 3 + [542] = "%.1f", -- EP + [543] = "%.1f", -- BINGO + [544] = "%.1f", -- P.CAB + [545] = "%.1f", -- TEMP + [546] = "%.1f", -- REG O2 + [547] = "%.1f", -- 5nm O2 + [548] = "%.1f", -- O2 HA + [549] = "%.1f", -- ANEMO + [550] = "%.1f", -- CC + [551] = "%.1f", -- DSV + [552] = "%.1f", -- CONDIT + [553] = "%.1f", -- CONF + [554] = "%.1f", -- PA + [555] = "%.1f", -- MAN + [556] = "%.1f", -- DOM + [557] = "%.1f", -- BECS + [558] = "%.1f", -- U.S.EL + [559] = "%.1f", -- ZEICHEN + [560] = "%.1f", -- GAIN + [561] = "%.1f", -- RPM + [562] = "%.1f", -- DECOL + [563] = "%.1f", -- PARK. + +-- Lamps Right Console + [564] = "%.1f", -- “PRET” Indicateur Vert + [565] = "%.1f", -- „ALN“ + [566] = "%.1f", -- „MIP“ + [567] = "%.1f", -- „N.DEG“ + [568] = "%.1f", -- „SEC“ + [569] = "%.1f", -- „UNI“ + [669] = "%.1f", -- „M01” + [670] = "%.1f", -- „M02“ + [671] = "%.1f", -- „M03“ + + [571] = "%.1f", -- “PREP” WL, jaune + [573] = "%.1f", -- “DEST” WL, jaune + [577] = "%.1f", -- “BAD” WL jaune/vert + [579] = "%.1f", -- “REC” + [581] = "%.1f", -- “VAL” + [583] = "%.1f", -- “MRC” + [595] = "%.1f", -- “EFF” bouton lampe rond jaune + [597] = "%.1f", -- “INS” bouton lampe rond jaune + [668] = "%.1f", -- “ENC” WL jaune/vert + +-- VIERER ANZEIGE + [601] = "%.4f", -- 1. Drum + [602] = "%.4f", -- 2. + [603] = "%.4f", -- 3. + [604] = "%.4f", -- 4. + +-- VOR ILS + [611] = "%.4f", -- 1. Drum + [612] = "%.4f", -- 2. + [613] = "%.4f", -- 3. + [614] = "%.4f", -- 4. + [615] = "%.4f", -- 5. + +-- TACAN + [620] = "%.1f", -- X/Y + [621] = "%.4f", -- Drum XX0 left (--;1-12;--) + [622] = "%.4f", -- Drum 00X right (0;1-9;0) + + + [632] = "%.1f", -- Bouton avec voyant "C" + [634] = "%.1f", -- Bouton avec voyant "F" + +-- Panel lights + [720] = "%.4f", -- Flash MIP, rouge + [721] = "%.4f", -- Rétroéclairage MIP, rouge + [722] = "%.4f", -- Flash MIP, blanc + [723] = "%.4f", -- Rétroéclairage des panneaux latéraux gauche et droit, rouge + [724] = "%.4f", -- Eclairage des panneaux latéraux, rouge (gauche, droite) + [726] = "%.4f", -- variateur de lampe d'avertissement + [727] = "%.4f", -- variateur de lampe d'avertissement (panneaux latéraux) + +} + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + +-- Fuel + [193] = "%.1f", --Refuel Transfer Switch + +-- Landing Gear + [404] = "%.1f", --Landing Gear Lever + +-- HUD/VTB + [201] = "%.1f", --HUD Power Switch + [203] = "%.1f", --HUD Decluter Switch + [204] = "%.1f", --HUD Altimeter Selector Switch + [205] = "%.1f", --Radar Altimeter Power Switch + [206] = "%.1f", --Auxiliary Gunsight + [207] = "%.1f", --Auxiliary Gunsight Deflection + [208] = "%.1f", --Gun AG Reticle Selector + [209] = "%.1f", --Gun Target Wingspan Selector + [210] = "%.1f", --HUD Clear Switch + [192] = "%.4f", --Radar Altimeter Minimum Altitude Selector + [213] = "%.1f", --Radar Interception Switch + [214] = "%.1f", --Radar N Parameter Switch + [215] = "%.1f", --Radar P Parameter Switch + [216] = "%.1f", --Radar B Parameter Switch + [217] = "%.1f", --Radar C Parameter Switch + [218] = "%.1f", --Radar Z Parameter Switch + [219] = "%.1f", --Radar M Parameter Switch + [220] = "%.1f", --Radar T Parameter Switch + [221] = "%.1f", --VTB Power Switch + [222] = "%.1f", --VTB Switch + [223] = "%.1f", --VTB Switch + +-- PCA/PPA +++++++++++ HJP HBook Side 129 + [463] = "%.1f", --Gun Arm/Safe Switch + [234] = "%.1f", --Master Arm Switch + [248] = "%.1f", --Jett Switch Cover + [249] = "%.1f", --Selective Jettison Switch + [235] = "%.1f", --PCA Button 1 + [237] = "%.1f", --PCA Button 2 + [239] = "%.1f", --PCA Button 3 + [241] = "%.1f", --PCA Button 4 + [243] = "%.1f", --PCA Button 5 + [245] = "%.1f", --Gun Mode Selector + [250] = "%.1f", --Weapons Selector Button 1 + [253] = "%.1f", --Weapons Selector Button 2 + [256] = "%.1f", --Weapons Selector Button 3 + [259] = "%.1f", --Weapons Selector Button 4 + [262] = "%.1f", --Weapons Selector Button 5 + [266] = "%.1f", --S530 Standby + [269] = "%.1f", --AUTO/MAN Button + [272] = "%.1f", --MAGIC Standby + [279] = "%.1f", --Cannon Fire rate/Rockets Simul Launch + [265] = "%.1f", --Missile Selector Switch + [275] = "%.1f", --PPA Test Switch + [276] = "%.1f", --Bomb Fuze Selector Switch + [277] = "%.1f", --Bomb Release Quantity Selector Switch + [278] = "%.1f", --Bomb Release Interval Selector Switch + [409] = "%.1f", --Emergency Jettison + +--AFCS + [282] = "%.1f", --Autopilot Master + [285] = "%.1f", --Autopilot - Altitude Hold + [288] = "%.1f", --Autopilot - Selected Altitude Hold + [294] = "%.1f", --Autopilot - Approach Hold + [302] = "%.1f", --Autopilot - Lights Test + [299] = "%.1f", --Autopilot - Altitude Selector 10K + [300] = "%.1f", --Autopilot - Altitude Selector 1K + [301] = "%.1f", --Autopilot - Altitude Selector 1C + [514] = "%.1f", --Autopilot Test Cover + [515] = "%.1f", --Autopilot Test Switch + [516] = "%.1f", --FBW Test Cover + [517] = "%.1f", --FBW Test Switch + +--FBW + [330] = "%.1f", --FBW Spin Switch + [420] = "%.1f", --FBW Disconnect Cover + [421] = "%.1f", --FBW Disconnect Switch + [422] = "%.1f", --FBW G Limiter Switch + [460] = "%.1f", --Intake slats Operation Switch + [461] = "%.1f", --Intake cones Operation Switch + +-- PELLES, SOURIS AND BECS + [462] = "%.1f", --Slats Operation Switch + [395] = "%.1f", --Hydraulic System Selector + [396] = "%.1f", --Pedal Adjust Lever + +-- RADAR + [481] = "%.1f", --Radar Illumination Switch + [482] = "%.1f", --Radar Test Switch + [483] = "%.1f", --Radar Rearm Switch + [484] = "%.1f", --Radar Doppler Reject Selector + [486] = "%.1f", --Radar Power Switch + [488] = "%.4f", --Radar Gain Dial + [491] = "%.1f", --A/G Radar A Mode + [493] = "%.1f", --A/G Radar DEC Mode + [495] = "%.1f", --A/G Radar VISU Mode + [499] = "%.1f", --Radar Grid Selector + [500] = "%.1f", --Target Memory Time Selector + [502] = "%.1f", --Radar Scan Lines Selector + [503] = "%.1f", --Radar Range Selector + [504] = "%.1f", --AA Radar STT Selector + [506] = "%.1f", --Radar Azimuth Aperture Selector + [598] = "%.1f", --Radar IFF Mode Switch + [599] = "%.1f", --Radar IFF L/R Selector + [600] = "%.1f", --Radar IFF Power Switch + [601] = "%.1f", --Radar IFF Code-4 Selector + [602] = "%.1f", --Radar IFF Code-3 Selector + [603] = "%.1f", --Radar IFF Code-2 Selector + [604] = "%.1f", --Radar IFF Code-1 Selector + [109] = "%.1f", --Radar PRF Selector + [710] = "%.1f", --TDC Mode + +-- ELECTRICAL PANEL + [520] = "%.1f", --Main Battery Switch + [521] = "%.1f", --Electric Power Transfer Switch + [522] = "%.1f", --Alternator 1 Switch + [523] = "%.1f", --Alternator 2 Switch + [524] = "%.1f", --Lights Test Switch + [654] = "%.1f", --Alert Network (QRA) Switch + +-- PCN + [570] = "%.1f", --INS PREP Switch + [572] = "%.1f", --INS DEST Switch + [574] = "%.1f", --INS Parameter Selector + [575] = "%.4f", --Light Brightnes Control/Test + [576] = "%.1f", --Offset Waypoint/Target + [578] = "%.1f", --INS Update + [580] = "%.1f", --Validate Data Entry + [582] = "%.1f", --Mark Position + [584] = "%.1f", --INS Button 1 + [585] = "%.1f", --INS Button 2 + [586] = "%.1f", --INS Button 3 + [587] = "%.1f", --INS Button 4 + [588] = "%.1f", --INS Button 5 + [589] = "%.1f", --INS Button 6 + [590] = "%.1f", --INS Button 7 + [591] = "%.1f", --INS Button 8 + [592] = "%.1f", --INS Button 9 + [593] = "%.1f", --INS Button 0 + [594] = "%.1f", --INS Clear Button + [596] = "%.1f", --INS ENTER Button + [667] = "%.1f", --AUTO Navigation + [437] = "%.1f", --BAD button light + [438] = "%.1f", --REC button light + [439] = "%.1f", --MRQ button light + [440] = "%.1f", --VAL button light + + +-- PSM + [627] = "%.1f", --INS Mode Selector + [628] = "%.1f", --MIP Data Slot + [629] = "%.1f", --INS Operational Mode + [665] = "%.1f", --INS Auxiliary Heading/Horizon + [673] = "%.1f", --DTC Cartridge Position + [674] = "%.1f", --DTC Cartridge Presence + + +-- EW PANEL + [228] = "%.4f", --RWR Light Brightnes Control + [605] = "%.1f", --EW Mode Selector Switch + [606] = "%.1f", --BR Switch + [607] = "%.1f", --RWR Switch + [608] = "%.1f", --D2M Switch + [609] = "%.1f", --LL (Jammer) Switch + [610] = "%.1f", --Jammer Strength + +-- ECM BOX + [194] = "%.1f", --ECM Box Mode Switch + [195] = "%.1f", --ECM Box Switch + [196] = "%.1f", --ECM Box Lighs Switch + [197] = "%.1f", --ECM Box LCD Display Brightness + +-- Panel Lights + [449] = "%.1f", --Police Lights + [450] = "%.1f", --Landing Lights + [452] = "%.1f", --Refuel Lights + [453] = "%.1f", --Anti-Collision Lights + [454] = "%.1f", --Navigation Lights + [455] = "%.1f", --Formation Lights + [639] = "%.4f", --Dashboard Flood Lights + [640] = "%.4f", --Dashboard Panel Lights + [641] = "%.4f", --Console Flood Lights + [642] = "%.4f", --Console Panel Lights + [643] = "%.4f", --Casution/Advisory Lights Rheostat + [644] = "%.4f", --White Flood Lights Knob + [920] = "%.4f", --Refuel Lights Brightness Knob + +-- Engine Start Panel + [468] = "%.1f", --Engine In-Flight Start Switch + [467] = "%.1f", --Engine Shutdown Button + [645] = "%.1f", --Engine Start Switch Cover + [646] = "%.1f", --Starter Fuel Pump Switch + [647] = "%.1f", --Engine Fuel Left Boost Pump Switch + [648] = "%.1f", --Engine Fuel Right Boost Pump Switch + [649] = "%.1f", --Engine Start Switch + [650] = "%.1f", --Ventilation Selector Switch + [651] = "%.1f", --Fuel Cutoff Switch Cover + [652] = "%.1f", --Fuel Cutoff Switch + [477] = "%.1f", --Fuel Dump Switch Cover + [478] = "%.1f", --Fuel Dump Switch + [471] = "%.1f", --A/B Emergency Cutoff Switch Cover + [472] = "%.1f", --A/B Emergency Cutoff Switch + [464] = "%.1f", --Emergency Throttle Cover + [465] = "%.1f", --Emergency Throttle Handle + [473] = "%.1f", --Secondary Oil Control Cover + [474] = "%.1f", --Secondary Oil Control Switch + [475] = "%.1f", --Engine Emergency Control Cover + [476] = "%.1f", --Engine Emergency Control Switch + [470] = "%.1f", --Radar WOW Emitter Authorize Switch + + +-- Navigational Antennas + [616] = "%.1f", --VOR/ILS Frequency Change Whole + [617] = "%.1f", --VOR/ILS Power Dial + [618] = "%.2f", --VOR/ILS Frequency Change Decimal + [619] = "%.1f", --VOR/ILS Test Dial + +-- TACAN + [623] = "%.1f", --TACAN Channel Change Tens + [624] = "%.1f", --TACAN X/Y Select + [625] = "%.1f", --TACAN Channel Change Ones + [626] = "%.1f", --TACAN Mode Select + +-- Miscelaneous Right Panel + [657] = "%.1f", -- Hydraulic Emergency Pump Switch + [658] = "%.1f", -- Audio Warning Switch + [659] = "%.1f", -- Pitot Heat Cover + [660] = "%.1f", -- Pitot Heat Switch + + -- Miscelaneous Left Panel + [191] = "%.1f", --Audio Warning Reset + +-- Miscelaneous Seat + [458] = "%.1f", --Anti-Skid Cover + [459] = "%.1f", --Anti-Skid Switch + [666] = "%.1f", --Parking Brake Lever + [807] = "%.1f", --Nose Wheel Steering / IFF + +-- Télé Affichage TAF - GCI + [968] = "%.2f", --EVF Channel selector + [970] = "%.2f", --EVF Panel Test + +-- Jumelles de Vision Nocturnes (JNV - NVG) + [672] = "%.1f", --NVG lights Filter Switch + + +-- Sound Panel + [700] = "%.1f", --AMPLIS Selector + [701] = "%.1f", --VOR/ILS Volume {0.0,1.0} in 0.1 steps + [702] = "%.1f", --TACAN Volume {0.0,1.0} in 0.1 steps + [703] = "%.1f", --MAGIC Tone Volume {0.0,1.0} in 0.1 steps + [704] = "%.1f", --TB APP Volume {0.0,1.0} in 0.1 steps + [705] = "%.1f", --Marker Signal Volume {0.0,1.0} in 0.1 steps + [706] = "%.1f", --V/UHF Radio Volume {0.0,1.0} in 0.1 steps + [707] = "%.1f", --VHF Radio Volume {0.0,1.0} in 0.1 steps + +-- ALT + [309] = "%.1f", --Barometric Pressure Calibration + [314] = "%.1f", --ADI Cage Lever + [315] = "%.1f", --ADI Backlight Switch + [325] = "%.1f", --Backup ADI Cage + [328] = "%.4f", --Backup ADI Pitch Adjust Knob {-1.0,1.0} in 0.1 steps +-- Center console IFF + [383] = "%.1f", --Ident Power Switch {-1.0,0.0,1.0} + [384] = "%.1f", --Mode-1 Switch + [385] = "%.1f", --Mode-2 Switch + [386] = "%.1f", --Mode-3A Switch + [387] = "%.1f", --Mode-C Switch +-- Miscelaneous Seat + [900] = "%.1f", --Seat Adjustment Switch + [910] = "%.1f", --LOX Dilution Lever + [912] = "%.1f", --LOX Emergency Supply + [911] = "%.1f", --LOX Test Switch +-- ECS Panel + [630] = "%.1f", --ECS Main Mode Switch + [631] = "%.1f", --ECS C Button + [633] = "%.1f", --ECS F Button + [635] = "%.1f", --ECS Cond Switch + [636] = "%.1f", --ECS Air Exchange Switch + [637] = "%.1f", --ECS Temperature Select Knob {-1.0,1.0} in 0.1 steps + [638] = "%.1f", --ECS Defog Switch + + -- Radio Panel + [429] = "%.1f", --UHF Power 5W/25W Switch + [430] = "%.1f", --UHF SIL Switch + [431] = "%.1f", --UHF E-A2 Switch + [432] = "%.1f", --UHF CDE Switch + [433] = "%.3f", --UHF Mode Switch + [434] = "%.1f", --UHF TEST Switch + [435] = "%.1f", --UHF Knob + [441] = "%.1f", --U/VHF Select 10 MHz + [442] = "%.1f", --U/VHF Select 1 MHz + [443] = "%.1f", --U/VHF Select 100 KHz + [444] = "%.1f", --U/VHF Select 25 KHz + [445] = "%.1f", --U/VHF Knob + [446] = "%.1f", --U/VHF Mode Switch 1 + [447] = "%.1f", --U/VHF Power 5W/25W Switch + [448] = "%.1f", --U/VHF Manual/Preset + [950] = "%.1f", -- Mode knob + +-- Countermeasures + [991] = "%d", -- LL + [992] = "%d", -- EM + [993] = "%d", -- IR + [994] = "%d", -- EO + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + -- Master Caution/Warning. Uses unicode characters to mask relevant part of the icon if it's off. + local caution_on = mainPanelDevice:get_argument_value(199) == 1.0 + local warning_on = mainPanelDevice:get_argument_value(200) == 1.0 + ExportScript.Tools.SendData(2100, text_for_split_indicator_light(caution_on, warning_on)) + + -- Autopilot master lamp. Uses unicode characters to mask relevant part of the icon if it's off. + local AP_yellow = mainPanelDevice:get_argument_value(283) == 1.0 + local AP_green = mainPanelDevice:get_argument_value(284) == 1.0 + ExportScript.Tools.SendData(2101, text_for_split_indicator_light(AP_yellow, AP_green)) + + -- ECM Mode Switch + -- [194] = "%.1f", --ECM Box Mode Switch + local lECM_On = (mainPanelDevice:get_argument_value(194) > 0.0 and true or false) + + -- FUEL + local lFUEL = ExportScript.Tools.getListIndicatorValue(3) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lFUEL : '..ExportScript.Tools.dump(lFUEL)) + end + + if lFUEL ~= nil and lFUEL.txt_fuel_g ~= nil then + -- string with max 3 charachters + ExportScript.Tools.SendData(2003, string.format("%s", lFUEL.txt_fuel_g)) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2003: '..ExportScript.Tools.dump(lFUEL.txt_fuel_g)) + end + else + ExportScript.Tools.SendData(2003, " ") + end + + -- PCA_UR (Weappon Panel top line) + local lPCAUR = list_indication(4) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lPCAUR : '..ExportScript.Tools.dump(lPCAUR)) + end + + local to1, to2, from1, from2 = nil, nil, nil, nil + local lPCA_UR = {"", "", "", "", ""} + to1, to2 = lPCAUR:find("PCA_UR") + local lIndex, lIndex2 + if (to1 ~= nil) then + for lIndex = 1, 5, 1 do + lIndex2 = lIndex - 1 + from1, from2 = lPCAUR:find("PCA_LCD_1_"..lIndex2.."%c") + if (from2 ~= nil) then + to1, to2 = lPCAUR:find("%c", from2+2) + if (to1 ~= nil) then + lPCA_UR[lIndex] = lPCAUR:sub(from2+1, to1-1) + if (lPCA_UR[lIndex]:len() > 3) then + -- ExportScript.Tools.WriteToLog("cleanup UR "..string.format("%s", lPCA_UR[lIndex])) + lPCA_UR[lIndex] = "" + end + end + end + end -- for + end + + -- string with max 3 charachters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2010: "..string.format("%s", lPCA_UR[1])) + ExportScript.Tools.WriteToLog("2011: "..string.format("%s", lPCA_UR[2])) + ExportScript.Tools.WriteToLog("2012: "..string.format("%s", lPCA_UR[3])) + ExportScript.Tools.WriteToLog("2013: "..string.format("%s", lPCA_UR[4])) + ExportScript.Tools.WriteToLog("2014: "..string.format("%s", lPCA_UR[5])) + end + ExportScript.Tools.SendData(2010, string.format("%s", lPCA_UR[1])) + ExportScript.Tools.SendData(2011, string.format("%s", lPCA_UR[2])) + ExportScript.Tools.SendData(2012, string.format("%s", lPCA_UR[3])) + ExportScript.Tools.SendData(2013, string.format("%s", lPCA_UR[4])) + ExportScript.Tools.SendData(2014, string.format("%s", lPCA_UR[5])) + + -- PCA_BR (Weappon Panel bottom line) + local lPCABR = list_indication(5) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lPCABR : '..ExportScript.Tools.dump(lPCABR)) + end + + local to1, to2, from1, from2 = nil, nil, nil, nil + local lPCA_BR = {"", "", "", "", ""} + to1, to2 = lPCABR:find("PCA_BR") + if (to1 ~= nil) then + for lIndex = 1, 5, 1 do + lIndex2 = lIndex - 1 + from1, from2 = lPCABR:find("PCA_LCD_2_"..lIndex2.."%c") + if (from2 ~= nil) then + to1, to2 = lPCABR:find("%c", from2+2) + if (to1 ~= nil) then + lPCA_BR[lIndex] = lPCABR:sub(from2+1, to1-1) + if (lPCA_BR[lIndex]:len() > 3) then + -- ExportScript.Tools.WriteToLog("cleanup BR "..string.format("%s", lPCA_BR[lIndex])) + lPCA_BR[lIndex] = "" + end + end + end + end-- for + end + + -- string with max 3 charachters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2015: "..string.format("%s", lPCA_BR[1])) + ExportScript.Tools.WriteToLog("2016: "..string.format("%s", lPCA_BR[2])) + ExportScript.Tools.WriteToLog("2017: "..string.format("%s", lPCA_BR[3])) + ExportScript.Tools.WriteToLog("2018: "..string.format("%s", lPCA_BR[4])) + ExportScript.Tools.WriteToLog("2019: "..string.format("%s", lPCA_BR[5])) + end + ExportScript.Tools.SendData(2015, string.format("%s", lPCA_BR[1])) + ExportScript.Tools.SendData(2016, string.format("%s", lPCA_BR[2])) + ExportScript.Tools.SendData(2017, string.format("%s", lPCA_BR[3])) + ExportScript.Tools.SendData(2018, string.format("%s", lPCA_BR[4])) + ExportScript.Tools.SendData(2019, string.format("%s", lPCA_BR[5])) + + -- COM + local lCOM = list_indication(7) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lCOM : '..ExportScript.Tools.dump(lCOM)) + end + + local to1, to2, from1, from2, lCOM1, lCOM2 = nil, nil, nil, nil, "", "" + to1, to2 = lCOM:find("COM") + if (to1 ~= nil) then + from1, from2 = lCOM:find("text_COM_UHF1%c") + if (from2 ~= nil) then + to1, to2 = lCOM:find("%c", from2+2) + if (to1 ~= nil) then + lCOM1 = lCOM:sub(from2+1, to1-1) + end + end + + from1, from2 = lCOM:find("text_COM_UHF2%c", to2) + if (from2 ~= nil) then + to1, to2 = lCOM:find("%c", from2+2) + if (to1 ~= nil) then + lCOM2 = lCOM:sub(from2+1, to1-1) + end + end + end + + -- string with max 7 charachters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2020: "..string.format("%s", lCOM1)) + ExportScript.Tools.WriteToLog("2021: "..string.format("%s", lCOM2)) + end + ExportScript.Tools.SendData(2020, string.format("%s", lCOM1)) + ExportScript.Tools.SendData(2021, string.format("%s", lCOM2)) + + -- extraction of the text showed on the VHF radio panel +local lVHF =ExportScript.Tools.getListIndicatorValue(8) +if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lVHF : '..ExportScript.Tools.dump(lVHF)) +end + + if lVHF ~= nil and lVHF.text_COM_VHF ~= nil then + -- string with max 3 charachters + ExportScript.Tools.SendData(2043, string.format("%s", lVHF.text_COM_VHF)) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2043: '..ExportScript.Tools.dump(lVHF.text_COM_VHF)) + end + else + ExportScript.Tools.SendData(2043, " ") + end + + -- PPA Bomb Display + local lPPA = list_indication(6) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lPPA : '..ExportScript.Tools.dump(lPPA)) + end + + local to1, to2, from1, from2, lPPA1, lPPA2 = nil, nil, nil, nil, "", "" + to1, to2 = lPPA:find("PPA") + if (to1 ~= nil) then + from1, from2 = lPPA:find("text_PPA_QTY%c") + if (from2 ~= nil) then + to1, to2 = lPPA:find("%c", from2+2) + if (to1 ~= nil) then + lPPA1 = lPPA:sub(from2+1, to1-1) + end + end + + from1, from2 = lPPA:find("text_PPA_INT%c", to2) + if (from2 ~= nil) then + to1, to2 = lPPA:find("%c", from2+2) + if (to1 ~= nil) then + lPPA2 = lPPA:sub(from2+1, to1-1) + end + end + end + + -- string with max 2 charachters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2022: "..string.format("%s", lPPA1)) + ExportScript.Tools.WriteToLog("2023: "..string.format("%s", lPPA2)) + end + ExportScript.Tools.SendData(2022, string.format("%s", lPPA1)) + ExportScript.Tools.SendData(2023, string.format("%s", lPPA2)) + + + -- PCN Poste de Commande Navigation // New code for 2.9 -> data exported by segment and no longer by digit + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('lPCNUR : '..ExportScript.Tools.dump(list_indication(9))) + ExportScript.Tools.WriteToLog('lPCNBR : '..ExportScript.Tools.dump(list_indication(10))) + end + local lPCNUR = ExportScript.Tools.getListIndicatorValue(9) + + local lPCN_UL_SEG0 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG0", 5) + local lPCN_UL_SEG1 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG1", 5) + local lPCN_UL_SEG2 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG2", 5) + local lPCN_UL_SEG3 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG3", 5) + local lPCN_UL_SEG4 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG4", 5) + local lPCN_UL_SEG5 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG5", 5) + local lPCN_UL_SEG6 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG6", 5) + local lPCN_UL_SEG7 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UL_SEG7", 5) + local lPCN_UL_DECODED = decodePCNDisplay(5, lPCN_UL_SEG1, lPCN_UL_SEG2, lPCN_UL_SEG3, lPCN_UL_SEG4, lPCN_UL_SEG5, lPCN_UL_SEG6, lPCN_UL_SEG0, lPCN_UL_SEG7) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("lPCN_UL_DECODED: "..lPCN_UL_DECODED) + end + + local lPCN_UR_SEG0 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG0", 6) + local lPCN_UR_SEG1 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG1", 6) + local lPCN_UR_SEG2 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG2", 6) + local lPCN_UR_SEG3 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG3", 6) + local lPCN_UR_SEG4 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG4", 6) + local lPCN_UR_SEG5 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG5", 6) + local lPCN_UR_SEG6 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG6", 6) + local lPCN_UR_SEG7 = ExportScript.M2000C_getListIndicatorValueByName(9, "PCN_UR_SEG7", 6) + local lPCN_UR_DECODED = decodePCNDisplay(6, lPCN_UR_SEG1, lPCN_UR_SEG2, lPCN_UR_SEG3, lPCN_UR_SEG4, lPCN_UR_SEG5, lPCN_UR_SEG6, lPCN_UR_SEG0, lPCN_UR_SEG7) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("lPCN_UR_DECODED: "..lPCN_UR_DECODED) + end + + local lPCN_BL_SEG0 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG0", 2) + local lPCN_BL_SEG1 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG1", 2) + local lPCN_BL_SEG2 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG2", 2) + local lPCN_BL_SEG3 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG3", 2) + local lPCN_BL_SEG4 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG4", 2) + local lPCN_BL_SEG5 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG5", 2) + local lPCN_BL_SEG6 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BL_SEG6", 2) + local lPCN_BL_DECODED = decodePCNDisplay(2, lPCN_BL_SEG1, lPCN_BL_SEG2, lPCN_BL_SEG3, lPCN_BL_SEG4, lPCN_BL_SEG5, lPCN_BL_SEG6, lPCN_BL_SEG0, " ") + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("lPCN_BL_DECODED: "..lPCN_BL_DECODED) + end + + local lPCN_BR_SEG0 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG0", 2) + local lPCN_BR_SEG1 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG1", 2) + local lPCN_BR_SEG2 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG2", 2) + local lPCN_BR_SEG3 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG3", 2) + local lPCN_BR_SEG4 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG4", 2) + local lPCN_BR_SEG5 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG5", 2) + local lPCN_BR_SEG6 = ExportScript.M2000C_getListIndicatorValueByName(10, "PCN_BR_SEG6", 2) + local lPCN_BR_DECODED = decodePCNDisplay(2, lPCN_BR_SEG1, lPCN_BR_SEG2, lPCN_BR_SEG3, lPCN_BR_SEG4, lPCN_BR_SEG5, lPCN_BR_SEG6, lPCN_BR_SEG0, " ") + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("lPCN_BR_DECODED: "..lPCN_BR_DECODED) + end + + ExportScript.Tools.SendData(9031, getPCN2DigitL()) -- up/left 2-digit vertical + ExportScript.Tools.SendData(9033, getPCN2DigitR()) -- up/middle 2-digit vertical + + local lPCN_sub_L_T, lPCN_sub_R_T, lPCN_sub_L_B, lPCN_sub_R_B = "", "", "", "" + -- map N and S + if lPCNUR.PCN_UL_N ~= nil then + lPCN_sub_L_T = lPCNUR.PCN_UL_N + end + if lPCNUR.PCN_UL_S ~= nil then + lPCN_sub_L_B = lPCNUR.PCN_UL_S + end + -- map E and W + if lPCNUR.PCN_UR_E ~= nil then + lPCN_sub_R_T = lPCNUR.PCN_UR_E + end + if lPCNUR.PCN_UR_W ~= nil then + lPCN_sub_R_B = lPCNUR.PCN_UR_W + end + -- retrieve + and - + if lPCNUR.PCN_UL_P ~= nil then + lPCN_sub_L_T = lPCNUR.PCN_UL_P + end + if lPCNUR.PCN_UL_M ~= nil then + lPCN_sub_L_B = lPCNUR.PCN_UL_M + end + if lPCNUR.PCN_UR_P ~= nil then + lPCN_sub_R_T = lPCNUR.PCN_UR_P + end + if lPCNUR.PCN_UR_M ~= nil then + lPCN_sub_R_B = lPCNUR.PCN_UR_M + end + + + if ExportScript.Config.Debug then + -- string with max 1 characters + ExportScript.Tools.WriteToLog("2024: "..string.format("%s", lPCN_sub_L_T)) + ExportScript.Tools.WriteToLog("2025: "..string.format("%s", lPCN_sub_R_T)) + ExportScript.Tools.WriteToLog("2026: "..string.format("%s", lPCN_sub_L_B)) + ExportScript.Tools.WriteToLog("2027: "..string.format("%s", lPCN_sub_R_B)) + -- export string on two Lines + ExportScript.Tools.WriteToLog("2054: "..string.format("%s", lPCN_sub_L_T .. "\n" .. lPCN_sub_L_B)) + ExportScript.Tools.WriteToLog("2055: "..string.format("%s", lPCN_sub_R_T .. "\n" .. lPCN_sub_R_B)) + -- export clean strings with points + ExportScript.Tools.WriteToLog("2056: "..string.format("%s", lPCN_UL_DECODED)) + ExportScript.Tools.WriteToLog("2057: "..string.format("%s", lPCN_UR_DECODED)) + end + + lPCN_sub_L_T = lPCN_sub_L_T:sub(0, 2) + lPCN_sub_R_T = lPCN_sub_R_T:sub(0, 2) + lPCN_sub_L_B = lPCN_sub_L_B:sub(0, 2) + lPCN_sub_R_B = lPCN_sub_R_B:sub(0, 2) + + ExportScript.Tools.SendData(2024, string.format("%s", lPCN_sub_L_T)) + ExportScript.Tools.SendData(2025, string.format("%s", lPCN_sub_R_T)) + ExportScript.Tools.SendData(2026, string.format("%s", lPCN_sub_L_B)) + ExportScript.Tools.SendData(2027, string.format("%s", lPCN_sub_R_B)) + + -- code below enables the recovery of the two elements on top of each other + ExportScript.Tools.SendData(2054, string.format("%s", lPCN_sub_L_T .. "\n" .. lPCN_sub_L_B)) + ExportScript.Tools.SendData(2055, string.format("%s", lPCN_sub_R_T .. "\n" .. lPCN_sub_R_B)) + ExportScript.Tools.SendData(2056, string.format("%s", lPCN_UL_DECODED)) + ExportScript.Tools.SendData(2057, string.format("%s", lPCN_UR_DECODED)) + + + + -- string with max 2 charachters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2030: "..string.format("%s", lPCN_BL_DECODED)) + ExportScript.Tools.WriteToLog("2031: "..string.format("%s", lPCN_BR_DECODED)) + end + ExportScript.Tools.SendData(2030, string.format("%s", lPCN_BL_DECODED)) + ExportScript.Tools.SendData(2031, string.format("%s", lPCN_BR_DECODED)) + + + +-- Radar IFF Mode +--[[ + [601] = "%.1f", -- 1. Drum + [602] = "%.1f", -- 2. + [603] = "%.1f", -- 3. + [604] = "%.1f", -- 4. +]] + local digits = {} + digits[1] = string.format("%1.0f",mainPanelDevice:get_argument_value(601) * 10) + digits[2] = string.format("%1.0f",mainPanelDevice:get_argument_value(602) * 10) + digits[3] = string.format("%1.0f",mainPanelDevice:get_argument_value(603) * 10) + digits[4] = string.format("%1.0f",mainPanelDevice:get_argument_value(604) * 10) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2032: "..string.format("%s", digits[1])) + ExportScript.Tools.WriteToLog("2033: "..string.format("%s", digits[2])) + ExportScript.Tools.WriteToLog("2034: "..string.format("%s", digits[3])) + ExportScript.Tools.WriteToLog("2035: "..string.format("%s", digits[4])) + end + + ExportScript.Tools.SendData(2032, digits[1]) + ExportScript.Tools.SendData(2033, digits[2]) + ExportScript.Tools.SendData(2034, digits[3]) + ExportScript.Tools.SendData(2035, digits[4]) + +-- EVF + ExportScript.Tools.SendData(2068, ExportScript.M2000C_getListIndicatorValueByName(11, "evf-digits", 2)) + +-- VOR ILS + digits = {} + digits[1] = string.format("%1.0f",mainPanelDevice:get_argument_value(611) * 10) + digits[2] = string.format("%1.0f",mainPanelDevice:get_argument_value(612) * 10) + digits[3] = string.format("%1.0f",mainPanelDevice:get_argument_value(613) * 10) + digits[4] = string.format("%1.0f",mainPanelDevice:get_argument_value(614) * 10) + digits[5] = string.format("%1.0f",mainPanelDevice:get_argument_value(615) * 10) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("2036-1: "..string.format("%s", digits[1])) + ExportScript.Tools.WriteToLog("2036-2: "..string.format("%s", digits[2])) + ExportScript.Tools.WriteToLog("2036-3: "..string.format("%s", digits[3])) + ExportScript.Tools.WriteToLog("2036-4: "..string.format("%s", digits[4])) + ExportScript.Tools.WriteToLog("2036-5: "..string.format("%s", digits[5])) + end + + ExportScript.Tools.SendData(2036, digits[1]..digits[2]..digits[3].."."..digits[4]..digits[5]) + +-- TACAN +--[[ + [620] = "%.1f", -- X/Y + [621] = "%.4f", -- Drum XX0 left (--;1-12;--) + [622] = "%.4f", -- Drum 00X right (0;1-9;0) +]] + local lTACAN_FREQUENCE1 = {[-0.3]=" ",[-0.2]="1",[-0.1]="2",[0.0]="3",[0.1]="4",[0.2]="5",[0.3]="6",[0.4]="7",[0.5]="8",[0.6]="9",[0.7]="10",[0.8]="11",[0.9]="12",[1.0]=" "} + digits = {} + --digits[1] = string.format("%1.0f",mainPanelDevice:get_argument_value(620) * 10) + --digits[2] = string.format("%1.0f",mainPanelDevice:get_argument_value(621) * 10) + digits[1] = (mainPanelDevice:get_argument_value(620) == 0 and "X" or "Y") + digits[2] = lTACAN_FREQUENCE1[tonumber(string.format("%0.1f",mainPanelDevice:get_argument_value(621)))] + digits[3] = string.format("%1.0f",mainPanelDevice:get_argument_value(622) * 10) + digits[3] = (digits[3] == "10" and "0" or digits[3]) + + ExportScript.Tools.SendData(2037, digits[1]..digits[2]..digits[3]) + +-- U/VHF Com + ExportScript.Tools.SendData(2038, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(440) * 10), 1)) + ExportScript.Tools.SendData(2039, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(441) * 10), 1)) + ExportScript.Tools.SendData(2040, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(442) * 10), 1)) + ExportScript.Tools.SendData(2041, ExportScript.Tools.DisplayFormat(string.format("%1.0f",mainPanelDevice:get_argument_value(443) * 10), 1)) + local lTmpNumber = tonumber(string.format("%1.0f",mainPanelDevice:get_argument_value(444) * 100)) + local lRetVal = "" + if lTmpNumber == 0 then + lRetVal = "00" + else + lRetVal = ExportScript.Tools.DisplayFormat(tostring(lTmpNumber), 2) + end + ExportScript.Tools.SendData(2042, lRetVal) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2038: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(440) * 10))) + ExportScript.Tools.WriteToLog('2039: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(441) * 10))) + ExportScript.Tools.WriteToLog('2040: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(442) * 10))) + ExportScript.Tools.WriteToLog('2041: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(443) * 10))) + ExportScript.Tools.WriteToLog('2042: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(444) * 100))) + ExportScript.Tools.WriteToLog('2042-2: '..ExportScript.Tools.dump(lTmpNumber)) + end + +-- U/VHF Com Preset + --[436] = "%.4f", -- Preset display (1-20) + local lUVHF_RADIO_PRESET = {[0.00]="1",[0.10]="2",[0.15]="3",[0.20]="4",[0.25]="5",[0.30]="6",[0.35]="7",[0.40]="8",[0.45]="9",[0.50]="10",[0.55]="11",[0.60]="12",[0.65]="13",[0.70]="14",[0.75]="15",[0.80]="16",[0.85]="17",[0.90]="18",[0.95]="19",[1.00]="20"} + ExportScript.Tools.SendData(436, ExportScript.Tools.DisplayFormat(lUVHF_RADIO_PRESET[tonumber(string.format("%1.2f",mainPanelDevice:get_argument_value(436)))], 2)) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('436-1: '..ExportScript.Tools.dump(string.format("%1.2f",mainPanelDevice:get_argument_value(436)))) + ExportScript.Tools.WriteToLog('436-2: '..ExportScript.Tools.dump(lUVHF_RADIO_PRESET[tonumber(string.format("%1.2f",mainPanelDevice:get_argument_value(436)))])) + end + +-- VHF Com Preset + --[190] = "%.4f", -- Drum X0 Preset (0-1-2) + --[189] = "%.4f", -- Drum 0X Preset (0-9-0) + local lVHF_RADIO_PRESET = {[0.0]="0",[0.1]="1",[0.2]="2",[0.3]="3",[0.4]="4",[0.5]="5",[0.6]="6",[0.7]="7",[0.8]="8",[0.9]="9",[1.0]="0"} + local lTmpNumber = mainPanelDevice:get_argument_value(190) + if lTmpNumber > 0.2 then + lTmpNumber = 0.2 + end + ExportScript.Tools.SendData(189, ExportScript.Tools.DisplayFormat(lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",lTmpNumber))]..lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",mainPanelDevice:get_argument_value(189)))], 2)) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('189: '..ExportScript.Tools.dump(lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",lTmpNumber))]..lVHF_RADIO_PRESET[tonumber(string.format("%1.1f",mainPanelDevice:get_argument_value(189)))])) + end + +-- Display Settings + --[224] = "%.4f", --Drum X000 + --[225] = "%.4f", --Drum 0X00 + --[226] = "%.4f", --Drum 00X0 + --[227] = "%.4f", --Drum 000X + digits = {} + digits[1] = mainPanelDevice:get_argument_value(224) * 10 + digits[2] = mainPanelDevice:get_argument_value(225) * 10 + digits[3] = mainPanelDevice:get_argument_value(226) * 10 + digits[4] = mainPanelDevice:get_argument_value(227) * 10 + digits[1] = (digits[1] > 7 and 7 or digits[1]) + digits[2] = (digits[2] > 7 and 7 or digits[2]) + digits[3] = (digits[3] > 7 and 7 or digits[3]) + digits[4] = (digits[4] > 7 and 7 or digits[4]) + ExportScript.Tools.SendData(224, string.format("%1.0f",digits[1])) + ExportScript.Tools.SendData(225, string.format("%1.0f",digits[2])) + ExportScript.Tools.SendData(226, string.format("%1.0f",digits[3])) + ExportScript.Tools.SendData(227, string.format("%1.0f",digits[4])) + + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('224: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(224) * 10))) + ExportScript.Tools.WriteToLog('225: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(225) * 10))) + ExportScript.Tools.WriteToLog('226: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(226) * 10))) + ExportScript.Tools.WriteToLog('227: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(227) * 10))) + end + + -- engine % (cleaned up from float stored in DCS ID 369) + local lEngine_percent = "" + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2058: '..ExportScript.Tools.dump(string.format("%1.0f",mainPanelDevice:get_argument_value(369) * 100))) + end + lEngine_percent = string.format("%1.0f", mainPanelDevice:get_argument_value(369) * 100) .. "%" + ExportScript.Tools.SendData(2058, lEngine_percent) + + -- HSI indicator cleaned up parameters + digits = {} + digits[1] = mainPanelDevice:get_argument_value(336) * 10 + digits[2] = mainPanelDevice:get_argument_value(337) * 10 + digits[3] = mainPanelDevice:get_argument_value(338) * 10 + digits[4] = mainPanelDevice:get_argument_value(339) * 10 + for i = 1, 4, 1 + do + if math.floor(digits[i] + 0.5) >= 10 then + digits[i] = 0 + else + digits[i] = math.floor(digits[i] + 0.5) + end + end + local lHSI_X000 = "" + local lHSI_0X00 = "" + local lHSI_00X0 = "" + local lHSI_000X = "" + lHSI_X000 = string.format("%1d", digits[1]) + if string.len(lHSI_X000) > 1 then + lHSI_X000 = string.sub(lHSI_X000, -1) + end + lHSI_0X00 = string.format("%1d", digits[2]) + if string.len(lHSI_0X00) > 1 then + lHSI_0X00 = string.sub(lHSI_0X00, -1) + end + lHSI_00X0 = string.format("%1d", digits[3]) + if string.len(lHSI_00X0) > 1 then + lHSI_00X0 = string.sub(lHSI_00X0, -1) + end + if string.len(string.format("%1d", digits[4])) > 2 then + lHSI_000X = '.' .. string.sub(string.format("%1d", digits[4]), -1) + else + lHSI_000X = '.' .. string.format("%1d", digits[4]) + end + ExportScript.Tools.SendData(2336, lHSI_X000) + ExportScript.Tools.SendData(2337, lHSI_0X00) + ExportScript.Tools.SendData(2338, lHSI_00X0) + ExportScript.Tools.SendData(2339, lHSI_000X) + ExportScript.Tools.SendData(3339, lHSI_X000..lHSI_0X00..lHSI_00X0..lHSI_000X) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2336: '..ExportScript.Tools.dump(string.format("%1.0f", mainPanelDevice:get_argument_value(336) * 10))) + ExportScript.Tools.WriteToLog('2337: '..ExportScript.Tools.dump(string.format("%1.0f", mainPanelDevice:get_argument_value(337) * 10))) + ExportScript.Tools.WriteToLog('2338: '..ExportScript.Tools.dump(string.format("%1.0f", mainPanelDevice:get_argument_value(338) * 10))) + ExportScript.Tools.WriteToLog('2339: '..ExportScript.Tools.dump(string.format("%1.0f", mainPanelDevice:get_argument_value(339) * 10))) + end + + local lHSI_Heading = 0 + local lHSI_Needle = 0 + lHSI_Heading = mainPanelDevice:get_argument_value(318) * 360 + lHSI_Needle = (mainPanelDevice:get_argument_value(334) * 360) + lHSI_Heading + if lHSI_Needle > 360 then + lHSI_Needle = lHSI_Needle - 360 + end + ExportScript.Tools.SendData(2318, string.format("%03d", lHSI_Heading)) + ExportScript.Tools.SendData(2334, string.format("%03d", lHSI_Needle)) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2318: '..ExportScript.Tools.dump(string.format("%03d", lHSI_Heading))) + ExportScript.Tools.WriteToLog('2334: '..ExportScript.Tools.dump(string.format("%03d", lHSI_Heading))) + end + + -- Altitude indicator cleaned up parameters + digits = {} + digits[1] = math.floor(mainPanelDevice:get_argument_value(306) * 10 + 0.5) + digits[2] = math.floor(mainPanelDevice:get_argument_value(307) * 10 + 0.5) + local lAngel = "" + local lFeet = "" + local lAltitude = "" + lAngel = string.format("%01d", digits[1]) .. string.format("%01d", digits[2]) + lFeet = string.sub("000" .. string.format("%03d", mainPanelDevice:get_argument_value(305) * 1000), -3) + lAltitude = lAngel .. lFeet + ExportScript.Tools.SendData(2306, lAngel) + ExportScript.Tools.SendData(2305, lFeet) + ExportScript.Tools.SendData(2307, lAltitude) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2306: '..ExportScript.Tools.dump(lAngel)) + ExportScript.Tools.WriteToLog('2305: '..ExportScript.Tools.dump(lFeet)) + ExportScript.Tools.WriteToLog('2307: '..ExportScript.Tools.dump(lAltitude)) + end + + -- mach meter and tachymeter + local lTachy = "" + local lMach = "" + lTachy = string.format("%04d", mainPanelDevice:get_argument_value(303) * 1000) + lMach = string.format("%1.2f", mainPanelDevice:get_argument_value(304) * 10) + ExportScript.Tools.SendData(2303, lTachy) + ExportScript.Tools.SendData(2304, lMach) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2303 '..ExportScript.Tools.dump(lTachy)) + ExportScript.Tools.WriteToLog('2304: '..ExportScript.Tools.dump(lMach)) + end + + -- Pitch angle + local PAngle = "" + PAngle = string.format("%04d", mainPanelDevice:get_argument_value(316) * 100) + ExportScript.Tools.SendData(2316, PAngle) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2316 '..ExportScript.Tools.dump(PAngle)) + end + + -- Jauge and DETOT + local lJAUGE = "0000" + digits = {} + digits[1] = math.floor(mainPanelDevice:get_argument_value(349) * 10 + 0.5) + digits[2] = math.floor(mainPanelDevice:get_argument_value(350) * 10 + 0.5) + digits[3] = math.floor(mainPanelDevice:get_argument_value(351) * 100 + 0.5) + lJAUGE = string.format("%01d", digits[1]) .. string.format("%01d", digits[2]) .. string.format("%02d", digits[3]) + ExportScript.Tools.SendData(2349, lJAUGE) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2349 '..ExportScript.Tools.dump(lJAUGE)) + end + local lDETOT = "0000" + digits = {} + digits[1] = math.floor(mainPanelDevice:get_argument_value(352) * 10 + 0.5) + digits[2] = math.floor(mainPanelDevice:get_argument_value(353) * 10 + 0.5) + digits[3] = math.floor(mainPanelDevice:get_argument_value(354) * 100 + 0.5) + lDETOT = string.format("%01d", digits[1]) .. string.format("%01d", digits[2]) .. string.format("%02d", digits[3]) + ExportScript.Tools.SendData(2352, lDETOT) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2352 '..ExportScript.Tools.dump(lDETOT)) + end + + -- IFF Digits + local IFF_1 = "0" + local IFF_2 = "0" + local IFF_3 = "0" + local IFF_4 = "0" + IFF_1 = string.format("%d", mainPanelDevice:get_argument_value(601) * 10) + IFF_2 = string.format("%d", mainPanelDevice:get_argument_value(602) * 10) + IFF_3 = string.format("%d", mainPanelDevice:get_argument_value(603) * 10) + IFF_4 = string.format("%d", mainPanelDevice:get_argument_value(604) * 10) + ExportScript.Tools.SendData(2601, IFF_1) + ExportScript.Tools.SendData(2602, IFF_2) + ExportScript.Tools.SendData(2603, IFF_3) + ExportScript.Tools.SendData(2604, IFF_4) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('2601 '..ExportScript.Tools.dump(IFF_1)) + ExportScript.Tools.WriteToLog('2602 '..ExportScript.Tools.dump(IFF_2)) + ExportScript.Tools.WriteToLog('2603 '..ExportScript.Tools.dump(IFF_3)) + ExportScript.Tools.WriteToLog('2604 '..ExportScript.Tools.dump(IFF_4)) + end + + -- end cycle + ExportScript.Tools.FlushData() +end + + + + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + -- FUEL + local lFUEL = ExportScript.Tools.getListIndicatorValue(3) + + if lFUEL ~= nil and lFUEL.txt_fuel_g ~= nil then + -- string with max 3 charachters + ExportScript.Tools.SendDataDAC(2003, string.format("%s", lFUEL.txt_fuel_g)) + else + ExportScript.Tools.SendDataDAC(2003, "-") + end + + -- COM + local lCOM = list_indication(7) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('COM : '..ExportScript.Tools.dump(lCOM)) + end + + local to1, to2, from1, from2, lCOM1, lCOM2 = nil, nil, nil, nil, "-", "-" + to1, to2 = lCOM:find("COM") + if (to1 ~= nil) then + from1, from2 = lCOM:find("text_COM_UHF1%c") + if (from2 ~= nil) then + to1, to2 = lCOM:find("%c", from2+2) + if (to1 ~= nil) then + lCOM1 = lCOM:sub(from2+1, to1-1) + end + end + + from1, from2 = lCOM:find("text_COM_UHF2%c", to2) + if (from2 ~= nil) then + to1, to2 = lCOM:find("%c", from2+2) + if (to1 ~= nil) then + lCOM2 = lCOM:sub(from2+1, to1-1) + end + end + end + + -- string with max 7 charachters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("lCOM1: "..string.format("%s", lCOM1)) + ExportScript.Tools.WriteToLog("lCOM2: "..string.format("%s", lCOM2)) + end + ExportScript.Tools.SendDataDAC(2020, string.format("%s", lCOM1)) + ExportScript.Tools.SendDataDAC(2021, string.format("%s", lCOM2)) + + -- PPA + local lPPA = list_indication(6) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('PPA : '..ExportScript.Tools.dump(lPPA)) + end + + local to1, to2, from1, from2, lPPA1, lPPA2 = nil, nil, nil, nil, "-", "-" + to1, to2 = lPPA:find("PPA") + if (to1 ~= nil) then + from1, from2 = lPPA:find("text_PPA_QTY%c") + if (from2 ~= nil) then + to1, to2 = lPPA:find("%c", from2+2) + if (to1 ~= nil) then + lPPA1 = lPPA:sub(from2+1, to1-1) + end + end + + from1, from2 = lPPA:find("text_PPA_INT%c", to2) + if (from2 ~= nil) then + to1, to2 = lPPA:find("%c", from2+2) + if (to1 ~= nil) then + lPPA2 = lPPA:sub(from2+1, to1-1) + end + end + end + + -- string with max 2 characters + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("lPPA1: "..string.format("%s", lPPA1)) + ExportScript.Tools.WriteToLog("lPPA2: "..string.format("%s", lPPA2)) + end + ExportScript.Tools.SendDataDAC(2022, string.format("%s", lPPA1)) + ExportScript.Tools.SendDataDAC(2023, string.format("%s", lPPA2)) + + -- send data + ExportScript.Tools.FlushDataDAC(#ExportScript.Config.DAC) + +-- uncomment dump all the parameters in the log + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get the value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ExportScript.Tools.WriteToLog('loop') + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + ExportScript.Tools.WriteToLog('end 1') + + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +--]] +end + +-- end script diff --git a/Scripts/DCS-ExportScript/ExportsModules/MB-339A.lua b/Scripts/DCS-ExportScript/ExportsModules/MB-339A.lua new file mode 100644 index 00000000..a8244f99 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/MB-339A.lua @@ -0,0 +1,930 @@ +-- DCS MB-339A Export + +ExportScript.FoundDCSModule = true +ExportScript.Version.MB339A = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + [1] = "%.02f", -- Flaps Indicator + [2] = "%.02f", -- Speed Brake Indicator + [3] = "%.02f", -- Nose Up/Down Indicator + [6] = "%.02f", -- Acceleration (G) Indicator + [8] = "%.02f", -- Airspeed Indicator + [9] = "%.02f", -- ADI Pitch + [10] = "%.02f", -- ADI Roll + [11] = "%.02f", -- ADI GS Indicator + [15] = "%.02f", -- ADI Knob Rotate + + [17] = "%.02f", -- Rudder Pedal Animation + + [21] = "%.02f", -- ADI Lower Left Flag + + [23] = "%.02f", -- ADI Top Flag + + [31] = "%.02f", -- Gear Indicator Right {0.5-0.9} + [32] = "%.02f", -- Gear Indicator Left {0.5-0.9} + + [33] = "%.02f", -- RPM Tens Indicator + + [42] = "%.02f", -- Gear Handle Light + + [64] = "%0.2f", -- Weapon Selector Window 6 + [65] = "%0.2f", -- Weapon Selector Window 5 + [66] = "%0.2f", -- Weapon Selector Window 3 + [67] = "%0.2f", -- Weapon Selector Window 4 + [68] = "%0.2f", -- Weapon Selector Window 2 + [69] = "%0.2f", -- Weapon Selector Window 1 + + [104] = "%0.2f", -- Throttle + + + + + + + -- TODO: Continue manual arg inspection at 111 + + + + + + + + -- Electrical + [300] = "%.02f", -- Battery, BatterySwitch + [301] = "%.02f", -- Generator 1, Generator1Switch + [302] = "%.02f", -- Generator 2, Generator2Switch + [303] = "%.02f", -- AC power, AcPwrEmergSwitch + [231] = "%.02f", -- Bus reset switch, BusResetSwitch + [233] = "%.02f", -- Bus reset guard, BusResetGuard + + -- Simple avionics + [541] = "%.02f", -- Set index, AnemometerKnob,0.1, {0, 1.0} + [241] = "%.02f", -- Pressure setting, FwdAltimeterKnob,0.1, 0, 1.0} + [570] = "%.02f", -- Pressure setting, AftAltimeterKnob,0.1, {0, 1.0} + [259] = "%.02f", -- Reset min/max G, FwdGmeterReset + [691] = "%.02f", -- Reset min/max G, AftGmeterReset + + -- Chrono + [44] = "%.02f", -- Start/Stop/Reset, FwdChronoButton + [45] = "%.02f", -- Rotate to charge the clock, Pull to set the time, FwdChronoKnobPull,FwdChronoKnobTurn + + [46] = "%.02f", -- Start/Stop/Reset, Minute hand + [47] = "%.02f", -- Start/Stop/Reset, Hour Hand + [48] = "%.02f", -- Start/Stop/Reset, Second Hand + [49] = "%.02f", -- Start/Stop/Reset, Time of Day Hand + + [50] = "%.02f", -- Altimeter Indicator Hundreds + + [51] = "%.02f", -- Rotate to charge the clock, Pull to set the time, FwdChronoKnobPull,FwdChronoKnobTurn + + [52] = "%.02f", -- Altimeter Indicator Thousands + [53] = "%.02f", -- Altimeter Indicator Ten thousands + + [60] = "%.02f", -- Stick Fore/Aft + [61] = "%.02f", -- Stick Left/Right + + + [28] = "%.02f", -- Start/Stop/Reset, AftChronoButton,28 + [29] = "%.02f", -- Rotate to charge the clock, Pull to set the time, AftChronoKnobPull,AftChronoKnobTurn + [30] = "%.02f", -- Rotate to charge the clock, Pull to set the time, AftChronoKnobPull,AftChronoKnobTurn + + -- ADI + [15] = "%.02f", -- Pitch adjustment, FwdAdiPitchAdj,0.1, {-1, 1.0} + [388] = "%.02f", -- Pitch adjustment, AftAdiPitchAdj,0.1, {-1, 1.0} + [401] = "%.02f", -- Pull to cage, Rotate to adjust, FwdAiKnobPull, FwdAiKnobRotate, {0.0, 1.0}, {-1.0, 1.0} + [403] = "%.02f", -- Pull to cage, Rotate to adjust, FwdAiKnobPull, FwdAiKnobRotate, {0.0, 1.0}, {-1.0, 1.0} + [402] = "%.02f", -- Pull to cage, Rotate to adjust, AftAiKnobPull, AftAiKnobRotate, {0.0, 1.0}, {-1.0, 1.0} + [404] = "%.02f", -- Pull to cage, Rotate to adjust, AftAiKnobPull, AftAiKnobRotate, {0.0, 1.0}, {-1.0, 1.0} + + -- HSI + [362] = "%.02f", -- Heading set, FwdHsiHeadingKnob,0.1, {0, 1.0} + [353] = "%.02f", -- Course set, FwdHsiCourseKnob,0.1, {0, 1.0} + [196] = "%.02f", -- Heading set, AftHsiHeadingKnob,0.1, {0, 1.0} + [187] = "%.02f", -- Course set, AftHsiCourseKnob,0.1, {0, 1.0} + + -- Flight dir + [333] = "%.02f", -- F/D HDG, FwdFltDirHdg + [334] = "%.02f", -- F/D GS ARM, FwdFltDirArm + [335] = "%.02f", -- F/D STBY, FwdFltDirStby + [336] = "%.02f", -- F/D RADIO NAV, FwdFltDirRadioNav + [337] = "%.02f", -- F/D GS, FwdFltDirGs + [338] = "%.02f", -- F/D ALT HOLD, FwdFltDirAltHold + [693] = "%.02f", -- F/D HDG, AftFltDirHdg + [695] = "%.02f", -- F/D GS ARM, AftFltDirArm + [697] = "%.02f", -- F/D STBY, AftFltDirStby + [699] = "%.02f", -- F/D RADIO NAV, AftFltDirRadioNav + [701] = "%.02f", -- F/D GS, AftFltDirGs + [703] = "%.02f", -- F/D ALT HOLD, AftFltDirAltHold + + -- Fuel + [257] = "%.02f", -- Tank Selector, FwdFuelQtyKnob,5,0.25,0 + [258] = "%.02f", -- Test, FwdFuelQtyTest + [328] = "%.02f", -- Tank Selector, AftFuelQtyKnob,5,0.25,0 + [374] = "%.02f", -- Test, AftFuelQtyTest + [248] = "%.02f", -- Fwd Fuel shut-off switch, FwdFuelShutoffSwitch + [237] = "%.02f", -- Fwd Fuel shut-off guard, FwdFuelShutoffGuard + [516] = "%.02f", -- Aft Fuel shut-off switch, AftFuelShutoffSwitch + [517] = "%.02f", -- Aft Fuel shut-off guard, AftFuelShutoffGuard + [249] = "%.02f", -- Fuel transfer, FuelTransferSwitch + [593] = "%.02f", -- Fwd Fuel dump, FwdFuelDumpKnob + [160] = "%.02f", -- Aft Fuel dump, AftFuelDumpKnob + + -- L/G & Ground + [250] = "%.02f", -- Anti-skid, FwdAntiSkidOnOff + [518] = "%.02f", -- Anti-skid, AftAntiSkidOnOff + [266] = "%.02f", -- Parking brake pull, ParkingBrakePull,1, {0, 1.0} + [263] = "%.02f", -- Parking brake lock, ParkingBrakeLock + [681] = "%.02f", -- Emergency landing gear, EmergLandingGear + [379] = "%.02f", -- Down-lock override, FwdLandingGearOverride + [14] = "%.02f", -- Down-lock override, AftLandingGearOverride + [519] = "%.02f", -- Rudder Trim, AftTrimLeftRudder, AftTrimRightRudder + [4] = "%.02f", -- Landing Gear Lever, LandingGearLever + [106] = "%.02f", -- Landing Gear Lever, LandingGearLever + + -- Lights + [321] = "%.02f", -- Taxi/Landing lights, TaxiLandingLight + [502] = "%.02f", -- Formation lights, FormationLigths,0.1, {0, 1.0} + [503] = "%.02f", -- Instruments lights, FwdBrtInst,0.1, {0, 1.0} + [504] = "%.02f", -- Flood lights, FwdFloodLight,0.1, {0, 1.0} + [505] = "%.02f", -- Console lights, FwdBrtConsolle,0.1, {0, 1.0} + [510] = "%.02f", -- Instruments lights, AftBrtInst,0.1, {0, 1.0} + [512] = "%.02f", -- Flood lights, AftFloodLight,0.1, {0, 1.0} + [511] = "%.02f", -- Console lights, AftBrtConsolle,0.1, {0, 1.0} + [41] = "%.02f", -- Nav lights flash/steady, NavLightFlashSteady + [40] = "%.02f", -- Nav lights brt/dim, NavLightBrtDim + [685] = "%.02f", -- Beacon lights, BcnLightOnOff + [322] = "%.02f", -- Warn Lights brt/dim, FwdWarnLightBrtDim + [107] = "%.02f", -- Warn Lights brt/dim, AftWarnLightBrtDim + + -- Warning panel + [304] = "%.02f", -- Warn lights test, WarningTestButton + [591] = "%.02f", -- Master caution reset, MasterCautionReset + [592] = "%.02f", -- Master caution reset, MasterCautionReset + [382] = "%.02f", -- Warning silence, WarningSilence + + -- Engine + [238] = "%.02f", -- Engine master, EngineMasterSwitch + [240] = "%.02f", -- JPT limiter, EngineJptLimiterSwitch + [239] = "%.02f", -- Engine start, StartEngineButton + + -- Flight controls + [182] = "%.02f", -- Canopy lock/unlock, FwdCanopyLockUnlock + [183] = "%.02f", -- Partial opening hook, CanopyHook + [582] = "%.02f", -- Canopy unlock, CanopyUnlock + [750] = "%.02f", -- Canopy handle, CanopyHandle + [43] = "%.02f", -- Canopy lock/unlock, AftCanopyLockUnlock + [750] = "%.02f", -- Canopy handle, CanopyHandle + [232] = "%.02f", -- Flight controls lock/unlock, LockFlyControls + [400] = "%.02f", -- Mirrors open/close, MirrorToggle + [594] = "%.02f", -- Mirrors open/close, MirrorToggle + [235] = "%.02f", -- Fwd Aileron servo guard, FwdGuardAilServo + [260] = "%.02f", -- Fwd Aileron servo switch, FwdAilServo + [288] = "%.02f", -- Aft Aileron servo guard, AftGuardAilServo + [289] = "%.02f", -- Aft Aileron servo switch, AftAilServo + + -- Pressurisation + [590] = "%.02f", -- Ram air scoop, RamAirScoop + [264] = "%.02f", -- Cabin pressure switch, PressurizationSwitch + [234] = "%.02f", -- Cabin pressure guard, CabinPressureGuard + [179] = "%.02f", -- Cabin temp, CabinTemp,1.0, {-1.0, 0.0} + + -- Smoke + [330] = "%.02f", -- Smoke master, SmokeMasterSwitch + [331] = "%.02f", -- White smokes, SmokeWhiteSwitch + [332] = "%.02f", -- Color smokes, SmokeColorSwitch + + -- Anti Ice + [262] = "%.02f", -- Engine anti-ice, EngineAntiIceSwitch + [261] = "%.02f", -- Front Pitot anti-ice, FrontPitotAntiIceSwitch + [149] = "%.02f", -- Rear Pitot anti-ice, RearPitotAntiIceSwitch + [178] = "%.02f", -- Windshield Demist, WindshieldDemistSwitch + [177] = "%.02f", -- Windshield Rain RMVL, WindshieldRainRmvlSwitch + + -- Ejection seat + [205] = "%.02f", -- Seat firing handle, SeatFiringHandle + [18] = "%.02f", -- Seat firing handle, SeatFiringHandle + [377] = "%.02f", -- Ejection safety pin to canopy, SeatPinToCanopy + [376] = "%.02f", -- Ejection safety pin to seat, SeatPinToSeat + + -- Emergency Escape + [583] = "%.02f", -- Fwd Canopy severance handle, FwdSeveranceHandle + [584] = "%.02f", -- Fwd Canopy severance safety pin, FwdSeverancePin + [741] = "%.02f", -- Aft Canopy severance handle, AftSeveranceHandle + [742] = "%.02f", -- Aft Canopy severance safety pin, AftSeverancePin + + -- HSI + [346] = "%.02f", -- TACAN, FwdHsiTACAN + [347] = "%.02f", -- VOR, FwdHsiVor + [348] = "%.02f", -- RNAV, FwdHsiRnav + [57] = "%.02f", -- TACAN, AftHsiTACAN + [58] = "%.02f", -- VOR, AftHsiVor + [59] = "%.02f", -- RNAV, AftHsiRnav + + -- Control shift + [324] = "%.02f", -- TACAN, FwdControlShiftTacan + [326] = "%.02f", -- VOR-ILS, FwdControlShiftVorIls + [384] = "%.02f", -- NAV, FwdControlShiftNav + [273] = "%.02f", -- TACAN, AftControlShiftTacan + [275] = "%.02f", -- VOR-ILS, AftControlShiftVorIls + [277] = "%.02f", -- NAV, AftControlShiftNav + [307] = "%.02f", -- COMM1, FwdControlShiftComm1 + [309] = "%.02f", -- COMM2, FwdControlShiftComm2 + [317] = "%.02f", -- ADF, FwdControlShiftAdf + [267] = "%.02f", -- COMM1, AftControlShiftComm1 + [269] = "%.02f", -- COMM2, AftControlShiftComm2 + [271] = "%.02f", -- ADF, AftControlShiftAdf + + -- CDU FWD + [345] = "%.02f", -- AHRS/GPS system, GpsPowerSwitch + [600] = "%.02f", -- Row 1, FwdCduRow1Sel + [601] = "%.02f", -- Row 2, FwdCduRow2Sel + [602] = "%.02f", -- Row 3, FwdCduRow3Sel + [603] = "%.02f", -- Row 4, FwdCduRow4Sel + [605] = "%.02f", -- MARK, FwdCduMark + [609] = "%.02f", -- SET, FwdCduSet + [610] = "%.02f", -- BRT, FwdCduBrt + [611] = "%.02f", -- -, FwdCduDec + [612] = "%.02f", -- +, FwdCduInc + [613] = "%.02f", -- N. 1, FwdCduN1 + [614] = "%.02f", -- N. 2, FwdCduN2 + [615] = "%.02f", -- N. 3, FwdCduN3 + [616] = "%.02f", -- N. 4, FwdCduN4 + [617] = "%.02f", -- N. 5, FwdCduN5 + [618] = "%.02f", -- N. 6, FwdCduN6 + [619] = "%.02f", -- N. 7, FwdCduN7 + [620] = "%.02f", -- N. 8, FwdCduN8 + [621] = "%.02f", -- N. 9, FwdCduN9 + [622] = "%.02f", -- N. 0, FwdCduN0 + [623] = "%.02f", -- CLR, FwdCduClr + [624] = "%.02f", -- ENT, FwdCduEnt + [606] = "%.02f", -- MODE, FwdCduMode + [607] = "%.02f", -- STEER, FwdCduSteer + [604] = "%.02f", -- FIX, FwdCduFix + [608] = "%.02f", -- FLT PLN, FwdCduFltPln + + -- CDU AFT + [625] = "%.02f", -- Row 1, AftCduRow1Sel + [626] = "%.02f", -- Row 2, AftCduRow2Sel + [627] = "%.02f", -- Row 3, AftCduRow3Sel + [628] = "%.02f", -- Row 4, AftCduRow4Sel + [630] = "%.02f", -- MARK, AftCduMark + [634] = "%.02f", -- SET, AftCduSet + [635] = "%.02f", -- BRT, AftCduBrt + [636] = "%.02f", -- -, AftCduDec + [637] = "%.02f", -- +, AftCduInc + [638] = "%.02f", -- N. 1, AftCduN1 + [639] = "%.02f", -- N. 2, AftCduN2 + [640] = "%.02f", -- N. 3, AftCduN3 + [641] = "%.02f", -- N. 4, AftCduN4 + [642] = "%.02f", -- N. 5, AftCduN5 + [643] = "%.02f", -- N. 6, AftCduN6 + [644] = "%.02f", -- N. 7, AftCduN7 + [645] = "%.02f", -- N. 8, AftCduN8 + [646] = "%.02f", -- N. 9, AftCduN9 + [647] = "%.02f", -- N. 0, AftCduN0 + [648] = "%.02f", -- CLR, AftCduClr + [649] = "%.02f", -- ENT, AftCduEnt + [631] = "%.02f", -- MODE, AftCduMode + [632] = "%.02f", -- STEER, AftCduSteer + [629] = "%.02f", -- FIX, AftCduFix + [633] = "%.02f", -- FLT PLN, AftCduFltPln + + -- Weapons + [236] = "%.02f", -- Ground fire guard, GroundFireGuard + [475] = "%.02f", -- Master armament, MasterArmamentSwitch + [473] = "%.02f", -- Salvo jettison, SalvoJettison + [70] = "%.02f", -- Selective jettison, SelectiveJettison + [494] = "%.02f", -- Bomb fuze, BombFuzeSelector + [495] = "%.02f", -- Sequence ripple/single, WeaponSequence + [488] = "%.02f", -- Station 1, WeaponStation1 + [489] = "%.02f", -- Station 2, WeaponStation2 + [490] = "%.02f", -- Station 3, WeaponStation3 + [491] = "%.02f", -- Station 4, WeaponStation4 + [492] = "%.02f", -- Station 5, WeaponStation5 + [493] = "%.02f", -- Station 6, WeaponStation6 + [506] = "%.02f", -- Ground fire, GroundFireSwitch + [169] = "%.02f", -- Master Arm Inib guard, GuardMasterArmInib + [170] = "%.02f", -- Master Arm Inib switch, MasterArmInib + + -- Gunsight + [478] = "%.02f", -- Power, GunsightPower + -- [131] = "%.02f", -- Mode, GunsightMode,5,0.25,0 + [479] = "%.02f", -- Brightness, GunsightBrt,0.1, {0, 1.0} + [480] = "%.02f", -- Test, GunsightTest + [481] = "%.02f", -- Depression reticle x 100, GunsightXxx,0.1, {0, 1.0} + [482] = "%.02f", -- Depression reticle x 10, GunsightxXx,0.1, {0, 1.0} + [483] = "%.02f", -- Depression reticle x 1, GunsightxxX,0.1, {0, 1.0} + + -- Vor + [563] = "%.02f", -- freq 1MHz, FwdVorIls1MhzKnob,0.5, {0, 1.0} + [564] = "%.02f", -- freq 50kHz, FwdVorIls50KhzKnob,0.5, {0, 1.0} + [565] = "%.02f", -- VOR xXx.xx + [566] = "%.02f", -- VOR xxX.xx + [567] = "%.02f", -- VOR xxx.Xx + [568] = "%.02f", -- VOR xxx.xX + [561] = "%.02f", -- test, FwdVorIlsTestButton + [562] = "%.02f", -- power Switch, FwdVorIlsPowerSwitch + [539] = "%.02f", -- freq 1MHz, AftVorIls1MhzKnob,0.5,{0, 1.0} + [34] = "%.02f", -- freq 50kHz, AftVorIls50KhzKnob,0.5, {0, 1.0}, (maybe 534, source typo?) + [537] = "%.02f", -- test, AftVorIlsTestButton + [538] = "%.02f", -- power, AftVorIlsPowerSwitch + + -- Tacan + [569] = "%.02f", -- mode, FwdTacanMode,5,0.25,0 + [552] = "%.02f", -- XY, FwdTacanChannelXY + [553] = "%.02f", -- units, FwdTacanChannelUnit,10,0.1,0 + [554] = "%.02f", -- tens, FwdTacanChannelTens,13,0.08333,0 + [555] = "%.02f", -- test, FwdTacanTestButton + [556] = "%.02f", -- test Light + [557] = "%.02f", -- Tacan xxxX + [558] = "%.02f", -- Tacan xxXx + [559] = "%.02f", -- Tacan xXxx + [560] = "%.02f", -- Tacan Xxxx + [571] = "%.02f", -- mode, AftTacanMode,5,0.25,0 + [572] = "%.02f", -- XY, AftTacanChannelXY + [573] = "%.02f", -- units, AftTacanChannelUnit,10,0.1,0 + [574] = "%.02f", -- tens, AftTacanChannelTens,13,0.08333,0 + [575] = "%.02f", -- test, AftTacanTestButton + + -- Comm1 + [664] = "%.02f", -- Function, FwdComm1Function,4,0.33,0 + [665] = "%.02f", -- Mode, FwdComm1Mode,3,0.50,0 + [678] = "%.02f", -- Frequency, FwdComm1FreqxxxxX,4,0.33,0 + [677] = "%.02f", -- Frequency, FwdComm1FreqxxxXx,10,0.111,0 + [676] = "%.02f", -- Frequency, FwdComm1FreqxxXxx,10,0.111,0 + [675] = "%.02f", -- Frequency, FwdComm1FreqxXxxx,10,0.111,0 + [674] = "%.02f", -- Frequency, FwdComm1FreqXxxxx,2,1,0 + [173] = "%.02f", -- Squelch, FwdComm1Squelch + [175] = "%.02f", -- Tone, FwdComm1Tone + [679] = "%.02f", -- Mem, FwdComm1Mem + [673] = "%.02f", -- Channel, FwdComm1SetChannel,20,0.0526,0 + [279] = "%.02f", -- Function, AftComm1Function,4,0.33,0 + [280] = "%.02f", -- Mode, AftComm1Mode,3,0.50,0 + [526] = "%.02f", -- Frequency, AftComm1FreqxxxxX,4,0.33,0 + [525] = "%.02f", -- Frequency, AftComm1FreqxxxXx,10,0.111,0 + [524] = "%.02f", -- Frequency, AftComm1FreqxxXxx,10,0.111,0 + [523] = "%.02f", -- Frequency, AftComm1FreqxXxxx,10,0.111,0 + [522] = "%.02f", -- Frequency, AftComm1FreqXxxxx,2,1,0 + [174] = "%.02f", -- Squelch, AftComm1Squelch + [176] = "%.02f", -- Tone, AftComm1Tone + [527] = "%.02f", -- Mem, AftComm1Mem + [521] = "%.02f", -- Channel, AftComm1SetChannel,20,0.0526,0 + + -- Comm2 + [650] = "%.02f", -- Mode, FwdComm2Mode,5,0.25,0 + [651] = "%.02f", -- Function, FwdComm2Function,5,0.25,0 + [652] = "%.02f", -- Brightness, FwdComm2Brightness,0.1, {0, 1.0} + [654] = "%.02f", -- Channel, FwdComm2ChannelxXDw, FwdComm2ChannelxXUp + [655] = "%.02f", -- Channel, FwdComm2ChannelXxDw, FwdComm2ChannelXxUp + [656] = "%.02f", -- Frequency, FwdComm2FreqxxxxXDw, FwdComm2FreqxxxxXUp + [657] = "%.02f", -- Frequency, FwdComm2FreqxxxXxDw, FwdComm2FreqxxxXxUp + [658] = "%.02f", -- Frequency, FwdComm2FreqxxXxxDw, FwdComm2FreqxxXxxUp + [659] = "%.02f", -- Frequency, FwdComm2FreqxXxxxDw, FwdComm2FreqxXxxxUp + [660] = "%.02f", -- Frequency, FwdComm2FreqXxxxxDw, FwdComm2FreqXxxxxUp + [662] = "%.02f", -- Squelch, FwdComm2Squelch, FwdComm2Squelch + [661] = "%.02f", -- Modulation, FwdComm2Modulation + [663] = "%.02f", -- TOD (INOP), FwdComm2Tod + [290] = "%.02f", -- Mode, AftComm2Mode,5,0.25,0 + [291] = "%.02f", -- Function, AftComm2Function,5,0.25,0 + [292] = "%.02f", -- Brightness, AftComm2Brightness,0.1, {0, 1.0} + [294] = "%.02f", -- Channel, AftComm2ChannelxXDw, AftComm2ChannelxXUp + [295] = "%.02f", -- Channel, AftComm2ChannelXxDw, AftComm2ChannelXxUp + [296] = "%.02f", -- Frequency, AftComm2FreqxxxxXDw, AftComm2FreqxxxxXUp + [297] = "%.02f", -- Frequency, AftComm2FreqxxxXxDw, AftComm2FreqxxxXxUp + [154] = "%.02f", -- Frequency, AftComm2FreqxxXxxDw, AftComm2FreqxxXxxUp + [155] = "%.02f", -- Frequency, AftComm2FreqxXxxxDw, AftComm2FreqxXxxxUp + [156] = "%.02f", -- Frequency, AftComm2FreqXxxxxDw, AftComm2FreqXxxxxUp + [158] = "%.02f", -- Squelch, AftComm2Squelch, AftComm2Squelch + [157] = "%.02f", -- Modulation, AftComm2Modulation + [159] = "%.02f", -- TOD (INOP), AftComm2Tod + + -- FWD ICS + [115] = "%.02f", -- COM1 volume, FwdIcsComm1Switch, FwdIcsComm1Volume + [116] = "%.02f", -- COM1 volume, FwdIcsComm1Switch, FwdIcsComm1Volume + [117] = "%.02f", -- COM2 volume, FwdIcsComm2Switch, FwdIcsComm2Volume + [118] = "%.02f", -- COM2 volume, FwdIcsComm2Switch, FwdIcsComm2Volume + [119] = "%.02f", -- TACAN volume, FwdIcsTacanSwitch, FwdIcsTacanVolume + [120] = "%.02f", -- TACAN volume, FwdIcsTacanSwitch, FwdIcsTacanVolume + [121] = "%.02f", -- VOR/LOC volume, FwdIcsVorLocSwitch, FwdIcsVorLocVolume + [122] = "%.02f", -- VOR/LOC volume, FwdIcsVorLocSwitch, FwdIcsVorLocVolume + [123] = "%.02f", -- ADF volume, FwdIcsAdfSwitch, FwdIcsAdfVolume + [124] = "%.02f", -- ADF volume, FwdIcsAdfSwitch, FwdIcsAdfVolume + [125] = "%.02f", -- Markers volume, FwdIcsMkrSwitch, FwdIcsMkrVolume + [126] = "%.02f", -- Markers volume, FwdIcsMkrSwitch, FwdIcsMkrVolume + [127] = "%.02f", -- Interphone volume, FwdIcsIntSwitch, FwdIcsIntVolume + [128] = "%.02f", -- Interphone volume, FwdIcsIntSwitch, FwdIcsIntVolume + [129] = "%.02f", -- Master volume, FwdIcsVolume,0.1, {0, 1.0} + [130] = "%.02f", -- Call, FwdIcsCallSwitch + [131] = "%.02f", -- COMM1/COMM2 TX Selector, FwdIcsCommSelector + + -- AFT ICS + [132] = "%.02f", -- COM1 volume, AftIcsComm1Switch, AftIcsComm1Volume + [133] = "%.02f", -- COM1 volume, AftIcsComm1Switch, AftIcsComm1Volume + [134] = "%.02f", -- COM2 volume, AftIcsComm2Switch, AftIcsComm2Volume + [135] = "%.02f", -- COM2 volume, AftIcsComm2Switch, AftIcsComm2Volume + [136] = "%.02f", -- TACAN volume, AftIcsTacanSwitch, AftIcsTacanVolume + [137] = "%.02f", -- TACAN volume, AftIcsTacanSwitch, AftIcsTacanVolume + [138] = "%.02f", -- VOR/LOC volume, AftIcsVorLocSwitch, AftIcsVorLocVolume + [139] = "%.02f", -- VOR/LOC volume, AftIcsVorLocSwitch, AftIcsVorLocVolume + [140] = "%.02f", -- ADF volume, AftIcsAdfSwitch, AftIcsAdfVolume + [141] = "%.02f", -- ADF volume, AftIcsAdfSwitch, AftIcsAdfVolume + [142] = "%.02f", -- Markers volume, AftIcsMkrSwitch, AftIcsMkrVolume + [143] = "%.02f", -- Markers volume, AftIcsMkrSwitch, AftIcsMkrVolume + [144] = "%.02f", -- Interphone volume, AftIcsIntSwitch, AftIcsIntVolume + [145] = "%.02f", -- Interphone volume, AftIcsIntSwitch, AftIcsIntVolume + [146] = "%.02f", -- Master volume, AftIcsVolume,0.1, {0, 1.0} + [147] = "%.02f", -- Call, AftIcsCallSwitch + [148] = "%.02f", -- COMM1/COMM2 TX Selector, AftIcsCommSelector + + -- Oxygen + [587] = "%.02f", -- Oxygen Power Supply, FwdOxigenOnOffSwitch + [589] = "%.02f", -- Oxygen Diluiter Lever (Normal / 100%), FwdOxigenNormal100 + [588] = "%.02f", -- Oxygen Emergengy Lever, FwdOxigenEmergency + [113] = "%.02f", -- Oxygen Power Supply, AftOxigenOnOffSwitch + [112] = "%.02f", -- Oxygen Diluiter Lever (Normal / 100%), AftOxigenNormal100 + [111] = "%.02f", -- Oxygen Emergengy Lever, AftOxigenEmergency + + -- Compartment + [206] = "%.02f", -- Glove compartment, FwdGloveCompartment + [207] = "%.02f", -- Glove compartment, AftGloveCompartment + + -- Curtain + [1999] = "%.02f", -- Curtain handle, CurtainHandle + + -- ELT + [727] = "%.02f", -- ELT, EltSwitch, EltSwitch + + -- IFF + [714] = "%.02f", -- Master, IffMaster,5,0.25,0 + [713] = "%.02f", -- Code, IffCode,5,0.25,0 + [715] = "%.02f", -- ANT, AntSwitch,anim_speed_pull_switch + [710] = "%.02f", -- Mode 4 control, M4Switch,anim_speed_pull_switch + [711] = "%.02f", -- Mode 4 Audio, Mode4AudioSwitch + [716] = "%.02f", -- RAD, RadSwitch + [720] = "%.02f", -- Mode 1 control, M1Switch + [719] = "%.02f", -- Mode 2 control, M2Switch + [718] = "%.02f", -- Mode 3/A control, M3ASwitch + [717] = "%.02f", -- Mode 3/C control, MCSwitch + [712] = "%.02f", -- IDENT-MIC, IdentMicSwitch, IdentMicSwitch + [734] = "%.02f", -- CODE Switch 1, CodeSwitchXxxxxx + [735] = "%.02f", -- CODE Switch 2, CodeSwitchxXxxxx + [736] = "%.02f", -- CODE Switch 3, CodeSwitchxxXxxx + [737] = "%.02f", -- CODE Switch 4, CodeSwitchxxxXxx + [738] = "%.02f", -- CODE Switch 5, CodeSwitchxxxxXx + [739] = "%.02f", -- CODE Switch 6, CodeSwitchxxxxxX + [743] = "%.02f", -- Press To Test, PressToTestGo + [744] = "%.02f", -- Press To Test, PressToTestNoGo + [745] = "%.02f", -- Press To Test, PressToTestReply + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) + + ExportScript.RadiosVox(mainPanelDevice) + ExportScript.RadiosNav(mainPanelDevice) + ExportScript.GpsUnit(mainPanelDevice) + ExportScript.NavUnit(mainPanelDevice) + ExportScript.WeaponPanel(mainPanelDevice) + ExportScript.GunsightMils(mainPanelDevice) + ExportScript.GearFlaps(mainPanelDevice) + -- TODO: Fuel tile with flow and amount +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end + +function ExportScript.RadiosVox(mainPanelDevice) + + -- TODO: Explore "set_is_receiving" + -- TODO: Explore "is_on_guard" + + local RadioUhfPlt = GetDevice(6) + ExportScript.Tools.SendData(3000, ExportScript.Tools.RoundFreqeuncy((RadioUhfPlt:get_frequency()/1000000))) + -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + + local RadioVhfPlt = GetDevice(7) + ExportScript.Tools.SendData(3001, ExportScript.Tools.RoundFreqeuncy((RadioVhfPlt:get_frequency()/1000000))) + + local RadioUhfCplt = GetDevice(9) + ExportScript.Tools.SendData(3002, ExportScript.Tools.RoundFreqeuncy((RadioUhfCplt:get_frequency()/1000000))) + + local RadioVhfCplt = GetDevice(10) + ExportScript.Tools.SendData(3003, ExportScript.Tools.RoundFreqeuncy((RadioVhfCplt:get_frequency()/1000000))) + + local FwdRfrDisplay1 = list_cockpit_params():match("FwdRfrDisplay1:([^\n]+)") + FwdRfrDisplay1 = FwdRfrDisplay1:gsub('"','') + FwdRfrDisplay1 = FwdRfrDisplay1:gsub("%s+", "") + ExportScript.Tools.SendData(3004, FwdRfrDisplay1) + + local FwdRfrDisplay2 = list_cockpit_params():match("FwdRfrDisplay2:([^\n]+)") + FwdRfrDisplay2 = FwdRfrDisplay2:gsub('"','') + FwdRfrDisplay2 = FwdRfrDisplay2:gsub("%s+", "") + ExportScript.Tools.SendData(3005, FwdRfrDisplay2) + + local AftRfrDisplay1 = list_cockpit_params():match("AftRfrDisplay1:([^\n]+)") + AftRfrDisplay1 = AftRfrDisplay1:gsub('"','') + AftRfrDisplay1 = AftRfrDisplay1:gsub("%s+", "") + ExportScript.Tools.SendData(3006, AftRfrDisplay1) + + local AftRfrDisplay2 = list_cockpit_params():match("AftRfrDisplay2:([^\n]+)") + AftRfrDisplay2 = AftRfrDisplay2:gsub('"','') + AftRfrDisplay2 = AftRfrDisplay2:gsub("%s+", "") + ExportScript.Tools.SendData(3007, AftRfrDisplay2) + +end + +function ExportScript.RadiosNav(mainPanelDevice) + + -- TACAN + local tacanxxxX = mainPanelDevice:get_argument_value(557) + if tacanxxxX > 0.50 then tacanxxxX = 'Y' else tacanxxxX = 'X' end + + local tacanxxXx = round(mainPanelDevice:get_argument_value(558) * 10,0) + if tacanxxXx > 9 then tacanxxXx = 0 end + + local tacanxXxx = round(mainPanelDevice:get_argument_value(559) * 10,0) + if tacanxXxx > 9 then tacanxXxx = 0 end + + local tacanXxxx = round(mainPanelDevice:get_argument_value(560) * 10,0) -- TODO: Fix the multiplier (goes to 12) + if tacanXxxx > 9 then tacanXxxx = 0 end + + ExportScript.Tools.SendData(4006, 'TCN\n' .. tacanXxxx .. tacanxXxx .. tacanxxXx .. tacanxxxX) + + + -- VOR ILS + + --[565] = "%.02f", -- VOR xXx.xx + --[566] = "%.02f", -- VOR xxX.xx + --[567] = "%.02f", -- VOR xxx.Xx + --[568] = "%.02f", -- VOR xxx.xX + + + + -- IFF + + local mode1 = GetDevice(16) + ExportScript.Tools.SendData(4004, mode1:get_mode1_code()) + + local mode3 = GetDevice(16) + ExportScript.Tools.SendData(4005, mode3:get_mode3_code()) + +end + +function ExportScript.GpsUnit(mainPanelDevice) + + local FwdRduDisplay1 = list_cockpit_params():match("FwdRduDisplay1:([^\n]+)") + FwdRduDisplay1 = FwdRduDisplay1:gsub('"','') + local FwdRduDisplay2 = list_cockpit_params():match("FwdRduDisplay2:([^\n]+)") + FwdRduDisplay2 = FwdRduDisplay2:gsub('"','') + FwdRduDisplay2 = FwdRduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + ExportScript.Tools.SendData(3008, FwdRduDisplay1 .. "\n" .. FwdRduDisplay2) + + + local AftRduDisplay1 = list_cockpit_params():match("AftRduDisplay1:([^\n]+)") + AftRduDisplay1 = AftRduDisplay1:gsub('"','') + local AftRduDisplay2 = list_cockpit_params():match("AftRduDisplay2:([^\n]+)") + AftRduDisplay2 = AftRduDisplay2:gsub('"','') + AftRduDisplay2 = AftRduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + ExportScript.Tools.SendData(3009, AftRduDisplay1 .. "\n" .. AftRduDisplay2) +end + +function ExportScript.NavUnit(mainPanelDevice) + + -- TODO: if ) then downArrow? + -- TODO: Break up the 4 lines into 4 different tiles using the apache text code + + local FwdCduDisplay1 = list_cockpit_params():match("FwdCduDisplay1:([^\n]+)") + FwdCduDisplay1 = FwdCduDisplay1:gsub('"','') + FwdCduDisplay1 = FwdCduDisplay1:gsub(':','¦') -- because for DCS-Interface ":" is a break + local FwdCduDisplay2 = list_cockpit_params():match("FwdCduDisplay2:([^\n]+)") + FwdCduDisplay2 = FwdCduDisplay2:gsub('"','') + FwdCduDisplay2 = FwdCduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + local FwdCduDisplay3 = list_cockpit_params():match("FwdCduDisplay3:([^\n]+)") + FwdCduDisplay3 = FwdCduDisplay3:gsub('"','') + FwdCduDisplay3 = FwdCduDisplay3:gsub(':','¦') -- because for DCS-Interface ":" is a break + local FwdCduDisplay4 = list_cockpit_params():match("FwdCduDisplay4:([^\n]+)") + FwdCduDisplay4 = FwdCduDisplay4:gsub('"','') + FwdCduDisplay4 = FwdCduDisplay4:gsub(':','¦') -- because for DCS-Interface ":" is a break + + ExportScript.Tools.SendData(3010, FwdCduDisplay1 .. "\n" .. FwdCduDisplay2 .. "\n" .. FwdCduDisplay3 .. "\n" .. FwdCduDisplay4) + + local AftCduDisplay1 = list_cockpit_params():match("AftCduDisplay1:([^\n]+)") + AftCduDisplay1 = AftCduDisplay1:gsub('"','') + AftCduDisplay1 = AftCduDisplay1:gsub(':','¦') -- because for DCS-Interface ":" is a break + local AftCduDisplay2 = list_cockpit_params():match("AftCduDisplay2:([^\n]+)") + AftCduDisplay2 = AftCduDisplay2:gsub('"','') + AftCduDisplay2 = AftCduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + local AftCduDisplay3 = list_cockpit_params():match("AftCduDisplay3:([^\n]+)") + AftCduDisplay3 = AftCduDisplay3:gsub('"','') + AftCduDisplay3 = AftCduDisplay3:gsub(':','¦') -- because for DCS-Interface ":" is a break + local AftCduDisplay4 = list_cockpit_params():match("AftCduDisplay4:([^\n]+)") + AftCduDisplay4 = AftCduDisplay4:gsub('"','') + AftCduDisplay4 = AftCduDisplay4:gsub(':','¦') -- because for DCS-Interface ":" is a break + + ExportScript.Tools.SendData(3011, AftCduDisplay1 .. "\n" .. AftCduDisplay2 .. "\n" .. AftCduDisplay3 .. "\n" .. AftCduDisplay4) + +end + +function ExportScript.WeaponPanel(mainPanelDevice) + +-- TODO: Add emoji dot arm indicator + + --[64] = "%0.2f", -- Weapon Selector Window 6 + --[65] = "%0.2f", -- Weapon Selector Window 5 + --[66] = "%0.2f", -- Weapon Selector Window 3 + --[67] = "%0.2f", -- Weapon Selector Window 4 + --[68] = "%0.2f", -- Weapon Selector Window 2 + --[69] = "%0.2f", -- Weapon Selector Window 1 + + -- 0.00 = RKT + -- 0.10 = BOMB + -- 0.20 = GUN + -- 0.30 = DISP + -- 0.40 = EMPTY + -- 0.50 = TANK + + --local KollsmanWindowReadout_value1 = string.format("%.f",mainPanelDevice:get_argument_value(56) * 10) + local weaponSelect1 = round(mainPanelDevice:get_argument_value(69),2) + local weaponSelect1_text = "NULL" + + if weaponSelect1 <= 0.00 then + weaponSelect1_text = "RKT" + elseif weaponSelect1 <= 0.10 then + weaponSelect1_text = "BOMB" + elseif weaponSelect1 <= 0.20 then + weaponSelect1_text = "GUN" + elseif weaponSelect1 <= 0.30 then + weaponSelect1_text = "DISP" + elseif weaponSelect1 <= 0.40 then + weaponSelect1_text = "EMPTY" + elseif weaponSelect1 <= 0.50 then + weaponSelect1_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3012, weaponSelect1_text) + + + + local weaponSelect2 = round(mainPanelDevice:get_argument_value(68),2) + local weaponSelect2_text = "NULL" + + if weaponSelect2 <= 0.00 then + weaponSelect2_text = "RKT" + elseif weaponSelect2 <= 0.10 then + weaponSelect2_text = "BOMB" + elseif weaponSelect2 <= 0.20 then + weaponSelect2_text = "GUN" + elseif weaponSelect2 <= 0.30 then + weaponSelect2_text = "DISP" + elseif weaponSelect2 <= 0.40 then + weaponSelect2_text = "EMPTY" + elseif weaponSelect2 <= 0.50 then + weaponSelect2_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3013, weaponSelect2_text) + + + local weaponSelect3 = round(mainPanelDevice:get_argument_value(67),2) + local weaponSelect3_text = "NULL" + + if weaponSelect3 <= 0.00 then + weaponSelect3_text = "RKT" + elseif weaponSelect3 <= 0.10 then + weaponSelect3_text = "BOMB" + elseif weaponSelect3 <= 0.20 then + weaponSelect3_text = "GUN" + elseif weaponSelect3 <= 0.30 then + weaponSelect3_text = "DISP" + elseif weaponSelect3 <= 0.40 then + weaponSelect3_text = "EMPTY" + elseif weaponSelect3 <= 0.50 then + weaponSelect3_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3014, weaponSelect3_text) + + + local weaponSelect4 = round(mainPanelDevice:get_argument_value(66),2) + local weaponSelect4_text = "NULL" + + if weaponSelect4 <= 0.00 then + weaponSelect4_text = "RKT" + elseif weaponSelect4 <= 0.10 then + weaponSelect4_text = "BOMB" + elseif weaponSelect4 <= 0.20 then + weaponSelect4_text = "GUN" + elseif weaponSelect4 <= 0.30 then + weaponSelect4_text = "DISP" + elseif weaponSelect4 <= 0.40 then + weaponSelect4_text = "EMPTY" + elseif weaponSelect4 <= 0.50 then + weaponSelect4_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3015, weaponSelect4_text) + + + local weaponSelect5 = round(mainPanelDevice:get_argument_value(65),2) + local weaponSelect5_text = "NULL" + + if weaponSelect5 <= 0.00 then + weaponSelect5_text = "RKT" + elseif weaponSelect5 <= 0.10 then + weaponSelect5_text = "BOMB" + elseif weaponSelect5 <= 0.20 then + weaponSelect5_text = "GUN" + elseif weaponSelect5 <= 0.30 then + weaponSelect5_text = "DISP" + elseif weaponSelect5 <= 0.40 then + weaponSelect5_text = "EMPTY" + elseif weaponSelect5 <= 0.50 then + weaponSelect5_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3016, weaponSelect5_text) + + + local weaponSelect6 = round(mainPanelDevice:get_argument_value(64),2) + local weaponSelect6_text = "NULL" + + if weaponSelect6 <= 0.00 then + weaponSelect6_text = "RKT" + elseif weaponSelect6 <= 0.10 then + weaponSelect6_text = "BOMB" + elseif weaponSelect6 <= 0.20 then + weaponSelect6_text = "GUN" + elseif weaponSelect6 <= 0.30 then + weaponSelect6_text = "DISP" + elseif weaponSelect6 <= 0.40 then + weaponSelect6_text = "EMPTY" + elseif weaponSelect6 <= 0.50 then + weaponSelect6_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3017, weaponSelect6_text) + + -- TODO: Consider Making two tiles with three indicators each + -- TODO: Consider making the background urn green when armed + -- TODO: Consider a three/four color system with Master arm and the weapon select light + -- TODO: Consider adding S1 above the weaponSelect_text + +end + +function ExportScript.GunsightMils(mainPanelDevice) + + local gunsightXxx = round(mainPanelDevice:get_argument_value(481) * 10,0) + local gunsightxXx = round(mainPanelDevice:get_argument_value(482) * 10,0) + local gunsightxxX = round(mainPanelDevice:get_argument_value(483) * 10,0) + + if gunsightXxx > 9 then gunsightXxx = 0 end + if gunsightxXx > 9 then gunsightxXx = 0 end + if gunsightxxX > 9 then gunsightxxX = 0 end + + local gunsightXXX = gunsightXxx .. gunsightxXx .. gunsightxxX + + ExportScript.Tools.SendData(3018, 'MILS\n' .. gunsightXXX) + + ExportScript.Tools.SendData(3019, 'MILS\nXxx\n' .. gunsightXxx) + ExportScript.Tools.SendData(3020, 'MILS\nxXx\n' .. gunsightxXx) + ExportScript.Tools.SendData(3021, 'MILS\nxxX\n' .. gunsightxxX) + +end + +function ExportScript.GearFlaps(mainPanelDevice) + +-- TODO: This + +-- For the gear have 3 green dot emojis, GEAR on top, 1 dot in middle, and 2 on bottom. Match the colors with the state of the gear indicators, using clear for up. + +-- For the flaps you can make ranges for the indicator arg + + local flapIndPos = mainPanelDevice:get_argument_value(1) + local flapPosText = 'FLAPS' + if flapIndPos < 0.25 then flapPosText = 'FLAP\nUP' + elseif flapIndPos < 0.68 then flapPosText = 'FLAP\nTO' + else flapPosText = 'FLAP\nDOWN' end + + ExportScript.Tools.SendData(4019, flapPosText) +end + +------------------------------ +-- General Helper Functions -- +------------------------------ + +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 \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/MB-339APAN.todo b/Scripts/DCS-ExportScript/ExportsModules/MB-339APAN.todo new file mode 100644 index 00000000..d19c9d47 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/MB-339APAN.todo @@ -0,0 +1,779 @@ +-- DCS MB-339APAN Export + +ExportScript.FoundDCSModule = true +ExportScript.Version.MB339APAN = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + -- Un-clickables + [39] = "%0.4f", -- PilotHeadHorizMov + [99] = "%0.4f", -- PilotHeadVertMov + [400] = "%0.4f", -- mirrors_draw_0 + [550] = "%0.4f", -- PilotCfg + [594] = "%0.4f", -- mirrors_draw_1 + [1000] = "%0.4f", -- PilotDraw + [1001] = "%0.4f", -- FrontSeat + [1002] = "%0.4f", -- InstructorBody + [1039] = "%0.4f", -- InstructorHeadHorizMov + [1099] = "%0.4f", -- InstructorHeadVertMov + + -- Clickables + [0] = "%.02f", -- + [1] = "%.02f", -- Flaps Indicator + [2] = "%.02f", -- Speed Brake Indicator + [3] = "%.02f", -- Nose Up/Down Indicator + [4] = "%.02f", -- Gear Handle + + [6] = "%.02f", -- Acceleration G Indicator + [7] = "%.02f", -- + [8] = "%.02f", -- Airspeed Indicator + [9] = "%.02f", -- ADI Pitch + [10] = "%.02f", -- ADI Roll + [11] = "%.02f", -- ILS Vertical Guidance Indicator + [12] = "%.02f", -- + [13] = "%.02f", -- + [14] = "%.02f", -- + [15] = "%.02f", -- ADI Knob + [16] = "%.02f", -- Engine RPM Needle + [17] = "%.02f", -- Rudder Pedal Left/Right + + [19] = "%.02f", -- + [20] = "%.02f", -- Gear Green Light + [21] = "%.02f", -- ADI NAV Flag + [22] = "%.02f", -- ADI ILS Flag + [23] = "%.02f", -- ADI Top Flag + [24] = "%.02f", -- + [25] = "%.02f", -- + [26] = "%.02f", -- + [27] = "%.02f", -- + [28] = "%.02f", -- + [29] = "%.02f", -- + + + + [30] = "%0.2f", -- KPP-1273K Attitude Director Indicator (ADI) Cage Button {1,0,1} + [31] = "%.02f", -- Landing Gear Right Light + [32] = "%.02f", -- Landing Gear Left Light + [33] = "%.02f", -- RPM Indicator 10s + [34] = "%.02f", -- + [35] = "%.02f", -- + [36] = "%.02f", -- + [37] = "%.02f", -- + [38] = "%.02f", -- + [39] = "%0.2f", -- KPP-1273K Attitude Director Indicator (ADI) Pitch Trim Knob {0,-1,1} + [40] = "%.02f", -- + [41] = "%.02f", -- + [42] = "%.02f", -- Landing Gear Handle Red Light + [43] = "%.02f", -- + [44] = "%.02f", -- Clock Button + [45] = "%.02f", -- Clock Twist + [46] = "%.02f", -- Clock Min Needle + [47] = "%.02f", -- Clock Hrs Needle + [48] = "%0.2f", -- HSI Course set knob {0,0,1} or Clock Sec Needle + [49] = "%0.2f", -- Clock Set Needle + [50] = "%0.2f", -- Altimeter Hunds Needle + [51] = "%0.2f", -- Clock Twist + [52] = "%0.2f", -- Altimeter Thou Window + [53] = "%0.2f", -- Altimeter Ten Thou Window + [54] = "%0.2f", -- + [55] = "%0.2f", -- + [56] = "%0.2f", -- + [57] = "%0.2f", -- Baro pressure QFE knob {1,0,1} + [58] = "%0.2f", -- + [59] = "%0.2f", -- + [60] = "%0.2f", -- RV-5M Radio Altimeter Test Button/Decision Height Knob {1,0,1} or Stick Fwd/Aft + [61] = "%0.2f", -- RV-5M Radio Altimeter Test Button/Decision Height Knob {0.1,0,1} or Stick Left/Right + [62] = "%0.2f", -- + [63] = "%0.2f", -- + [64] = "%0.2f", -- Weapon Selector Window 6 + [65] = "%0.2f", -- Weapon Selector Window 5 + [66] = "%0.2f", -- Weapon Selector Window 3 + [67] = "%0.2f", -- Weapon Selector Window 4 + [68] = "%0.2f", -- Weapon Selector Window 2 + [69] = "%0.2f", -- Weapon Selector Window 1 + [70] = "%0.2f", -- Select Jettison + + -- TODO: Continue Here + + [89] = "%0.2f", -- Reset Limits {1,0,1} + + [99] = "%0.2f", -- Pilot Head up/down + + [101] = "%0.2f", -- ASP-3NMU Gunsight Mode GYRO/FIXED {1,0,1} + [102] = "%0.2f", -- ASP-3NMU Gunsight Brightness Knob {0,0,1} + [103] = "%0.2f", -- ASP-3NMU Gunsight Target Wingspan Adjustment Dial (meters) {0,0,1} + [104] = "%0.2f", -- ASP-3NMU Gunsight Color Filter ON/OFF {1,0,1} + [105] = "%0.2f", -- ASP-3NMU Gunsight Fixed Reticle Mask Lever {1,0,1} + [106] = "%0.2f", -- ASP-3NMU Gunsight Mirror Depression {0,0,1} + [107] = "%0.2f", -- ASP-3NMU Gunsight Target Distance {0,0,1} + + [118] = "%0.2f", -- Landing Gear Control Lever {1,-1,1} + [119] = "%0.2f", -- RKL-41 ADF Outer-Inner Beacon (Far-Near NDB) Switch {1,0,1} + + [120] = "%0.2f", -- Diffuser and Flight Suit Temperature Rheostat {0.5,0,1} + [121] = "%0.2f", -- Diffuser and Flight Suit Air Conditioning Control Switch HEAT/AUTO/COOL {0.05,0,0.25} + + [124] = "%0.2f", -- MC Synchronization Button - Push to synchronize (level flight only) {1,0,1} + + [133] = "%0.2f", -- Intercom Button {1,0,1} + [134] = "%0.2f", -- Radio Button {1,0,1} + [135] = "%0.2f", -- Air Brake Switch {1,0,1} + [136] = "%0.2f", -- Air Brake Switch {1,0,1} + + [141] = "%0.2f", -- Battery Switch ON/OFF {1,0,1} + [142] = "%0.2f", -- Main Generator Switch ON/OFF {1,0,1} + [143] = "%0.2f", -- Emergency Generator Switch ON/OFF {1,0,1} + [144] = "%0.2f", -- CB Engine Switch ON/OFF {1,0,1} + [145] = "%0.2f", -- CB AGD-GMK Switch ON/OFF {1,0,1} + [146] = "%0.2f", -- CB Inverter 1 (AC 115V) Switch ON/OFF {1,0,1} + [147] = "%0.2f", -- CB Inverter 2 (AC 115V) Switch ON/OFF {1,0,1} + [148] = "%0.2f", -- CB RDO (ICS and Radio) Switch ON/OFF {1,0,1} + [149] = "%0.2f", -- CB MRP-RV (Marker Beacon Receiver and Radio Altimeter) Switch ON/OFF {1,0,1} + [150] = "%0.2f", -- CB RSBN (ISKRA) Switch ON/OFF {1,0,1} + [151] = "%0.2f", -- CB IFF (SRO) Emergency Connection Switch ON/OFF {1,0,1} + [152] = "%0.2f", -- CB RSBN (ISKRA) Emergency Connection Switch ON/OFF {1,0,1} + [153] = "%0.2f", -- CB Wing Tanks Switch ON/OFF {1,0,1} + [154] = "%0.2f", -- CB RIO-3 De-Icing Signal Switch ON/OFF {1,0,1} + [155] = "%0.2f", -- CB SDU Switch ON/OFF {1,0,1} + [157] = "%0.2f", -- RKL-41 ADF Volume Knob {1,,} + [158] = "%0.2f", -- RKL-41 ADF Control Switch TAKE CONTROL/HAND OVER CONTROL {1,0,1} + [159] = "%0.2f", -- RKL-41 ADF Mode Switch TLF(A3)/TLG(A1 - A2) {1,0,1} + [160] = "%0.2f", -- RKL-41 ADF Function Selector Switch OFF/COMP(AUTO)/COMP(MAN)/ANT/LOOP {0.1,0,0.4} + [161] = "%0.2f", -- RKL-41 ADF Brightness Knob {1,,} + [162] = "%0.2f", -- RKL-41 ADF Loop Switch LEFT/OFF/RIGHT {1,0,1} + [163] = "%0.2f", -- RKL-41 ADF Far NDB 100kHz rotary {0.0588,0,0.938} + [164] = "%0.2f", -- RKL-41 ADF Far NDB 10kHz rotary {0.1,0,0.9} + [165] = "%0.2f", -- RKL-41 ADF Far NDB Frequency Tune {0,0,1} + [166] = "%0.2f", -- RKL-41 ADF Near NDB 100kHz rotary {0.0588,0,0.938} + [167] = "%0.2f", -- RKL-41 ADF Near NDB 10kHz rotary {0.1,0,0.9} + [168] = "%0.2f", -- RKL-41 ADF Near NDB Frequency Tune {0,0,1} + [169] = "%0.2f", -- Emergency Engine Instruments Power Switch ON/OFF {1,0,1} + + [172] = "%0.2f", -- Cabin Air Conditioning Control Switch OFF/HEAT/COOL/AUTOMATIC {0.05,0,0.25} + [173] = "%0.2f", -- Cabin Air Temperature Controller Rheostat {0.5,0,1} + [174] = "%0.2f", -- De-Icing Mode Switch MANUAL/AUTOMATIC/OFF {0.1,0,0.2} + [175] = "%0.2f", -- Navigation Lights Intensity Control Switch DIM(30%)/BRT(60%)/MAX(100%) {0.5,0,1} + [176] = "%0.2f", -- Navigation Lights Mode Control Switch FLICKER/OFF/FIXED {0.5,0,1} + [177] = "%0.2f", -- SDU Switch ON/OFF {1,0,1} + [178] = "%0.2f", -- RSBN Mode Switch LANDING/NAVIGATION/GLIDE PATH {0.1,0,0.2} + [179] = "%0.2f", -- RSBN Identification Button {1,0,1} + [180] = "%0.2f", -- RSBN Test Button - Push to test {1,0,1} + [181] = "%0.2f", -- RSBN Control Box Lighting Intensity Knob {0,0,1} + [183] = "%0.2f", -- RIO-3 De-Icing Sensor Heating Circuit Check Button - Push to test {1,0,1} + [184] = "%0.2f", -- RSBN Volume Knob {0,0,0.8} + + [187] = "%0.2f", -- Initial Azimuth {1,0,1} + [188] = "%0.2f", -- Initial Range {1,0,1} + + [191] = "%0.2f", -- RSBN Navigation Channel Selector Knob {0.025,0,0.975} + [192] = "%0.2f", -- RSBN Landing Channel Selector Knob {0.025,0,0.975} + [193] = "%0.2f", -- Set 0 Azimuth {1,0,1} + [194] = "%0.2f", -- Emergency Landing Gear Extension Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [195] = "%0.2f", -- Emergency Flaps Extension Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [196] = "%0.2f", -- RAT (Emergency Generator) Emergency Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [197] = "%0.2f", -- Main and Emergency Hydraulic Systems Interconnection Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + + [201] = "%0.2f", -- RSBN Field Elevation Knob {0,0,1} + [202] = "%0.2f", -- Warning-Light Intensity Knob {1,0,1} + [203] = "%0.2f", -- Warning-Light Check Button - Push to check {1,0,1} + [204] = "%0.2f", -- GMK-1AE GMC Hemisphere Selection Switch N(orth)/S(outh) {2,-1,1} + [205] = "%0.2f", -- GMK-1AE GMC Test Switch 0(degrees)/OFF/300(degrees) - Use to check heading indication accuracy {1,0,1} + + [207] = "%0.2f", -- GMK-1AE GMC Mode Switch MC(Magnetic Compass Mode)/GC(Directional Gyro Mode) {2,-1,1} + [208] = "%0.2f", -- GMK-1AE GMC Course Selector Switch CCW/OFF/CW {1,0,1} + [209] = "%0.2f", -- GMK-1AE GMC Latitude Selector Knob {0,0,0.728} + + [211] = "%0.2f", -- CB Air Conditioning ON/OFF {1,0,1} + [212] = "%0.2f", -- CB Anti-Ice ON/OFF {1,0,1} + [213] = "%0.2f", -- CB Pitot Left ON/OFF {1,0,1} + [214] = "%0.2f", -- CB Pitot Right ON/OFF {1,0,1} + [215] = "%0.2f", -- CB PT-500C ON/OFF {1,0,1} + [216] = "%0.2f", -- CB ARC ON/OFF {1,0,1} + [217] = "%0.2f", -- CB SRO ON/OFF {1,0,1} + [218] = "%0.2f", -- CB Seat-Helmet ON/OFF {1,0,1} + [219] = "%0.2f", -- CB Gears ON/OFF {1,0,1} + [220] = "%0.2f", -- CB Control ON/OFF {1,0,1} + [221] = "%0.2f", -- CB Signaling ON/OFF {1,0,1} + [222] = "%0.2f", -- CB Nav. Lights ON/OFF {1,0,1} + [223] = "%0.2f", -- CB Spotlight Left ON/OFF {1,0,1} + [224] = "%0.2f", -- CB Spotlight Right ON/OFF {1,0,1} + [225] = "%0.2f", -- CB Red Lights ON/OFF {1,0,1} + [226] = "%0.2f", -- CB White Lights ON/OFF {1,0,1} + [227] = "%0.2f", -- CB Start Panel ON/OFF {1,0,1} + [228] = "%0.2f", -- CB Booster Pump ON/OFF {1,0,1} + [229] = "%0.2f", -- CB Ignition 1 ON/OFF {1,0,1} + [230] = "%0.2f", -- CB Ignition 2 ON/OFF {1,0,1} + [231] = "%0.2f", -- CB Engine Instruments ON/OFF {1,0,1} + [232] = "%0.2f", -- CB Fire ON/OFF {1,0,1} + [233] = "%0.2f", -- CB Emergency Jettison ON/OFF {1,0,1} + [234] = "%0.2f", -- CB SARPP ON/OFF {1,0,1} + + [242] = "%0.2f", -- RT-12 JPT Regulator Test Switch I/OFF/II {1,-1,1} + [243] = "%0.2f", -- RT-12 JPT Regulator Power Switch ON/OFF {1,0,1} + [244] = "%0.2f", -- Forward Canopy Emergency Jettison Handle {1,0,1} + + [249] = "%0.2f", -- Emergency Instrument Light Switch ON/OFF {1,0,1} + + [254] = "%0.2f", -- CB Armament System Power Switch ON/OFF {1,0,1} + [255] = "%0.2f", -- CB UB-16 Rocket Firing Control Circuit Power Switch ON/OFF {1,0,1} + [256] = "%0.2f", -- CB ASP-FKP (Gunsight and Gun Camera) Power Switch ON/OFF {1,0,1} + [257] = "%0.2f", -- CB Missile Seeker Heating Circuit Power Switch ON/OFF {1,0,1} + [258] = "%0.2f", -- CB Missile Seeker Glowing Circuit Power Switch ON/OFF {1,0,1} + [259] = "%0.2f", -- Missile Seeker Tone Volume Knob {1,0,1} + [260] = "%0.2f", -- Missile/Bomb Release Selector Switch PORT(Left)/STARB-BOTH(Right for Missiles/Both) {1,0,1} + [267] = "%0.2f", -- Arm/Safe Bombs Emergency Jettison Switch Cover OPEN/CLOSE {1,0,1} + [268] = "%0.2f", -- Arm/Safe Bombs Emergency Jettison Switch LIVE/BLANK {1,0,1} + [269] = "%0.2f", -- Emergency Jettison Switch Cover OPEN/CLOSE {1,0,1} + [270] = "%0.2f", -- Emergency Jettison Switch ON/OFF {1,0,1} + [271] = "%0.2f", -- Rockets Firing Mode Selector Switch AUT./2RS/4RS {0.1,0.1,0.3} + [272] = "%0.2f", -- Fire Warning Signal Test Switch I/OFF/II {1,0,1} + [273] = "%0.2f", -- EKSR-46 Signal Flare Dispenser Power Switch ON/OFF {1,0,1} + [274] = "%0.2f", -- EKSR-46 Yellow Signal Flare Launch Button {1,0,1} + [275] = "%0.2f", -- EKSR-46 Green Signal Flare Launch Button {1,0,1} + [276] = "%0.2f", -- EKSR-46 Red Signal Flare Launch Button {1,0,1} + [277] = "%0.2f", -- EKSR-46 White Signal Flare Launch Button {1,0,1} + [281] = "%0.2f", -- Flaps Flight Position (0 degrees) Button {1,0,1} + [282] = "%0.2f", -- Flaps Takeoff Position (25 degrees) Button {1,0,1} + [283] = "%0.2f", -- Flaps Landing Position (44 degrees) Button {1,0,1} + [284] = "%0.2f", -- R-832M Preset Channel Selector Knob {0.05,0,0.95} + [285] = "%0.2f", -- Forward Canopy Lock Handle {1,0,1} + [286] = "%0.2f", -- Squelch Switch ON/OFF {1,0,1} + [287] = "%0.2f", -- Radio Control Switch - Flip switch to take control {1,0,1} + [288] = "%0.2f", -- Intercom Volume Knob {0.5,0,0.8} + [289] = "%0.2f", -- Radio Volume Knob {0.5,0,0.8} + [290] = "%0.2f", -- Reserve Intercom Switch ON/OFF {1,0,1} + [291] = "%0.2f", -- ADF Audio Switch ADF/OFF {1,0,1} + [292] = "%0.2f", -- Standby (Left) Pitot Tube Heating Off Button - Push to turn heating off {1,0,1} + [293] = "%0.2f", -- Main (Right) Pitot Tube Heating Off Button - Push to turn heating off {1,0,1} + [294] = "%0.2f", -- Standby (Left) Pitot Tube Heating Button - Push to turn heating on {1,0,1} + [295] = "%0.2f", -- Main (Right) Pitot Tube Heating Button - Push to turn heating on {1,0,1} + [296] = "%0.2f", -- Fuel Shut-Off Lever {1,0,1} + [297] = "%0.2f", -- RSBN Listen Callsign Button - Push to listen {1,0,1} + [298] = "%0.2f", -- SARPP Flight Recorder ON/OFF {1,0,1} + [300] = "%0.2f", -- or Battery Switch + [301] = "%0.2f", -- Generator 1 Switch + [302] = "%0.2f", -- Generator 2 Switch + [303] = "%0.2f", -- Ac Pwr Emerg Switch + [304] = "%0.2f", -- Diluter Demand Switch 100% / MIX {1,0,1} + [306] = "%0.2f", -- Oxygen Supply Valve (CLOSE - CW OPEN - CCW) {0,0,1} + [307] = "%0.2f", -- Helmet Ventilation Switch ON/OFF {1,0,1} + [308] = "%0.2f", -- Helmet Heating Mode Switch AUTO/OFF/ON {0.5,0,1} + [309] = "%0.2f", -- Helmet Visor Quick Heating Button - Push to heat {1,0,1} + [310] = "%0.2f", -- Helmet Heating Temperature Rheostat {0.5,0,1} + [311] = "%0.2f", -- Taxi and Landing Lights (Searchlights) Control Switch TAXI/OFF/LANDING {1,-1,1} + [312] = "%0.2f", -- Stop Turbo Switch Cover Open/Close {1,0,1} + [313] = "%0.2f", -- Stop Turbo Switch ON/OFF {1,0,1} + [314] = "%0.2f", -- Turbo Button Cover Open/Close {1,0,1} + [315] = "%0.2f", -- Turbo Button {1,0,1} + [317] = "%0.2f", -- Stop Engine Switch Cover Open/Close {1,0,1} + [318] = "%0.2f", -- Stop Engine Switch {1,0,1} + [319] = "%0.2f", -- Emergency Fuel Switch Cover Open/Close {1,0,1} + [320] = "%0.2f", -- Emergency Fuel Switch {1,0,1} + [321] = "%0.2f", -- Engine Start Mode Switch Cover Open/Close {1,0,1} + [322] = "%0.2f", -- Engine Start Mode Switch START/FALSE START/COLD CRANKING {0.1,0,0.2} + [323] = "%0.2f", -- RT-12 JPT Regulator Manual Disable Switch Cover OPEN/CLOSE {1,0,1} + [324] = "%0.2f", -- RT-12 JPT Regulator Manual Disable Switch RT-12 DISABLED/RT-12 ENABLED {1,0,1} + [325] = "%0.2f", -- Engine Button Cover Open/Close {1,0,1} + [326] = "%0.2f", -- Engine Button {1,0,1} + [327] = "%0.2f", -- Fire Extinguish Button Cover OPEN/CLOSE {1,0,1} + [328] = "%0.2f", -- Fire Extinguish Button - Push to extinguish {1,0,1} + [329] = "%0.2f", -- IV-300 Engine Vibration Test Button - Push to test {1,0,1} + [330] = "%0.2f", -- Instrument Lighting Switch Red/OFF/White {1,-1,1} + [331] = "%0.2f", -- Instrument Lights Intensity Knob {0.5,0.1,0.9} + + [333] = "%0.2f", -- Pitot Tube Selector Lever STBY(Left)/MAIN(Right) {1,0,1} + [334] = "%0.2f", -- Parking Brake Lever Flag - Push to remove parking brake {0,0,1} + [335] = "%0.2f", -- Mech clock left lever {1,0,1} + [336] = "%0.2f", -- Mech clock left lever {0.04,0,1} + [337] = "%0.2f", -- Mech clock right lever {1,0,1} + [338] = "%0.2f", -- Mech clock right lever {0,0,0.3} + [367] = "%0.2f", -- KPP-1273K Attitude Director Indicator (ADI) Cage Button {1,0,1} + [376] = "%0.2f", -- KPP-1273K Attitude Director Indicator (ADI) Pitch Trim Knob {0,-1,1} + [385] = "%0.2f", -- HSI Course set knob {0,0,1} + [394] = "%0.2f", -- Baro pressure QFE knob {1,0,1} + [398] = "%0.2f", -- RV-5M Radio Altimeter Test Button/Decision Height Knob {1,0,1} + [399] = "%0.2f", -- RV-5M Radio Altimeter Test Button/Decision Height Knob {0.1,0,1} + [412] = "%0.2f", -- Mech clock left lever {1,0,1} + [413] = "%0.2f", -- Mech clock left lever {0.04,0,1} + [414] = "%0.2f", -- Mech clock right lever {1,0,1} + [415] = "%0.2f", -- Mech clock right lever {0,0,0.3} + [419] = "%0.2f", -- Variometer adjustment knob {1,0,1} + [437] = "%0.2f", -- Landing Gear Control Lever {0.5,-0.5,1} + [440] = "%0.2f", -- RKL-41 ADF Outer-Inner Beacon (Far-Near NDB) Switch {1,0,1} + [444] = "%0.2f", -- MC Synchronization Button - Push to synchronize (level flight only) {1,0,1} + [456] = "%0.2f", -- Full Pressure Failure Lever ON/STBY/FAILURE {0.5,0,1} + [457] = "%0.2f", -- Static Pressure Failure Lever ON/STBY/FAILURE {0.5,0,1} + [458] = "%0.2f", -- GMK Failure {1,0,1} + [459] = "%0.2f", -- ARK Failure {1,0,1} + [460] = "%0.2f", -- AGD Pitch Failure {1,0,1} + [461] = "%0.2f", -- AGD Bank Failure {1,0,1} + [465] = "%0.2f", -- Flaps Flight Position (0 degrees) Button {1,0,1} + [466] = "%0.2f", -- Flaps Takeoff Position (25 degrees) Button {1,0,1} + [467] = "%0.2f", -- Flaps Landing Position (44 degrees) Button {1,0,1} + [468] = "%0.2f", -- R-832M Preset Channel Selector Knob {0.05,0,0.95} + [469] = "%0.2f", -- Squelch Switch ON/OFF {1,0,1} + [470] = "%0.2f", -- Radio Control Switch - Flip switch to take control {1,0,1} + [471] = "%0.2f", -- Intercom Volume Knob {0.5,0,0.8} + [472] = "%0.2f", -- Radio Volume Knob {0.5,0,0.8} + [473] = "%0.2f", -- Reserve Intercom Switch ON/OFF {1,0,1} + [474] = "%0.2f", -- ADF Audio Switch ADF/OFF {1,0,1} + [475] = "%0.2f", -- Fuel Shut-Off Lever {1,0,1} + [479] = "%0.2f", -- Emergency Oxygen Switch ON/OFF {1,0,1} + [480] = "%0.2f", -- Diluter Demand Switch 100% / MIX {1,0,1} + [482] = "%0.2f", -- Oxygen Supply Valve (CLOSE - CW OPEN - CCW) {0,0,1} + [484] = "%0.2f", -- Oxygen Interconnaction Valve (CLOSE - CW OPEN - CCW) {0,0,1} + [485] = "%0.2f", -- Rearward Canopy Lock Handle {1,0,1} + [486] = "%0.2f", -- Taxi and Landing Lights (Searchlights) Control Switch TAXI/OFF/LANDING {1,-1,1} + [487] = "%0.2f", -- Turbo Button Cover Open/Close {1,0,1} + [488] = "%0.2f", -- Turbo Button {1,0,1} + [489] = "%0.2f", -- Stop Engine Switch Cover Open/Close {1,0,1} + [490] = "%0.2f", -- Stop Engine Switch {1,0,1} + [491] = "%0.2f", -- Emergency Fuel Switch Cover Open/Close {1,0,1} + [492] = "%0.2f", -- Emergency Fuel Switch {1,0,1} + [493] = "%0.2f", -- Engine Button Cover Open/Close {1,0,1} + [494] = "%0.2f", -- Engine Button {1,0,1} + [495] = "%0.2f", -- Fire Extinguish Button Cover OPEN/CLOSE {1,0,1} + [496] = "%0.2f", -- Fire Extinguish Button - Push to extinguish {1,0,1} + [497] = "%0.2f", -- Instrument Lighting Switch Red/OFF/White {1,-1,1} + [498] = "%0.2f", -- Instrument Lights Intensity Knob {0.5,0.1,0.9} + [499] = "%0.2f", -- EGT Indicator Switch FRONT/REAR {1,0,1} + [502] = "%0.2f", -- Net Switch ON/OFF {1,0,1} + [503] = "%0.2f", -- CB Seat ON/OFF {1,0,1} + [504] = "%0.2f", -- CB Signal ON/OFF {1,0,1} + [505] = "%0.2f", -- CB Weapon Switch ON/OFF {1,0,1} + [506] = "%0.2f", -- Emergency Jettison Switch Cover OPEN/CLOSE {1,0,1} + [507] = "%0.2f", -- Emergency Jettison Switch ON/OFF {1,0,1} + [508] = "%0.2f", -- Arm/Safe Bombs Emergency Jettison Switch Cover OPEN/CLOSE {1,0,1} + [509] = "%0.2f", -- Arm/Safe Bombs Emergency Jettison Switch LIVE/BOMBS/BLANK {1,-1,1} + [510] = "%0.2f", -- Conditioning Shutoff Switch Cover OPEN/CLOSE {1,0,1} + [511] = "%0.2f", -- Conditioning Shutoff Switch OPEN/FRONT PILOT CONTROL/CLOSE {1,-1,1} + [512] = "%0.2f", -- CB Ground Intercom ON/OFF {1,0,1} + [514] = "%0.2f", -- RKL-41 ADF Volume Knob {1,,} + [515] = "%0.2f", -- RKL-41 ADF Control Switch TAKE CONTROL/HAND OVER CONTROL {1,0,1} + [516] = "%0.2f", -- RKL-41 ADF Mode Switch TLF(A3)/TLG(A1 - A2) {1,0,1} + [517] = "%0.2f", -- RKL-41 ADF Function Selector Switch OFF/COMP(AUTO)/COMP(MAN)/ANT/LOOP {0.1,0,0.4} + [518] = "%0.2f", -- RKL-41 ADF Brightness Knob {1,,} + [519] = "%0.2f", -- RKL-41 ADF Loop Switch LEFT/OFF/RIGHT {1,0,1} + [520] = "%0.2f", -- RKL-41 ADF Far NDB 100kHz rotary {0.0588,0,0.938} + [521] = "%0.2f", -- RKL-41 ADF Far NDB 10kHz rotary {0.1,0,0.9} + [522] = "%0.2f", -- RKL-41 ADF Far NDB Frequency Tune {0,0,1} + [523] = "%0.2f", -- RKL-41 ADF Near NDB 100kHz rotary {0.0588,0,0.938} + [524] = "%0.2f", -- RKL-41 ADF Near NDB 10kHz rotary {0.1,0,0.9} + [525] = "%0.2f", -- RKL-41 ADF Near NDB Frequency Tune {0,0,1} + [526] = "%0.2f", -- Course Accordance {1,0,1} + [527] = "%0.2f", -- RSBN Emergency Landing Switch ON/OFF {1,0,1} + [532] = "%0.2f", -- Magnetic Declination set knob {0,0,1} + [533] = "%0.2f", -- Emergency Landing Gear Extension Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [534] = "%0.2f", -- Emergency Flaps Extension Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [535] = "%0.2f", -- RAT (Emergency Generator) Emergency Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [536] = "%0.2f", -- Main and Emergency Hydraulic Systems Interconnection Lever FORWARD(OFF)/BACKWARD(ON) {1,0,1} + [537] = "%0.2f", -- Warning-Light Intensity Knob {1,0,1} + [538] = "%0.2f", -- Warning-Light Check Button - Push to check {1,0,1} + [539] = "%0.2f", -- Rearward Canopy Emergency Jettison Handle {1,0,1} + [546] = "%0.2f", -- Intercom Button {1,0,1} + [547] = "%0.2f", -- Radio Button {1,0,1} + [548] = "%0.2f", -- Air Brake Switch {1,0,1} + [549] = "%0.2f", -- Throttle Limiter {1,0,1} + [569] = "%0.2f", -- Variometer adjustment knob {1,0,1} + [627] = "%0.2f", -- Panel Visor Extend {1,0,1} + [998] = "%0.2f", -- Canopy Handle {1,0,1} + [999] = "%0.2f", -- Canopy Handle {1,0,1} + [1000] = "%0.2f", -- Instrument Flight Practice Hood Control Handle EXTEND/RETRACT {1,0,1} + +} + +-- Notes +-- 335ish is Flight Director panel +-- 476 master arm +-- 488 weapon station 1 to 6 button press + + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) + + ExportScript.RadiosVox(mainPanelDevice) + ExportScript.RadiosNav(mainPanelDevice) + ExportScript.GpsUnit(mainPanelDevice) + ExportScript.NavUnit(mainPanelDevice) + ExportScript.WeaponPanel(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end + +function ExportScript.RadiosVox(mainPanelDevice) + + -- TODO: Explore "set_is_receiving" + -- TODO: Explore "is_on_guard" + + local RadioUhfPlt = GetDevice(6) + ExportScript.Tools.SendData(3000, ExportScript.Tools.RoundFreqeuncy((RadioUhfPlt:get_frequency()/1000000))) + -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + + local RadioVhfPlt = GetDevice(7) + ExportScript.Tools.SendData(3001, ExportScript.Tools.RoundFreqeuncy((RadioVhfPlt:get_frequency()/1000000))) + + local RadioUhfCplt = GetDevice(9) + ExportScript.Tools.SendData(3002, ExportScript.Tools.RoundFreqeuncy((RadioUhfCplt:get_frequency()/1000000))) + + local RadioVhfCplt = GetDevice(10) + ExportScript.Tools.SendData(3003, ExportScript.Tools.RoundFreqeuncy((RadioVhfCplt:get_frequency()/1000000))) + + local FwdRfrDisplay1 = list_cockpit_params():match("FwdRfrDisplay1:([^\n]+)") + FwdRfrDisplay1 = FwdRfrDisplay1:gsub('"','') + FwdRfrDisplay1 = FwdRfrDisplay1:gsub("%s+", "") + ExportScript.Tools.SendData(3004, FwdRfrDisplay1) + + local FwdRfrDisplay2 = list_cockpit_params():match("FwdRfrDisplay2:([^\n]+)") + FwdRfrDisplay2 = FwdRfrDisplay2:gsub('"','') + FwdRfrDisplay2 = FwdRfrDisplay2:gsub("%s+", "") + ExportScript.Tools.SendData(3005, FwdRfrDisplay2) + + local AftRfrDisplay1 = list_cockpit_params():match("AftRfrDisplay1:([^\n]+)") + AftRfrDisplay1 = AftRfrDisplay1:gsub('"','') + AftRfrDisplay1 = AftRfrDisplay1:gsub("%s+", "") + ExportScript.Tools.SendData(3006, AftRfrDisplay1) + + local AftRfrDisplay2 = list_cockpit_params():match("AftRfrDisplay2:([^\n]+)") + AftRfrDisplay2 = AftRfrDisplay2:gsub('"','') + AftRfrDisplay2 = AftRfrDisplay2:gsub("%s+", "") + ExportScript.Tools.SendData(3007, AftRfrDisplay2) + +end + + + +function ExportScript.RadiosNav(mainPanelDevice) + + -- TACAN + + -- VOR ILS + + -- IFF + + local mode1 = GetDevice(16) + ExportScript.Tools.SendData(4004, mode1:get_mode1_code()) + + local mode3 = GetDevice(16) + ExportScript.Tools.SendData(4005, mode3:get_mode3_code()) + +end + +function ExportScript.GpsUnit(mainPanelDevice) + + local FwdRduDisplay1 = list_cockpit_params():match("FwdRduDisplay1:([^\n]+)") + FwdRduDisplay1 = FwdRduDisplay1:gsub('"','') + local FwdRduDisplay2 = list_cockpit_params():match("FwdRduDisplay2:([^\n]+)") + FwdRduDisplay2 = FwdRduDisplay2:gsub('"','') + FwdRduDisplay2 = FwdRduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + ExportScript.Tools.SendData(3008, FwdRduDisplay1 .. "\n" .. FwdRduDisplay2) + + + local AftRduDisplay1 = list_cockpit_params():match("AftRduDisplay1:([^\n]+)") + AftRduDisplay1 = AftRduDisplay1:gsub('"','') + local AftRduDisplay2 = list_cockpit_params():match("AftRduDisplay2:([^\n]+)") + AftRduDisplay2 = AftRduDisplay2:gsub('"','') + AftRduDisplay2 = AftRduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + ExportScript.Tools.SendData(3009, AftRduDisplay1 .. "\n" .. AftRduDisplay2) +end + +function ExportScript.NavUnit(mainPanelDevice) + + -- TODO: if ) then downArrow? + + local FwdCduDisplay1 = list_cockpit_params():match("FwdCduDisplay1:([^\n]+)") + FwdCduDisplay1 = FwdCduDisplay1:gsub('"','') + FwdCduDisplay1 = FwdCduDisplay1:gsub(':','¦') -- because for DCS-Interface ":" is a break + local FwdCduDisplay2 = list_cockpit_params():match("FwdCduDisplay2:([^\n]+)") + FwdCduDisplay2 = FwdCduDisplay2:gsub('"','') + FwdCduDisplay2 = FwdCduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + local FwdCduDisplay3 = list_cockpit_params():match("FwdCduDisplay3:([^\n]+)") + FwdCduDisplay3 = FwdCduDisplay3:gsub('"','') + FwdCduDisplay3 = FwdCduDisplay3:gsub(':','¦') -- because for DCS-Interface ":" is a break + local FwdCduDisplay4 = list_cockpit_params():match("FwdCduDisplay4:([^\n]+)") + FwdCduDisplay4 = FwdCduDisplay4:gsub('"','') + FwdCduDisplay4 = FwdCduDisplay4:gsub(':','¦') -- because for DCS-Interface ":" is a break + + ExportScript.Tools.SendData(3010, FwdCduDisplay1 .. "\n" .. FwdCduDisplay2 .. "\n" .. FwdCduDisplay3 .. "\n" .. FwdCduDisplay4) + + local AftCduDisplay1 = list_cockpit_params():match("AftCduDisplay1:([^\n]+)") + AftCduDisplay1 = AftCduDisplay1:gsub('"','') + AftCduDisplay1 = AftCduDisplay1:gsub(':','¦') -- because for DCS-Interface ":" is a break + local AftCduDisplay2 = list_cockpit_params():match("AftCduDisplay2:([^\n]+)") + AftCduDisplay2 = AftCduDisplay2:gsub('"','') + AftCduDisplay2 = AftCduDisplay2:gsub(':','¦') -- because for DCS-Interface ":" is a break + local AftCduDisplay3 = list_cockpit_params():match("AftCduDisplay3:([^\n]+)") + AftCduDisplay3 = AftCduDisplay3:gsub('"','') + AftCduDisplay3 = AftCduDisplay3:gsub(':','¦') -- because for DCS-Interface ":" is a break + local AftCduDisplay4 = list_cockpit_params():match("AftCduDisplay4:([^\n]+)") + AftCduDisplay4 = AftCduDisplay4:gsub('"','') + AftCduDisplay4 = AftCduDisplay4:gsub(':','¦') -- because for DCS-Interface ":" is a break + + ExportScript.Tools.SendData(3011, AftCduDisplay1 .. "\n" .. AftCduDisplay2 .. "\n" .. AftCduDisplay3 .. "\n" .. AftCduDisplay4) + +end + +function ExportScript.WeaponPanel(mainPanelDevice) + +-- TODO: Add emoji dot arm indicator + + --[64] = "%0.2f", -- Weapon Selector Window 6 + --[65] = "%0.2f", -- Weapon Selector Window 5 + --[66] = "%0.2f", -- Weapon Selector Window 3 + --[67] = "%0.2f", -- Weapon Selector Window 4 + --[68] = "%0.2f", -- Weapon Selector Window 2 + --[69] = "%0.2f", -- Weapon Selector Window 1 + + -- 0.00 = RKT + -- 0.10 = BOMB + -- 0.20 = GUN + -- 0.30 = DISP + -- 0.40 = EMPTY + -- 0.50 = TANK + + --local KollsmanWindowReadout_value1 = string.format("%.f",mainPanelDevice:get_argument_value(56) * 10) + local weaponSelect1 = round(mainPanelDevice:get_argument_value(69),2) + local weaponSelect1_text = "NULL" + + if weaponSelect1 <= 0.00 then + weaponSelect1_text = "RKT" + elseif weaponSelect1 <= 0.10 then + weaponSelect1_text = "BOMB" + elseif weaponSelect1 <= 0.20 then + weaponSelect1_text = "GUN" + elseif weaponSelect1 <= 0.30 then + weaponSelect1_text = "DISP" + elseif weaponSelect1 <= 0.40 then + weaponSelect1_text = "EMPTY" + elseif weaponSelect1 <= 0.50 then + weaponSelect1_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3012, weaponSelect1_text) + + + + local weaponSelect2 = round(mainPanelDevice:get_argument_value(68),2) + local weaponSelect2_text = "NULL" + + if weaponSelect2 <= 0.00 then + weaponSelect2_text = "RKT" + elseif weaponSelect2 <= 0.10 then + weaponSelect2_text = "BOMB" + elseif weaponSelect2 <= 0.20 then + weaponSelect2_text = "GUN" + elseif weaponSelect2 <= 0.30 then + weaponSelect2_text = "DISP" + elseif weaponSelect2 <= 0.40 then + weaponSelect2_text = "EMPTY" + elseif weaponSelect2 <= 0.50 then + weaponSelect2_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3013, weaponSelect2_text) + + + local weaponSelect3 = round(mainPanelDevice:get_argument_value(67),2) + local weaponSelect3_text = "NULL" + + if weaponSelect3 <= 0.00 then + weaponSelect3_text = "RKT" + elseif weaponSelect3 <= 0.10 then + weaponSelect3_text = "BOMB" + elseif weaponSelect3 <= 0.20 then + weaponSelect3_text = "GUN" + elseif weaponSelect3 <= 0.30 then + weaponSelect3_text = "DISP" + elseif weaponSelect3 <= 0.40 then + weaponSelect3_text = "EMPTY" + elseif weaponSelect3 <= 0.50 then + weaponSelect3_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3014, weaponSelect3_text) + + + local weaponSelect4 = round(mainPanelDevice:get_argument_value(66),2) + local weaponSelect4_text = "NULL" + + if weaponSelect4 <= 0.00 then + weaponSelect4_text = "RKT" + elseif weaponSelect4 <= 0.10 then + weaponSelect4_text = "BOMB" + elseif weaponSelect4 <= 0.20 then + weaponSelect4_text = "GUN" + elseif weaponSelect4 <= 0.30 then + weaponSelect4_text = "DISP" + elseif weaponSelect4 <= 0.40 then + weaponSelect4_text = "EMPTY" + elseif weaponSelect4 <= 0.50 then + weaponSelect4_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3015, weaponSelect4_text) + + + local weaponSelect5 = round(mainPanelDevice:get_argument_value(65),2) + local weaponSelect5_text = "NULL" + + if weaponSelect5 <= 0.00 then + weaponSelect5_text = "RKT" + elseif weaponSelect5 <= 0.10 then + weaponSelect5_text = "BOMB" + elseif weaponSelect5 <= 0.20 then + weaponSelect5_text = "GUN" + elseif weaponSelect5 <= 0.30 then + weaponSelect5_text = "DISP" + elseif weaponSelect5 <= 0.40 then + weaponSelect5_text = "EMPTY" + elseif weaponSelect5 <= 0.50 then + weaponSelect5_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3016, weaponSelect5_text) + + + local weaponSelect6 = round(mainPanelDevice:get_argument_value(64),2) + local weaponSelect6_text = "NULL" + + if weaponSelect6 <= 0.00 then + weaponSelect6_text = "RKT" + elseif weaponSelect6 <= 0.10 then + weaponSelect6_text = "BOMB" + elseif weaponSelect6 <= 0.20 then + weaponSelect6_text = "GUN" + elseif weaponSelect6 <= 0.30 then + weaponSelect6_text = "DISP" + elseif weaponSelect6 <= 0.40 then + weaponSelect6_text = "EMPTY" + elseif weaponSelect6 <= 0.50 then + weaponSelect6_text = "TANK" + else + -- do nothing + end + + ExportScript.Tools.SendData(3017, weaponSelect6_text) + + -- TODO: Consider Making two tiles with three indicators each + -- TODO: Consider making the background urn green when armed + -- TODO: Consider a three/four color system with Master arm and the weapon select light + -- TODO: Consider adding S1 above the weaponSelect_text + +end + +------------------------------ +-- General Helper Functions -- +------------------------------ + +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 diff --git a/Scripts/DCS-ExportScript/ExportsModules/Mi-24P.lua b/Scripts/DCS-ExportScript/ExportsModules/Mi-24P.lua new file mode 100644 index 00000000..0c5b90da --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Mi-24P.lua @@ -0,0 +1,1628 @@ +-- Mi-24P Export + +--[[ +-- DCS Version 2.7.3.8494 +-- TODO: +-- Split the devices into headered sections +-- Split the [DeviceID]s into their proper ConfigEveryFrameArguments vs ConfigArguments + +-- Ideas +-- Course Readout +-- Course over ground readout +]]-- + +ExportScript.FoundDCSModule = true +ExportScript.Version.Mi24P = "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 '0.0000' + [19] = "%0.1f", <- floating-point number with 1 digit after point '0.5' + [129] = "%1d", <- decimal number '1' + [5] = "%.f", <- floating point number rounded to a decimal number +]] + + -- Random Unsorted + [19] = "%.4f", -- Pilot Altimeter Thousands 0 = 0, 0.5 = 500, 1.0 = 0 + [20] = "%.4f", -- Pilot Altimeter Hundreds 0 = 0, 0.5 = 500, 1.0 = 0 + [25] = "%.4f", -- Pilot HSI 0 = 0, 0.5 = 180, 1.0 = 360 + [27] = "%.4f", -- Pilot HSI Needle 2 0 = 0, 0.5 = 180, 1.0 = 360 + [28] = "%.4f", -- Pilot HSI Needle 1 0 = 0, 0.5 = 180, 1.0 = 360 + [40] = "%.4f", -- Pilot ENG 1 RPM 0 = 0%, 0.5 = 180, 1.0 = 110% + [41] = "%.4f", -- Pilot ENG 2 RPM 0 = 0%, 0.5 = 180, 1.0 = 110% + [42] = "%.4f", -- Pilot ROTOR 1 RPM 0 = 0%, 0.5 = 180, 1.0 = 110% + [95] = "%.4f", -- Pilot VSI Needle -1 = -30, 1 = 30 + + -- Lights + [11] = "%.4f", -- Left Gyro Light + [13] = "%.4f", -- Right Gyro Light + + [63] = "%.4f", -- Far Right Lower Panel Upper Light 1 + [64] = "%.4f", -- Far Right Lower Panel Upper Light 2 + [72] = "%.4f", -- Far Right Lower Panel Middle Light + + [79] = "%.4f", -- Far Right Lower Panel Light + [81] = "%.4f", -- Far Right Lower Panel Light + [82] = "%.4f", -- Far Right Lower Panel Light + [84] = "%.4f", -- Far Right Lower Panel Light + [86] = "%.4f", -- Far Right Lower Panel Light + [94] = "%.4f", -- Far Right Lower Panel Light + + --about 150-174 is the caution panel left to right, top to bottom range 0 to 1 + [150] = "%.4f", -- Cauton Panel ICING + [151] = "%.4f", -- Cauton Panel FIRE + [152] = "%.4f", -- Cauton Panel TANK 1 120 LITERS REMAIN + [153] = "%.4f", -- Cauton Panel TANK 2 120 LITERS REMAIN + [154] = "%.4f", -- Cauton Panel MAIN G/B LOW OIL PRESS + [155] = "%.4f", -- Cauton Panel ATTENETION TO ELECT CONT PLANE + [156] = "%.4f", -- Cauton Panel Anti-Ice Auto Test + [157] = "%.4f", -- Cauton Panel Limit Maneuver + [158] = "%.4f", -- Cauton Panel Chips in GRBX + + [159] = "%.4f", -- Cauton Panel LH ENG High Vibration + [160] = "%.4f", -- Cauton Panel RH ENG High Vibration + [161] = "%.4f", -- Cauton Panel LH ENG High TEMP + [162] = "%.4f", -- Cauton Panel RH ENG High TEMP + + [163] = "%.4f", -- Cauton Panel ANTI ICE FAIL + [164] = "%.4f", -- Cauton Panel HIGH CABIN PRESS + [165] = "%.4f", -- Cauton Panel HIGH PEDAL PUSH RATE + + [166] = "%.4f", -- Cauton Panel SHUT DOEN LH ENG + [167] = "%.4f", -- Cauton Panel SHUT DOEN RH ENG + [168] = "%.4f", -- Cauton Panel CHIPS IN LH ENG + [169] = "%.4f", -- Cauton Panel CHIPS IN RH ENG + + [170] = "%.4f", -- Cauton Panel SELECT STBY CODE + [171] = "%.4f", -- Cauton Panel XPDR FAIL + [172] = "%.4f", -- Cauton Panel HIGH CABIN PRESS + + [173] = "%.4f", -- Cauton Panel SPEED HOLD + [174] = "%.4f", -- Cauton Panel MAP LIMIT + + [175] = "%.4f", -- Cauton Panel LH ENG DUST PROT ON + [176] = "%.4f", -- Cauton Panel RH ENG DUST PROT ON + + [177] = "%.4f", -- Cauton Panel CONTROL TO OPERATOR + + [197] = "%.4f", -- Right quarter panel light + [200] = "%.4f", -- Right quarter panel light + [201] = "%.4f", -- Right quarter panel light + [202] = "%.4f", -- Right quarter panel light + [203] = "%.4f", -- Right quarter panel light + [204] = "%.4f", -- Right quarter panel light + [205] = "%.4f", -- Right quarter panel light + [206] = "%.4f", -- Right quarter panel light + + [209] = "%.4f", -- Left quarter panel light + [210] = "%.4f", -- Left quarter panel light + [211] = "%.4f", -- Left quarter panel light + [212] = "%.4f", -- Left quarter panel light + + [220] = "%.4f", -- Left quarter panel light + [221] = "%.4f", -- Left quarter panel light + [222] = "%.4f", -- Left quarter panel light + + [225] = "%.4f", -- Landing Light Up Left Brightness + [226] = "%.4f", -- Landing Light Up Center Brightness + [227] = "%.4f", -- Landing Light Up Right Brightness + [229] = "%.4f", -- Landing Light Down Left Brightness + [230] = "%.4f", -- Landing Light Down Center Brightness + [231] = "%.4f", -- Landing Light Down Right Brightness + + [278] = "%.4f", -- 1st SAS Off Light Brightness + [279] = "%.4f", -- 1st SAS On Light Brightness + [280] = "%.4f", -- 2st SAS Off Light Brightness + [281] = "%.4f", -- 2st SAS On Light Brightness + [284] = "%.4f", -- Radar Altimeter Yellow button Brightness + [291] = "%.4f", -- yellow warning above the gyro red warnings + + [293] = "%.4f", -- 3st SAS Off Light Brightness + [294] = "%.4f", -- 3st SAS On Light Brightness + [295] = "%.4f", -- 4st SAS Off Light Brightness + [296] = "%.4f", -- 4st SAS On Light Brightness + [297] = "%.4f", -- Hover Mode Light + [298] = "%.4f", -- hover/route mode off light + [299] = "%.4f", -- route mode light + [302] = "%.4f", -- weird ap button/switch light + [303] = "%.4f", -- Altitude Mode Red + [304] = "%.4f", -- Altitude Mode Green + + [323] = "%.4f", -- Left Mirror On at 1 + + [338] = "%.4f", -- M24 (rear left) Radio Channel Indicator + [390] = "%.4f", -- Far Left Panel Light 2 + [391] = "%.4f", -- Far Left Panel Light 3 + [393] = "%.4f", -- Far Left Panel Light 4 + -- more far left lights up to 410 + + -- [470] to [481] are all left side wall lights + + [508] = "%.4f", -- R-828 Left Knee green light + + [532] = "%.4f", -- Weapon Panel Right 4pack 1 + [533] = "%.4f", -- Weapon Panel Right 4pack 2 + [534] = "%.4f", -- Weapon Panel Right 4pack 3 + [535] = "%.4f", -- Weapon Panel Right 4pack 4 + + [539] = "%.4f", -- Weapon Panel Station Indicator 4 + [540] = "%.4f", -- Weapon Panel Station Indicator 3 + [543] = "%.4f", -- Weapon Panel Station Indicator 2 + [544] = "%.4f", -- Weapon Panel Station Indicator 1 + + [584] = "%.4f", -- Weapon Panel Left Bottom Light + + [559] = "%0.1f", -- UFC Selected Weapon 1 + [560] = "%0.1f", -- UFC Selected Weapon 2 + [561] = "%0.1f", -- UFC Selected Weapon 4 + [562] = "%0.1f", -- UFC Selected Weapon 5 + [563] = "%0.1f", -- UFC Selected Weapon 6 + + [754] = "%.4f", -- Operator door light + [760] = "%.4f", -- Operator Green light above door light + [767] = "%.4f", -- Operator Green light right of door light + + [776] = "%.4f", -- Operator airspeed needle + [777] = "%.4f", -- Operator adi lower left flag + [778] = "%.4f", -- Operator adi upper left flag + [779] = "%.4f", -- Operator adi upper right flag + [780] = "%.4f", -- Operator adi pitch + [781] = "%.4f", -- Operator adi lower right flag + [783] = "%.4f", -- Operator adi roll + [784] = "%.4f", -- Operator adi ball -1 to 1 + [785] = "%.4f", -- Operator adi FD left/right + [785] = "%.4f", -- Operator adi FD up/down + + [789] = "%.4f", -- Operator altimeter small hand 0 to 1 + + [817] = "%.4f", -- Doppler system on light + + [823] = "%.4f", -- Emergency Gear Panel 1 + [824] = "%.4f", -- Emergency Gear Panel 2 + [825] = "%.4f", -- Emergency Gear Panel 3 + + [831] = "%.4f", -- Doppler Hover Flag Light + + [881] = "%.4f", -- Overhead Light white + + + + [966] = "%.4f", -- Snars Flares Left desp light + [967] = "%.4f", -- Snars Flares right desp light + + [976] = "%.4f", -- Overhead Light Red + + [975] = "%.4f", -- doppler left/right green light + + [977] = "%0.1f", -- Map Light + + [991] = "%.4f", -- RWR Red Light 1 + [992] = "%.4f", -- RWR Red Light 2 + [993] = "%.4f", -- RWR Red Light 3 + [994] = "%.4f", -- RWR Red Light 4 + + [995] = "%.4f", -- RWR White Light 1 + [996] = "%.4f", -- RWR White Light 2 + [997] = "%.4f", -- RWR White Light 3 + [998] = "%.4f", -- RWR White Light 4 + + -- Not lights + [17] = "%.4f", -- G Meter Needle + [27] = "%.4f", -- HSI Course Needle 0 to 1 + [28] = "%.4f", -- Navaid Bearing Needle 0 to 1 + + [32] = "%.4f", -- Radar Altimeter needle 0 to 1 + [33] = "%.4f", -- Radar Altimeter bug 0 to 1 + [36] = "%.4f", -- Blade pitch needle 0 to 1 + + [37] = "%.4f", -- Engine Left Power 0 to 1 + [38] = "%.4f", -- Engine Right Power 0 to 1 + [39] = "%.4f", -- Engine Power Meter 0 to 1 + + [37] = "%.4f", -- Engine 1 Power Needle 0 to 1 + [38] = "%.4f", -- Engine 2 Power Needle 0 to 1 + + [42] = "%.4f", -- Engine 1 Torque Needle 0 to 1 + + [43] = "%.4f", -- Engine Temp Needle 1 0 to 1 + [44] = "%.4f", -- Engine Temp Needle 2 0 to 1 + [45] = "%.4f", -- Engine Temp Needle 3 0 to 1 + [46] = "%.4f", -- Engine Temp Needle 4 0 to 1 + + [49] = "%.4f", -- Clock Hands 1 + [50] = "%.4f", -- Clock Hands 2 + [51] = "%.4f", -- Clock Hands 3 + [52] = "%.4f", -- Clock Hands 4 + [53] = "%.4f", -- Clock Hands 5 + [54] = "%.4f", -- Clock Hands 6 + [55] = "%.4f", -- Clock Hands 7 + + [179] = "%.4f", -- Right quarterpanel Engene Needles + [180] = "%.4f", -- Right quarterpanel Engene Needles + [181] = "%.4f", -- Right quarterpanel Engene Needles + [182] = "%.4f", -- Right quarterpanel Engene Needles + [183] = "%.4f", -- Right quarterpanel Engene Needles + [184] = "%.4f", -- Right quarterpanel Engene Needles + [185] = "%.4f", -- Right quarterpanel Engene Needles + [186] = "%.4f", -- Right quarterpanel Engene Needles + [188] = "%.4f", -- Right quarterpanel Engene Needles + [190] = "%.4f", -- Right quarterpanel Engene Needles + + [525] = "%.4f", -- Fuel Indficator needle + [790] = "%.4f", -- Airspeed Indficator needle -1 to 1. to almost goes around twice + [791] = "%.4f", -- Drift Left/Right needle + + [828] = "%.4f", -- Doppler Hover Altitude + [829] = "%.4f", -- Doppler Hover Left/Right + [830] = "%.4f", -- Doppler Hover Up/Down + + [939] = "%.4f", -- Main ADI pitch + [940] = "%.4f", -- Main ADI right flag + [942] = "%.4f", -- Main ADI roll + [943] = "%.4f", -- Main ADI ball + [945] = "%.4f", -- Main ADI pokey thing + + [948] = "%.4f", -- Standby ADI top flag + [949] = "%.4f", -- Standby ADI pitch + [950] = "%.4f", -- Standby ADI roll + + [973] = "%.4f", -- Operator Windshield Wiper + [974] = "%.4f", -- Seat gone at 1 + + [988] = "%.4f", -- Operator Altimeter Big hand + + + [788] = "%.4f", -- Operator Baro Pressure Knob ALTIMETER-KNOB-OP-PTR + [18] = "%.4f", -- Baro Pressure Knob ALTIMETER-KNOB-PTR + [21] = "%.4f", -- Baro Pressure Kollsman Window 0 = 670, 1 = 790 + + [687] = "%.4f", -- Mech clock left lever CLOCK-LEFT-OP-PTR + [694] = "%.4f", -- Mech clock right lever CLOCK-RIGHT-OP-PTR + [57] = "%.4f", -- Mech clock left lever CLOCK-LEFT-PTR + [58] = "%.4f", -- Mech clock left lever CLOCK-LEFT-PTR + [59] = "%.4f", -- Mech clock right lever CLOCK-RIGHT-PTR + [60] = "%.4f", -- Mech clock right lever CLOCK-RIGHT-PTR + + [0] = "%.4f", -- Collective (LMB press COLLECTIVE-CORR-PTR + [1] = "%.4f", -- Cyclic Left/Right + [2] = "%.4f", -- Cyclic Forward/Aft + [3] = "%.4f", -- Collective Up/Down + [5] = "%.4f", -- Left Engine Throttle RRUD-LEFT-PTR + [4] = "%.4f", -- Right Engine Throttle RRUD-RIGHT-PTR + [6] = "%.4f", -- Left Engine Stop ENG-BRAKE-LEFT-PTR + [7] = "%.4f", -- Right Engine Stop ENG-BRAKE-RIGHT-PTR + [745] = "%.4f", -- Rotor Brake ROTOR-BRAKE-PTR + + + + -- Ammo Counters 0 to 1 + [716] = "%.4f", -- Counter 1 1st two digits roller 0 to 19 + [717] = "%.4f", -- Counter 1 2nd two digits roller 0 to 95 via 5 + [718] = "%0.1f", -- Counter 1 Red Light + [719] = "%.4f", -- Counter Adjustment 1 ROUNDS-KNOB-1 + + [720] = "%.4f", -- Counter 2 1st two digits roller 0 to 19 + [721] = "%.4f", -- Counter 2 2nd two digits roller 0 to 95 via 5 + [722] = "%0.1f", -- Counter 2 Red Light + [723] = "%.4f", -- Counter Adjustment 2 ROUNDS-KNOB-2 + + [724] = "%.4f", -- Counter 3 1st two digits roller 0 to 19 + [725] = "%.4f", -- Counter 3 2nd two digits roller 0 to 95 via 5 + [726] = "%0.1f", -- Counter 3 Red Light + [727] = "%.4f", -- Counter Adjustment 3 ROUNDS-KNOB-3 + + [728] = "%.4f", -- Counter 4 1st two digits roller 0 to 19 + [729] = "%.4f", -- Counter 4 2nd two digits roller 0 to 95 via 5 + [730] = "%0.1f", -- Counter 4 Red Light + [731] = "%.4f", -- Counter Adjustment 4 ROUNDS-KNOB-4 + + [732] = "%.4f", -- Counter 5 1st two digits roller 0 to 19 + [733] = "%.4f", -- Counter 5 2nd two digits roller 0 to 95 via 5 + [734] = "%0.1f", -- Counter 5 Red Light + [735] = "%.4f", -- Counter Adjustment 5 ROUNDS-KNOB-5 + + [1028] = "%0.4f", --Aiming_reference_marker + [16] = "%0.4f", --G_Meter_Min + [22] = "%0.4f", --hydraulicUtilityPressure + + [23] = "%0.4f", --hydraulicMainPressure + [233] = "%0.4f", --APYawPushed + [238] = "%0.4f", --APRudderDrive + [239] = "%0.4f", -- APRollPushed + [24] = "%0.4f", -- hydraulicAuxiliaryPressure + [241] = "%0.4f", -- APRollDelta + [244] = "%0.4f", -- APRollDrive + [245] = "%0.4f", -- APPitchPushed + [247] = "%0.4f", -- APPitchDelta + [251] = "%0.4f", -- APPitchDrive + [256] = "%0.4f", -- APCollectiveDrive + + [263] = "%0.4f", -- APCourseOne + [264] = "%0.4f", -- APCourseTen + [265] = "%0.4f", -- APCourseHundr + [266] = "%0.4f", -- Pedals + + [271] = "%0.4f", -- SPUU_Delta + [292] = "%0.4f", -- APUTemperature + + [305] = "%0.4f", -- APUPressure + [333] = "%0.4f", -- IFF_KD_LAMP + [335] = "%0.4f", -- IFF_KP_LAMP + + [342] = "%0.4f", -- Eucalypt_lamp + + [379] = "%0.4f", -- MC61_Recorder_Lamp + [422] = "%0.4f", -- Jadro_SearchLamp + [424] = "%0.4f", -- Jadro_CtlLamp + [425] = "%0.4f", -- Jadro_BreakdownLamp + + [440] = "%0.4f", -- GrebenNorthTenths + [441] = "%0.4f", -- GrebenNorthOne + [442] = "%0.4f", -- GrebenNorthTen + [443] = "%0.4f", -- GrebenNorthClosed + [444] = "%0.4f", -- GrebenSouthTenths + [445] = "%0.4f", -- GrebenSouthOne + [446] = "%0.4f", -- GrebenSouthTen + [447] = "%0.4f", -- GrebenSouthClosed + + [555] = "%0.4f", -- ASP17_UP_DOWN + [558] = "%0.4f", -- ASP17_BASE + [56] = "%0.4f", -- CLOCK_P_flight_time_meter_status + + [565] = "%0.4f", -- ASP17_LEFT_RIGHT + + + [646] = "%0.4f", -- KM_2_magnetic_decl + [648] = "%0.4f", -- KM_2_magnetic_decl_100_plus + [649] = "%0.4f", -- KM_2_magnetic_decl_10_plus + [650] = "%0.4f", -- KM_2_magnetic_decl_1_plus + [651] = "%0.4f", -- KM_2_magnetic_decl_01_plus + [652] = "%0.4f", -- KM_2_magnetic_decl_01_minus + [653] = "%0.4f", -- KM_2_magnetic_decl_1_minus + [654] = "%0.4f", -- KM_2_magnetic_decl_10_minus + [655] = "%0.4f", -- KM_2_magnetic_decl_100_minus + + [67] = "%0.4f", -- ELEC_Amp_DCGen + + [68] = "%0.4f", -- ELEC_Volt_DC + [689] = "%0.4f", -- CLOCK_O_light_minutes + [690] = "%0.4f", -- CLOCK_O_currtime_seconds + [691] = "%0.4f", -- CLOCK_O_flight_hours + [692] = "%0.4f", -- CLOCK_O_flight_time_meter_status + [695] = "%0.4f", -- CLOCK_O_currtime_hours + [697] = "%0.4f", -- CLOCK_O_seconds_meter_time_seconds + [698] = "%0.4f", -- CLOCK_O_seconds_meter_time_minutes + [702] = "%0.4f", -- failure_gyro_2_lamp + [746] = "%0.4f", -- Correction + [76] = "%0.4f", -- ELEC_Amp_RightBatt + [77] = "%0.4f", -- ELEC_Amp_LeftBatt + [78] = "%0.4f", -- ELEC_Amp_RightGen + [786] = "%0.4f", -- PKP72M_O_Altitude + + [792] = "%0.4f", -- diss15_W_hundreds + [793] = "%0.4f", -- diss15_W_tens + [794] = "%0.4f", -- diss15_W_ones + [795] = "%0.4f", -- diss15_W_shutter + [831] = "%0.4f", -- diss15_hover_lamp_off + [832] = "%0.4f", -- VD_10K_10_Ind_PILOT + [833] = "%0.4f", -- VD_10K_100_Ind_PILOT + [834] = "%0.4f", -- VD_10K_RESS_OPERATOR + [835] = "%0.4f", -- VD_10K_Shutter_OPERATOR + [836] = "%0.4f", -- VD_10K_10_Ind_OPERATOR + [837] = "%0.4f", -- VD_10K_100_Ind_OPERATOR + [838] = "%0.4f", -- LeftEngineRPM_Operator + [839] = "%0.4f", -- RightEngineRPM_Operator + + [840] = "%0.4f", -- rmi2_O_bearing2 + [841] = "%0.4f", -- rmi2_O_heading + [842] = "%0.4f", -- rmi2_O_bearing1 + [845] = "%0.4f", -- RotorRPM_Operator + [849] = "%0.4f", -- canopy operator + [850] = "%0.4f", -- CyclicPitchOp + [851] = "%0.4f", -- CyclicRollOp + [852] = "%0.4f", -- StickStowingOp + [860] = "%0.4f", -- CorrectionOp + [866] = "%0.4f", -- pilot_fan_vib1 + [867] = "%0.4f", -- pilot_fan_vib2 + [874] = "%0.4f", -- Sight9K113_Azimuth + [876] = "%0.4f", -- Sight9K113_Elevation + [90] = "%0.4f", -- ELEC_Volt_AC + [916] = "%0.4f", -- VD_10K_Shutter_PILOT + [936] = "%0.4f", -- PKP72M_P_AltFlag + [937] = "%0.4f", -- PKP72M_P_blankerK + [938] = "%0.4f", -- PKP72M_P_blankerT + [952] = "%0.4f", -- PedalsStowingOp + [964] = "%0.4f", -- PedalsOp + [972] = "%0.4f", -- Wiper_Pilot + [980] = "%0.4f", -- RAM_Temp + [986] = "%0.4f", -- map_display_lon + [987] = "%0.4f", -- map_display_lat + +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + + --TODO: The switches and buttons should be here. +]] + + -- DISS (these are 0 to 1) + [799] = "%.4f", -- Lateral Deviation 1st digit + [800] = "%.4f", -- Lateral Deviation 2st digit + [801] = "%.4f", -- Lateral Deviation 3st digit + [802] = "%0.1f", -- Lateral Left/Right + [805] = "%0.1f", -- Distance Forward/Back + [806] = "%0.1f", -- Distance KM 1st digit + [807] = "%0.1f", -- Distance KM 2st digit + [808] = "%0.1f", -- Distance KM 3st digit + [811] = "%.4f", -- Course Angle 1st digit + [812] = "%.4f", -- Course Angle 2st digit + [813] = "%.4f", -- Course Angle 3st digit + [814] = "%.4f", -- Course Angle 4st digit + [817] = "%.4f", -- TURN ON Light + [823] = "%.4f", -- DISS Select Mode OPER Light + [824] = "%.4f", -- DISS Select Mode M Light + [825] = "%.4f", -- DISS Select Mode D Light + [827] = "%.4f", -- DISS Select Mode TEST Light + + -- DISS + [371] = "%0.1f", -- DISS-15D ON/OFF DISS-ON-OFF-PTR + [370] = "%0.1f", -- Airspeed to DISS ON/OFF DVS-DISS-PTR + [818] = "%0.1f", -- DISS coordinates OFF PTR-DISS-BTN-OFF + [819] = "%0.1f", -- DISS coordinates ON PTR-DISS-BTN-ON + [815] = "%0.1f", -- DISS decrease map angle PTR-DISS-BTN-MINUS + [816] = "%0.1f", -- DISS increase map angle PTR-DISS-BTN-PLUS + [809] = "%0.1f", -- DISS decrease path PTR-DISS-BTN-N + [810] = "%0.1f", -- DISS increase path PTR-DISS-BTN-V + [803] = "%0.1f", -- DISS decrease deviation PTR-DISS-BTN-TOLE + [804] = "%0.1f", -- DISS increase deviation PTR-DISS-BTN-TORI + [797] = "%0.1f", -- DISS Mode WORK/CHECK DRIFT-R-K-PTR + [798] = "%0.1f", -- DISS Mode LAND/SEA DRIFT-S-M-PTR + [826] = "%0.1f", -- DISS select mode IDK/IDK/IDK/MEM/OPER DISS-SELECTOR-KNOB-PTR + + -- ARC 15 Panel + [634] = "%.4f", -- ARC-15 Volume ARC-OP-VOLUME-PTR + [635] = "%.4f", -- ARC-15 TLF/TLG ARC-OP-MODULATED-PTR + [638] = "%.4f", -- ARC-15 mode OFF/COMPASS/ANT/FRAME ARC-OP-MODE-PTR + + [639] = "%.4f", -- ARC-15 Left Frequency ARC-OP-CH2-OUT-KNOB + [640] = "%.4f", -- ARC-15 Left Frequency ARC-OP-CH2-CENTER-PTR + [641] = "%.4f", -- ARC-15 Left Frequency ARC-OP-CH2-IN-PTR + [642] = "%.4f", -- ARC-15 Right Frequency ARC-OP-CH1-OUT-KNOB + [643] = "%.4f", -- ARC-15 Right Frequency ARC-OP-CH1-CENTER-PTR + [644] = "%.4f", -- ARC-15 Right Frequency ARC-OP-CH1-IN-PTR + + [633] = "%.4f", -- ARC-15 Loop Button ARC-OP-FRAME-PTR + [637] = "%.4f", -- ARC-15 1/2 ARC-OP-CHANNEL-PTR + [636] = "%.4f", -- ARC-15 Control Button ARC-OP-AUTH-PTR + [459] = "%.4f", -- ARC-15 Volume ARC-VOLUME-PTR + [460] = "%.4f", -- ARC-15 TLF/TLG ARC-MODULATED-PTR + [463] = "%.4f", -- ARC-15 mode OFF/COMPASS/ANT/FRAME ARC-MODE-PTR 0.0000=OFF,0.1150=COMP,0.2300=ANT.,0.3450=LOOP + + [467] = "%.4f", -- ARC-15 Left Frequency ARC-CH1-OUT-KNOB + [468] = "%.4f", -- ARC-15 Left Frequency ARC-CH1-CENTER-PTR + [469] = "%.4f", -- ARC-15 Left Frequency ARC-CH1-IN-PTR + [464] = "%.4f", -- ARC-15 Right Frequency ARC-CH2-OUT-KNOB + [465] = "%.4f", -- ARC-15 Right Frequency ARC-CH2-CENTER-PTR + [466] = "%.4f", -- ARC-15 Right Frequency ARC-CH2-IN-PTR + + [458] = "%.4f", -- ARC-15 Loop Button ARC-FRAME-PTR + [462] = "%.4f", -- ARC-15 1/2 ARC-CHANNEL-PTR + [461] = "%.4f", -- ARC-15 Control Button ARC-AUTH-PTR + + -- Autopilot + [243] = "%0.1f", -- Autopilot K Channel ON SAU-K-ON-PTR + [242] = "%0.1f", -- Autopilot K Channel OFF SAU-K-OFF-PTR + [237] = "%0.1f", -- Autopilot H Channel ON SAU-H-ON-PTR + [236] = "%0.1f", -- Autopilot H Channel OFF SAU-H-OFF-PTR + [249] = "%0.1f", -- Autopilot T Channel ON SAU-T-ON-PTR + [248] = "%0.1f", -- Autopilot T Channel OFF SAU-T-OFF-PTR + [255] = "%0.1f", -- Autopilot B Channel ON SAU-B-ON-PTR + [254] = "%.4f", -- Autopilot B Channel OFF SAU-B-OFF-PTR + [253] = "%.4f", -- Autopilot Altitude Control SAU-B-SWITCH-PTR + [240] = "%.4f", -- Autopilot K Channel Delta Correction SAU-K-KNOB-PTR + [234] = "%.4f", -- Autopilot H Channel Delta Correction SAU-H-KNOB-PTR + [246] = "%.4f", -- Autopilot T Channel Delta Correction SAU-T-KNOB-PTR + [742] = "%.4f", -- Autopilot Trimmer Button STICK-TRIMMER-PTR + [855] = "%.4f", -- Autopilot Trimmer Button OP-STICK-TRIMMER-PTR + [262] = "%.4f", -- Autopilot Route Azimuth SAU-AZ-PTR + [258] = "%.4f", -- Autopilot Altitude Mode ON SAU-HEIGHT-ON-PTR + [257] = "%.4f", -- Autopilot Altitude Mode OFF SAU-HEIGHT-OFF-PTR + [259] = "%.4f", -- Autopilot Hover Mode ON SAU-HOVER-ON-PTR + [261] = "%.4f", -- Autopilot Route Mode ON SAU-ROUTE-ON-PTR + [260] = "%.4f", -- Autopilot Route and Hover Modes OFF SAU-HOVER-ROUTE-OFF-PTR + [268] = "%.4f", -- Autopilot Speed Stabilization ON SAU-SPEED-ON-PTR + [269] = "%.4f", -- Autopilot Speed Stabilization OFF SAU-SPEED-OFF-PTR + [267] = "%.4f", -- Buttons Lighting BRIGHT/DIM SAU-BRIGHT-DIM-PTR + + -- ARC U2 + [324] = "%.4f", -- ARC-U2 switcher On/Off ARC-U2-ON-OFF-PTR + [325] = "%.4f", -- ARC-U2 switcher L–RAMKA-P ARC-U2-FRAME-PTR + [326] = "%.4f", -- ARC-U2 switcher sensitivity B-M ARC-U2-SENS-PTR + [327] = "%.4f", -- ARC-U2 switcher COMPASS R-852–RADIOLINK–COMPASS R-828 ARC-U2-COMPASS-CONNECT-PTR + + + -- ASO 2V + [1008] = "%0.1f", -- Interval ASO2V-INTERV-PTR + [965] = "%0.1f", -- Serie ASO2V-SERIES-PTR + [968] = "%0.1f", -- Launch Countermeasures ASO2V-RESET-PTR + [969] = "%0.1f", -- Left Side ASO2V-LEFT-PTR + [970] = "%0.1f", -- Right Side ASO2V-RIGHT-PTR + [971] = "%0.1f", -- Set I/II/III ASO2V-SETS-PTR + [847] = "%0.1f", -- Pilot Launch Snars ASO-ON-PTR + + -- ASP 17V + [553] = "%0.1f", -- Sight mode MANUAL/AUTO SIGHT-MAN-AUTO-PTR + [554] = "%0.1f", -- Sight mode SYNC/ASYNC SIGHT-SYNC-UNSYNC-PTR + [515] = "%0.1f", -- Sight distance MANUAL/AUTO WEAP-DIST-MAN-AUTO-PTR + [552] = "%0.1f", -- Sight Range Adjustment WEAP-SIGHT-DIST-PTR + [556] = "%0.1f", -- Sight Crosshair Vertical Adjustment SIGHT-VERT-KNOB-PTR + [566] = "%0.1f", -- Sight Crosshair Horizontal Adjustment SIGHT-HOR-KNOB-PTR + [528] = "%0.1f", -- Sight Resrt Crosshair WEAP-SIGHT-RESET-PTR + [557] = "%0.1f", -- Sight Base and Range Adjustment SIGHT-BASE-KNOB-PTR + [570] = "%0.1f", -- Sight Control SIGHT-CONTROL-PTR + [567] = "%0.1f", -- Sight Grid Brightness Adjustment SIGHT-GRID-BRIGHNTNESS-KNOB-PTR + [564] = "%0.1f", -- Sight Crosshair Brightness Adjustment SIGHT-CROSSHAIR-BRIGHNTNESS-KNOB-PTR + [569] = "%0.1f", -- Sight Grid Lamp MAIN/BACKUP SIGHT-GRID-BACKUP-PTR + [568] = "%0.1f", -- Sight Crosshair Lamp MAIN/BACKUP SIGHT-CROSSHAIR-BACKUP-PTR + [529] = "%0.1f", -- Sight Power ON/OFF WEAP-SIGHT-ON-PFF-PTR + [761] = "%0.1f", -- USR power WEAP-DISTR-POWER-OP-PTR + [762] = "%0.1f", -- USR check WEAP-DISTR-CONTROL-OP-PTR + [1006] = "%0.1f", -- Sight reflector control ILS-ADJUST-HANDLE-PTR + + -- Jadro-1I + [438] = "%0.1f", -- Jadro-1I Mode OFF/AM/OM JADRO-MODULATION-PTR + [437] = "%0.1f", -- Jadro-1I Frequency JADRO-001-PTR + [436] = "%0.1f", -- Jadro-1I Frequency JADRO-01-PTR + [429] = "%0.1f", -- Jadro-1I Frequency JADRO-1-PTR + [428] = "%0.1f", -- Jadro-1I Frequency JADRO-10-PTR + [427] = "%0.1f", -- Jadro-1I Frequency JADRO-100-PTR + [426] = "%0.1f", -- Jadro-1I Volume JADRO-VOLUME-PTR + [421] = "%0.1f", -- Jadro-1I Squelch JADRO-PSH-PTR + [423] = "%0.1f", -- Jadro-1I Test JADRO-CONTROL-PTR + [374] = "%0.1f", -- Jadro-1I ON/OFF JADRO-ON-OFF-PTR + + [739] = "%0.1f", -- Trim Hat + + -- Cassette + [343] = "%.4f", -- Signal Flares Cassette 1 Power Switch FLARE-TOP-POWER-PTR + [345] = "%.4f", -- Signal Flares Cassette 1 Launch Green Button FLARE-TOP-GREEN-PTR + [344] = "%.4f", -- Signal Flares Cassette 1 Launch Red Button FLARE-TOP-RED-PTR + [347] = "%.4f", -- Signal Flares Cassette 1 Launch White Button FLARE-TOP-WHITE-PTR + [346] = "%.4f", -- Signal Flares Cassette 1 Launch Yellow Button FLARE-TOP-YELLOW-PTR + [352] = "%.4f", -- Signal Flares Cassette 2 Power Switch FLARE-BOTTOM-POWER-PTR + [350] = "%.4f", -- Signal Flares Cassette 2 Launch Green Button FLARE-BOTTOM-GREEN-PTR + [351] = "%.4f", -- Signal Flares Cassette 2 Launch Red Button FLARE-BOTTOM-RED-PTR - FIX! labeled wrong in DCS + [348] = "%.4f", -- Signal Flares Cassette 2 Launch White Button FLARE-BOTTOM-WHITE-PTR + [349] = "%.4f", -- Signal Flares Cassette 2 Launch Yellow Button FLARE-BOTTOM-YELLOW-PTR + + [601] = "%.4f", -- All Left CBs ON CB-FRAME-LEFT-1-PTR + [632] = "%.4f", -- All Right CBs ON CB-FRAME-RIGHT-1-PTR + + [602] = "%.4f", -- CB Control Force Grad CB-RIGHT-CONTROL-FORCE-MECHANISM-PTR + [603] = "%.4f", -- CB Collective Lever Lock CB-RIGHT-CONTROL-CLUTCH-PTR + [604] = "%.4f", -- CB Temperature Control Left Governor RPM CB-RIGHT-ENGINE-TEMP-ADJUST-LEFT-PTR + [605] = "%.4f", -- CB Temperature Control Right Governor RPM CB-RIGHT-ENGINE-TEMP-ADJUST-RIGHT-PTR + [606] = "%.4f", -- CB Rotor RPM Adjust CB-RIGHT-ROTOR-RPM-ADJUST-PTR + [607] = "%.4f", -- CB Signal CB-RIGHT-ARMAMENT-SIGNAL-PTR + [608] = "%.4f", -- CB Camera CB-RIGHT-ARMAMENT-CAMERA-SHUTTER-PTR + [609] = "%.4f", -- CB Armament Control CB-RIGHT-ARMAMENT-CONTROL-PTR + [610] = "%.4f", -- CB Cannon CB-RIGHT-ARMAMENT-CANNON-PTR + [611] = "%.4f", -- CB Squib-2 Auto Fire Protection CB-RIGHT-FIRE-2-AUTO-PTR + [612] = "%.4f", -- CB Squib-2 Manual Fire Protection CB-RIGHT-FIRE-2-MANUAL-PTR + [613] = "%.4f", -- CB External Stores Tactical Release CB-RIGHT-EXT-STORES-TACTICAL-DROP-PTR + [614] = "%.4f", -- CB External Stores Release Lock CB-RIGHT-EXT-STORES-LOCK-RELEASE-PTR + [615] = "%.4f", -- CB Landing Gear Valve CB-RIGHT-GEAR-EXTENT-HANDLE-BACKUP-PTR + [616] = "%.4f", -- CB Jettison Missile Rails CB-RIGHT-LAUNCHER-DETACH-PTR + [617] = "%.4f", -- CB Bombs Release CB-RIGHT-BOMB-COMBAT-DROP-PTR + [618] = "%.4f", -- CB Connection Distribution Device CB-RIGHT-CONNECTION-DISTRIBUTION-DEVICE-PTR + [619] = "%.4f", -- PILOT SIGHT CB CB-RIGHT-PILOT-AIM-PTR + [620] = "%.4f", -- CB Air Data Computer Heating CB-RIGHT-DUAS-V-HEATING-PTR + [621] = "%.4f", -- CB Jettison Pilot´s Door CB-RIGHT-EMERGENCY-DOOR-DETACH-PILOT-PTR + [622] = "%.4f", -- CB Jettision Gunners Door CB-RIGHT-EMERGENCY-DOOR-DETACH-OP-PTR + [623] = "%.4f", -- CB Air Conditioning CB-RIGHT-CONDITIONER-CONTROL-PTR + [624] = "%.4f", -- CB Fuel Quantity Indication CB-RIGHT-FUEL-METER-PTR + [625] = "%.4f", -- CB Fuel Tank 2 Valve CB-RIGHT-VALVE-TANK-2-PTR + [626] = "%.4f", -- CB Fuel Tank 2 Shutoff Valve CB-RIGHT-VALVE-FIRE-RIGHT-PTR + [627] = "%.4f", -- CB Fuel Pump 2 CB-RIGHT-PUMP-TANK-2-PTR + [628] = "%.4f", -- CB Fuel Pump 4 CB-RIGHT-PUMP-TANK-4-PTR + [629] = "%.4f", -- CB Pilot Seat Adjustment CB-RIGHT-PILOT-SEAT-MECHANISM-PTR + [630] = "%.4f", -- CB Anti-Ice System - Warning CB-RIGHT-ANTIICE-ALARM-PTR + [631] = "%.4f", -- CB Anti-Ice System - Control CB-RIGHT-ANTIICE-CONTROL-PTR + [572] = "%.4f", -- CB Missile Power CB-LEFT-MISSILE-POWER-PTR + [573] = "%.4f", -- CB Emergency Jettison CB-LEFT-BOMB-EMERGENCY-DETACH-PTR + [574] = "%.4f", -- CB Bombs CB-LEFT-BOMB-EXPLOSION-PTR + [575] = "%.4f", -- CB Rockets CB-LEFT-ROCKETS-PTR + [576] = "%.4f", -- CB ADF CB-LEFT-RADIOCOMPASS-HF-PTR + [577] = "%.4f", -- CB Fuel Shutoff Valve CB-LEFT-PUMP-TANK-1-PTR + [578] = "%.4f", -- CB Cross Feed Valve CB-LEFT-PUMP-TANK-5-PTR + [579] = "%.4f", -- CB Tank 1 Valve CB-LEFT-VALVE-TANK-1-PTR + [580] = "%.4f", -- CB Left Tank Fire Warning CB-LEFT-VALVE-FIRE-LEFT-PTR + [581] = "%.4f", -- CB Left Valve Separation CB-LEFT-VALVE-SEPARATION-PTR + [582] = "%.4f", -- CB Windshield Spray CB-LEFT-GLASS-SPRINKLER-PTR + [583] = "%.4f", -- CB Windshield Wiper Gunner CB-LEFT-GLASS-WIPER-OP-PTR + [584] = "%.4f", -- CB Windshield Wiper Pilot CB-LEFT-GLASS-WIPER-PILOT-PTR + [585] = "%.4f", -- CB Audio Warning System CB-LEFT-SPEECH-INFORMER-PTR + [586] = "%.4f", -- CB Flight Recorder CB-LEFT-RECORDER-PARAMS-PTR + [587] = "%.4f", -- CB Fire Protection System - Auto CB-LEFT-FIRE-1-AUTO-PTR + [588] = "%.4f", -- CB Fire Protection System - Manual CB-LEFT-FIRE-1-MANUAL-PTR + [589] = "%.4f", -- CB Fire Protection System Warning CB-LEFT-FIRE-ALARM-PTR + [590] = "%.4f", -- CB External Cargo Emergency Jettison CB-LEFT-EXT-CARGO-EMERGENCY-DROP-PTR + [591] = "%.4f", -- CB Landing Gear Extend / Retract CB-LEFT-GEAR-EXTENT-HANDLE-PTR + [592] = "%.4f", -- CB Landing Gear Warning CB-LEFT-GEAR-ALARM-PTR + [593] = "%.4f", -- CB Inverter CB-LEFT-PT125TS-PTR + [594] = "%.4f", -- CB Air Speed Sensor CB-LEFT-AIRSPEED-SENSOR-PTR + [595] = "%.4f", -- CB AFCS Warn CB-LEFT-AUTOPILOT-ALARM-PTR + [596] = "%.4f", -- CB Auto Start System CB-LEFT-STARTUP-BLOCK-PTR + [597] = "%.4f", -- CB Igniter CB-LEFT-STARTUP-IGNITION-PTR + [598] = "%.4f", -- CB Beacon Light CB-LEFT-BEACON-PTR + [599] = "%.4f", -- CB Landing Light Control CB-LEFT-HEADLIGHT-CONTROL-PTR + [600] = "%.4f", -- CB Main Attitude Indicator CB-LEFT-PILOTING-DEVICE-PTR + + [957] = "%.4f", -- Operator Black box first Light COMP ON + [958] = "%.4f", -- Operator Black box 2 Light LNCHR OFF + [959] = "%.4f", -- Operator Black box 3 Light CHECK + [960] = "%.4f", -- Operator Black box 4 Light READY + [961] = "%.4f", -- Operator Black box 5 Light MSL ON LNCHR + [962] = "%.4f", -- Operator Black box 6 Light LAUNCH APPRVL + + [133] = "%.4f", -- Cabin Unseal Switch CABIN-DEPRESS-PTR + [134] = "%.4f", -- Blowdown Conditioning Switch AC-MODE-PTR + [143] = "%.4f", -- Filter Switch AC-FILTER-PTR + [144] = "%.4f", -- Heating Switch AC-HEATER1-MODE-PTR + [145] = "%.4f", -- Automatic Hot Cold Switch AC-HEATER2-MODE-PTR + [146] = "%.4f", -- Temperature Selector AC-TEMP-KNOB-PTR + [774] = "%.4f", -- Sight Fan WEAP-MISSILES-SIGHT-FAN-OP-PTR + [516] = "%.4f", -- Sealing CABIN-PRESS-VALVE-PTR + [87] = "%.4f", -- AC Ground Power GROUND-AC-PTR + [101] = "%.4f", -- Left Generator switch GEN-LEFT-PTR + [80] = "%.4f", -- Right Generator switch GEN-RIGHT-PTR + [83] = "%.4f", -- AC Transformer 115v TRANS115-PTR + [85] = "%.4f", -- AC Transformer 36v TRANS36-PTR + [89] = "%.4f", -- AC Ground Check GROUND-RECT-PTR + [98] = "%.4f", -- Inverter PO-750A INV115-PTR + [100] = "%.4f", -- Inverter PT-125Ts INV36-PTR + [91] = "%.4f", -- AC Voltmeter knob VOLT-AC-KNOB-PTR + [196] = "%.4f", -- DIM Transformer switch TRANS-DIM-PTR + [73] = "%.4f", -- DC Ground Power GROUND-DC-PTR + [75] = "%.4f", -- Left Battery switch BATT-LEFT-PTR + [61] = "%.4f", -- Right Battery switch BATT-RIGHT-PTR + [62] = "%.4f", -- Left Rectifier switch RECT-LEFT-PTR + [65] = "%.4f", -- Right Rectifier switch RECT-RIGHT-PTR + [66] = "%.4f", -- APU Generator switch STARTER-GEN-PTR + [74] = "%.4f", -- Battery Heating BATT-HEATING-PTR + [71] = "%.4f", -- Network to Batteries NET-TO-BATT-PTR + [69] = "%.4f", -- DC Voltmeter knob VOLT-DC-KNOB-PTR + [88] = "%.4f", -- AC Ground Check Cover GROUND-RECT-COVER-PTR + [97] = "%.4f", -- Inverter PO-750A Cover INV115-COVER-PTR + [99] = "%.4f", -- Inverter PT-125Ts Cover INV36-COVER-PTR + [70] = "%.4f", -- Network to Batteries cover NET-TO-BATT-COVER-PTR + + [307] = "%.4f", -- APU Start APU-START-PTR + [311] = "%.4f", -- APU Stop APU-STOP-PTR + [313] = "%.4f", -- APU Launch Method START/CRANK/FALSE APU-FALSE-CRANK-START-PTR + [314] = "%.4f", -- Engine Start ENG-START-PTR + [320] = "%.4f", -- Engine Select RIGHT/LEFT ENG-LEFT-RIGHT-PTR + [318] = "%.4f", -- Engine Interrupt Start ENG-ABORT-PTR + [321] = "%.4f", -- Engine Launch Method START/CRANK ENG-CRANK-START-PTR + [747] = "%.4f", -- Readjust Free Turbine RPM COLLECTIVE-GOV-PTR + [796] = "%.4f", -- Antidust ON/OFF DEDUST-OFF-PTR + [514] = "%.4f", -- Antidust ON Cover DEDUST-OFF-COVER-PTR + [194] = "%.4f", -- Engine Termometer control COLD ENG-TEMP-SENSOR-CONTROL-COLD-PTR + + [337] = "%.4f", -- Eucalypt-M24 Channel Select EUCAL-CHANNEL-PTR + [339] = "%.4f", -- Eucalypt-M24 Volume EUCAL-VOLUME-PTR + [340] = "%.4f", -- Eucalypt-M24 ASU EUCAL-ASY-PTR + [341] = "%.4f", -- Eucalypt-M24 Squelch ON/OFF EUCAL-PSH-PTR + [373] = "%.4f", -- Eucalypt-M24 ON/OFF R828-ON-OFF-PTR + [752] = "%.4f", -- Tactical Cargo Release Button - Push to release COLLECTIVE-CARGO-TACT-PTR + [751] = "%.4f", -- Tactical Cargo Release Button Cover COLLECTIVE-CARGO-TACT-COVER-PTR + [748] = "%.4f", -- Emergency Cargo Release Button Cover COLLECTIVE-CARGO-EMER-COVER-PTR + [863] = "%.4f", -- Emergency Cargo Release Button - Push to release OP-COLL-CARGO-DROP-PTR + [862] = "%.4f", -- Emergency Cargo Release Button Cover OP-COLL-CARGO-DROP-COVER-PTR + [199] = "%.4f", -- External Cargo Automatic Dropping EXTCARGO-AUTOLOCK-PTR + [198] = "%.4f", -- External Cargo Remove Release EXTCARGO-EXT-RETR-PTR + [34] = "%.4f", -- Taxi LT Switch TAXILIGHT-PTR + [686] = "%.4f", -- Operator Taxi LT Switch TAXILIGHT-OP-PTR + [207] = "%.4f", -- Navigation Lights Switch NAVLIGHT-BRIGHT-DIM-OFF-PTR + [35] = "%.4f", -- Navigation Lights Code Button CODE-NAVLIGHT-PTR + [414] = "%.4f", -- Formation Lights Switch FORMATION-LIGHTS-PTR + [415] = "%.4f", -- Tip Lights Switch ROTOR-LIGHTS-PTR + [417] = "%.4f", -- Strobe Light Switch STROBE-TAIL-PTR + [208] = "%.4f", -- LND LT Control-Off-Retract switch TAXILIGHT-RETR-PTR + [669] = "%.4f", -- LND Light Assumed Switch CONTROL-HEADLIGHT-OP-PTR + [668] = "%.4f", -- LND Light Assumed Switch Cover CONTROL-HEADLIGHT-OP-COVER-PTR + [502] = "%.4f", -- Extinguish Left Engine 1 FIRE-1-L-ENG-PTR + [504] = "%.4f", -- Extinguish Left Engine 2 FIRE-2-L-ENG-PTR + [498] = "%.4f", -- Extinguish Right Engine 1 FIRE-1-R-ENG-PTR + [500] = "%.4f", -- Extinguish Right Engine 2 FIRE-2-R-ENG-PTR + [494] = "%.4f", -- Extinguish APU 1 FIRE-1-APU-PTR + [496] = "%.4f", -- Extinguish APU 2 FIRE-2-APU-PTR + [490] = "%.4f", -- Extinguish Gearbox 1 FIRE-1-REDUCER-PTR + [492] = "%.4f", -- Extinguish Gearbox 2 FIRE-2-REDUCER-PTR + [488] = "%.4f", -- Turn Off Fire Signal Button FIRE-ALARM-OFF-PTR + [482] = "%.4f", -- Extinguisher Control Switch EXING/CNTRL EXTINGUISH-CONTROL-PTR + [486] = "%.4f", -- Fire Extinguisher Squib Control FIRE-PYRO-CHANNEL-PTR + [484] = "%.4f", -- Fire Extinguisher Sensor Cnannel OFF/1/2/3 FIRE-SENSOR-CHANNEL-PTR1 + [487] = "%.4f", -- Fire Extinguisher Power ON/OFF FIRE-POWER-PTR + [520] = "%.4f", -- Static valve sensor select LEFT/BOTH/RIGHT STATIC-VALVE-PTR + [408] = "%.4f", -- Tank 1 Pump TANK-1-PTR + [410] = "%.4f", -- Tank 2 Pump TANK-2-PTR + [404] = "%.4f", -- Tank 4 Pump TANK-4-PTR + [406] = "%.4f", -- Tank 5 Pump TANK-5-PTR + [411] = "%.4f", -- External Tanks EXT-TANKS-PTR + [397] = "%.4f", -- Left Engine Fire Valve FIRE-VALVE-LEFT-PTR + [396] = "%.4f", -- Left Engine Fire Valve Cover FIRE-VALVE-LEFT-COVER-PTR + [400] = "%.4f", -- Right Engine Fire Valve FIRE-VALVE-RIGHT-PTR + [399] = "%.4f", -- Right Engine Fire Valve Cover FIRE-VALVE-RIGHT-COVER-PTR + [402] = "%.4f", -- Fuel Delimiter Valve FUEL-DELIM-PTR + [392] = "%.4f", -- Feed Tank 1 Valve Switch FEED-TANK-1-PTR + [394] = "%.4f", -- Feed Tank 2 Valve Switch FEED-TANK-2-PTR + [191] = "%.4f", -- Select tank for fuel meter FUEL-METER-KNOB-PTR + [524] = "%.4f", -- Fuel meter test low FUEL-METER-H-BUTTON-PTR + [526] = "%.4f", -- Fuel meter test high FUEL-METER-P-BUTTON-PTR + [367] = "%.4f", -- Greben' ON/OFF GREBEN-ON-PFF-PTR + [448] = "%.4f", -- Greben Set Latitude GREBEN-LATITUDE-PTR + [450] = "%.4f", -- Greben Match GREBEN-MATCH-PTR + [449] = "%.4f", -- Greben' mode ZK/GPK/MK GREBEN-MODE-PTR + [451] = "%.4f", -- Greben' mode SETUP/OPER GREBEN-SETUP-PTR + [858] = "%.4f", -- Course setter RMI-COURSE-KNOB-PTR + [947] = "%.4f", -- Accelerometer Reset Button - Push to reset GFORCE-RESET-PTR + + [647] = "%.4f", -- KM-2 set magnetic declination KM2-KNOB-PTR + [645] = "%.4f", -- KM-2 Test button KM2-CONTR-BUTTON-PTR + [985] = "%0.1f", -- Map Scale Selector MAPDISPLAY-SCALE-PTR + [291] = "%.4f", -- Set the vertical position of the helicopter on the Map MAPDISPLAY-VERT-PTR + [983] = "%.4f", -- Set the horizontall position of the helicopter on the Map MAPDISPLAY-HOR-PTR + [984] = "%0.1f", -- Map Power ON/OFF MAPDISPLAY-POWER-PTR + [192] = "%.4f", -- Map Highlight BRIGHT/OFF/DIM MAP-LIGHT-PTR + [10] = "%.4f", -- Cage Gyro 1 GYRO1-CAGE-PTR + [369] = "%.4f", -- Gyro 1 Power MGV1-POWER-PTR + [14] = "%.4f", -- Cage Gyro 2 GYRO2-CAGE-PTR + [701] = "%.4f", -- Cage Gyro 2 GYRO-CAGE-OP-PTR + [368] = "%.4f", -- Gyro 2 Power MGV2-POWER-PTR + [12] = "%0.1f", -- Gyrovertical Switch GYRO-SEL-PTR + [759] = "%0.1f", -- ADI Switch PKP-POWER-OP-PTR + [782] = "%.4f", -- Pitch Trim Knob PKP-INIT-PITCH-KNOB-OP-PTR + [787] = "%.4f", -- Test ADI Button PKP-TEST-OP-PTR + [941] = "%.4f", -- Pitch Trim Knob PKP-INIT-PITCH-KNOB-PTR + [946] = "%.4f", -- Test ADI Button PKP-TEST-PTR + [30] = "%.4f", -- Radar altimeter adjust and test RADAR-ALTIMETER-KNOB-PTR + [31] = "%.4f", -- Radar altimeter adjust and test RADAR-ALTIMETER-KNOB-PTR + [372] = "%.4f", -- RV-5 ON/OFF RAD-ALT-ON-OFF-PTR + [843] = "%0.1f", -- Mode Switch ZK_ARK_U005 + [26] = "%0.1f", -- Mode Switch RMI-KUR-2-PTR + [518] = "%.4f", -- R-852 Channel Select R852-CHANNEL-PTR + [517] = "%.4f", -- R-852 Volume R852-VOLUME-KNOB-PTR + [519] = "%.4f", -- R-852 Channel Indicator + [375] = "%.4f", -- R-863 ON/OFF R863-ON-OFF-PTR + [506] = "%.4f", -- R-863 FM/AM R863-MODULATION-PTR + [513] = "%.4f", -- R-863 Channel Select R863-CHANNEL-PTR + [510] = "%.4f", -- R-863 Squelch ON/OFF R863-PSH-PTR + [511] = "%.4f", -- R-863 Volume R863-VOLUME-KNOB-PTR + [507] = "%.4f", -- R-863 Emergency Receiver ON/OFF R863-AP-PTR + [509] = "%.4f", -- R-863 ARC-UD ON/OFF R863-RK-PTR + [512] = "%.4f", -- R-863 ARC-UD Channel Indicator + [378] = "%.4f", -- Recorder MC 61 Power Switch RECORDER-POWER-PTR + [1007] = "%.4f", -- Recorder MC 61 AUTO/WORK RECORDER-MODE-PTR + [381] = "%.4f", -- Recorder MC 61 Brightness Knob RECORDER-LTG-KNOB-PTR + [1012] = "%.4f", -- Laryngophone Switch RECORDER-SOURCE-PTR + [357] = "%.4f", -- SARPP-12 Mode Switch SARPP-MAN-AUTO-OFF-PTR + + -- Anti Ice + [109] = "%1d", -- AntiIce AUTO/MANUAL ROTOR-DEICER-AUTO-MAN-PTR + [110] = "%1d", -- AntiIce OFF ROTOR-DEICER-OFF-PTR + [113] = "%1d", -- Left Engine AntiIce ON/OFF LEFT-ENG-HEATING-PTR + [112] = "%1d", -- Right Engine AntiIce ON/OFF RIGHT-ENG-HEATING-PTR + [111] = "%.4f", -- Windshield Antiice LOW/OFF/HIGH WINDSHIELD-DEICER-PTR + [675] = "%.4f", -- Windshield Antiice LOW/OFF/HIGH WINDSHIELD-DEICER-OP-PTR + [114] = "%.4f", -- AC Voltmeter knob DEICER-KNOB-PTR + + [334] = "%.4f", -- IFF Transponder Mode Selector Switch DEV6201-CODE-PTR + [336] = "%.4f", -- IFF Transponder Device Selector Switch DEV6201-MAIN-BACKUP-PTR + [332] = "%.4f", -- IFF Transponder Device Mode Switch DEV6201-NOT-USED-PTR + [328] = "%.4f", -- IFF Transponder Erase Button Cover DEV6201-ERASE-COVER-PTR + [329] = "%.4f", -- IFF Transponder Erase Button - Push to erase DEV6201-ERASE-PTR + [330] = "%.4f", -- IFF Transponder Disaster Switch Cover DEV6201-SOS-COVER-PTR + [331] = "%.4f", -- IFF Transponder Disaster Switch DEV6201-SOS-PTR + [383] = "%.4f", -- IFF Transponder Power Switch DEV6201-POWER-PTR + + [682] = "%.4f", -- Operator Cabin Lighting Switch LTG-COCKPIT-OP-PTR + [356] = "%.4f", -- Pilot Cabin Lighting Switch LTG-COCKPIT-PTR + [354] = "%.4f", -- Cargo Lighting Switch LTG-WHITE-PTR + [353] = "%.4f", -- Cargo Lighting Switch Cover LTG-WHITE-COVER-PTR + [355] = "%.4f", -- Cargo Lighting Switch LTG-CARGO-PTR + [363] = "%.4f", -- Test Warning Lights Button LAMP-CONTROL-PTR + [681] = "%.4f", -- Test Warning Lights Button LAMP-CONTROL-OP-PTR + [362] = "%.4f", -- Day-Night Switch DAY-NIGHT-PTR + [364] = "%.4f", -- Blinker Switch FLASHER-PTR + [148] = "%.4f", -- Transformer 1 Group Of Red Lights Right And Pilot Panel RED-LTG1-PTR + [147] = "%.4f", -- Transformer 2 Group Of Red Lights Right And Pilot Panel RED-LTG2-PTR + [822] = "%.4f", -- Armament Panel Red Lights Switch AUX-LTG-PTR + [820] = "%.4f", -- Transformer 1 Group Of Red Lights Left Pilot Panel RED-LTG4-PTR + [503] = "%.4f", -- Transformer 2 Group Of Red Lights Left Pilot Panel RED-LTG5-PTR + [1013] = "%.4f", -- Transformer 1 Group Of Red Lights Left And Operator Panel RED-LTG1-OP-PTR + [1014] = "%.4f", -- Transformer 2 Group Of Red Lights Left And Operator Panel RED-LTG2-OP-PTR + [149] = "%.4f", -- Builtin Red Lights Transformer RED-LTG3-PTR + + [865] = "%.4f", -- Engage Stick OP-COLL-ENGAGE-PTR + [859] = "%.4f", -- Disengage Stick OP-STICK-DISENGAGE-PTR + [857] = "%.4f", -- Disengage Stick Cover OP-STICK-DISENGAGE-COVER-PTR + [217] = "%.4f", -- Main/Auxiliary Hydraulic Switch HYDRO-MAIN-SECOND-PTR + [216] = "%.4f", -- Main/Auxiliary Hydraulic Switch Cover HYDRO-MAIN-SECOND-COVER-PTR + [219] = "%.4f", -- Main/Reserve Gear Hydraulic Switch LANDING-GEAR-MAIN-BACKUP-PTR + [218] = "%.4f", -- Main/Reserve Gear Hydraulic Switch Cover LANDING-GEAR-MAIN-BACKUP-COVER-PTR + [213] = "%.4f", -- Auxiliary Disable Button HYDRO-BACKUP-OFF-PTR + [215] = "%.4f", -- Auxiliary Disable Button Cover HYDRO-BACKUP-OFF-COVER-PTR + [290] = "%.4f", -- Pedal Damper PEDAL-DAMPER-COVER-PTR + [289] = "%.4f", -- Pedal Damper Cover PEDAL-DAMPER-COVER-PTR-PTR + [667] = "%.4f", -- Pedal Damper PEDAL-DAMPER-OP-PTR + [666] = "%.4f", -- Pedal Damper Cover PEDAL-DAMPER-OP-COVER-PTR + [48] = "%.4f", -- Control Assumed Switch Cover CONTROL-PRIORITY-PTR + [47] = "%.4f", -- Control Assumed Switch Cover CONTROL-COVER-PRIORITY-PTR + [885] = "%.4f", -- Sight Power Switch PK-PN-POWER-PTR + [886] = "%.4f", -- OBSERVE PK-OBSERVE-PTR + [887] = "%.4f", -- DIAFR Open PK-DIAPH-PTR + [912] = "%.4f", -- LOCK ARU PK-LOCK-PTR + [913] = "%.4f", -- SSP On PK-SSP-PTR + [910] = "%.4f", -- GENERATOR-IMIT PK-IMIT-GENER-PTR + [905] = "%.4f", -- CHECK2-NEUTR-CHECK1 PK-CHECK-PTR + [903] = "%.4f", -- WORK-CHECK WEAP-JETTISON-SPECIAL-OP-COVER-PTR002 + [899] = "%.4f", -- BVK Set PK-WORK-CHECK-PTR + [911] = "%.4f", -- Start PM PK-LAUNCH-PTR + [870] = "%.4f", -- Lamps Check L166V-SWITCH-PTR + [934] = "%.4f", -- Switcher IN-OUT SHTV-IN-OUT-PTR + [935] = "%.4f", -- Switcher CODE1-CODE2 SHTV-CODE-PTR + [933] = "%.4f", -- Switcher 0 - 0.4 SHTV-CHECK-VALUE-PTR + [931] = "%.4f", -- Checking SHTV-CHECK-PTR + [875] = "%.4f", -- High K SHTV-HIGH-K-PTR + [932] = "%.4f", -- Lamps Check SHTV-LAMP-CHECK-PTR + [775] = "%0.1f", -- Sight Doors WEAP-MISSILES-SIGHT-HEATING-OP-PTR + [871] = "%0.1f", -- Zoom In-Out OP-SIGHT-SCOPE-PTR + [872] = "%0.1f", -- Orange Filter OP-SIGHT-ORANGE-PTR + [873] = "%0.1f", -- Laser Filter OP-SIGHT-ANTILASER-PTR + [884] = "%0.1f", -- Backlight PK-LIGHT-PTR + [890] = "%0.1f", -- Sight Heating PK-HEATING-PTR + [0] = "%.4f", -- Push to Park/Unpark Operators Stick PTR-STICK-STOW-1026 + + [366] = "%.4f", -- RWR Power SIRENA-POWER-PTR + [365] = "%.4f", -- RWR Signal SIRENA-SIGNAL-PTR + [989] = "%.4f", -- RWR DAY/NIGHT MAPDISPLAY-VERT-PTR001 + [990] = "%.4f", -- Check RWR GFORCE-RESET-PTR001 + [275] = "%.4f", -- SPUU OFF (that's a button but acts like a switch) SPUU-OFF-PTR + [276] = "%.4f", -- SPUU Adjustment Knob SPUU-KNOB-PTR + [277] = "%.4f", -- SPUU Control Switch P/NONE/T SPUU-CONTROL-PTR + [270] = "%.4f", -- SPUU Power ON/OFF SPUU-ON-OFF-PTR + [457] = "%.4f", -- SPU-8 Volume Knob SPU8-VOLUME-PTR + [453] = "%.4f", -- SPU-8 Radio Volume Knob SPU8-RADIO-VOL-KNOB-PTR + [455] = "%.4f", -- Radio Source Selector Switch SPU8-MODE-PTR + [456] = "%.4f", -- Radio/ICS Switch SPU8-EXT-PTR + [452] = "%.4f", -- Network 1/2 Switch (N/F) SPU8-NET-PTR + [454] = "%.4f", -- Circular Call Button (N/F) SPU8-CV-PTR + [661] = "%.4f", -- SPU-8 Volume Knob SPU8-OP-VOLUME-PTR + [657] = "%.4f", -- SPU-8 Radio Volume Knob SPU8-OP-RADIO-VOL-KNOB-PTR + [659] = "%.4f", -- Radio Source Selector Switch SPU8-OP-MODE-PTR + [660] = "%.4f", -- Radio/ICS Switch SPU8-OP-EXT-PTR + [656] = "%.4f", -- Network 1/2 Switch (N/F) SPU8-OP-NET-PTR + [658] = "%.4f", -- Circular Call Button (N/F) SPU8-OP-CV-PTR + [664] = "%.4f", -- SPUU Power ON/OFF SPU8-OP-PTR + [376] = "%.4f", -- Switch SPU-8 NET-1 ON/OFF SPU8-1-ON-OFF-PTR + [377] = "%.4f", -- Switch SPU-8 NET-2 ON/OFF SPU8-2-ON-OFF-PTR + [951] = "%.4f", -- Pitch Trim Knob UKT-KNOB-PTR + [359] = "%.4f", -- RI-65 OFF Button SPEECH-OFF-PTR + [360] = "%.4f", -- RI-65 Check Button SPEECH-CHECK-PTR + [361] = "%.4f", -- RI-65 Repeat Button SPEECH-REPEAT-PTR + [741] = "%.4f", -- Fire Weapons STICK-RS-PTR + [740] = "%.4f", -- Fire Weapons Cover STICK-RS-COVER-PTR + [521] = "%0.1f", -- Burst Length SHORT/MED/LONG WEAP-BURST-LENGTH-PTR + [522] = "%.4f", -- Reload Left Gondola WEAP-127-LEFT-RELOAD-PTR + [527] = "%.4f", -- Reload Right Gondola WEAP-127-RIGHT-RELOAD-PTR + [530] = "%0.1f", -- Weapon Camera ON/OFF WEAP-SIGHT-CONTROL-ON-OFF-PTR + [523] = "%0.1f", -- Select Weapon Pilot WEAP-SELECT-KNOB-PTR + [531] = "%0.1f", -- Select Rockets LEFT/BOTH/RIGHT WEAP-ROCKET-SELECT-PTR + [551] = "%0.1f", -- Weapon Control ON/OFF WEAP-ON-OFF-PTR + [550] = "%0.1f", -- Cannon Fire Rate SLOW/FAST WEAP-CANNON-PACE-PTR + [549] = "%.4f", -- Reload Cannon WEAP-NPU-RELOAD-PTR + [547] = "%.4f", -- Stop container WEAP-KMG-INTERRUPT-PTR + [546] = "%0.1f", -- Explosion on Jettison ON/OFF WEAP-JETTISON-EXPLOSION-PTR + [545] = "%0.1f", -- Explosion on Jettison Cover WEAP-JETTISON-EXPLOSION-COVER-PTR + [542] = "%0.1f", -- Jettison Pylons ON/OFF WEAP-JETTISON-SPECIAL-PTR + [541] = "%0.1f", -- Jettison Pylons Cover WEAP-JETTISON-SPECIAL-COVER-PTR + [538] = "%0.1f", -- Jettison Launcher ON/OFF WEAP-JETTISON-LAUNCHER-PTR + [537] = "%0.1f", -- Jettison Launcher Cover WEAP-JETTISON-LAUNCHER-COVER-PTR + [536] = "%.4f", -- Arm Rockets WEAP-PUS-ENGAGEMENT-PTR + [673] = "%0.1f", -- Main Weapon Safe Switch ARMAMENT-POWER-OP-PTR + [187] = "%.4f", -- Fire Weapons OP-STICK-RS-PTR + [853] = "%.4f", -- Fire Weapons Cover OP-STICK-RS-COVER-PTR + [713] = "%0.1f", -- Weapon Control WEAP-PRIORITY-OP-PTR + [715] = "%.4f", -- Explosion on Jettison WEAP-JETTISON-EXPLOSION-OP-PTR + [142] = "%0.1f", -- Emergency Jettison WEAP-JETTISON-OP-PTR + [770] = "%0.1f", -- Burst Length SHORT/MED/LONG WEAP-BURST-LENGTH-OP-PTR + [709] = "%0.1f", -- Select Weapon Operator WEAP-SELECT-KNOB-OP-PTR + [773] = "%0.1f", -- Missiles Power WEAP-MISSILES-POWER-OP-PTR + [955] = "%0.1f", -- SCHO Power SHSCHO-POWER-PTR + [768] = "%.4f", -- Release Check PU WEAP-JETTISON-TEST-OP-PTR + [765] = "%0.1f", -- Jettison Launcher ON/OFF WEAP-JETTISON-SPECIAL-OP-PTR + [700] = "%0.1f", -- Bombs/Blocks Mode WEAP-BOMBS-BLOCKS-OP-PTR + [882] = "%0.1f", -- Radiation Reset OP-AIM-RESET-RAD-PTR + [956] = "%.4f", -- SCHO Lamps Check SHSCHO-CHECK-PTR + [772] = "%0.1f", -- Cannon Fire Rate SLOW/FAST WEAP-CANNON-PACE-OP-PTR + [963] = "%0.1f", -- Select Station SHSCHO-KNOB-PTR + [769] = "%.4f", -- Reload Cannon WEAP-NPU-RELOAD-OP-PTR + [712] = "%0.1f", -- Weapon Control Cover WEAP-PRIORITY-OP-COVER-PTR + [714] = "%0.1f", -- Explosion on Jettison Cover WEAP-JETTISON-EXPLOSION-OP-COVER-PTR + [141] = "%0.1f", -- Emergency Jettison Cover WEAP-JETTISON-OP-COVER-PTR + [699] = "%0.1f", -- Bombs/Blocks Mode Cover WEAP-BOMBS-BLOCKS-OP-COVER-PTR + [764] = "%0.1f", -- Jettison Launcher Cover WEAP-JETTISON-SPECIAL-OP-COVER-PTR + [711] = "%0.1f", -- Start container WEAP-KMG-COMMENCE-OP-PTR + [710] = "%0.1f", -- Stop container WEAP-KMG-INTERRUPT-OP-PTR + + [232] = "%.4f", -- Gear Lever LANDING-GEAR-PTR + [228] = "%.4f", -- Gear Lever Lock LANDING-GEAR-LOCK-PTR + [224] = "%.4f", -- Gear Indication Lights ON/OFF LANDING-GEAR-LIGHTS-PTR + [223] = "%.4f", -- Gear Indication Lights Cover UP/DOWN LANDING-GEAR-LIGHTS-COVER-PTR + [677] = "%.4f", -- Operator Gear Switch LANDING-GEAR-OP-PTR + [676] = "%.4f", -- Operator Gear Switch Cover LANDING-GEAR-OP-COVER-PTR + [827] = "%.4f", -- Emeregency Gear Lever LANDING-GEAR-EMER-PTR + + [763] = "%.4f", -- Heating DUAS DUAS-V-HEATING-OP-PTR + [672] = "%.4f", -- Clock Heating Switch CLOCK-HEATING-OP-PTR + [384] = "%.4f", -- Window Sprayer Button WIPER-SPRINKLER-PTR + [680] = "%.4f", -- Operator Window Sprayer Button WIPER-SPRINKLER-OP-PTR + [8] = "%.4f", -- Pilot Door Safety Lock CANOPY-HANDLE-PTR + [189] = "%.4f", -- Pilot Door Safety Lock Button CANOPY-HANDLE-SAFETY-PTR + [848] = "%.4f", -- Operator Lock Canopy CANOPY-HANDLE-OP-PTR + [418] = "%.4f", -- Windscreen Wiper Control Switch WIPER-MODE-PTR-START + [674] = "%.4f", -- Windscreen Wiper Control Switch WIPER-MODE-OP-PTR-START + [420] = "%.4f", -- Pilot Fan FAN-PTR + [665] = "%.4f", -- Operator Fan FAN-OP-PTR + [737] = "%.4f", -- Wheel Brakes Handle STICK-BRAKE-PTR + [736] = "%.4f", -- Parking Brake Handle STICK-BRAKE-FIX-PTR + [753] = "%.4f", -- friction clutch of the collective COLLECTIVE-FRICT-PTR + [0] = "%.4f", -- Cockpit Fan - Touch EASTER_OP + [974] = "%.4f", -- Hide Stick toggle PTR-STICK-HIDE-974 + [671] = "%.4f", -- Autopilot Trimmer for yourself CONTROL-TRIMMER-OP-PTR + [670] = "%.4f", -- Autopilot Trimmer for yourself Switch Cover CONTROL-TRIMMER-OP-COVER-PTR + --[[ + ]]-- +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] + + ExportScript.RadioFreqs(mainPanelDevice) + + + --------------------------------------------------- + ---------Get DISS Angle Readout-------------------- + --------------------------------------------------- + -- The additive value should have been 5, but weird things were happening when it was added to 0 + local courseAngleDigit1 = math.floor((mainPanelDevice:get_argument_value(811) * 10) + 0.0) + courseAngleDigit1 = string.format("%1d" , courseAngleDigit1) + + local courseAngleDigit2 = math.floor((mainPanelDevice:get_argument_value(812) * 10) + 0.0) + courseAngleDigit2 = string.format("%1d" , courseAngleDigit2) + + local courseAngleDigit3 = math.floor((mainPanelDevice:get_argument_value(813) * 10) + 0.0) + courseAngleDigit3 = string.format("%1d" , courseAngleDigit3) + + local courseAngleDigit4 = math.floor((mainPanelDevice:get_argument_value(814) * 10) + 0.0) + courseAngleDigit4 = string.format("%1d" , courseAngleDigit4) + + if courseAngleDigit1 == "10" then + courseAngleDigit1 = "0" + end + if courseAngleDigit2 == "10" then + courseAngleDigit2 = "0" + end + if courseAngleDigit3 == "10" then + courseAngleDigit3 = "0" + end + if courseAngleDigit4 == "10" then + courseAngleDigit4 = "9" + end + + -- combine the digits into a single string + courseAngleFull = string.format(courseAngleDigit1 .. courseAngleDigit2 .. courseAngleDigit3 .. "." .. courseAngleDigit4) + + -- Pick a number to contain the information + ExportScript.Tools.SendData(3000, courseAngleFull) + + + --------------------------------------------------- + ---------Get DISS Distance Readout----------------- + --------------------------------------------------- + + -- The additive value should have been 5, but weird things were happening when it was added to 0 + local distanceKmDigit1 = math.floor((mainPanelDevice:get_argument_value(806) * 10) + 0.0) + distanceKmDigit1 = string.format("%1d" , distanceKmDigit1) + + local distanceKmDigit2 = math.floor((mainPanelDevice:get_argument_value(807) * 10) + 0.0) + distanceKmDigit2 = string.format("%1d" , distanceKmDigit2) + + local distanceKmDigit3 =(mainPanelDevice:get_argument_value(808) * 10) + distanceKmDigit3 = string.format("%.1f" , distanceKmDigit3) + + if distanceKmDigit1 == "10" then + distanceKmDigit1 = "0" + end + if distanceKmDigit2 == "10" then + distanceKmDigit2 = "0" + end + --weird things were happening like the numbers going 049.9 -> 040.0 -> 050.0 + --so I made the replacement digit 9.9 instead of the old value of 0.0 + if distanceKmDigit3 == "10.0" then + distanceKmDigit3 = "9.9" + end + + -- combine the digits into a single string + distanceKmFull = string.format(distanceKmDigit1 .. distanceKmDigit2 .. distanceKmDigit3) + + -- Pick a number to contain the information + ExportScript.Tools.SendData(3001, distanceKmFull) + + + --------------------------------------------------- + ---------Get DISS Deviation Readout---------------- + --------------------------------------------------- + + -- The additive value should have been 5, but weird things were happening when it was added to 0 + local lateralDeviationDigit1 = math.floor((mainPanelDevice:get_argument_value(799) * 10) + 0.0) + lateralDeviationDigit1 = string.format("%1d" , lateralDeviationDigit1) + + local lateralDeviationDigit2 = math.floor((mainPanelDevice:get_argument_value(800) * 10) + 0.0) + lateralDeviationDigit2 = string.format("%1d" , lateralDeviationDigit2) + + local lateralDeviationDigit3 =(mainPanelDevice:get_argument_value(801) * 10) + lateralDeviationDigit3 = string.format("%.1f" , lateralDeviationDigit3) + + if lateralDeviationDigit1 == "10" then + lateralDeviationDigit1 = "0" + end + if lateralDeviationDigit2 == "10" then + lateralDeviationDigit2 = "0" + end + --weird things were happening like the numbers going 049.9 -> 040.0 -> 050.0 + --so I made the replacement digit 9.9 instead of the old value of 0.0 + if lateralDeviationDigit3 == "10.0" then + lateralDeviationDigit3 = "9.9" + end + + -- combine the digits into a single string + lateralDeviationFull = string.format(lateralDeviationDigit1 .. lateralDeviationDigit2 .. lateralDeviationDigit3) + + -- Pick a number to contain the information + ExportScript.Tools.SendData(3002, lateralDeviationFull) + + + ---------------------------------- + ---------Ammo Counter 1----------- + ---------------------------------- + + local ammoCounter1_digit12 = (mainPanelDevice:get_argument_value(716) / 0.0526) * 1 -- This gets the raw number, eg 0.1234 and then uses the multiplier to change it to the appropiate number + ammoCounter1_digit12 = string.format("%.1d" , ammoCounter1_digit12) -- Trims the number + -- If the number is a single digit, add a leading zero + if #ammoCounter1_digit12 == 1 then + ammoCounter1_digit12 = string.format("0" .. ammoCounter1_digit12) + end + + local ammoCounter1_digit34 = (mainPanelDevice:get_argument_value(717) / 0.0526) * 5-- The 5 is for the different roller scale + ammoCounter1_digit34 = string.format("%.1d" , ammoCounter1_digit34) + if #ammoCounter1_digit34 == 1 then + ammoCounter1_digit34 = string.format("0" .. ammoCounter1_digit34) + end + ExportScript.Tools.SendData(3011, "12,7x4\n" .. ammoCounter1_digit12 .. ammoCounter1_digit34) + + + ---------------------------------- + ---------Ammo Counter 2----------- + ---------------------------------- + + local ammoCounter2_digit12 = (mainPanelDevice:get_argument_value(720) / 0.0526) * 1 + ammoCounter2_digit12 = string.format("%.1d" , ammoCounter2_digit12) + + if #ammoCounter2_digit12 == 1 then + ammoCounter2_digit12 = string.format("0" .. ammoCounter2_digit12) + end + + local ammoCounter2_digit34 = (mainPanelDevice:get_argument_value(721) / 0.0526) * 5 + ammoCounter2_digit34 = string.format("%.1d" , ammoCounter2_digit34) + if #ammoCounter2_digit34 == 1 then + ammoCounter2_digit34 = string.format("0" .. ammoCounter2_digit34) + end + ExportScript.Tools.SendData(3012, "12,7x5\n" .. ammoCounter2_digit12 .. ammoCounter2_digit34) + + + ---------------------------------- + ---------Ammo Counter 3----------- + ---------------------------------- + + local ammoCounter3_digit12 = (mainPanelDevice:get_argument_value(724) / 0.0526) * 1 + ammoCounter3_digit12 = string.format("%.1d" , ammoCounter3_digit12) + + if #ammoCounter3_digit12 == 1 then + ammoCounter3_digit12 = string.format("0" .. ammoCounter3_digit12) + end + + local ammoCounter3_digit34 = (mainPanelDevice:get_argument_value(725) / 0.0526) * 5 + ammoCounter3_digit34 = string.format("%.1d" , ammoCounter3_digit34) + if #ammoCounter3_digit34 == 1 then + ammoCounter3_digit34 = string.format("0" .. ammoCounter3_digit34) + end + ExportScript.Tools.SendData(3013, "30x2\n" .. ammoCounter3_digit12 .. ammoCounter3_digit34) + + + ---------------------------------- + ---------Ammo Counter 4----------- + ---------------------------------- + + local ammoCounter4_digit12 = (mainPanelDevice:get_argument_value(728) / 0.0526) * 1 + ammoCounter4_digit12 = string.format("%.1d" , ammoCounter4_digit12) + + if #ammoCounter4_digit12 == 1 then + ammoCounter4_digit12 = string.format("0" .. ammoCounter4_digit12) + end + + local ammoCounter4_digit34 = (mainPanelDevice:get_argument_value(729) / 0.0526) * 5 + ammoCounter4_digit34 = string.format("%.1d" , ammoCounter4_digit34) + if #ammoCounter4_digit34 == 1 then + ammoCounter4_digit34 = string.format("0" .. ammoCounter4_digit34) + end + ExportScript.Tools.SendData(3014, "12,7x5\n" .. ammoCounter4_digit12 .. ammoCounter4_digit34) + + + ---------------------------------- + ---------Ammo Counter 5----------- + ---------------------------------- + --this one is optimized + --TODO: optimize the other 4, maybe + + local ammoCounter5_digit12 = string.format("%.2d" ,(mainPanelDevice:get_argument_value(732) / 0.0526) * 1) -- 0.0526 is the multiplier + local ammoCounter5_digit34 = string.format("%.2d" ,(mainPanelDevice:get_argument_value(733) / 0.0526) * 5) + + ExportScript.Tools.SendData(3015, "12,7x4\n" .. ammoCounter5_digit12 .. ammoCounter5_digit34) + + + --------------------------------------- + -----Get ARC-15 Freqs (pilot)---------- + --------------------------------------- + + local arc15Pilot_freq1digit1 = string.format("%.1d" ,(mainPanelDevice:get_argument_value(467) / 0.0588)) + local arc15Pilot_freq1digit2 = string.format("%.1d" ,(mainPanelDevice:get_argument_value(468) / 0.1111) + 0.1) -- the 0.1 is for rounding + local arc15Pilot_freq1digit3 = string.format("%0.1f" ,(mainPanelDevice:get_argument_value(469) * 10)) + + ExportScript.Tools.SendData(3020, "ARC CH2\n" .. arc15Pilot_freq1digit1 .. arc15Pilot_freq1digit2 .. arc15Pilot_freq1digit3) + + local arc15Pilot_freq2digit1 = string.format("%.1d" ,(mainPanelDevice:get_argument_value(464) / 0.0588)) + local arc15Pilot_freq2digit2 = string.format("%.1d" ,(mainPanelDevice:get_argument_value(465) / 0.1111) + 0.1) -- the 0.1 is for rounding + local arc15Pilot_freq2digit3 = string.format("%0.1f" ,(mainPanelDevice:get_argument_value(466) * 10)) + + ExportScript.Tools.SendData(3021, "ARC CH1\n" .. arc15Pilot_freq2digit1 .. arc15Pilot_freq2digit2 .. arc15Pilot_freq2digit3) + + + ------------------------------------- + -----Hind Flare and Chaff Counts----- + ------------------------------------- + + local hindKneeboardInfo = ExportScript.Tools.split(list_indication(8), "%c")--this contains the formated table of the kneeboard + + -- Old way of getting the values. Was hardcoded and could break of DCS updates + --local txt_FLARES_Count = hindKneeboardInfo[15] -- original 18 + --local txt_CHAFFS_Count = hindKneeboardInfo[21] -- original 24 + + -- New way of detecting the counts, borrowed from Wizard and the F16 + local txt_FLARES_Count + + for k,v in pairs(hindKneeboardInfo) do + if v == "txt_FLARES_Count" then + txt_FLARES_Count = hindKneeboardInfo[k+1] + end + end + + + local txt_CHAFFS_Count + + for k,v in pairs(hindKneeboardInfo) do + if v == "txt_CHAFFS_Count" then + txt_CHAFFS_Count = hindKneeboardInfo[k+1] + end + end + + ExportScript.Tools.SendData(3022, string.format(txt_FLARES_Count)) + ExportScript.Tools.SendData(3023, string.format(txt_CHAFFS_Count)) + ExportScript.Tools.SendData(3024, string.format("FLARE\n" .. txt_FLARES_Count)) + ExportScript.Tools.SendData(3025, string.format("CHAFF\n" .. txt_CHAFFS_Count)) + + + ------------------- + -----Hind mike----- + ------------------- + --[[ + -- Aka (Streamdeck Elevation Navigation Pressure Altimeter Instrument) SENPAI + -- Aka (STANDARD UNIT GRAPHICAL OVERLAY INTERPRETATION) SUGOI + -- Aka (Local Elevation and Weather Dataconverter) LEWD + -- Aka (Metric Imperial Navigation Automated System Aid Nonsense) MINA-SAN + + Goal: Create a "universal" profile that displays the following for every module with + minimal or no Stream Deck reconfiguration. Contains 4 tiles with three conversions each. + - Pressure + - inHg + - Millibars + - mmHg + - Altitude (MSL) + - feet + - meters + - kilometers + - Altitude (AGL) + - feet + - meters + - kilometers + - Airspeed + - Knots + - kilometers per hr + - Mach (airframe dependent) + + -- Export number format + 44224 = Pressure readouts + 44225 = Pressure readout color change + 44226 = Alt(msl) readouts + 44227 = Alt(msl) readout color change + 44228 = Alt(agl) readouts + 44229 = Alt(agl) readout color change + 44230 = airspeed readouts + 44231 = airspeed readout color change + ]] + + + ---------------------------- + -- Get Hind Pressure Info -- + ---------------------------- + + -- Necessary info + -- [21] = "%.4f", -- Baro Pressure Kollsman Window 0 = 680, 1 = 790 + + + local pressure_mi24p_mmHg = (mainPanelDevice:get_argument_value(21) * 110) + 680 -- Default is mmHg + pressure_mi24p_mmHg = string.format("%.f", pressure_mi24p_mmHg) + + local pressure_mi24p_inhg = string.format("%0.2f",pressure_mi24p_mmHg/25.4) -- Convert to inHg + + local pressure_mi24p_mbar = string.format("%.f",pressure_mi24p_mmHg * 1.3333) -- Convert to Millibar + + -- Combined + ExportScript.Tools.SendData(44224, string.format("Pressure\n" .. + pressure_mi24p_mmHg .. " mmHg" .. "\n" .. + pressure_mi24p_inhg .. " inHg" .. "\n" .. + pressure_mi24p_mbar .. " mbar")) + + + ---------------------------------- + -- Get Hind Altitude (MSL) Info -- + ---------------------------------- + + -- Necessary info + -- [19] = "%.4f", -- Pilot Altimeter Thousands 0 = 0, 0.5 = 500, 1.0 = 0 + + -- Default is meters + local altMsl_mi24p_meters = string.format ( "%1d", (mainPanelDevice:get_argument_value(19) * 10000)) -- consider changing to every 10s of meters + + local altMsl_mi24p_feet = string.format("%.f", altMsl_mi24p_meters * 3.281) -- Convert to feet + + local altMsl_mi24p_km = string.format("%.2f", altMsl_mi24p_meters / 1000) -- Convert to km + + -- Combined + ExportScript.Tools.SendData(44226, string.format("Alt (MSL)\n" .. + altMsl_mi24p_meters .. " m" .. "\n" .. + altMsl_mi24p_feet .. " ft" .. "\n" .. + altMsl_mi24p_km .. " km")) + + + ---------------------------------- + -- Get Hind Altitude (AGL) Info -- + ---------------------------------- + + -- Necessary info + -- [32] = "%.4f", -- Radar Altimeter needle 0 to 1 + + local altAgl_mi24p_meters = (mainPanelDevice:get_argument_value(32)) + + --the following gets the true value of the rad alt + --the equations were calculated using and excel sheet and observation + if altAgl_mi24p_meters < 0.4480 then + altAgl_mi24p_meters = (224.58 * (altAgl_mi24p_meters)) - 0.5546 + else + altAgl_mi24p_meters = (1360.5 * (altAgl_mi24p_meters)) - 508.8 + end + + local altAgl_mi24p_meters_display = string.format("%.f",altAgl_mi24p_meters) -- Meters + + local altAgl_mi24p_feet = string.format("%.f", altAgl_mi24p_meters * 3.281) -- Feet + + local altAgl_mi24p_km = string.format("%.2f",altAgl_mi24p_meters / 1000) -- Km + + -- Combined + ExportScript.Tools.SendData(44228, string.format("Alt (AGL)\n" .. + altAgl_mi24p_meters_display .. " m" .. "\n" .. + altAgl_mi24p_feet .. " ft" .. "\n" .. + altAgl_mi24p_km .. " km")) + + + ---------------------------- + -- Get Hind Airspeed Info -- + ---------------------------- + + --[[ + 0.030 = 50 kmph + change at = 100 + change at = 400 + 0.989 = 450 + ]] + + local airspeed_mi24p_kmph = mainPanelDevice:get_argument_value(790) + + local airspeed_mi24p_kmph_display = airspeed_mi24p_kmph + + if airspeed_mi24p_kmph < 0.112 then + airspeed_mi24p_kmph_display = (609.76 * airspeed_mi24p_kmph) + 31.707 + else + airspeed_mi24p_kmph_display = (427.28 * airspeed_mi24p_kmph) + 51.842 + end + -- Really weird stuff happens above about 400. but that shouldnt be a problem, right? + -- you could maybe make an equation at 0.8435 with (427.28 * airspeed_mi24p_kmph) + 31.842, maybe + airspeed_mi24p_kmph_display = string.format("%.f",airspeed_mi24p_kmph_display) -- kmph + + local airspeed_mi24p_kts_display = string.format("%.f",airspeed_mi24p_kmph_display / 1.852) -- kts + + --No mach for this aircraft + + -- Combined + ExportScript.Tools.SendData(44230, string.format("Airspeed\n" .. + airspeed_mi24p_kmph_display .. " km/h" .. "\n" .. + airspeed_mi24p_kts_display .. " kts" .. "\n" .. + " ")) -- empty space for formating + + + --------------- + --mike Extras-- + --------------- + + -- Image change for airspeed overspeed + if mainPanelDevice:get_argument_value(790) > 0.676 then + ExportScript.Tools.SendData(44231, "1") + else + ExportScript.Tools.SendData(44231, "0") + end + + -- Image change for radar altimeter + -- [284] = "%.4f", -- Altimeter Yellow button Brightness + if mainPanelDevice:get_argument_value(284) > 0.9 then + ExportScript.Tools.SendData(44229, "1") + else + ExportScript.Tools.SendData(44229, "0") + end + + ------------------------- + ----- Hind mike END ----- + ------------------------- + + + ------------------------------ + ----- Hind VRS Detection ----- + ------------------------------ + + -- VRS Warining. Airspeed <50 kmph, VSI > 3-5, and radar altitude < 100 or something + -- Consider making these detection values user-friendly on the DCS-Interface side for easy editing + + local indicator1 -- vsi + local indicator2 -- airspeed + --local indicator3 -- radar alt + + -- airspeed + -- 0.112 is 100 + -- 0.030 is 50 + if mainPanelDevice:get_argument_value(790) < 0.112 then + indicator1 = 1 + else + indicator1 = 0 + end + + -- vsi + -- -0.134 = -3 + -- -0.179 = -4 + -- -0.228 = -5 + if mainPanelDevice:get_argument_value(95) < -0.134 then + indicator2 = 1 + else + indicator2 = 0 + end + + --[[ + -- radar altimeter + --if you can, maybe implement the VRS indcator with the altimeter flag too + -- incase the altitude of the player is super high + -- 0.224 = 50 + -- 0.448 = 100 + if mainPanelDevice:get_argument_value(32) < 0.224 then + indicator3 = 1 + ExportScript.Tools.SendData(3033, "1") + else + indicator3 = 0 + ExportScript.Tools.SendData(3033, "0") + end + ]] + if indicator1 == 1 and indicator2 == 1 then + ExportScript.Tools.SendData(3030, "1") + else + ExportScript.Tools.SendData(3030, "0") + end +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] + +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] + + +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] + + --===================================================================================== + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get the value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +]] +--[[ + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] + +end + +----------------------------- +-- Custom functions -- +----------------------------- +--TODO: Relocate functions to here + +function ExportScript.RadioFreqs(mainPanelDevice) +-- free flight +-- device 49 returns "127500088" R-863 +-- device 50 returns "2000001" Jardo-1 +-- device 51 returns "21500912" R-828 +-- device 52. returns "114116896" R-852 + + local R863_channel = (mainPanelDevice:get_argument_value(512)) -- R863 left quarter panel + R863_channel = round(R863_channel * 20,0) + local R863_freq = (GetDevice(49):get_frequency())/1000000 + --ExportScript.Tools.SendData(3000, string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + R863_freq = ExportScript.Tools.RoundFreqeuncy(R863_freq) + ExportScript.Tools.SendData(3031, "R-863\nCH " .. R863_channel .. "\n" .. R863_freq) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + + local Jardo1_freq = (GetDevice(50):get_frequency())/1000 + Jardo1_freq = ExportScript.Tools.RoundFreqeuncy(Jardo1_freq,"7.3",false,0.1) + ExportScript.Tools.SendData(3032, "Jardo 1\n" .. Jardo1_freq) + + local R828_channel = (mainPanelDevice:get_argument_value(338)) -- R828 rear left + R828_channel = round(R828_channel * 10,0) + local R828_freq = (GetDevice(51):get_frequency())/100000 + R828_freq = ExportScript.Tools.RoundFreqeuncy(R828_freq) + ExportScript.Tools.SendData(3033, "R-828\nCH " .. R828_channel .. "\n" .. R828_freq) + + local R852_channel = (mainPanelDevice:get_argument_value(519)) -- R863 left quarter panel + R852_channel = round(R852_channel * 10,0) + 1 + local R852_freq = (GetDevice(52):get_frequency())/1000000 + R852_freq = ExportScript.Tools.RoundFreqeuncy(R852_freq) + ExportScript.Tools.SendData(3034, "R-852\nCH " .. R852_channel .. "\n" .. R852_freq) +end + +------------------------------ +-- General Helper Functions -- +------------------------------ + +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 diff --git a/Scripts/DCS-ExportScript/ExportsModules/Mi-8MT.lua b/Scripts/DCS-ExportScript/ExportsModules/Mi-8MT.lua index 1b8f7679..24ba1c75 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Mi-8MT.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Mi-8MT.lua @@ -1008,6 +1008,9 @@ function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) --[21] = "%.4f", -- VD_10K_L_PRESS {0.0, 1.0} ExportScript.Tools.SendData(21, string.format("%.4f", ExportScript.Tools.negate(mainPanelDevice:get_argument_value(21)))) -- negate + + ExportScript.CompassReadouts(mainPanelDevice) + end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) @@ -1325,3 +1328,297 @@ function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) end ]] end + +function ExportScript.CompassReadouts(mainPanelDevice) + +--[[ + + [25] = "%.4f", -- UGR_4K_heading_L {0.0, 1.0} + [27] = "%.4f", -- UGR_4K_commanded_course_L {0.0, 1.0} + [28] = "%.4f", -- UGR_4K_bearing_needle_L {0.0, 1.0} + ---- + [101] = "%.4f", -- UGR_4K_heading_R {0.0, 1.0} + [103] = "%.4f", -- UGR_4K_commanded_course_R {0.0, 1.0} + [104] = "%.4f", -- UGR_4K_bearing_needle_R {0.0, 1.0} + +]] + + --ExportScript.Tools.SendData(3000, "Hi") --test + local pilotCompassHeadingValue = ExportScript.Tools.round(mainPanelDevice:get_argument_value(25),8)--rounds to the 8th digit after the decimal + local pilotCompassCommandedCourseValue = ExportScript.Tools.round(mainPanelDevice:get_argument_value(27),8)--makes it more accurate compared to 2 + local pilotCompassBearingNeedleValue = ExportScript.Tools.round(mainPanelDevice:get_argument_value(28),8) + +--[[ + we know for the HeadingValue, 0.0 = 000 + 0.5 = 180 + 1.0 = 000 + + For both the commanded course and the bearing needle are similar, + but they are based on the orentation of the Heading value. + + This means that if we subtract their values from the Heading value, + the absolute value should represent the fraction of the compass that + is shown. Hopefully... + + Examples: + + if pilotCompassHeadingValue = 0.0, the top is indicating 000 + pilotCompassCommandedCourseValue at 0.0 will show 000 + pilotCompassBearingNeedleValue at 0.0 will show 000 + + We realize that we only need to solve for CommandedCourse bc the + bearingNeedle will be the same code. + + if pilotCompassHeadingValue = 0.25, the top is indicating 090 + if pilotCompassCommandedCourseValue at 0.0 will point to 090 + if pilotCompassCommandedCourseValue at 0.25 will point to 180 + + Now let's make up some math that works. Science! + + We know that 180 should "be" 0.50. That turns out to be the vaules combined... + Let's see if that works in a different example. + + if pilotCompassHeadingValue = 0.75, the top is indicating 270 + if pilotCompassCommandedCourseValue at 0.0 will point to 270 + if pilotCompassCommandedCourseValue at 0.50 will point to 090 + + Does it work? Well, 0.75 plus 0.50 = 1.25, which reduced by 1 = 0.25, which + represents a compass value of 090. Yes! The logic works! + All of the above was assumed and varified via ModelViewer. + + Now lets write that in code. + +]] + + -- Let's print out some easy, basic, raw values to monitor our base assumptions + -- This step is import so that we don't go in a random direction with our code. + -- Dont use the ':' symbol. Export Scripts does not like that. +--[[ + ExportScript.Tools.SendData(3000, "HDG\n" + .. "Raw " .. pilotCompassHeadingValue .. "\n" + .. "DEG " .. pilotCompassHeadingValue*360) + ExportScript.Tools.SendData(3001, "Needle 2\n" + .. "Raw " .. pilotCompassCommandedCourseValue .. "\n" + .. "Abs " .. pilotCompassCommandedCourseValue*360) + ExportScript.Tools.SendData(3002, "Needle 1\n" + .. "Raw " .. pilotCompassBearingNeedleValue .. "\n" + .. "Abs " .. pilotCompassBearingNeedleValue*360) +]] + + -- Now we code the code we think is going to work using out thought process from above. + + local pilotadditiveCommandedValue = pilotCompassHeadingValue + pilotCompassCommandedCourseValue + local pilotCompassCommandedNeedleValue_adjusted + + -- We have to reduce the number to below 1 (or below 360 if we did it later). + + if pilotadditiveCommandedValue > 1 then + pilotCompassCommandedNeedleValue_adjusted = pilotadditiveCommandedValue - 1 + -- The max the additive can be is "2". if we minus 1 from 2, we get 1, which is 360. + -- Not more reduction logic is necessary. + else + pilotCompassCommandedNeedleValue_adjusted = pilotadditiveCommandedValue + end + + -- we need to add a '0' to the front for numbers less than three digits long + -- or add two '0's for number less than two digits long + -- The following code is from the mossie.lua + + --turn the number into a string + pilotCompassCommandedNeedleValue_adjusted = string.format("%.1d" , round(pilotCompassCommandedNeedleValue_adjusted*360,0)) + + --if the values string length is 2 then + if #pilotCompassCommandedNeedleValue_adjusted == 2 then + pilotCompassCommandedNeedleValue_adjusted = "0" .. pilotCompassCommandedNeedleValue_adjusted + elseif #pilotCompassCommandedNeedleValue_adjusted == 1 then + pilotCompassCommandedNeedleValue_adjusted = "00" .. pilotCompassCommandedNeedleValue_adjusted + end + +--[[ + ExportScript.Tools.SendData(3003, "Needle 2\n" + .. "Deg " .. pilotCompassCommandedNeedleValue_adjusted) + + + ExportScript.Tools.SendData(3004, "Additive\n" .. pilotadditiveCommandedValue .. "=\n" + .. pilotCompassHeadingValue .. "+\n" + .. pilotCompassCommandedCourseValue) +]] + + -- Yay, it works! Now we need to format into solid degrees and round the result + -- After that we will clean the code up a bit and then replicate for the other needle. + + local pilotadditiveBearingValue = pilotCompassHeadingValue + pilotCompassBearingNeedleValue + local pilotCompassBearingNeedleValue_adjusted + + -- We have to reduce the number to below 1 (or below 360 if we did it later). + + if pilotadditiveBearingValue > 1 then + pilotCompassBearingNeedleValue_adjusted = pilotadditiveBearingValue - 1 + -- The max the additive can be is "2". if we minus 1 from 2, we get 1, which is 360. + -- Not more reduction logic is necessary. + else + pilotCompassBearingNeedleValue_adjusted = pilotadditiveBearingValue + end + + + -- we need to add a '0' to the front for numbers less than three digits long + -- or add two '0's for number less than two digits long + -- The following code is from the mossie.lua + + --turn the number into a string + pilotCompassBearingNeedleValue_adjusted = string.format("%.1d" , round(pilotCompassBearingNeedleValue_adjusted*360,0)) + + --if the values string length is 2 then + if #pilotCompassBearingNeedleValue_adjusted == 2 then + pilotCompassBearingNeedleValue_adjusted = "0" .. pilotCompassBearingNeedleValue_adjusted + elseif #pilotCompassBearingNeedleValue_adjusted == 1 then + pilotCompassBearingNeedleValue_adjusted = "00" .. pilotCompassBearingNeedleValue_adjusted + end + +--[[ + ExportScript.Tools.SendData(3005, "Needle 1\n" + .. "Deg " .. pilotCompassBearingNeedleValue_adjusted) +]] + -- Now that we have all of that information, it's time to put in onto one tile. + + --turn the number into a string + pilotCompassHeadingValue = string.format("%.1d" , round(pilotCompassHeadingValue*360,0)) + + --if the values string length is 2 then + if #pilotCompassHeadingValue == 2 then + pilotCompassHeadingValue = "0" .. pilotCompassHeadingValue + elseif #pilotCompassHeadingValue == 1 then + pilotCompassHeadingValue = "00" .. pilotCompassHeadingValue + end + + --last minute string adjustment for this aircraft's compass + if pilotCompassHeadingValue == "360" then pilotCompassHeadingValue = "000" end + if pilotCompassCommandedNeedleValue_adjusted == "360" then pilotCompassCommandedNeedleValue_adjusted = "000" end + if pilotCompassBearingNeedleValue_adjusted == "360" then pilotCompassBearingNeedleValue_adjusted = "000" end + + ExportScript.Tools.SendData(3000, "PLT\n" + .. "HDG " .. pilotCompassHeadingValue + .. "\nN1 " .. pilotCompassCommandedNeedleValue_adjusted + .. "\nN2 " .. pilotCompassBearingNeedleValue_adjusted) + + +--=====Copilot Side=====-- + + local copilotCompassHeadingValue = ExportScript.Tools.round(mainPanelDevice:get_argument_value(101),2) + local copilotCompassCommandedCourseValue = ExportScript.Tools.round(mainPanelDevice:get_argument_value(103),2) + local copilotCompassBearingNeedleValue = ExportScript.Tools.round(mainPanelDevice:get_argument_value(104),2) + + + local copilotadditiveCommandedValue = copilotCompassHeadingValue + copilotCompassCommandedCourseValue + local copilotCompassCommandedNeedleValue_adjusted + + if copilotadditiveCommandedValue > 1 then + copilotCompassCommandedNeedleValue_adjusted = copilotadditiveCommandedValue - 1 + else + copilotCompassCommandedNeedleValue_adjusted = copilotadditiveCommandedValue + end + + local copilotCompassCommandedNeedleValue_adjustedInt = round(copilotCompassCommandedNeedleValue_adjusted*360,0) --used for later + copilotCompassCommandedNeedleValue_adjusted = string.format("%.1d" , round(copilotCompassCommandedNeedleValue_adjusted*360,0)) + + --if the values string length is 2 then + if #copilotCompassCommandedNeedleValue_adjusted == 2 then + copilotCompassCommandedNeedleValue_adjusted = "0" .. copilotCompassCommandedNeedleValue_adjusted + elseif #copilotCompassCommandedNeedleValue_adjusted == 1 then + copilotCompassCommandedNeedleValue_adjusted = "00" .. copilotCompassCommandedNeedleValue_adjusted + end + + + local copilotadditiveBearingValue = copilotCompassHeadingValue + copilotCompassBearingNeedleValue + local copilotCompassBearingNeedleValue_adjusted + + if copilotadditiveBearingValue > 1 then + copilotCompassBearingNeedleValue_adjusted = copilotadditiveBearingValue - 1 + else + copilotCompassBearingNeedleValue_adjusted = copilotadditiveBearingValue + end + + copilotCompassBearingNeedleValue_adjustedInt = round(copilotCompassBearingNeedleValue_adjusted*360,0)--used for later + --turn the number into a string + copilotCompassBearingNeedleValue_adjusted = string.format("%.1d" , round(copilotCompassBearingNeedleValue_adjusted*360,0)) + + --if the values string length is 2 then + if #copilotCompassBearingNeedleValue_adjusted == 2 then + copilotCompassBearingNeedleValue_adjusted = "0" .. copilotCompassBearingNeedleValue_adjusted + elseif #copilotCompassBearingNeedleValue_adjusted == 1 then + copilotCompassBearingNeedleValue_adjusted = "00" .. copilotCompassBearingNeedleValue_adjusted + end + + -- Now that we have all of that information, it's time to put in onto one tile. + + + --turn the number into a string + copilotCompassHeadingValue = string.format("%.1d" , round(copilotCompassHeadingValue*360,0)) + + --if the values string length is 2 then + if #copilotCompassHeadingValue == 2 then + copilotCompassHeadingValue = "0" .. copilotCompassHeadingValue + elseif #copilotCompassHeadingValue == 1 then + copilotCompassHeadingValue = "00" .. copilotCompassHeadingValue + end + + --last minute string adjustment for this aircraft's compass + if copilotCompassHeadingValue == "360" then copilotCompassHeadingValue = "000" end + if copilotCompassCommandedNeedleValue_adjusted == "360" then copilotCompassCommandedNeedleValue_adjusted = "000" end + if copilotCompassBearingNeedleValue_adjusted == "360" then copilotCompassBearingNeedleValue_adjusted = "000" end + + ExportScript.Tools.SendData(3001, "CPLT\n" + .. "HDG " .. copilotCompassHeadingValue + .. "\nN1 " .. copilotCompassCommandedNeedleValue_adjusted + .. "\nN2 " .. copilotCompassBearingNeedleValue_adjusted) + + + -- something a little extra. an "on course" or "on bearing" detector that changes colors + -- if the commanded course is within 5 degrees of the way you are going, then you are on course + -- if the ndb bearing line is within 5 degrees of the way you are going, then you are on bearing + -- You can code this some other day. +end + +------------------------------ +-- General Helper Functions -- +------------------------------ + +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 diff --git a/Scripts/DCS-ExportScript/ExportsModules/MiG-15bis_FC.lua b/Scripts/DCS-ExportScript/ExportsModules/MiG-15bis_FC.lua new file mode 100644 index 00000000..adff692f --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/MiG-15bis_FC.lua @@ -0,0 +1,204 @@ +-- MiG-15bis FC + +ExportScript.FoundDCSModule = true +ExportScript.Version.MiG15bis_FC = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [4] = "%0.4f", -- IAS + [5] = "%0.4f", -- TAS + [6] = "%0.4f", -- AGK_47B_roll + [7] = "%0.4f", -- AGK_47B_pitch + [8] = "%0.4f", -- AGK_47B_sideslip + [9] = "%0.4f", -- AGK_47B_turn + [10] = "%0.4f", -- AGK_47B_horizon + [11] = "%0.4f", -- AGK_47B_failure_flag + [14] = "%0.4f", -- Variometer + [15] = "%0.4f", -- CLOCK_currtime_hours + [16] = "%0.4f", -- CLOCK_currtime_minutes + [17] = "%0.4f", -- CLOCK_seconds_meter_time_seconds + [18] = "%0.4f", -- CLOCK_flight_hours + [19] = "%0.4f", -- CLOCK_flight_minutes + [20] = "%0.4f", -- CLOCK_seconds_meter_time_minutes + [22] = "%0.4f", -- CLOCK_flight_time_meter_status + [27] = "%0.4f", -- MACH + [28] = "%0.4f", -- Altimeter_km + [29] = "%0.4f", -- Altimeter_m + [31] = "%0.4f", -- Altimeter_Pressure + [32] = "%0.4f", -- HeadingScale + [33] = "%0.4f", -- Heading + [35] = "%0.4f", -- PRV_46_RAlt + [38] = "%0.4f", -- ARC5_Bearing + [39] = "%0.4f", -- CockpitAltitude + [40] = "%0.4f", -- PressureDifference + [41] = "%0.4f", -- EngineTemperature + [42] = "%0.4f", -- EngineTachometer + [43] = "%0.4f", -- EngineFuelPressure + [44] = "%0.4f", -- OilPressure + [45] = "%0.4f", -- OilTemperature + [46] = "%0.4f", -- FuelPressure + [47] = "%0.4f", -- FuelQuantity + [48] = "%0.4f", -- OxygenPressure + [49] = "%0.4f", -- FlowPressure + [60] = "%0.4f", -- FlowBlinker + [83] = "%0.4f", -- VoltAmperMeter + [93] = "%0.4f", -- NR23_TOP_Ready_Lamp + [94] = "%0.4f", -- NR23_BOTTOM_Ready_Lamp + [95] = "%0.4f", -- N37D_Ready_Lamp + [98] = "%0.4f", -- LEFT_BOMB_Lamp + [99] = "%0.4f", -- RIGHT_BOMB_Lamp + [100] = "%0.4f", -- Tactical_Rel_Lamp + [121] = "%0.4f", -- LeftBrakePressure + [122] = "%0.4f", -- RightBrakePressure + [127] = "%0.4f", -- RadioReceiverInd + [128] = "%0.4f", -- RadioReceiverKnob + [139] = "%0.4f", -- HydraulicPressureGain + [144] = "%0.4f", -- RadioReceiverGauge + [165] = "%0.4f", -- HydraulicPressureAirGears + [168] = "%0.4f", -- HydraulicPressureMain + [169] = "%0.4f", -- HydraulicPressureAirFlaps + [172] = "%0.4f", -- HydraulicPressureMainAir + [175] = "%0.4f", -- ARC5_Tuning + [176] = "%0.4f", -- ARC5_TuningMeter + [188] = "%0.4f", -- CanopyAirValveIndication + [191] = "%0.4f", -- StickPitch + [192] = "%0.4f", -- StickBank + [193] = "%0.4f", -- B_1_knopf + [194] = "%0.4f", -- A_knopf + [195] = "%0.4f", -- B_2_knopf + [196] = "%0.4f", -- Cover_knopf + [199] = "%0.4f", -- WheelBrakeLever + [204] = "%0.4f", -- Panel_Shake_Y + [205] = "%0.4f", -- Panel_Shake_Z + [205] = "%0.4f", -- EngineThrottle + [206] = "%0.4f", -- Panel_Rot_X + [211] = "%0.4f", -- RudderPedals + [222] = "%0.4f", -- RightCanopyLever + [223] = "%0.4f", -- LeftCanopyLever + [224] = "%0.4f", -- AftCanopyLever + [225] = "%0.4f", -- Canopy + [235] = "%0.4f", -- RadioAntennaPower + [238] = "%0.4f", -- ARC5_Band + [239] = "%0.4f", -- ARC5_FreqScale + [244] = "%0.4f", -- lamps_lightness + [245] = "%0.4f", -- ASP_3N_Range + [246] = "%0.4f", -- CanopyDamages + [540] = "%0.4f", -- pilot_draw + [814] = "%0.4f", -- ARC5_Scale + +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Mirage-F1CE.lua b/Scripts/DCS-ExportScript/ExportsModules/Mirage-F1CE.lua new file mode 100644 index 00000000..4c732029 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Mirage-F1CE.lua @@ -0,0 +1,2344 @@ +-- Mirage-F1CE +-- Symbols +-- https://www.i2symbol.com/symbols/ +-- https://emojipedia.org/check-mark/ +-- https://unicode-table.com/en/sets/arrow-symbols/ + +ExportScript.FoundDCSModule = true +ExportScript.Version.Mirage_F1CE = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + [0] = "%.4f", -- mirrors_draw + [1] = "%.4f", -- Canopy open/close + [2] = "%.4f", -- Mirrors + [3] = "%.4f", -- Canopy hinged handle + + -- Unused <4-9> + + [10] = "%.4f", -- Seat height position + [11] = "%.1f", -- Seat height adjustment control + [12] = "%.4f", -- Seat separation handle + [13] = "%.4f", -- Face blind firing handle + [14] = "%.4f", -- Alternative firing handle + [15] = "%.4f", -- Seat belt visibility + + -- Unused <16-21> + + [22] = "%.4f", -- Stick pitch + [23] = "%.4f", -- Stick roll + [24] = "%.4f", -- Trim roll + [25] = "%.4f", -- Trim pitch + + [27] = "%0.1f", -- Stick Safety + [28] = "%0.1f", -- Stick weapon release + [29] = "%0.1f", -- Stick thumb button + [30] = "%0.1f", -- Stick side button + [31] = "%0.1f", -- Stick autopilot disconnect trigger + + [34] = "%.4f", -- Stick visibility + + -- Unused <35-51> + + [52] = "%.4f", -- Rudder + [53] = "%.4f", -- Rudder brakes + [54] = "%.1f", -- Brake chute control + [55] = "%0.1f", -- Canopy lock control + [56] = "%0.1f", -- Canopy embrittle control + + -- Unused <57-61> + + [62] = "%.4f", -- Chronometer seconds hand + [63] = "%.4f", -- Chronometer minutes hand + [64] = "%.4f", -- Chronometer hours hand + [65] = "%.4f", -- Chronometer minutes timer + [66] = "%.4f", -- Map light rheostat + [67] = "%.4f", -- Chronometer starting control and clock winding/setting knob + [68] = "%.4f", -- Miscellaneous instrument integral lighting rheostat + + -- Unused <69-75> + + [76] = "%.4f", + [77] = "%.4f", + [78] = "%.4f", + [79] = "%.4f", + + -- Unused <80-83> + + [84] = "%0.1f", -- Emergency/Parking brake handle + [85] = "%1d", -- U/C safety lever + [86] = "%1d", -- U/C control lever + [87] = "%0.1f", -- Anti-retraction override button + [88] = "%0.1f", -- Hydraulic pressure selector switch + [89] = "%0.1f", -- Servo reset button + [90] = "%0.1f", -- Yaw/Anti-slip switch + [91] = "%0.1f", -- Pitch switch + [92] = "%0.1f", -- Standby receptacle light + [94] = "%0.1f", -- ARTHUR selector switch guard + [95] = "%0.1f", -- Stick uncouple switch guard + [96] = "%0.1f", -- ARTHUR selector switch + [97] = "%0.1f", -- Stick uncouple switch + [98] = "%0.1f", -- Incidence test switch + + -- Unused <100-106> + + [107] = "%0.1f", -- Emergency U/C handle + [108] = "%0.1f", -- Cannons too hot light + [111] = "%0.1f", -- Navigation light control + [112] = "%0.1f", -- Formation light control + [113] = "%0.1f", -- Battery switch + [114] = "%0.1f", -- Alternator 1 switch + [115] = "%0.1f", -- Alternator 2 switch + [116] = "%0.1f", -- TR reset button + [117] = "%0.1f", -- Inverter selector switch + [118] = "%0.1f", -- Failure warning panel T test button + [119] = "%0.1f", -- Failure warning panel O2 test button + + [121] = "%0.1f", -- Warning Panel Light + [122] = "%0.1f", -- Warning Panel Light + [123] = "%0.1f", -- Warning Panel Light + [124] = "%0.1f", -- Warning Panel Light + [125] = "%0.1f", -- Warning Panel Light + [126] = "%0.1f", -- Warning Panel Light + [127] = "%0.1f", -- Warning Panel Light + [128] = "%0.1f", -- Warning Panel Light + [129] = "%0.1f", -- Warning Panel Light + [130] = "%0.1f", -- Warning Panel Light + [131] = "%0.1f", -- Warning Panel Light + [132] = "%0.1f", -- Warning Panel Light + [133] = "%0.1f", -- Warning Panel Light + [134] = "%0.1f", -- Warning Panel Light + [135] = "%0.1f", -- Warning Panel Light + [136] = "%0.1f", -- Warning Panel Light + [137] = "%0.1f", -- Warning Panel Light + [138] = "%0.1f", -- Warning Panel Light + [139] = "%0.1f", -- Warning Panel Light + [140] = "%0.1f", -- Warning Panel Light + [141] = "%0.1f", -- Warning Panel Light + [142] = "%0.1f", -- Warning Panel Light + [143] = "%0.1f", -- Warning Panel Light + [144] = "%0.1f", -- Warning Panel Light + [145] = "%0.1f", -- Warning Panel Light + [146] = "%0.1f", -- Warning Panel Light + [147] = "%0.1f", -- Warning Panel Light + [148] = "%0.1f", -- Warning Panel Light + [149] = "%0.1f", -- Warning Panel Light + [150] = "%0.1f", -- Warning Panel Light + [151] = "%0.1f", -- Warning Panel Light + [152] = "%0.1f", -- Warning Panel Light + + + -- Unused <153-193> + + [194] = "%0.1f", -- Jammer detection light + [196] = "%0.1f", -- Jammer detection light brightness animation + [197] = "%0.1f", -- (C + M or SW) R light + [199] = "%0.1f", -- (C + M or SW) R light brightness animation + [200] = "%0.1f", -- Incidence indicator flag + [201] = "%0.1f", -- Incidence indicator lighting rheostat + [203] = "%0.2f", -- Incidence indicator aoa + + -- Unused <204-207> + + [208] = "%0.1f", -- Chaff/flares selector switch + [209] = "%0.2f", -- Program selector switch + [210] = "%0.1f", -- Chaff 10s rotary + [211] = "%0.1f", -- Chaff 1s rotary + [212] = "%0.1f", -- Chaff counter reset button + [213] = "%0.1f", -- Flares 10s rotary + [214] = "%0.1f", -- Flares 1s rotary + [215] = "%0.1f", -- Flares counter reset button + [216] = "%0.1f", -- Emergency jettisoning switch + [217] = "%.4f", -- Accelerometer max + [218] = "%.4f", -- Accelerometer current + [219] = "%.4f", -- Accelerometer min + + -- Unused <220-227> + + [228] = "%.4f", + + -- Unused <229-230> + + [231] = "%.4f", -- Clock winding/setting lever + [233] = "%.4f", -- Canopy seal valve control lever + [234] = "%.4f", -- Throttle + [235] = "%.4f", -- Throttle Thumb rocker + [239] = "%0.1f", -- Throttle cut/idle switch + [240] = "%.4f", -- In-flight relight control + + -- Unused <241-247> + + [248] = "%0.1f", -- Slat/Flap lever + + -- Unused <249> + + [257] = "%0.1f", -- Radar control stick scan selection + [258] = "%0.2f", -- Radar control stick scale selection + [259] = "%0.1f", -- Radar control stick elevation/altitude difference button + + -- Unused <260-269> + + [271] = "%0.1f", -- UHF test light + + [272] = "%0.1f", -- Test selector switch + [273] = "%0.1f", -- SIL switch + [274] = "%0.1f", -- V/UHF Frequency select thumbwheel - Hundreds + [275] = "%0.1f", -- V/UHF Frequency select thumbwheel - Tens + [276] = "%0.1f", -- V/UHF Frequency select thumbwheel - Units + [277] = "%0.1f", -- V/UHF Frequency select thumbwheel - Tenths + [278] = "%.2f", -- V/UHF Frequency select thumbwheel - Thousandths + + -- Unused <279> + + [280] = "%.2f", -- Function selector + [281] = "%0.1f", -- 25W - 5W switch + [282] = "%0.1f", -- Frequency selector switch + [283] = "%0.2f", -- V/UHF Channel Selector + + -- Unused <284-285> + + -- Unused <288-305> + + [306] = "%.4f", -- MISS potentiometer + [307] = "%.4f", -- TAC potentiometer + [308] = "%.4f", -- VOR potentiometer + [309] = "%0.1f", -- AMPLI 2-1 selector switch + [310] = "%.4f", -- U + V pushbutton + [311] = "%.4f", -- U + V pushbutton rotation + [312] = "%0.1f", -- U + V pushbutton light + [313] = "%.4f", -- U pushbutton + [314] = "%.4f", -- U pushbutton rotation + [315] = "%0.1f", -- U pushbutton light + [316] = "%.4f", -- RAP + CME pushbutton + [317] = "%.4f", -- RAP + CME pushbutton rotation + [318] = "%0.1f", -- RAP + CME pushbutton light + [319] = "%.4f", -- MKR + TP pushbutton + [320] = "%.4f", -- MKR + TP pushbutton rotation + [321] = "%0.1f", -- MKR + TP pushbutton light + + -- Unused <322-339> + + [340] = "%0.1f", -- 5W/25W selector switch + [341] = "%0.1f", -- Squelch switch + [342] = "%0.1f", -- Test selector switch + [343] = "%.4f", -- CDE button (not used) + [344] = "%.2f", -- UHF Function selector + [345] = "%.1f", -- UHF Test light + [348] = "%.2f", -- UHF Channel selector + [349] = "%.4f", -- IFF numbers + + -- Unused <350> + + [351] = "%.4f", + [352] = "%.4f", + [353] = "%.4f", -- Landing light control + [354] = "%.4f", -- Emergency regulation light + [356] = "%0.1f",-- Emergency regulation light brightness animation + [357] = "%0.1f", -- Emergency regulation switch guard + [358] = "%0.1f", -- Emergency regulation switch + [359] = "%.4f", -- Emergency regulation control lever + [360] = "%.4f", -- Telemeter/zone scanning switch + [361] = "%.4f", -- (C + M or SW) R deselection switch + + -- Unused <362-367> + + [368] = "%0.1f", -- Flight control test restart button + [369] = "%0.1f", -- Flight control test switch guard + [370] = "%0.1f", -- Flight control test switch + [374] = "%0.1f", -- Start button cover + [375] = "%0.1f", -- Start button + [376] = "%0.1f", -- Ignition/Ventilation selector switch + [377] = "%0.1f", -- Starting pump switch + [378] = "%0.1f", -- R/H LP pump switch + [379] = "%0.1f", -- L/H LP pump switch + [380] = "%0.1f", -- LP main cock switch guard + [381] = "%0.1f", -- LP main cock switch + [382] = "%0.1f", -- Day/Night selector switch + [383] = "%.4f", -- Light and panel lighting rheostat + [384] = "%.4f", -- Ultraviolet lighting rheostat + [385] = "%.4f", -- Dual instrument panel lighting rheostat (Floodlights) + [386] = "%.4f", -- Dual instrument panel lighting rheostat (Integral) + [387] = "%.4f", -- Dual console and pedestal lighting rheostat (Floodlights) + [388] = "%.4f", -- Dual console and pedestal lighting rheostat (Integral) + + -- Unused <389-395> + + [396] = "%0.1f", -- JPT emergency regulation switch + [397] = "%0.1f", -- A/B main cock switch guard + [398] = "%0.1f", -- A/B main cock switch + [399] = "%0.1f", -- High-lift device selector switch + + -- Unused <400-401> + + [402] = "%0.1f", -- Anti-skid (SPAD) switch guard + [403] = "%0.1f", -- Anti-skid (SPAD) switch + + -- Unused <404> + + [405] = "%.4f", -- Alternative PTT + [406] = "%0.1f", -- Rudder trim control switch + + -- Unused <407> + + [408] = "%0.1f", -- ANTENNA-GYRO switch + [410] = "%0.1f", -- Ram air switch guard + + -- Unused <409> + + [411] = "%0.1f", -- Ram air switch + [412] = "%0.1f", -- Demist switch + + -- Unused <413-431> + + [432] = "%0.1f", -- Armament master switch guard + [433] = "%0.1f", -- Armament master switch + + -- Unused <434-469> + + [470] = "%0.1f", -- Miscellaneous instrument lighting switch + + -- Unused <471> + + [474] = "%0.1f", -- Standby horizon switch + [475] = "%0.1f", -- Electro-pump switch + [476] = "%0.1f", -- Warning horn switch + [477] = "%0.1f", -- Probe heater switch + [478] = "%0.1f", -- Radar detector switch + [479] = "%.4f", -- Search light control + [480] = "%0.1f", -- TACAN test button + [481] = "%0.1f", -- TACAN X/Y mode display + [482] = "%0.1f", -- TACAN 100s display + [483] = "%0.1f", -- TACAN 10s mode display + [484] = "%0.1f", -- TACAN 1s mode display + [485] = "%.f", -- TACAN X/Y mode selector + [486] = "%0.4f", -- TACAN X/Y rotation animation + [487] = "%0.2f", -- TACAN mode selector + [488] = "%0.4f", -- TACAN 10s rotation animation + + -- Unused <489-497> + + [498] = "%0.1f", -- VOR-ILS control unit Xxx.xx + [499] = "%0.1f", -- VOR-ILS control unit xXx.xx + [500] = "%0.1f", -- VOR-ILS control unit xxX.xx + [501] = "%0.1f", -- VOR-ILS control unit xxx.Xx + [502] = "%0.1f", -- VOR-ILS control unit xxx.xX + [503] = "%0.1f", -- VOR-ILS control unit ON/OFF selector + [504] = "%0.4f", -- VOR-ILS control unit ON/OFF selector rotation animation + [505] = "%0.1f", -- VOR-ILS control unit test selector + [506] = "%0.4f", -- VOR-ILS control unit test selector rotation animation + + -- Unused <507-515> + + [516] = "%.4f", -- Oxygen needle + [517] = "%0.1f", -- Oxygen test button (T button) + [518] = "%.4f", -- Pilot oxygen indicator + [519] = "%0.1f", -- Pilot oxygen test button + + -- Unused <220-523> + + [524] = "%0.1f", -- Emergency cold switch + [525] = "%0.1f", -- Master valve control switch + [527] = "%.4f", -- Temperature control needle + [527] = "%.4f", -- Temperature control rheostat + [528] = "%.4f", -- Hot/Cold selector needle + [529] = "%0.1f", -- Auto/Manual selector switch + [530] = "%0.1f", -- Hot/Cold selector switch + [537] = "%0.1f", -- Heading and vertical reference system control switch + [538] = "%0.1f", -- Emergency gyromagnetic compass switch + [539] = "%.4f", + [540] = "%0.1f", -- Heading control unit erection button + [541] = "%0.1f", -- Omnibearing selector Heading control unit Xxx + [542] = "%0.1f", -- Omnibearing selector Heading control unit xXx + [543] = "%0.1f", -- Omnibearing selector Heading control unit xxX + [544] = "%.4f", -- VOR-ILS/OFF/TACAN selector + [545] = "%.4f", -- Omnibearing selector + [547] = "%.4f", -- Heading selection knob + [548] = "%0.1f", -- CB Gyro control unit power supply + [550] = "%0.1f", -- CB High-lift device servo unit power supply + [552] = "%0.1f", -- CB Indicator and failure detector power supply + [554] = "%0.1f", -- CB Inverter transfer unit power supply and control + [556] = "%0.1f", -- CB Dual hydraulic pressure gauge power supply + [558] = "%0.1f", -- CB Gun firing trigger power supply + [560] = "%0.1f", -- CB LP cock power supply + [562] = "%0.1f", -- CB Electro-pump relay power supply + [564] = "%0.1f", -- CB Flight refuelling system power supply + [566] = "%0.1f", -- CB Cabin pressurization system power supply + [568] = "%0.1f", -- CB Inverter 28 V power supply + [570] = "%0.1f", -- CB U/C normal operation power supply + [572] = "%0.1f", -- CB V/UHF power supply + [574] = "%0.1f", -- CB Starter and sequencing system power supply + [576] = "%0.1f", -- CB Refuelling probe control power supply + [578] = "%0.1f", -- CB Manual trim control power supply + [580] = "%0.1f", -- CB Valve position repeater, control valve and ground mode power supply + [582] = "%0.1f", -- CB Failure warning panel and master failure warning light power supply + [584] = "%0.1f", -- CB Configuration indicator (U/C section) and U/C warning light power supply + [586] = "%0.1f", -- CB IFF power supply + [588] = "%0.1f", -- CB Emergency regulation system and control lever power supply + + -- Unused <589> + + [590] = "%0.1f", -- Sight selector + [591] = "%0.1f", -- Firing fuel dipper switch + [592] = "%0.1f", -- Bomb/Rocket selector + [593] = "%0.1f", -- MATRA 550 or Sidewinder missile switch + [594] = "%0.1f", -- Fore/Aft selector switch + [595] = "%0.1f", -- Auto/Manual firing selector switch + [596] = "%0.1f", -- Single/Salvo selector + [597] = "%0.1f", -- Instantaneous/Delay/Safe selector switch + [598] = "%0.1f", -- Radar selector + [599] = "%0.1f", -- Radar emergency transmission button + [600] = "%0.1f", -- Radar 4 lines/1 line scan switch + [601] = "%0.1f", -- R 530 Missile Normal/Altitude difference selector switch + [602] = "%0.1f", -- Armament panel lights test + [603] = "%0.1f", -- Normal/Jammer pursuit switch (No function) + [604] = "%0.1f", -- EXT G Left MATRA R550 or sidewinder missile pushbutton + [605] = "%0.1f", -- EXT G Left MATRA R550 or sidewinder missile pushbutton light + [606] = "%0.1f", -- EXT D Left or fuselage MATRA R530 missile pushbutton + [607] = "%0.1f", -- EXT D Left or fuselage MATRA R530 missile pushbutton light + [608] = "%0.1f", -- CAN A Air to air pushbutton + [609] = "%0.1f", -- CAN A Air to air pushbutton light + [610] = "%0.1f", -- BOMB VOIL Wing bombs pushbutton + [611] = "%0.1f", -- BOMB VOIL Wing bombs pushbutton light + [612] = "%0.1f", -- EXT D Right MATRA R550 or sidewinder missile pushbutton + [613] = "%0.1f", -- EXT D Right MATRA R550 or sidewinder missile pushbutton light + [614] = "%0.1f", -- EXT D Right MATRA R530 missile pushbutton + [615] = "%0.1f", -- EXT D Right MATRA R530 missile pushbutton light + [616] = "%0.1f", -- CAN S ROQ Air to ground guns or rockets pushbutton + [617] = "%0.1f", -- CAN S ROQ Air to ground guns or rockets pushbutton light + [618] = "%0.1f", -- Fuselage bombs pushbutton + [619] = "%0.1f", -- Fuselage bombs pushbutton light + + -- Unused <620-631> + + [632] = "%0.2f", -- Indicator light brightness + [633] = "%0.2f", -- Strobe brightness + [634] = "%0.2f", -- Distance markers brightness + [635] = "%0.2f", -- Horizon and radial velocity marker brightness + [636] = "%0.2f", -- Horizon symbol vertical position + + [708] = "%0.1f", -- Chaff/flares release button + [709] = "%0.1f", -- N-100%-EMG mode selector switch + [710] = "%0.1f", -- Oxygen overpressure button + [712] = "%0.1f", -- Anti-g connection cover + [713] = "%0.1f", -- Anti-g test button + [714] = "%0.1f", -- Anti-g valve cock + + [719] = "%.4f", -- Pilot Oxygen Breath Pressure Indicator + [721] = "%.4f", -- Hydraulic 1 needle + [722] = "%.4f", -- Hydraulic 2 needle + [723] = "%.4f", -- Rudder trim indicator + [724] = "%.4f", -- Roll trim indicator + [725] = "%.4f", -- Pitch trim indicator + [726] = "%.4f", -- Cockpit pressurisation indicator needle + + -- Unused <727-731> + + [732] = "%0.3f", -- Mode 1 coding tens selector + [733] = "%0.3f", -- Mode 1 coding units selector + [734] = "%0.3f", -- Mode 3A coding thousands selector + [735] = "%0.3f", -- Mode 3A coding hundreds selector + [736] = "%0.3f", -- Mode 3A coding tens selector + [737] = "%0.3f", -- Mode 3A coding units selector + [738] = "%0.1f", -- IFF test button + [739] = "%0.2f", -- Function selector switch + [740] = "%0.1f", -- IFF Monitoring light press + [741] = "%.4f", -- IFF Monitoring light rotate + [742] = "%0.1f", -- IFF Monitoring light brightness + [743] = "%0.2f", -- Mode 4 selector switch + [744] = "%0.2f", -- Position identification selector + [745] = "%0.1f", -- IFF mode 4 switch + [746] = "%0.1f", -- IFF fault light + [747] = "%.4f", -- IFF Fault light rotate + [748] = "%0.1f", -- IFF Fault light brightness + [749] = "%0.1f", -- AUDIO-LIGHT switch + [750] = "%0.1f", -- M-1 mode switch + [751] = "%0.1f", -- M-2 mode switch + [752] = "%0.1f", -- M-3 mode switch + [753] = "%0.1f", -- M-4 mode switch + [754] = "%0.1f", -- Shock-cone manual control switch + [755] = "%0.1f", -- Shock-cone pushbutton + [756] = "%1d", -- Nose wheel steering high sensitivity button + [757] = "%0.1f", -- Nose wheel steering switch guard + [758] = "%0.1f", -- Nose wheel steering switch + + -- Unused <759> + + [760] = "%0.1f", -- AUTO/MAN intensity selector switch + [761] = "%0.1f", -- Lighting selector switch + [762] = "%.4f", -- + [763] = "%.4f", -- + [764] = "%.4f", -- + [765] = "%.4f", -- + [766] = "%.4f", -- Manual gravity drop selection Mrad Xxx + [767] = "%.4f", -- Manual gravity drop selection Mrad xXx + [768] = "%.4f", -- Manual gravity drop selection Mrad xxX + [769] = "%0.1f", -- Manual gravity drop selection thumbwheel + [770] = "%0.1f", -- Fixed Reticle intensity rheostat + [771] = "%0.1f", -- Moving and Target Reticles intensity rheostat + [772] = "%0.1f", -- Attitude Reticle intensity rheostat + [773] = "%0.1f", -- Sight system test button + [774] = "%0.4f", -- Exposure time repeater + [775] = "%0.1f", -- Overrun select thumbwheel + [776] = "%0.1f", -- Sight camera test switch + [777] = "%0.1f", -- 5/16 PPS framing rate selector switch + + [836] = "%0.1f", -- Radar test button + [837] = "%.4f", -- Scope intensity adjustment + [838] = "%.1f", -- Radar function selection + [839] = "%.4f", -- Storage adjustment + [840] = "%.4f", -- Scope erasing + [841] = "%.4f", -- Scope turney thingie, Polaroid screen adjustment + [842] = "%0.1f", -- Scope HA Light + [843] = "%0.1f", -- Scope IC Light + [844] = "%0.1f", -- Scope TL Light + [845] = "%0.1f", -- Scope BZ Light + [846] = "%0.1f", -- Scope TS Light + [847] = "%0.1f", -- Scope V1 Light + [848] = "%0.1f", -- Scope V2 Light + [849] = "%0.1f", -- Scope DC Light + [850] = "%0.1f", -- Scope PR Light + [851] = "%0.1f", -- Scope AC Light + [852] = "%0.1f", -- Scope DB Light + [853] = "%0.1f", -- Scope yellow Light + [854] = "%0.1f", -- Scope green Light + [855] = "%0.1f", -- Scope red Light + [856] = "%0.1f", -- Scope 7 Light + [857] = "%0.1f", -- Scope 15 Light + [858] = "%0.1f", -- Scope 35 Light + [859] = "%0.1f", -- Scope 60 Light + [860] = "%0.1f", -- Scope AP Light + [861] = "%0.1f", -- Scope TCH Light + [862] = "%0.1f", -- Scope EMI Light + [863] = "%0.1f", -- Scope PNE Light + [864] = "%0.1f", -- Radar cover remove toggle + [865] = "%.4f", -- Scope left/right animation + [866] = "%.4f", -- Scope up/down animation + + -- Unused <867-919> + + [920] = "%.4f", -- Master failure warning light + [921] = "%0.1f", -- Master failure warning light warning brightness + + [923] = "%0.1f", -- Master failure warning light caution brightness + + [928] = "%.4f", -- U/C light + [929] = "%0.1f", -- U/C light brightness + + [932] = "%.4f", -- Limit warning light + Horn + [933] = "%0.1f", -- Limit warning light + Horn brightness + + [937] = "%0.1f", -- Fire warning light (ENG/AB) + Horn top brightness + [940] = "%.4f", -- Fire warning light (ENG/AB) + Horn + [941] = "%0.1f", -- Fire warning light (ENG/AB) + Horn bottom brightness + + [944] = "%0.1f", -- Airbrake light press + [945] = "%.4f", -- Airbrake light twist + [946] = "%0.1f", -- Airbrake light light + + [950] = "%0.1f", -- Nose wheel steering light press + [951] = "%.4f", -- Nose wheel steering light twist + [952] = "%0.1f", -- Nose wheel steering light light + + [956] = "%0.1f", -- Combat flaps light press + [957] = "%.4f", -- Combat flaps light twist + [958] = "%0.1f", -- Combat flaps light light + + [962] = "%0.1f", -- MATRA 550 or Sidewinder jettison button guard + [963] = "%0.1f", -- MATRA 550 or Sidewinder jettison button + + [966] = "%0.1f", -- Emergency jettison button guard + [967] = "%0.1f", -- Emergency jettison button + [968] = "%0.1f", -- Selective jettison button guard + [969] = "%0.1f", -- Selective jettison button + [970] = "%0.1f", -- Jettisoning selector switch + [973] = "%0.1f", -- Autopilot control and indicator unit test button + [974] = "%0.1f", -- Autopilot PA button + [975] = "%0.1f", -- Autopilot PA button P light + [976] = "%0.1f", -- Autopilot PA button A light + [977] = "%0.1f", -- Autopilot ALT button + [978] = "%0.1f", -- Autopilot ALT button green light + [979] = "%0.1f", -- Autopilot ALT button red light + [980] = "%0.1f", -- Autopilot CAP button + [981] = "%0.1f", -- Autopilot CAP button light + [982] = "%0.1f", -- Autopilot R button + [983] = "%0.1f", -- Autopilot R button left red light + [984] = "%0.1f", -- Autopilot R button top red light + [985] = "%0.1f", -- Autopilot R button bottom green light + [986] = "%0.1f", -- Autopilot R button right red light + [987] = "%0.1f", -- Autopilot G button + [988] = "%0.1f", -- Autopilot G button left red light + [989] = "%0.1f", -- Autopilot G button top red light + [990] = "%0.1f", -- Autopilot G button bottom red green light + [991] = "%0.1f", -- Autopilot G button right green light + [992] = "%0.1f", -- Autopilot intensity control + + [1021] = "%.4f", -- Mach airspeed cone needle + + [1023] = "%.4f", -- Mach/Airspeed window and needle + + [1025] = "%.4f", -- Vertical speed needle + + [1027] = "%.4f", -- RPM thousands needle + + [1028] = "%.4f", -- Engine temp needle + [1029] = "%0.1f", -- A/B INJ light + [1030] = "%0.1f", -- A/B INJ light brightness + [1031] = "%0.1f", -- A/B ON light + [1032] = "%0.1f", -- A/B ON light brightness + [1033] = "%0.1f", -- A/B SRL light + [1034] = "%0.1f", -- A/B SRL light brightness + + [1043] = "%.4f", -- Altitude Needle + [1044] = "%0.1f", -- Altitude window flag + [1045] = "%0.1f", -- Altitude window Xx.xxx + [1046] = "%0.1f", -- Altitude window xX.xxx + [1047] = "%0.1f", -- Altitude window xx.Xxx + [1048] = "%0.1f", -- Altitude window xx.xXX + [1049] = "%0.1f", -- Slaved altimeter barometric pressure Xxxx + [1050] = "%0.1f", -- Slaved altimeter barometric pressure xXxx + [1051] = "%0.1f", -- Slaved altimeter barometric pressure xxXx + [1052] = "%0.1f", -- Slaved altimeter barometric pressure xxxX + [1053] = "%0.1f", -- Slaved altimeter barometric pressure setting knob + + [1065] = "%.4f", -- Standby altimeter hundreds needle + [1066] = "%.4f", -- Standby altimeter thousands needle + [1067] = "%.4f", -- Standby altimeter tenthousands altitude needle + [1068] = "%0.1f", -- Standby altimeter barometric pressure Xxxx + [1069] = "%0.1f", -- Standby altimeter barometric pressure xXxx + [1070] = "%0.1f", -- Standby altimeter barometric pressure xxXx + [1071] = "%0.1f", -- Standby altimeter barometric pressure xxxX + [1072] = "%0.1f", -- Standby altimeter barometric pressure setting knob + + [1081] = "%0.1f", -- BIP button + [1082] = "%0.1f", -- Configuration indicator test button + [1083] = "%0.1f", -- Slat green light + [1084] = "%0.1f", -- Slat yellow light + [1085] = "%0.1f", -- Slat red light + [1086] = "%0.1f", -- Flap red light + [1087] = "%0.1f", -- Flap yellow light + [1088] = "%0.1f", -- Flap green light + [1089] = "%0.1f", -- Fren light + [1090] = "%0.1f", -- U/C left green light + [1091] = "%0.1f", -- U/C transit red light + [1092] = "%0.1f", -- U/C center green light + [1093] = "%0.1f", -- U/C right green light + + [1106] = "%.4f", -- Engine RPM hundreds needle + + [1108] = "%.4f", -- Spherical indicator pitch bar + [1109] = "%.4f", -- Spherical indicator roll bar + [1110] = "%.4f", -- Spherical indicator pitch + [1111] = "%.4f", -- Spherical indicator roll + [1112] = "%.4f", -- Spherical indicator heading + [1113] = "%.4f", -- Spherical indicator coordination ball + + [1115] = "%0.1f", -- Spherical indicator flag + [1116] = "%0.1f", -- Spherical indicator day/night selector switch + [1117] = "%0.1f", -- Spherical indicator pole setting and marker beacon light test + + [1128] = "%.4f", -- Standby horizon roll + [1129] = "%.4f", -- Standby horizon angle of bank + [1130] = "%.4f", -- Standby horizon aircraft indicator + [1131] = "%.4f", -- Standby horizon flag + [1132] = "%.4f", -- Standby horizon uncage and aircraft model control + [1133] = "%.4f", -- Standby horizon control knob + [1134] = "%.4f", -- Standby horizon pitch + + [1142] = "%0.1f", -- Fuel gauge G left + [1143] = "%0.1f", -- Fuel gauge D right + [1144] = "%0.1f", -- Feeder tank/Fuselage selector switch + [1145] = "%0.1f", -- Fuel gauge test button + + [1146] = "%0.1f", -- Fuel quantity Xxxx + [1147] = "%0.1f", -- Fuel quantity xXxx + [1148] = "%0.1f", -- Fuel quantity xxXx + [1149] = "%0.1f", -- Fuel quantity xxxX + [1150] = "%.4f", -- Fuel quantity reset thumbwheel + [1151] = "%0.1f", -- Crossfeed switch + [1152] = "%0.1f", -- Emergency transfer switch + [1153] = "%0.1f", -- Fuel transfer sequence selector switch + [1154] = "%0.1f", -- Fuel transfer sequence 4 left + [1155] = "%0.1f", -- Fuel transfer sequence 2 + [1156] = "%0.1f", -- Fuel transfer sequence 4 right + [1157] = "%0.1f", -- Fuel transfer sequence tank left + [1158] = "%0.1f", -- Fuel transfer sequence tank right + [1159] = "%0.1f", -- Fuel transfer sequence 1 left + [1160] = "%0.1f", -- Fuel transfer sequence tank center + [1161] = "%0.1f", -- Fuel transfer sequence 1 right + [1162] = "%0.1f", -- Fuel transfer sequence 3 left + [1163] = "%0.1f", -- Fuel transfer sequence 3 right + [1164] = "%0.1f", -- Fuel transfer sequence 5 left + [1165] = "%0.1f", -- Fuel transfer sequence 5 right + [1166] = "%0.1f", -- Fuel transfer indicator test + + [1189] = "%.4f", -- HSI heading + [1190] = "%.4f", -- HSI heading bug + [1191] = "%.4f", -- HSI needle 2 + [1192] = "%.4f", -- HSI needle 1 + [1193] = "%.4f", -- HSI distance Xxx + [1194] = "%.4f", -- HSI distance xXx + [1195] = "%.4f", -- HSI distance xxX + [1196] = "%.4f", -- HSI distance flag + [1197] = "%.4f", -- HSI bearing Xxx + [1198] = "%.4f", -- HSI bearing xXx + [1199] = "%.4f", -- HSI bearing xxX + [1200] = "%.4f", -- HSI distance Xxx + [1201] = "%.4f", -- HSI distance xXx + [1202] = "%.4f", -- HSI distance xxX + [1203] = "%0.1f", -- HSI flag left + [1204] = "%0.2f", -- HSI Mode selector switch + [1205] = "%0.1f", -- HSI Normal/Additional vector selector switch + [1206] = "%0.1f", -- HSI Additional target selector switch + [1207] = "%0.1f", -- HSI bearing/distance selector knob + [1208] = "%.4f", -- HSI Test button + + [1228] = "%.4f", -- + [1229] = "%.4f", -- RWR red button 1 twist + [1230] = "%0.1f", -- RWR red button 1 light + [1231] = "%.4f", -- + [1232] = "%.4f", -- RWR red button 2 twist + [1233] = "%0.1f", -- RWR red button 2 light + [1234] = "%.4f", -- + [1235] = "%.4f", -- RWR red button 3 twist + [1236] = "%0.1f", -- RWR red button 3 light + [1237] = "%0.1f", -- Indicator light intensity adjusting switch and lights 'T' test button + [1238] = "%0.1f", -- Radar detector indicator test switch + [1239] = "%0.1f", -- RWR arrow top + [1240] = "%0.1f", -- RWR arrow left + [1241] = "%0.1f", -- RWR arrow right + [1242] = "%0.1f", -- RWR arrow down + + [1270] = "%.4f", -- Mach/Airspeed indicator reference airspeed knob + + [1288] = "%0.1f", -- Accelerometer reset button and rheostat + + [1294] = "%.4f", -- Instrument backlighting + + [1300] = "%0.1f", -- AoA lighting red + [1301] = "%0.1f", -- AoA lighting yellow + [1302] = "%0.1f", -- AoA lighting green + + [1309] = "%.4f", -- Canopy Light Move + + [1315] = "%.4f", -- TO/FROM Indicator + [1316] = "%.4f", -- Ejection handle safety pin + [1318] = "%.4f", -- Airspeed something window +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --ExportScript.DeviceMetaTableLogDump(mainPanelDevice) -- comment this to prevent log flooding + --ExportScript.ListIndicationLogDump(mainPanelDevice) -- comment this to prevent log flooding + ExportScript.VorIlsTacanOmnibearing(mainPanelDevice) + ExportScript.CockpitInstruments(mainPanelDevice) + ExportScript.qfeCalculator(mainPanelDevice) + ExportScript.clockTimer(mainPanelDevice) + ExportScript.Radios(mainPanelDevice) + ExportScript.AutopilotLightLogic(mainPanelDevice) + ExportScript.WeaponPushbuttonLogic(mainPanelDevice) + ExportScript.GearSlatLogic(mainPanelDevice) + ExportScript.EngineRestartLogic(mainPanelDevice) + ExportScript.CountermeasureReadouts(mainPanelDevice) + ExportScript.AoaIndicator(mainPanelDevice) + ExportScript.AccelerometerReadout(mainPanelDevice) + ExportScript.HsiReadouts(mainPanelDevice) + ExportScript.DepressionAngleTables(mainPanelDevice) + ExportScript.FlowBlinker(mainPanelDevice) + ExportScript.OxygenIndicator(mainPanelDevice) + ExportScript.ChuteLimitLogic(mainPanelDevice) + ExportScript.MaxCeiling(mainPanelDevice) + ExportScript.AlternatorEnvelope(mainPanelDevice) + ExportScript.DecentReadout(mainPanelDevice) + ExportScript.MaxAirspeed(mainPanelDevice) + ExportScript.TrimReadout(mainPanelDevice) + ExportScript.RadarCalculators(mainPanelDevice) + ExportScript.ClimbSchedulesReadout(mainPanelDevice) + ExportScript.FuelCalculator(mainPanelDevice) + ExportScript.IffPanel(mainPanelDevice) + ExportScript.BaroPressureConverter(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.BaroPressureConverter(mainPanelDevice) + -- Altimeter Pressure window + local altBaroPress_Xxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1049) * 10, 0) + local altBaroPress_xXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1050) * 10, 0) + local altBaroPress_xxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1051) * 10, 0) + local altBaroPress_xxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1052) * 10, 0) + + if altBaroPress_Xxxx > 9 then altBaroPress_Xxxx = 0 end + if altBaroPress_xXxx > 9 then altBaroPress_xXxx = 0 end + if altBaroPress_xxXx > 9 then altBaroPress_xxXx = 0 end + if altBaroPress_xxxX > 9 then altBaroPress_xxxX = 0 end + + --result is millibar + local altBaroPressMb = altBaroPress_Xxxx .. altBaroPress_xXxx .. altBaroPress_xxXx .. altBaroPress_xxxX + + -- convert to mmhg + local altBaroPressMmhg = string.format("%.2f", altBaroPressMb / 1.333) + + -- Convert to inhg + local altBaroPressInhg = string.format("%.2f", altBaroPressMb / 33.864) + + ExportScript.Tools.SendData(8079, 'Pressure' + .. '\n' .. altBaroPressMb .. " mbar" + .. '\n' .. round(altBaroPressMmhg,0) .. ' mmhg' + .. '\n' .. altBaroPressInhg .. ' inhg') +end + +function ExportScript.IffPanel(mainPanelDevice) + + local mode1_10s = {[0.000]="0",[0.125]="1",[0.250]="2",[0.375]="3",[0.500]="4",[0.625]="5",[0.750]="6",[0.875]="7",[1.000]="0"} + mode1_10s = mode1_10s[ExportScript.Tools.round(mainPanelDevice:get_argument_value(732), 3)] + + local mode1_1s = {[0.000]="0",[0.125]="1",[0.250]="2",[0.375]="3",[0.500]="4",[0.625]="5",[0.750]="6",[0.875]="7",[1.000]="0"} + mode1_1s = mode1_1s[ExportScript.Tools.round(mainPanelDevice:get_argument_value(733), 3)] + + local mode1 = mode1_10s .. mode1_1s + ExportScript.Tools.SendData(8076, 'IFF M1\n' .. mode1_10s .. mode1_1s) + + local mode3A1000s = {[0.000]="0",[0.125]="1",[0.250]="2",[0.375]="3",[0.500]="4",[0.625]="5",[0.750]="6",[0.875]="7",[1.000]="0"} + mode3A1000s = mode3A1000s[ExportScript.Tools.round(mainPanelDevice:get_argument_value(734), 3)] + + local mode3A100s = {[0.000]="0",[0.125]="1",[0.250]="2",[0.375]="3",[0.500]="4",[0.625]="5",[0.750]="6",[0.875]="7",[1.000]="0"} + mode3A100s = mode3A100s[ExportScript.Tools.round(mainPanelDevice:get_argument_value(735), 3)] + + local mode3A10s = {[0.000]="0",[0.125]="1",[0.250]="2",[0.375]="3",[0.500]="4",[0.625]="5",[0.750]="6",[0.875]="7",[1.000]="0"} + mode3A10s = mode3A10s[ExportScript.Tools.round(mainPanelDevice:get_argument_value(736), 3)] + + local mode3A1s = {[0.000]="0",[0.125]="1",[0.250]="2",[0.375]="3",[0.500]="4",[0.625]="5",[0.750]="6",[0.875]="7",[1.000]="0"} + mode3A1s = mode3A1s[ExportScript.Tools.round(mainPanelDevice:get_argument_value(737), 3)] + + local mode3A = mode3A1000s .. mode3A100s .. mode3A10s .. mode3A1s + ExportScript.Tools.SendData(8077, 'IFF M3A\n' .. mode3A) + + ExportScript.Tools.SendData(8078, 'IFF\nM1 ' .. mode1 .. '\nM3A ' .. mode3A) +end + +function ExportScript.FuelCalculator(mainPanelDevice) + -- a rough estimate of instantaneous remaining fuel time + -- 10 second sample period + -- get how many L were used + -- from then do more math to get amount of fuel remaining in hrs + local measurementTime = 10 -- seconds + + local clockHour = ExportScript.Tools.round(mainPanelDevice:get_argument_value(64), 4) -- 0.25 + clockHour = clockHour * 12 -- 3 + clockHour = clockHour * 60 -- 180 + clockHour = clockHour * 60 -- 10,800 + clockHour = formatTime(clockHour) + + local clockTimer = ExportScript.Tools.round(mainPanelDevice:get_argument_value(65), 4) + -- up to 15 minutes + -- .333 is about 5 minutes + clockTimer = clockTimer * 15 -- 4.995 + clockTimer = clockTimer * 60 -- 299.7 + clockTimer = formatTime2(clockTimer) + + -- Manual gravity drop selection Mrad to input the amount of fuel used + local mrad_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(766) * 10, 0) + local mrad_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(767) * 10, 0) + local mrad_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(768) * 10, 0) + + if mrad_Xxx > 9 then mrad_Xxx = 0 end + if mrad_xXx > 9 then mrad_xXx = 0 end + if mrad_xxX > 9 then mrad_xxX = 0 end + + local fuelUsed = tonumber(mrad_Xxx .. mrad_xXx .. mrad_xxX) + if fuelUsed == 0 then + fuelUsed = 0.1 -- place holder to not divide by 0 + end + + local fuelPerHour = 60 * 60 / measurementTime * fuelUsed + + -- we can use the roller for the fuel amount TODO: make the fuel function to get more accurate results + -- Fuel quantity indicator + local fuelQty_Xxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1146) * 10, 0) + local fuelQty_xXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1147) * 10, 0) + local fuelQty_xxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1148) * 10, 0) + local fuelQty_xxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1149) * 10, 0) + + if fuelQty_Xxxx > 9 then fuelQty_Xxxx = 0 end + if fuelQty_xXxx > 9 then fuelQty_xXxx = 0 end + if fuelQty_xxXx > 9 then fuelQty_xxXx = 0 end + if fuelQty_xxxX > 9 then fuelQty_xxxX = 0 end + + local fuelQtyTotal = fuelQty_Xxxx .. fuelQty_xXxx .. fuelQty_xxXx .. fuelQty_xxxX + + local fuelHrs = fuelQtyTotal/fuelPerHour + local fuelMin = fuelHrs * 60 + local fuelSec = fuelMin * 60 + local fuelTimeReadout = formatTime3(fuelSec) + + local fuelString = '' + + if fuelUsed == 0.1 then -- place holder to not divide by 0 + --[[ + fuelString = 'Fuel Calc' + .. '\nSet Mrad' + .. '\nwith fuel' + .. '\nuse over' + .. '\n10 sec' + ]] + fuelString = 'Fuel Calc' + .. '\nSet Mrad w/' + .. '\n10s fuel' + .. '\nT - ' .. clockTimer + .. '\nFuel ' .. fuelQtyTotal + else + fuelString = 'Fuel Calc' + .. '\nT - ' .. clockTimer + .. '\nRate - ' .. fuelUsed + .. '\nFuel ' .. fuelQtyTotal + .. '\n'.. fuelTimeReadout + end + + ExportScript.Tools.SendData(8075, fuelString) +end + +function ExportScript.ClimbSchedulesReadout(mainPanelDevice) + local climbText1 = 'SUB CLMB\nCLEAN MIL\n470/0.92' + local climbText2 = 'SUB CLMB\nCLEAN MAX\n500/0.95' + local climbText3 = 'SUB CLMB\nTANK MIL\n422/0.84' + local climbText4 = 'SUB CLMB\nTANK MAX\n475/0.92' + local climbText5 = 'SUPER\nSUB to 30K\n610 to 36K\nM1.8 to ALT' + ExportScript.Tools.SendData(8070, climbText1) + ExportScript.Tools.SendData(8071, climbText2) + ExportScript.Tools.SendData(8072, climbText3) + ExportScript.Tools.SendData(8073, climbText4) + ExportScript.Tools.SendData(8074, climbText5) +end + +function ExportScript.RadarCalculators(mainPanelDevice) + local scanDistance = ExportScript.Tools.round(mainPanelDevice:get_argument_value(258) * 100, 0) + + if scanDistance > 70 then + scanDistance = 60 + elseif scanDistance > 40 then + scanDistance = 35 + elseif scanDistance > 20 then + scanDistance = 15 + else -- default distance + scanDistance = 7 + end + + local lineScanAngle = ExportScript.Tools.round(mainPanelDevice:get_argument_value(600) * 100, 0) + + if lineScanAngle > 50 then + lineScanAngle = 8 + else + lineScanAngle = 4 + end + + local altBaroStandby = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1067) * 100000, 0) + + -- ((scanDistance/SIN((180-90-lineScanAngle)*PI()/180)) * (SIN(lineScanAngle*PI()/180))) * 6076 + altBaroStandby + -- the above will be the top of the radar detection limit at range. for the bottom add a negative at the beginning + + local radarHiFull = ((scanDistance/math.sin((180-90-lineScanAngle)*math.pi/180)) + * (math.sin(lineScanAngle*math.pi/180))) + * 6076 + altBaroStandby + radarHiFull = round(radarHiFull,-2) + + local radarLoFull = -((scanDistance/math.sin((180-90-lineScanAngle)*math.pi/180)) + * (math.sin(lineScanAngle*math.pi/180))) + * 6076 + altBaroStandby + radarLoFull = round(radarLoFull,-2) + + -- Calculate the half of the distance. This is the center of the radar screen + local radarHiHalf = (((scanDistance/2)/math.sin((180-90-lineScanAngle)*math.pi/180)) + * (math.sin(lineScanAngle*math.pi/180))) + * 6076 + altBaroStandby + radarHiHalf = round(radarHiHalf,-2) + + local radarLoHalf = -(((scanDistance/2)/math.sin((180-90-lineScanAngle)*math.pi/180)) + * (math.sin(lineScanAngle*math.pi/180))) + * 6076 + altBaroStandby + radarLoHalf = round(radarLoHalf,-2) + + radarHiFull = string.format("%.0f",round(format_int(radarHiFull / 1000,2)),0) + radarLoFull = string.format("%.0f",round(format_int(radarLoFull / 1000,2)),0) + radarHiHalf = string.format("%.0f",round(format_int(radarHiHalf / 1000,2)),0) + radarLoHalf = string.format("%.0f",round(format_int(radarLoHalf / 1000,2)),0) + + -- format the numbers so that they display only 2 digits + + ExportScript.Tools.SendData(8068, 'RDR VOL' + .. '\nNM ' .. 'HI' .. '/' .. 'LO' + .. '\n' .. scanDistance .. ' ' .. radarHiFull .. '/' .. radarLoFull + .. '\n' .. round(scanDistance/2,0) .. ' ' .. radarHiHalf .. '/' .. radarLoHalf) + + -- Radar Angle Calculator + -- requires Altitude Delta + -- requires Distance in NM + + -- Mach/Airspeed indicator reference airspeed knob for Distance in NM + local awacsDist = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1270) * 66, 0) -- 66 by trial and error + + -- Exposure time repeater for Altitude Delta + local altitudeDelta = round(mainPanelDevice:get_argument_value(774) * 66666, -3) + + local radarAngle = math.deg(math.asin(math.sin(90 * math.pi / 180) + * (altitudeDelta / math.sqrt(math.pow(altitudeDelta,2) + math.pow((awacsDist * 6076),2)-2 + * altitudeDelta * (awacsDist * 6076) * math.cos(90 * math.pi / 180))))) + + if awacsDist == 0 and altitudeDelta == 0 then -- numbers not set + awacsDist = 'NM-IAS Bug' + altitudeDelta = 'ALTΔ-ExpRpt' + ExportScript.Tools.SendData(8069, 'RDR ANGLE\n' + .. awacsDist .. '\n' + .. altitudeDelta.. '\n' + .. 'RDR DEG°') + elseif awacsDist == 0 then -- if dist is 0 then formula errors + awacsDist = 'NM-IAS Bug' + altitudeDelta = 'ALTΔ-ExpRpt' + ExportScript.Tools.SendData(8069, 'RDR ANGLE\n' + .. awacsDist .. '\n' + .. altitudeDelta.. '\n' + .. 'RDR DEG°') + else + ExportScript.Tools.SendData(8069, 'RDR ANGLE\n' + .. awacsDist .. ' NM\n' + .. altitudeDelta.. ' altΔ\n' + .. 'RDR ' .. round(radarAngle,0) .. '°') + end +end + +function ExportScript.TrimReadout(mainPanelDevice) + local trimRudder = ExportScript.Tools.round(mainPanelDevice:get_argument_value(723) * 100, 0) + local trimRoll = ExportScript.Tools.round(mainPanelDevice:get_argument_value(724) * 100, 0) + local trimPitch = ExportScript.Tools.round(mainPanelDevice:get_argument_value(725) * 100, 0) + + if trimRudder < 0 then + trimRudder = math.abs(trimRudder) .. '% L' + else + trimRudder = math.abs(trimRudder) .. '% R' + end + + if trimRoll < 0 then + trimRoll = math.abs(trimRoll) .. '% R' + else + trimRoll = math.abs(trimRoll) .. '% L' + end + + if trimPitch < 0 then + trimPitch = math.abs(trimPitch) .. '% D' + else + trimPitch = math.abs(trimPitch) .. '% U' + end + + ExportScript.Tools.SendData(8066, 'Trim\nRud ' .. trimRudder .. '\nRoll ' .. trimRoll .. '\nPitch ' .. trimPitch) +end + +function ExportScript.MaxAirspeed(mainPanelDevice) + -- TODO Make max mach here too (2.1) + -- TODO And mach readout Tile + -- TODO airspeed readout + local altBaroStandby = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1067) * 100000, 0) + local currentAirspeed = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1023) * 1000, 0) + local isAirspeedLimit = 0 + if altBaroStandby < 20000 and currentAirspeed > 700 then + isAirspeedLimit = 1 + end + if altBaroStandby >= 20000 and currentAirspeed > 750 then + isAirspeedLimit = 1 + end + ExportScript.Tools.SendData(8062, isAirspeedLimit) + ExportScript.Tools.SendData(8063, 'IAS\n' .. currentAirspeed .. ' kts') + --ExportScript.Tools.SendData(8064, isAirspeedLimitMach) + --ExportScript.Tools.SendData(8065, machReadout) + + -- this function will need to detect the Indicated mach level. if it is over 1.4 the + -- aircraft is in overspeed mode, as indicated by RPM/ + -- the pilot should not use the throttle to slow down. They should use maneuvers and + -- the speedbrake. + -- have the button press be the speedbrakes + + -- [1023] = "%.4f", -- Mach/Airspeed window and needle +end + +function ExportScript.DecentReadout(mainPanelDevice) + -- Simple readouts + local descentText1 = 'ECON DES\nRPM 6500\nBrake IN\nIAS 300kts' + local descentText2 = 'OP DES\nRPM ~6500\nBrake IN\n0.92/450kts\nPath -10°' + local descentText3 = 'FAST DES\nRPM 6500\nBrake OUT\nDive -20°' + local descentText4 = 'LETDOWN\nRPM 6500\nBrake OUT\nIAS 300kts\nPath -10°' + ExportScript.Tools.SendData(8058, descentText1) + ExportScript.Tools.SendData(8059, descentText2) + ExportScript.Tools.SendData(8060, descentText3) + ExportScript.Tools.SendData(8061, descentText4) +end + +function ExportScript.AlternatorEnvelope(mainPanelDevice) + + local altBaroStandby = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1067) * 100000, 0) + local currentAirspeed = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1023) * 1000, 0) + local isAlternatorZone = 0 + + -- Zone 1: low air density and therefore ventilation is not so efficient + if altBaroStandby > 35000 and currentAirspeed < 350 then + isAlternatorZone = 1 + end + -- TODO Figure out Zone 2: transition zone where ventilation is low + + ExportScript.Tools.SendData(8057, isAlternatorZone) + -- With alternator failure light on, get out of the forbidden zone (see figure below) and switch off + -- the corresponding failed alternator. +end + +function ExportScript.MaxCeiling(mainPanelDevice) + -- Ceiling (55k) + -- Service ceiling (50k) + + -- Altimeter Pressure window + local altBaroStandby = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1067) * 100000, 0) + local isAltitudeMax = 0 -- will be 0, 1, and 2 + + local maxAltText = 'Ceiling\nMAX ✅\nSVC ✅' -- below both limits + -- account for below sea level + if altBaroStandby > 90000 then + altBaroStandby = altBaroStandby - 100000 + end + + if altBaroStandby >= 55000 then -- above both + -- this does not work bc the standby attimeter stops at 50,000 TODO: fix that, somehow + maxAltText = 'Ceiling\nMAX ❌\nSVC ❌' + isAltitudeMax = 2 + elseif altBaroStandby >= 50000 then -- above service, but not max + maxAltText = 'Ceiling\nMAX ✅\nSVC ❌' + isAltitudeMax = 1 + end + + ExportScript.Tools.SendData(8055, maxAltText) + ExportScript.Tools.SendData(8056, isAltitudeMax) +end + +function ExportScript.OxygenIndicator(mainPanelDevice) -- TODO: Test + -- Oxygen needle, 0.38 is blank zone, 0.13 is red zone + local oxyNeedle = ExportScript.Tools.round(mainPanelDevice:get_argument_value(516) * 100, 0) + local oxygenExportText = 'Oxygen\n' .. oxyNeedle .. '%\n🟢' -- green + local isOxyDanger = 0 -- will be 0, 1, and 2 + + if oxyNeedle < 38 then -- blank zone + oxygenExportText = 'Oxygen\n' .. oxyNeedle .. '%\n🟡' -- yellow + isOxyDanger = 1 + elseif oxyNeedle < 13 then -- red zone + oxygenExportText = 'Oxygen\n' .. oxyNeedle .. '%\n🔴' -- red + isOxyDanger = 2 + end + + ExportScript.Tools.SendData(8053, oxygenExportText) + ExportScript.Tools.SendData(8054, isOxyDanger) + + local cockpitPressure = ExportScript.Tools.round(mainPanelDevice:get_argument_value(726) * 100000, 0) + cockpitPressure = round(cockpitPressure, -2) -- in hundreds + cockpitPressure = format_int(cockpitPressure) + ExportScript.Tools.SendData(8067, '\n' .. cockpitPressure .. ' ft') +end + +function ExportScript.ChuteLimitLogic(mainPanelDevice) + -- if indicated airspeed is less than 210 kts, then chute can be deployed + local currentAirspeed = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1023) * 1000, 0) + + local chuteLimitKts = 200 + local chuteWarnKts = 210 + local chuteExportText = 'Chute\n🟢' -- green + local isChuteOverspeed = 0 -- will be 0, 1, and 2 + + if currentAirspeed > chuteWarnKts then + chuteExportText = 'Chute\n🔴' -- red + isChuteOverspeed = 2 + elseif currentAirspeed > chuteLimitKts then + chuteExportText = 'Chute\n🟡' -- yellow + isChuteOverspeed = 1 + end + + ExportScript.Tools.SendData(8051, chuteExportText) + ExportScript.Tools.SendData(8052, isChuteOverspeed) +end + +function ExportScript.FlowBlinker(mainPanelDevice) + local blink = mainPanelDevice:get_argument_value(719) -- FlowBlinker + if blink > 0.0010 then + blink = 1 + else + blink = 0 + end + ExportScript.Tools.SendData(8049, blink) +end + +function ExportScript.DepressionAngleTables(mainPanelDevice) + -- There are 9 tables. You can use the RETARD OVER.RUN to get all + -- Display Demo (4 lines total) + -- 250 LD BOMBS/MATRA F4 Rockets + -- xxxkts/-xx° + -- x,xxx ft + -- Depression° + + -- Set altitude via airspeed indicator + + + -- Mach/Airspeed indicator reference airspeed knob + local heightIndicator = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1270), 2) -- round to two digits + -- unfortunately this control is not arg adjusted. weird values must be used + -- Overrun select thumbwheel + local overRun = ExportScript.Tools.round(mainPanelDevice:get_argument_value(775) * 10, 0) + + if overRun > 9 then overRun = 0 end + + local depCalcExportString = '' + local displayWeapon = '' + local displayKts = '' + local displayDive = '' + local displayAlt = '' + local displayDepAngle = '' + + if overRun == 1 then -- MATRA F4 Rockets, 320kts, dive -10° + displayWeapon = 'MATRA F4' + displayKts = '320kts' + displayDive = '-10°' + if heightIndicator > 0.80 then -- detects 6,000ft + displayAlt = '6,000ft' + displayDepAngle = '100' + elseif heightIndicator > 0.70 then -- detects 5,000ft + displayAlt = '5,000ft' + displayDepAngle = '80' + elseif heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '65' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '50' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '30' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '15' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '0' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 2 then -- MATRA F4 Rockets, 420kts, dive -10° + displayWeapon = 'MATRA F4' + displayKts = '420kts' + displayDive = '-10°' + if heightIndicator > 0.80 then -- detects 6,000ft + displayAlt = '6,000ft' + displayDepAngle = '80' + elseif heightIndicator > 0.70 then -- detects 5,000ft + displayAlt = '5,000ft' + displayDepAngle = '60' + elseif heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '45' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '25' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '10' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '5' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '0' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 3 then -- MATRA F4 Rockets, 450kts, dive -10° + displayWeapon = 'MATRA F4' + displayKts = '450kts' + displayDive = '-10°' + if heightIndicator > 0.80 then -- detects 6,000ft + displayAlt = '6,000ft' + displayDepAngle = '70' + elseif heightIndicator > 0.70 then -- detects 5,000ft + displayAlt = '5,000ft' + displayDepAngle = '55' + elseif heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '40' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '20' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '10' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '5' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '0' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 4 then -- MATRA F4 Rockets, 400kts, dive -15° + displayWeapon = 'MATRA F4' + displayKts = '400kts' + displayDive = '-15°' + if heightIndicator > 0.80 then -- detects 6,000ft + displayAlt = '6,000ft' + displayDepAngle = '55' + elseif heightIndicator > 0.70 then -- detects 5,000ft + displayAlt = '5,000ft' + displayDepAngle = '45' + elseif heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '30' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '20' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '10' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '10' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '5' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 5 then -- MATRA F4 Rockets, 450kts, dive -15° + displayWeapon = 'MATRA F4' + displayKts = '450kts' + displayDive = '-15°' + if heightIndicator > 0.80 then -- detects 6,000ft + displayAlt = '6,000ft' + displayDepAngle = '50' + elseif heightIndicator > 0.70 then -- detects 5,000ft + displayAlt = '5,000ft' + displayDepAngle = '40' + elseif heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '25' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '10' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '0' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '0' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '0' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 6 then -- SAMP 250 LD Bombs, 400kts, dive -10° + displayWeapon = 'SAMP 250LD' + displayKts = '400kts' + displayDive = '-10°' + if heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '170' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '140' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '100' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 7 then -- SAMP 250 LD Bombs, 500kts, dive -10° + displayWeapon = 'SAMP 250LD' + displayKts = '500kts' + displayDive = '-10°' + if heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '175' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '140' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '105' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '80' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '55' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 8 then -- SAMP 250 LD Bombs, 420kts, dive -20° + displayWeapon = 'SAMP 250LD' + displayKts = '420kts' + displayDive = '-20°' + if heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '170' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '140' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '110' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '85' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '65' + else + displayAlt = 'Set Alt w/\nknots bug' + end + elseif overRun == 9 then -- SAMP 250 LD Bombs, 500kts, dive -20° + displayWeapon = 'SAMP 250LD' + displayKts = '500kts' + displayDive = '-20°' + if heightIndicator > 0.58 then -- detects 4,000ft + displayAlt = '4,000ft' + displayDepAngle = '125' + elseif heightIndicator > 0.44 then -- detects 3,000ft + displayAlt = '3,000ft' + displayDepAngle = '110' + elseif heightIndicator > 0.30 then -- detects 2,000ft + displayAlt = '2,000ft' + displayDepAngle = '70' + elseif heightIndicator > 0.18 then -- detects 1,500ft + displayAlt = '1,500ft' + displayDepAngle = '55' + elseif heightIndicator > 0.07 then -- detects 1,000ft + displayAlt = '1,000ft' + displayDepAngle = '35' + else + displayAlt = 'Set Alt w/\nknots bug' + end + end + + depCalcExportString = displayWeapon + .. '\n' .. displayKts .. '/' .. displayDive + .. '\n' .. displayAlt + .. '\n' .. displayDepAngle .. ' Mrad' + + if overRun == 0 then -- display a default value. might have to move this to the end + depCalcExportString = 'Dep Tables\n - Turn\nOverrun\nfor Tables' + end + + ExportScript.Tools.SendData(8043, depCalcExportString) + + if displayDepAngle == '' then displayDepAngle = 'XXX' end + ExportScript.Tools.SendData(8044, 'Mrad\n' .. displayDepAngle) + + if displayDive == '' then displayDive = '-XX°' end + ExportScript.Tools.SendData(8045, 'Dive\n'.. displayDive) + + if displayAlt == '' then displayAlt = 'XXXX' end + ExportScript.Tools.SendData(8046, 'Alt\n'.. displayAlt) + + if displayKts == '' then displayKts = 'XXX' end + ExportScript.Tools.SendData(8047, 'Kts\n' .. displayKts) + + if displayWeapon == '' then displayWeapon = 'Weapon' end + if displayWeapon == 'SAMP 250LD' then displayWeapon = 'SAMP\n250LD' end + if displayWeapon == 'MATRA F4' then displayWeapon = 'MATRA\nF4' end + ExportScript.Tools.SendData(8048, displayWeapon) +end + +function ExportScript.HsiReadouts(mainPanelDevice) + -- aircraft heading + -- use the 360 because the hsi turns backwards... + local hsiHeading = 360 - ExportScript.Tools.round(mainPanelDevice:get_argument_value(1189) * 360, 0) + + -- heading bug + local hsiHeadingBug = hsiHeading + + ExportScript.Tools.round(mainPanelDevice:get_argument_value(1190) * 360, 0) + if hsiHeadingBug > 360 then + hsiHeadingBug = hsiHeadingBug - 360 + end + -- hsi needle 2 + local hsiNeedle2 = hsiHeading + + ExportScript.Tools.round(mainPanelDevice:get_argument_value(1191) * 360, 0) + if hsiNeedle2 > 360 then + hsiNeedle2 = hsiNeedle2 - 360 + end + + -- hsi needle 1 + local hsiNeedle1 = hsiHeading + + ExportScript.Tools.round(mainPanelDevice:get_argument_value(1192) * 360, 0) + if hsiNeedle1 > 360 then + hsiNeedle1 = hsiNeedle1 - 360 + end + + -- HSI distance readout + local hsiDistReadout_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1193) * 10, 0) + local hsiDistReadout_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1194) * 10, 0) + local hsiDistReadout_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1195) * 10, 0) + + if hsiDistReadout_Xxx > 9 then hsiDistReadout_Xxx = 0 end + if hsiDistReadout_xXx > 9 then hsiDistReadout_xXx = 0 end + if hsiDistReadout_xxX > 9 then hsiDistReadout_xxX = 0 end + + local hsiDistReadout = hsiDistReadout_Xxx .. hsiDistReadout_xXx .. hsiDistReadout_xxX + + -- HSI bearing + local hsiBearingReadout_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1197) * 10, 0) + local hsiBearingReadout_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1198) * 10, 0) + local hsiBearingReadout_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1199) * 10, 0) + + if hsiBearingReadout_Xxx > 9 then hsiBearingReadout_Xxx = 0 end + if hsiBearingReadout_xXx > 9 then hsiBearingReadout_xXx = 0 end + if hsiBearingReadout_xxX > 9 then hsiBearingReadout_xxX = 0 end + + local hsiBearingReadout = hsiBearingReadout_Xxx .. hsiBearingReadout_xXx .. hsiBearingReadout_xxX + + -- HSI vector distance + local hsiDistVectReadout_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1200) * 10, 0) + local hsiDistVectReadout_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1201) * 10, 0) + local hsiDistVectReadout_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1202) * 10, 0) + + if hsiDistVectReadout_Xxx > 9 then hsiDistVectReadout_Xxx = 0 end + if hsiDistVectReadout_xXx > 9 then hsiDistVectReadout_xXx = 0 end + if hsiDistVectReadout_xxX > 9 then hsiDistVectReadout_xxX = 0 end + + local hsiDistVectReadout = hsiDistVectReadout_Xxx .. hsiDistVectReadout_xXx .. hsiDistVectReadout_xxX + + local brngSelect = ' ' + local distSelect = ' ' + local vectSelect = ' ' + -- ➤ + if mainPanelDevice:get_argument_value(1206) == 1 then + distSelect = '➤' + end + if mainPanelDevice:get_argument_value(1206) == 0 then + brngSelect = '➤' + end + if mainPanelDevice:get_argument_value(1205) == 1 then + vectSelect = '➤' + end + + ExportScript.Tools.SendData(8022,'HDG ' .. prefixZerosFixedLength(hsiHeading,3) + .. '\nBUG ' .. prefixZerosFixedLength(hsiHeadingBug,3) + .. '\nDST ' .. hsiDistReadout + ) + ExportScript.Tools.SendData(8023,'HDG ' .. prefixZerosFixedLength(hsiHeading,3) + .. '\nN1 ' .. prefixZerosFixedLength(hsiNeedle1,3) + .. '\nN2 ' .. prefixZerosFixedLength(hsiNeedle2,3) + ) + + ExportScript.Tools.SendData(8024, vectSelect .. 'VECT.' + .. '\n' .. brngSelect .. 'BRG ' .. hsiBearingReadout + .. '\n' .. distSelect .. 'DST ' .. hsiDistVectReadout + ) +end + +function ExportScript.AccelerometerReadout(mainPanelDevice) + local accelMax = ExportScript.Tools.round(mainPanelDevice:get_argument_value(217) * 11.5, 1) + local accelCurrent = ExportScript.Tools.round(mainPanelDevice:get_argument_value(218) * 11.5, 1) + local accelMin = ExportScript.Tools.round(mainPanelDevice:get_argument_value(219) * -11.5, 1) + if accelMin == 0 then accelMin = 0 end + + ExportScript.Tools.SendData(8019,'G ' .. accelCurrent + .. '\nG MAX ' .. accelMax + .. '\nG MIN ' ..accelMin) +end + +function ExportScript.EngineRestartLogic(mainPanelDevice) + -- Throttle at idle + -- Min 1100 RPM + -- Correct Airspeed + -- Correct Altitude + -- Move forward the in-flight relight button, located in the left console, under the throttle lever + + -- Let's do this based on the altitude of the aircraft. It will determine the speed + + -- Get the altitude using the standby altimeter + -- ✔ + -- ✅ boxed + -- ❌ + local isThrottleOk = 0 + local isRpmOk = 0 + local isAirspeedOk = 0 + local isRestartOk = 0 + local throttleIcon = '❌' + local rpmIcon = '❌' + local airspeedIcon = '❌' + local restartIcon = '❌' + + -- Altimeter Pressure window + local altBaroStandby = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1067) * 100000, 0) + local restartAirspeed = 0 + -- Make an equation that fits the regions + + if altBaroStandby > 90000 then + altBaroStandby = altBaroStandby - 100000 + end + + if altBaroStandby <= 20000 then + restartAirspeed = (-0.01 * altBaroStandby) + 600 + else + restartAirspeed = (-0.0125 * altBaroStandby) + 550 + end + + local currentAirspeed = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1023) * 1000, 0) + local ktsIndication = ' FST' + + if currentAirspeed < restartAirspeed then + isAirspeedOk = 1 + airspeedIcon = '✅' + ktsIndication = ' ' + else + ktsIndication = ' FST' -- aircraft is too fast (above the envelope curve) + end + + -- Engine RPM Check + local engineRPM = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1027) * 10000, 0) + local rpmIndication + if engineRPM > 1100 then + isRpmOk = 1 + rpmIcon = '✅' + rpmIndication = ' ' + else + rpmIndication = ' LOW' + end + + if mainPanelDevice:get_argument_value(234) < 0.01 then -- [234] = "%.4f", -- Throttle + isThrottleOk = 1 + throttleIcon = '✅' + end + + if isAirspeedOk == 1 and isRpmOk == 1 and isThrottleOk == 1 then + isRestartOk = 1 + restartIcon = '✅' + end + + -- Uniform spacing + -- ✔ Cutoff + -- ✔ RPM LO + -- ✔ Kts FST + -- ✔ RESTART + ExportScript.Tools.SendData(8020, throttleIcon .. ' Cutoff \n' + .. rpmIcon .. ' RPM' .. rpmIndication .. '\n' + .. airspeedIcon .. ' Kts' .. ktsIndication .. '\n' + .. restartIcon .. ' RESTART\n') + + local isCutoff = 0 + if mainPanelDevice:get_argument_value(234) < 0.01 -- if the throttle is at idle + or mainPanelDevice:get_argument_value(239) > 0.5 -- or if the cutoff switch is engaged + then -- use the second icon + isCutoff = 1 + end + ExportScript.Tools.SendData(8021, isCutoff) -- this is for the icon +end + +function ExportScript.CountermeasureReadouts(mainPanelDevice) + + local cmChaff_Xx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(210) * 10, 0) + local cmChaff_xX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(211) * 10, 0) + + local cmFlare_Xx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(213) * 10, 0) + local cmFlare_xX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(214) * 10, 0) + + if cmChaff_Xx > 9 then + cmChaff_Xx = 0 + end + if cmChaff_xX > 9 then + cmChaff_xX = 0 + end + if cmFlare_Xx > 9 then + cmFlare_Xx = 0 + end + if cmFlare_xX > 9 then + cmFlare_xX = 0 + end + ExportScript.Tools.SendData(8014, cmChaff_Xx .. cmChaff_xX .. '\nCHAFF') + ExportScript.Tools.SendData(8015, cmFlare_Xx .. cmFlare_xX .. '\nFLARE') + ExportScript.Tools.SendData(8016, 'C ' .. cmChaff_Xx .. cmChaff_xX + .. '\nF ' .. cmFlare_Xx .. cmFlare_xX) + + --[[ Spacing Demo + 0.0=C F + H ⫷ L + A ⫷ A + F ⫷ R + F E,0.5=C F + H ⦾ L + A ⦾ A + F ⦾ R + F E,1.0=C F + H ⫸ L + A ⫸ A + F ⫸ R + F E + ]] + + local cmSelect = mainPanelDevice:get_argument_value(208) + local cmSelectString = 'C F\nH ⦾ L\nA ⦾ A\nF ⦾ R\nF E' + if cmSelect == 0 then + cmSelectString = 'C F\nH ⫷ L\nA ⫷ A\nF ⫷ R\nF E' + end + if cmSelect == 1 then + cmSelectString = 'C F\nH ⫸ L\nA ⫸ A\nF ⫸ R\nF E' + end + ExportScript.Tools.SendData(8017, cmSelectString) +end + +function ExportScript.AoaIndicator(mainPanelDevice) + -- this scale is accurate above 10 AoA + -- below 10 AoA margin of error may be about 2 AoA + + local multiplier = 24 + local aoaLevel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(203) * multiplier,1) + local aoaCircleColor = '⚪' -- init with white + + if aoaLevel < 30 then + aoaCircleColor = '🔴' + end + if aoaLevel < 15.5 then + aoaCircleColor = '🟡' + end + if aoaLevel < 12.5 then + aoaCircleColor = '🟢' + end + if aoaLevel < 9.5 then + aoaCircleColor = '🔵' + end + if aoaLevel < 6 then + aoaCircleColor = '⚪' + end + + if aoaLevel > 22 then -- actual indicator limit is 22 + aoaLevel = 22 + end + + ExportScript.Tools.SendData(8037, 'AoA' .. aoaCircleColor .. '\n' .. round(aoaLevel,0)) +end + +function ExportScript.GearSlatLogic(mainPanelDevice) + -- Show different colors based on gear state + + -- ⚪ white + -- ⚫ black + -- 🟡 yellow + -- 🔴 red + -- 🟢 green + -- 🔵 blue + + -- Gear circle layout + -- 123 ⚪⚪⚪ + -- 456 ⚪⚪⚪ + -- 1 and 4 are either both green or both white + -- 3 and 6 are either both green or both white + -- 2 can be white or red + -- 5 can be white or red + + local circle1 = '⚪' -- init with white + local circle2 = '⚪' -- init with white + local circle3 = '⚪' -- init with white + local circle4 = '⚪' -- init with white + local circle5 = '⚪' -- init with white + local circle6 = '⚪' -- init with white + + + -- transit light + if mainPanelDevice:get_argument_value(1091) > 0 then + circle2 = '🔴' + end + + -- left gear + if mainPanelDevice:get_argument_value(1090) > 0 then + circle1 = '🟢' + circle4 = '🟢' + end + + -- right gear + if mainPanelDevice:get_argument_value(1093) > 0 then + circle3 = '🟢' + circle6 = '🟢' + end + + -- main tire light + if mainPanelDevice:get_argument_value(1092) > 0 then + circle5 = '🟢' + end + + local gearArrow = '⇑' + + if mainPanelDevice:get_argument_value(86) == 1 then + gearArrow = '⇓' + end + + ExportScript.Tools.SendData(8035, 'GEAR' .. gearArrow + .. '\n' .. circle1 .. circle2 .. circle3 + .. '\n' .. circle4 .. circle5 .. circle6 + ) + + local slatLight = '⚪' -- init with white + local flapLight = '⚪' -- init with white + local slatTransitLight = '⚪' -- init with white + local flapTransitLight = '⚪' -- init with white + + -- ⚪ white + -- ⚫ black + -- 🟡 yellow + -- 🔴 red + -- 🟢 green + + + -- Slats + if mainPanelDevice:get_argument_value(1083) > 0 then + slatLight = '🟢' + end + if mainPanelDevice:get_argument_value(1084) > 0 then + slatLight = '🟡' + end + + if mainPanelDevice:get_argument_value(1085) > 0 then + slatTransitLight = '🔴' + end + + -- Flaps + if mainPanelDevice:get_argument_value(1086) > 0 then + flapTransitLight = '🔴' + end + if mainPanelDevice:get_argument_value(1087) > 0 then + flapLight = '🟡' + end + if mainPanelDevice:get_argument_value(1088) > 0 then + flapLight = '🟢' + end + + local flapArrow = '' + + if mainPanelDevice:get_argument_value(248) == 1 then + flapArrow = '⇓' + end + + if mainPanelDevice:get_argument_value(248) == 0.5 then + flapArrow = '⇔' + end + + if mainPanelDevice:get_argument_value(248) == 0 then + flapArrow = '⇑' + end + + ExportScript.Tools.SendData(8036, 'FLAP' .. flapArrow + .. '\n' .. slatTransitLight .. flapTransitLight + .. '\n' .. slatLight .. flapLight + ) +end + +function ExportScript.WeaponPushbuttonLogic(mainPanelDevice) + -- light up the button when the button is lit or when depressed + local isExtGon = 0 + local isMgFuson = 0 + local isCanAon = 0 + local isBombVolon = 0 + local isExtDon = 0 + local isMDon = 0 + local isCanSRoQon = 0 + local isBombFuson = 0 + + if mainPanelDevice:get_argument_value(604) > 0 or mainPanelDevice:get_argument_value(605) > 0 then + isExtGon = 1 + end + + if mainPanelDevice:get_argument_value(606) > 0 or mainPanelDevice:get_argument_value(607) > 0 then + isMgFuson = 1 + end + + if mainPanelDevice:get_argument_value(608) > 0 or mainPanelDevice:get_argument_value(609) > 0 then + isCanAon = 1 + end + + if mainPanelDevice:get_argument_value(610) > 0 or mainPanelDevice:get_argument_value(611) > 0 then + isBombVolon = 1 + end + + if mainPanelDevice:get_argument_value(612) > 0 or mainPanelDevice:get_argument_value(613) > 0 then + isExtDon = 1 + end + + if mainPanelDevice:get_argument_value(614) > 0 or mainPanelDevice:get_argument_value(615) > 0 then + isMDon = 1 + end + + if mainPanelDevice:get_argument_value(616) > 0 or mainPanelDevice:get_argument_value(617) > 0 then + isCanSRoQon = 1 + end + + if mainPanelDevice:get_argument_value(618) > 0 or mainPanelDevice:get_argument_value(619) > 0 then + isBombFuson = 1 + end + + ExportScript.Tools.SendData(8027, isExtGon) + ExportScript.Tools.SendData(8028, isMgFuson) + ExportScript.Tools.SendData(8029, isCanAon) + ExportScript.Tools.SendData(8030, isBombVolon) + ExportScript.Tools.SendData(8031, isExtDon) + ExportScript.Tools.SendData(8032, isMDon) + ExportScript.Tools.SendData(8033, isCanSRoQon) + ExportScript.Tools.SendData(8034, isBombFuson) + +end + +function ExportScript.AutopilotLightLogic(mainPanelDevice) + + local isPAon = 0 + local isALTon = 0 + local isCAPon = 0 + local isRon = 0 + local isGon = 0 + + if mainPanelDevice:get_argument_value(975) > 0 or mainPanelDevice:get_argument_value(976) > 0 then + isPAon = 1 + end + + if mainPanelDevice:get_argument_value(978) > 0 or mainPanelDevice:get_argument_value(979) > 0 then + isALTon = 1 + end + + if mainPanelDevice:get_argument_value(981) > 0 then + isCAPon = 1 + end + + if mainPanelDevice:get_argument_value(983) > 0 or mainPanelDevice:get_argument_value(984) > 0 + or mainPanelDevice:get_argument_value(985) > 0 or mainPanelDevice:get_argument_value(986) > 0 then + isRon = 1 + end + + if mainPanelDevice:get_argument_value(988) > 0 or mainPanelDevice:get_argument_value(989) > 0 + or mainPanelDevice:get_argument_value(990) > 0 or mainPanelDevice:get_argument_value(991) > 0 then + isGon = 1 + end + + ExportScript.Tools.SendData(8038, isPAon) + ExportScript.Tools.SendData(8039, isALTon) + ExportScript.Tools.SendData(8040, isCAPon) + ExportScript.Tools.SendData(8041, isRon) + ExportScript.Tools.SendData(8042, isGon) +end + +function ExportScript.VorIlsTacanOmnibearing(mainPanelDevice) + -- VOR_ILS + local vor_ils_Xxxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(498) * 10, 0) + local vor_ils_xXxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(499) * 10, 0) + local vor_ils_xxXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(500) * 10, 0) + local vor_ils_dot = '.' + local vor_ils_xxxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(501) * 10, 0) + local vor_ils_xxxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(502) * 10, 0) + + if vor_ils_xxXxx > 9 then vor_ils_xxXxx = 0 end -- corrects rounding errors in the module + if vor_ils_xxxXx > 9 then vor_ils_xxxXx = 0 end + + local ilsReadout = vor_ils_Xxxxx .. vor_ils_xXxxx .. vor_ils_xxXxx + .. vor_ils_dot .. vor_ils_xxxXx .. vor_ils_xxxxX + ExportScript.Tools.SendData(8000, 'VOR_ILS\n' .. ilsReadout) + + -- TACAN + local tacan_XY = ExportScript.Tools.round(mainPanelDevice:get_argument_value(481) * 10, 0) + local tacan_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(482) * 10, 0) + local tacan_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(483) * 10, 0) + local tacan_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(484) * 10, 0) + + if tacan_XY > 1 then + tacan_XY = 'Y' + else + tacan_XY = 'X' + end + + if tacan_Xxx < 1 then tacan_Xxx = ' ' end + if tacan_xXx > 9 then tacan_xXx = 0 end + if tacan_xxX > 9 then tacan_xxX = 0 end + + local tacanReadout = tacan_XY .. tacan_Xxx .. tacan_xXx .. tacan_xxX + ExportScript.Tools.SendData(8001, 'TACAN\n' .. tacanReadout) + + ExportScript.Tools.SendData(8025, 'TACAN\n' .. tacan_Xxx .. tacan_xXx .. '-') + ExportScript.Tools.SendData(8026, 'TACAN\n' .. '-' .. tacan_xxX) + + -- Omnibearing Indicator (Course) + local omni_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(541) * 10, 0) + local omni_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(542) * 10, 0) + local omni_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(543) * 10, 0) + + if omni_Xxx > 9 then omni_Xxx = 0 end + if omni_xXx > 9 then omni_xXx = 0 end + if omni_xxX > 9 then omni_xxX = 0 end + + local omniReadout = omni_Xxx .. omni_xXx .. omni_xxX + + ExportScript.Tools.SendData(8002, 'OMNI\n' .. omniReadout) + + ExportScript.Tools.SendData(8003, 'TCN ' .. tacanReadout + .. '\nNAV ' .. ilsReadout + .. '\nOMNI ' .. omniReadout) +end + +function ExportScript.CockpitInstruments(mainPanelDevice) + -- Engine RPM + local engineRPM = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1027) * 10000, 0) + engineRPM = format_int(engineRPM) + + -- Engine temp needle + local engineTemp = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1028) * 1000, 0) + engineTemp = format_int(engineTemp) + ExportScript.Tools.SendData(8004, 'Engine\n' .. engineRPM .. ' RPM' .. '\n' .. engineTemp .. ' °C') + + local fuelG_needle = mainPanelDevice:get_argument_value(1142) + if fuelG_needle < 0.8 then + fuelG_needle = ExportScript.Tools.round(fuelG_needle * 1000, 0) + elseif fuelG_needle < 0.9 then + fuelG_needle = ExportScript.Tools.round(fuelG_needle * 2000 - 800, 0) + elseif fuelG_needle < 0.968 then + fuelG_needle = ExportScript.Tools.round(fuelG_needle * 13158 - 10737, 0) + else + fuelG_needle = ExportScript.Tools.round(fuelG_needle * 6250 - 4050, 0) + end + + local fuelD_needle = mainPanelDevice:get_argument_value(1143) + if fuelD_needle < 0.8 then + fuelD_needle = ExportScript.Tools.round(fuelD_needle * 1000, 0) + elseif fuelD_needle < 0.9 then + fuelD_needle = ExportScript.Tools.round(fuelD_needle * 2000 - 800, 0) + elseif fuelD_needle < 0.968 then + fuelD_needle = ExportScript.Tools.round(fuelD_needle * 13158 - 10737, 0) + else + fuelD_needle = ExportScript.Tools.round(fuelD_needle * 6250 - 4050, 0) + end + + local fuelTot_needle = fuelG_needle + fuelD_needle + + local fuelTot_needle_format + if fuelTot_needle > 3812 then --3812 + fuelTot_needle_format = format_int(fuelTot_needle) .. '+' + else + fuelTot_needle_format = format_int(fuelTot_needle) + end + + local fuelG_needle_format = format_int(fuelG_needle) + local fuelD_needle_format = format_int(fuelD_needle) + + ExportScript.Tools.SendData(8005, 'Fuel (L)\nTot ' .. fuelTot_needle_format + .. '\nG ' .. fuelG_needle_format + .. '\nD ' .. fuelD_needle_format + ) + + -- Fuel quantity indicator + local fuelQty_Xxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1146) * 10, 0) + local fuelQty_xXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1147) * 10, 0) + local fuelQty_xxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1148) * 10, 0) + local fuelQty_xxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1149) * 10, 0) + + if fuelQty_Xxxx > 9 then fuelQty_Xxxx = 0 end + if fuelQty_xXxx > 9 then fuelQty_xXxx = 0 end + if fuelQty_xxXx > 9 then fuelQty_xxXx = 0 end + if fuelQty_xxxX > 9 then fuelQty_xxxX = 0 end + + local fuelQtyTotal = fuelQty_Xxxx .. fuelQty_xXxx .. fuelQty_xxXx .. fuelQty_xxxX + ExportScript.Tools.SendData(8006, 'Fuel (L)\nTot ' .. format_int(fuelQtyTotal) + .. '\nG ' .. format_int(fuelG_needle) + .. '\nD ' .. format_int(fuelD_needle) + ) + + -- Altimeter Pressure window + local altBaroPress_Xxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1049) * 10, 0) + local altBaroPress_xXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1050) * 10, 0) + local altBaroPress_xxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1051) * 10, 0) + local altBaroPress_xxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1052) * 10, 0) + + if altBaroPress_Xxxx > 9 then altBaroPress_Xxxx = 0 end + if altBaroPress_xXxx > 9 then altBaroPress_xXxx = 0 end + if altBaroPress_xxXx > 9 then altBaroPress_xxXx = 0 end + if altBaroPress_xxxX > 9 then altBaroPress_xxxX = 0 end + + local altBaroPressReadout = altBaroPress_Xxxx .. altBaroPress_xXxx .. altBaroPress_xxXx .. altBaroPress_xxxX + + -- Altimeter + local altBaro_Xxxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1045) * 10, 0) + local altBaro_xXxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1046) * 10, 0) + local altBaro_xxXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1047) * 10, 0) + local altBaro_xxxXX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1048) * 100, 0) -- goes in 10s + + if altBaro_Xxxxx > 9 or altBaro_Xxxxx < 0 then altBaro_Xxxxx = 0 end + if altBaro_xXxxx > 9 or altBaro_xXxxx < 0 then altBaro_xXxxx = 0 end + if altBaro_xxXxx > 9 or altBaro_xxXxx < 0 then altBaro_xxXxx = 0 end + if altBaro_xxxXX > 90 or altBaro_xxxXX < 0 then altBaro_xxxXX = 0 end + + altBaro_xxxXX = round(altBaro_xxxXX, -1) + altBaro_xxxXX = prefixZerosFixedLength(altBaro_xxxXX,2) + + local altBaroReadout = altBaro_Xxxxx .. altBaro_xXxxx .. altBaro_xxXxx .. altBaro_xxxXX + altBaroReadout = round(altBaroReadout,-2) + + + -- Vertical speed needle + local vsiReadout = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1025) * 10000, 0) + if vsiReadout < 5999 and vsiReadout > -5999 then + vsiReadout = format_int(round(vsiReadout,-2)) .. ' fpm' + else + vsiReadout = format_int(round(vsiReadout,-2)) .. '+ fpm' + end + + ExportScript.Tools.SendData(8007, 'FLT INST\n' + .. format_int(altBaroReadout) .. ' ft\n' + .. altBaroPressReadout .. ' mb\n' + .. vsiReadout + ) +end + + +function ExportScript.qfeCalculator(mainPanelDevice) + -- Altimeter Pressure window + local altBaroPress_Xxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1049) * 10, 0) + local altBaroPress_xXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1050) * 10, 0) + local altBaroPress_xxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1051) * 10, 0) + local altBaroPress_xxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1052) * 10, 0) + + if altBaroPress_Xxxx > 9 then altBaroPress_Xxxx = 0 end + if altBaroPress_xXxx > 9 then altBaroPress_xXxx = 0 end + if altBaroPress_xxXx > 9 then altBaroPress_xxXx = 0 end + if altBaroPress_xxxX > 9 then altBaroPress_xxxX = 0 end + + local altBaroPressReadout = altBaroPress_Xxxx .. altBaroPress_xXxx .. altBaroPress_xxXx .. altBaroPress_xxxX + + -- Altimeter Pressure window + local altBaroStandbyPress_Xxxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1068) * 10, 0) + local altBaroStandbyPress_xXxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1069) * 10, 0) + local altBaroStandbyPress_xxXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1070) * 10, 0) + local altBaroStandbyPress_xxxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(1071) * 10, 0) + + if altBaroStandbyPress_Xxxx > 9 then altBaroStandbyPress_Xxxx = 0 end + if altBaroStandbyPress_xXxx > 9 then altBaroStandbyPress_xXxx = 0 end + if altBaroStandbyPress_xxXx > 9 then altBaroStandbyPress_xxXx = 0 end + if altBaroStandbyPress_xxxX > 9 then altBaroStandbyPress_xxxX = 0 end + + local altBaroStandbyPressReadout = altBaroStandbyPress_Xxxx .. altBaroStandbyPress_xXxx .. altBaroStandbyPress_xxXx .. altBaroStandbyPress_xxxX + + -- Manual gravity drop selection Mrad + local mrad_Xxx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(766) * 10, 0) + local mrad_xXx = ExportScript.Tools.round(mainPanelDevice:get_argument_value(767) * 10, 0) + local mrad_xxX = ExportScript.Tools.round(mainPanelDevice:get_argument_value(768) * 10, 0) + + if mrad_Xxx > 9 then mrad_Xxx = 0 end + if mrad_xXx > 9 then mrad_xXx = 0 end + if mrad_xxX > 9 then mrad_xxX = 0 end + + local mradReadout = mrad_Xxx .. mrad_xXx .. mrad_xxX + ExportScript.Tools.SendData(8018, mradReadout .. '\nMrad') + + -- Calculation for altimeter based + + local pressureDiff = altBaroStandbyPressReadout - altBaroPressReadout + local altitudeDiff = pressureDiff * 27.3 -- 30 ft per milibar (mb) (ISA is 27.3. generally accepted is 30) + + ExportScript.Tools.SendData(8008, 'QFE Calc\n' + .. 'Tgt ' .. altBaroPressReadout .. '\n' + .. 'Alt ' .. altBaroStandbyPressReadout .. '\n' + .. 'Tgt ' .. round(altitudeDiff,0) .. 'ft' + ) + + -- Calculation for mrad based + -- Mrad as hundreds of feet, eg, if 008 is shown it will be 800 ft + -- The Known value is the altitude of the target + -- The result is the altimeter setting for the target + + local pressureDiffMrad = (mradReadout * 100) / 27.3 -- * 100 for hundreds of feet, up to 21,800 + --local diffHigher = altBaroStandbyPressReadout + pressureDiffMrad + local diffHigher = altBaroStandbyPressReadout - pressureDiffMrad + --local diffLower = altBaroStandbyPressReadout - pressureDiffMrad + + ExportScript.Tools.SendData(8009, 'QFE Calc\n' + .. 'mRad ' .. mradReadout .. '\n' -- known difference in takeoff vs tgt altitude(?) or is it absolute tgt altitude? we want absolute altitude + .. 'Baro ' .. altBaroStandbyPressReadout .. '\n' + .. 'Tgt ' .. round(diffHigher,0) .. '\n' -- double check hi or lo + --.. 'ELo ' .. round(diffLower,0) + ) -- TODO: double check hi or lo +end + +function ExportScript.clockTimer(mainPanelDevice) + local clockHour = ExportScript.Tools.round(mainPanelDevice:get_argument_value(64), 4) -- 0.25 + clockHour = clockHour * 12 -- 3 + clockHour = clockHour * 60 -- 180 + clockHour = clockHour * 60 -- 10,800 + clockHour = formatTime(clockHour) + + local clockTimer = ExportScript.Tools.round(mainPanelDevice:get_argument_value(65), 4) + -- up to 15 minutes + -- .333 is about 5 minutes + clockTimer = clockTimer * 15 -- 4.995 + clockTimer = clockTimer * 60 -- 299.7 + clockTimer = formatTime2(clockTimer) + + ExportScript.Tools.SendData(8010, 'Time\nC ' .. clockHour .. '\nT ' .. clockTimer) +end + +function ExportScript.Radios(mainPanelDevice) + + -- UHF radio logic (rear radio) + local UHF_RADIO = GetDevice(7) + local uhfFreq = ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000)) + + local uhfChannel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(348) * 20, 0) + -- because the knob is offset, we have to do some maths + uhfChannel = uhfChannel + 1 + if uhfChannel > 20 then -- 20 is the max channel number + uhfChannel = uhfChannel - 20 + end + + ExportScript.Tools.SendData(8011, 'UHF\n' .. 'CH ' .. uhfChannel .. '\n' .. uhfFreq) + + -- VUHF radio logic (front radio) + local VUHF_RADIO = GetDevice(6) + local vuhfFreq = ExportScript.Tools.RoundFreqeuncy((VUHF_RADIO:get_frequency()/1000000)) + + local vuhfChannel = ExportScript.Tools.round(mainPanelDevice:get_argument_value(283) * 20, 0) + -- because the knob is offset, we have to do some maths + vuhfChannel = vuhfChannel + 1 + if vuhfChannel > 20 then -- 20 is the max channel number + vuhfChannel = vuhfChannel - 20 + end + + -- M will replace the channel number if the radio is in manual mode + if ExportScript.Tools.round(mainPanelDevice:get_argument_value(282), 1) == 0.0 then -- Manual mode + vuhfChannel = 'M' + end + if ExportScript.Tools.round(mainPanelDevice:get_argument_value(282), 1) == 1.0 then -- Manual mode + vuhfChannel = 'G' + end + + ExportScript.Tools.SendData(8012, 'V/UHF\n' .. 'CH ' .. vuhfChannel .. '\n' .. vuhfFreq) + + -- Combined readouts + ExportScript.Tools.SendData(8013, 'V/UHF (' .. vuhfChannel .. ')\n' .. vuhfFreq + .. '\nUHF (' .. uhfChannel .. ')\n' .. uhfFreq) + + +end + +function ExportScript.DeviceMetaTableLogDump(mainPanelDevice) + local ltmp1 = 0 + for ltmp2 = 1, 30, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 .. ': ' .. ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2 ..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +end + +function ExportScript.ListIndicationLogDump(mainPanelDevice) + local ltmp1 = 0 + for ltmp2 = 0, 30, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 ..': '..ExportScript.Tools.dump(ltmp1)) + end +end + +---------------------- +-- Helper Functions -- +---------------------- + +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 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 prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function formatTime(time) -- time in seconds + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + + return string.format("%02d", hours) + .. "h" .. string.format("%02d", minutes) + --.. "-" .. string.format("%02d", seconds) -- no seconds because there isn't a seconds hand +end + +function formatTime2(time) -- time in seconds + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + + return --string.format("%02d", hours) -- no hrs because there isn't a hrs hand + string.format("%02d", minutes) + .. "m" .. string.format("%02d", seconds) +end + +function formatTime3(time) -- time in seconds + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + + return string.format("%02d", hours) -- '¦' could be used + .. "h" .. string.format("%02d", minutes) + .. "m" .. string.format("%02d", seconds) -- no seconds because there isn't a seconds hand +end + +--[[Note about Feet per millibar (hectopascal): +For calculation purposes it can be helpful to know how many feet are in a millibar. In general 30 ft is the value used +in most books and exam questions. However, this is only just about right in the lower layers of our atmosphere (up to about 5000 ft). +Since pressure change with height is variable with height, so is the number of feet fitting in a millibar. +Formula: +* 96 x (absolute temperature (273K + actual temperature) / altitude pressure (millibars)) +In the case of the ISA at sea level this will give you 27,3 ft. +* 96 x ((273+15) / 1013) +]] \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/MosquitoFBMkVI.lua b/Scripts/DCS-ExportScript/ExportsModules/MosquitoFBMkVI.lua new file mode 100644 index 00000000..486b1fba --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/MosquitoFBMkVI.lua @@ -0,0 +1,2412 @@ +-- MosquitoFBMkVI +--[[ +*****DISCLAIMER***** +I do not have the ability to test this lua file. +There is a significant chance this file may not work due to work in progress. +Please report any bugs, conflicts, or fixes on the github. +https://github.com/asherao/DCS-ExportScripts +See the bottom of the file for notes. +Tiles and unique exports will be enabled after testing. +~Bailey +*****DISCLAIMER***** +--]] + +-- https://github.com/asherao/DCS-ExportScripts +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info + +ExportScript.FoundDCSModule = true +ExportScript.Version.MosquitoFBMkVI = "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 + ]] + + [6] = "%.4f", -- Tail Trim Needle, {-1.0,1.0} + [7] = "%.4f", -- Beam volume approach switch, {0.0, 1.0} + [10] = "%.4f", -- Left side flat knob, {0.0, 1.0} ??? + [11] = "%.4f", -- Left side turney thing {0.0, 1.0} ??? + [12] = "%.4f", -- Left side turney thing 2 {0.0, 1.0} ??? + [13] = "%.4f", -- unknown ??? + [29] = "%.4f", -- Magnetic Compass Fwd/Aft axis {-1.0, 1.0} + [30] = "%.4f", -- Magnetic Compass Left/Right axis {-1.0, 1.0} + [31] = "%.4f", -- Magnetic Compass Rotate axis {0.0, 1.0} + + -- Radio Control Unit + [37] = "%.4f", -- Channel A Selected channel indicator {0.0, 1.0} + [38] = "%.4f", -- Channel B Selected channel indicator {0.0, 1.0} + [39] = "%.4f", -- Channel C Selected channel indicator {0.0, 1.0} + [40] = "%.4f", -- Channel D Selected channel indicator {0.0, 1.0} + [41] = "%.4f", -- Receive/transmit indicator 0,1 + + [45] = "%.4f", -- Boost cut-out Fwd/Aft {0.0, 1.0} + [46] = "%.4f", -- Boost cut-out Rotate {0.0, 1.0} + [47] = "%.4f", -- R.I. Compass Repeater Needle 1 {0.0, 1.0} + [48] = "%.4f", -- R.I. Compass Repeater Needle 2 {0.0, 1.0} + + [49] = "%.4f", -- unknown ??? + + -- Engine Instruments + [50] = "%.4f", -- Engine Tachometer Left RPM 1000s {0.0, 1.0} + [51] = "%.4f", -- Engine Tachometer Left RPM 100s {0.0, 1.0} + [52] = "%.4f", -- Engine Tachometer Right RPM 1000s {0.0, 1.0} + [53] = "%.4f", -- Engine Tachometer Right RPM 100s {0.0, 1.0} + [54] = "%.4f", -- Engine Left Boost Guage {0.0, 1.0} + [55] = "%.4f", -- Engine Right Boost Guage {0.0, 1.0} + [56] = "%.4f", -- Engine Left Oil Temperature Indicator {0.0, 1.0} + [57] = "%.4f", -- Engine Right Oil Temperature Indicator {0.0, 1.0} + [58] = "%.4f", -- Engine Left Oil Pressure Indicator {0.0, 1.0} + [59] = "%.4f", -- Engine Right Oil Pressure Indicator {0.0, 1.0} + [60] = "%.4f", -- Engine Left Radiator Coolant Temperature Indicator {0.0, 1.0} + [61] = "%.4f", -- Engine Right Radiator Coolant Temperature Indicator {0.0, 1.0} + [62] = "%.4f", -- Landing Light Switch Left {0.0, 1.0} + [63] = "%.4f", -- Landing Light Switch Right {0.0, 1.0} + [64] = "%.4f", -- Airspeed Indicator (ASI) Needle {0.0, 1.0} + + [65] = "%.4f", -- Artificial Horizon Roll {-1.0, 1.0} + [66] = "%.4f", -- Artificial Horizon Pitch {-1.0, 1.0} + [67] = "%.4f", -- Vertical Speed Indicator {-1.0, 1.0} + [68] = "%.4f", -- Altimeter gauge Hundreds Needle {0.0, 1.0} + [69] = "%.4f", -- Altimeter gauge Thousands Needle {0.0, 1.0} + [70] = "%.4f", -- Altimeter gauge Tens Thousands Needle {0.0, 1.0} + [71] = "%.4f", -- Altimeter Barometer Kollsman window, 0, 1 + [73] = "%.4f", -- Direction Indicator {0.0, 1.0} + [75] = "%.4f", -- Side Slip Indicator {-1.0, 1.0} + [76] = "%.4f", -- Turn Indicator {-1.0, 1.0} + + [77] = "%.4f", -- Landing Gear Under Carrage Up light left {0.0, 1.0} + [78] = "%.4f", -- Landing Gear Under Carrage Down light left {0.0, 1.0} + [79] = "%.4f", -- Landing Gear Under Carrage Up light right {0.0, 1.0} + [80] = "%.4f", -- Landing Gear Under Carrage Down light right {0.0, 1.0} + [81] = "%.4f", -- Flap position indicator {0.0, 1.0} + [82] = "%.4f", -- Oxygen flow rate indicator pilot {0.0, 1.0} + [83] = "%.4f", -- Oxygen supply available indicator pilot {0.0, 1.0} + [84] = "%.4f", -- Oxygen valve pilot + [85] = "%.4f", -- Pneumatic indicator {0.0, 1.0} + [86] = "%.4f", -- Left Pneumatic Brake indicator {0.0, 1.0} + [87] = "%.4f", -- Right Pneumatic Brake indicator {0.0, 1.0} + [88] = "%.4f", -- Beacon tracking needle left side {-1.0, 1.0} + [89] = "%.4f", -- Beacon tracking needle right side {-1.0, 1.0} + [90] = "%.4f", -- Cloudy knob {0.0, 1.0} + [91] = "%.4f", -- Cloudy switch {0.0, 1.0} + [92] = "%.4f", -- Fuel Inner Tanks Left {0.0, 1.0} + [93] = "%.4f", -- Fuel Inner Tanks Right {0.0, 1.0} + [94] = "%.4f", -- Fuel Center Tanks No10 {0.0, 1.0} + [95] = "%.4f", -- Fuel Center Tanks No12 {0.0, 1.0} + [96] = "%.4f", -- Fuel Outer Tanks Left {0.0, 1.0} + [97] = "%.4f", -- Fuel Outer Tanks Right {0.0, 1.0} + [98] = "%.4f", -- Clock Needle hours {0.0, 1.0} + [99] = "%.4f", -- Clock Needle minutes {0.0, 1.0} + [100] = "%.4f", -- Clock Needle seconds {0.0, 1.0} + [101] = "%.4f", -- Clock start/stop press {0.0, 1.0} + [102] = "%.4f", -- Clock start/stop twist {0.0, 1.0} + [103] = "%.4f", -- Voltimeter {0.0, 1.0} + + [104] = "%.4f", -- unknown ??? + [105] = "%.4f", -- unknown ??? + [106] = "%.4f", -- unknown ??? + + [110] = "%.4f", -- Rudder trim hand knob needle {-1.0, 1.0} + [115] = "%.4f", -- Bomb Doors Lever {-1.0, 1.0} + [116] = "%.4f", -- Landing Gear Under carriage lever {-1.0, 1.0} + [118] = "%.4f", -- Flap lever {-1.0, 1.0} + [119] = "%.4f", -- Flap lever guard {0.0, 1.0} + [122] = "%.4f", -- Aileron Trim Needle {-1.0, 1.0} + [123] = "%.4f", -- Aileron Trim Handle {0.0, 1.0} + [137] = "%.4f", -- Airscrew Feathering Button Left {0.0, 1.0} + [138] = "%.4f", -- Airscrew Feathering Button Right {0.0, 1.0} + [146] = "%.4f", -- Weapon Bomb panel protective cover Tab {0.0, 1.0} + [147] = "%.4f", -- Weapon Bomb panel protective cover {0.0, 1.0} + [154] = "%.4f", -- Weapon Bomb Fuse Release Knob {0.0, 1.0} + [155] = "%.4f", -- Oxygen flow rate indicator copilot {0.0, 1.0} + [156] = "%.4f", -- Oxygen supply available indicator copilot {0.0, 1.0} + [177] = "%.4f", -- Voltimeter Light {0.0, 1.0} + [187] = "%.4f", -- Oxygen valve copilot + + [201] = "%.4f", -- unknown ??? + + -- T.1154 radio on the left, R.1155 radio on the right + [205] = "%.4f", -- Master oscillating tuning condenser (Range 3 - M/F frequency) {0.0, 1.0} + [206] = "%.4f", -- Master oscillating tuning condenser (Range 2 - H/F frequency) {0.0, 1.0} + [207] = "%.4f", -- Master oscillating tuning condenser (Range 1 - H/F frequency) {0.0, 1.0} + [208] = "%.4f", -- Output tuning condenser blue {0.0, 1.0} + [209] = "%.4f", -- Output tuning condenser red {0.0, 1.0} + [210] = "%.4f", -- Master oscillator dial left yellow {0.0, 1.0} + [211] = "%.4f", -- Master oscillator dial left red {0.0, 1.0} + [212] = "%.4f", -- Master oscillator dial left blue {0.0, 1.0} + [213] = "%.4f", -- Master oscillator dial right blue {0.0, 1.0} + [214] = "%.4f", -- Master oscillator dial right red {0.0, 1.0} + [215] = "%0.1f", -- Frequency range selector switch {0.0, 1.0} (0.0, 0.1,0.2) + [216] = "%.4f", -- Tap switch blue {0.0, 1.0} + [217] = "%.4f", -- Tap switch red {0.0, 1.0} + [218] = "%.4f", -- Transmitter T.1154 Master switch {0.0, 1.0} + [219] = "%.4f", -- Anode tap switch {0.0, 1.0} + [220] = "%.4f", -- Tap switch yellow {0.0, 1.0} + [221] = "%.4f", -- Output tuning control yellow {0.0, 1.0} + [222] = "%.4f", -- Vernier adjustment switch top {-1.0, 1.0} + [223] = "%.4f", -- Vernier adjustment switch bottom {-1.0, 1.0} + [224] = "%.4f", -- Antenna mode switch {-1.0, 1.0} + [225] = "%.4f", -- Meter balance {-1.0, 1.0} + [226] = "%.4f", -- Filter switch {0.0, 1.0} + [227] = "%.4f", -- Meter amplitude {0.0, 1.0} + [228] = "%.4f", -- Setting tuning indicator lamp {0.0, 1.0} + [229] = "%.4f", -- Receiver R.1155 Volume control {0.0, 1.0} + [230] = "%.4f", -- Heterodyne switch {0.0, 1.0} + [231] = "%0.1f", -- Frequency range selector switch {0.0, 1.0} (0.0, 0.1,0.2,0.3,0.4) + [232] = "%.4f", -- Frequency Needle {0.0, 1.0} + [233] = "%.4f", -- Frequency fine tuning knob {0.0, 1.0} + [234] = "%.4f", -- Frequency tuning knob {0.0, 1.0} + [235] = "%.4f", -- Meter deflection sensitivity switch {0.0, 1.0} + [236] = "%.4f", -- Aural sense switch {-1.0, 1.0} + [237] = "%.4f", -- Meter frequency switch {0.0, 1.0} + [238] = "%.4f", -- Master selector switch {0.0, 1.0} + [239] = "%.4f", -- Tuning Indicator Brightness {0.0, 1.0} + [240] = "%.4f", -- Swivel antenna {0.0, 1.0} + [241] = "%.4f", -- Swivel antenna lock clamp {0.0, 1.0} + + -- Flight Controls + [242] = "%.4f", -- Stick Pitch {-1.0, 1.0} + [243] = "%.4f", -- Stick Roll {-1.0, 1.0} + [247] = "%.4f", -- Stick Brake Lever {0.0, 1.0} + [249] = "%.4f", -- Rudder Pedals {-1.0, 1.0} + + [250] = "%.4f", -- Window Left {0.0, 1.0} + [252] = "%.4f", -- Window Right {0.0, 1.0} + [255] = "%.4f", -- Exit Door {0.0, 1.0} + + [258] = "%.4f", -- unknown ??? + [259] = "%.4f", -- Note Card Knob {0.0, 1.0} ??? + [260] = "%.4f", -- unknown ??? + [261] = "%.4f", -- unknown ??? + [269] = "%.4f", -- Compass Light {0.0, 1.0} + [270] = "%.4f", -- Dashboard Light Left {0.0, 1.0} + [271] = "%.4f", -- Dashboard Light Center {0.0, 1.0} + [272] = "%.4f", -- unknown ??? + [273] = "%.4f", -- unknown ??? + [274] = "%.4f", -- unknown ??? + [275] = "%.4f", -- unknown ??? + [276] = "%.4f", -- unknown ??? + [277] = "%.4f", -- Fuel Pressure Warning Light Left Engine {0.0, 1.0} + [278] = "%.4f", -- Fuel Pressure Warning Light Right Engine {0.0, 1.0} + [281] = "%.4f", -- Long Range Pump Pressure Low Light {0.0, 1.0} + [283] = "%.4f", -- Bomb Doors Open Light {0.0, 1.0} + [287] = "%.4f", -- unknown ??? + + [290] = "%.4f", -- Stick Brake Spring {0.0, 1.0} + [295] = "%.4f", -- unknown ??? + [296] = "%.4f", -- Dashboard Light Twist Center {0.0, 1.0} + [297] = "%.4f", -- Some light. Maybe instrument lights ??? + [299] = "%.4f", -- Dashboard Light Strong Left {0.0, 1.0} + [300] = "%.4f", -- Dashboard Light Right {0.0, 1.0} + [301] = "%.4f", -- unknown ??? + [305] = "%.4f", -- unknown ??? + [306] = "%.4f", -- unknown ??? + [308] = "%.4f", -- unknown ??? + [309] = "%.4f", -- Rudder Trim Knob {0.0, 1.0} + [313] = "%.4f", -- unknown ??? + + [314] = "%.4f", -- Air temperature gauge Needle {-1.0, 1.0} + + [325] = "%.4f", -- Dashboard Light Red Left {0.0, 1.0} + [326] = "%.4f", -- Dashboard Light Red Center {0.0, 1.0} + + [331] = "%.4f", -- Some Stick pipe that goes from the door to the pilot chair {0.0, 1.0} ??? + [334] = "%.4f", -- unknown ??? + [336] = "%.4f", -- Some other Stick pipe that goes from the door to the pilot chair {0.0, 1.0} ??? + + [337] = "%.4f", -- unknown ??? + [338] = "%.4f", -- unknown ??? + [339] = "%.4f", -- unknown ??? + [340] = "%.4f", -- unknown ??? + [341] = "%.4f", -- unknown ??? + + [343] = "%.4f", -- Maybe a red light {0.0, 1.0} ??? + [344] = "%.4f", -- Maybe a green light {0.0, 1.0} ??? + [345] = "%.4f", -- Maybe a red light {0.0, 1.0} ??? + [346] = "%.4f", -- Maybe a green light {0.0, 1.0} ??? + + [347] = "%.4f", -- unknown ??? + [348] = "%.4f", -- unknown ??? + [349] = "%.4f", -- unknown ??? + [350] = "%.4f", -- unknown ??? + [351] = "%.4f", -- unknown ??? + [365] = "%.4f", -- unknown ??? + [370] = "%.4f", -- unknown ??? + [371] = "%.4f", -- unknown ??? + [373] = "%.4f", -- unknown ??? + + [375] = "%.4f", -- Clock Timer hours {0.0, 1.0} + [376] = "%.4f", -- Clock Timer minutes {0.0, 1.0} + + [377] = "%.4f", -- unknown ??? + [378] = "%.4f", -- unknown ??? + [379] = "%.4f", -- unknown ??? + [380] = "%.4f", -- unknown ??? + + [381] = "%.4f", -- Voltimeter warning light cover {0.0, 1.0} + [382] = "%.4f" -- Voltimeter warning glare {0.0, 1.0} +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + -- Aerial Winch + [202] = "%.1f", --AERIAL_BRAKE,TUMB,202,-1,0,1,Cockpit.Generic.aerial_winch_brake_lever + [356] = "%.1f", --AERIAL_WINCH,BTN,356,1,0,1,Cockpit.Generic.aerial_winch_rotary_handle + [357] = "%.1f", --AERIAL_REEL,BTN,357,1,0,1,Cockpit.Generic.aerial_winch_reel_lock + + --Controls + [248] = "%.1f", --BRAKE_LEVER,LEV,248,0,0,1,Cockpit.Yak52.wheel_brakes + [291] = "%.1f", --BRAKE_CATCH,BTN,291,1,0,1,Cockpit.Yak52.wheel_brakes_lock + [28] = "%.1f", --COMPASS_RING,LEV,28,0,0,1,Cockpit.SpitfireLFMkIX.compass + [72] = "%.1f", --ALTIMETER,LEV,72,1,0,1,Cockpit.SpitfireLFMkIX.altimeter + [74] = "%.1f", --DIRECTIONAL_GYRO,LEV,74,1,0,1,Cockpit.SpitfireLFMkIX.di + [279] = "%.1f", --TRIM_WHEEL,BTN,279,-1,-1,0,Elevator Trim + [304] = "%.1f", --UC_BLIND,LEV,304,0,0,1,Cockpit.SpitfireLFMkIX.uc_blind + [256] = "%.1f", --ARMREST_LEFT,TUMB,256,-1,0,1,Cockpit.Generic.arm_rest + [251] = "%.1f", --WINDOW_LOCK_LEFT,TUMB,251,-1,0,1,Cockpit.Mosquito.canopy_left_window_lock + [280] = "%.1f", --AILERON_TRIM,BTN,280,-1,-1,0,Aileron Trim + [111] = "%.1f", --RUDDER_TRIM,BTN,111,-1,-1,0,Rudder Trim + [293] = "%.1f", --OXY_VALVE,TUMB,293,-1,0,1,Cockpit.Mosquito.oxygen_high_presure_valve + [203] = "%.1f", --CABIN_HEATER_LV,TUMB,203,-1,0,1,Cockpit.Mosquito.cabin_heater_lever + [204] = "%.1f", --GUN_HEATER_LV,TUMB,204,-1,0,1,Cockpit.Mosquito.gun_heater_lever + [257] = "%.1f", --ARMREST_RIGHT,TUMB,257,-1,0,1,Cockpit.Generic.arm_rest + [253] = "%.1f", --WINDOW_LOCK_RIGHT,TUMB,253,-1,0,1,Cockpit.Mosquito.canopy_right_window_lock + [282] = "%.1f", --LR_PUMP_LAMP_COVER,TUMB,282,-1,0,1,Cockpit.Mosquito.lr_fuel_pump_light_cover + [284] = "%.1f", --BOMB_DOOR_LAMP_COVER,TUMB,284,-1,0,1,Cockpit.Mosquito.bomb_doors_light_cover + [333] = "%.1f", --HYDR_SELECTOR,TUMB,333,-1,0,1,Cockpit.Mosquito.emergency_knob + [312] = "%.1f", --ARMOR_HEADREST,BTN,312,1,0,1,Cockpit.Mosquito.armor_hadrest_lock + [254] = "%.1f", --DOOR_LOCK,BTN,254,1,0,1,Cockpit.Mosquito.door_handle + [324] = "%.1f", --DOOR_JETTISON,BTN,324,1,0,1,Cockpit.Mosquito.door_jettison_handle + + --Engine Controls + [125] = "%.1f", --PORT_1,TUMB,125,-1,0,1,Cockpit.Generic.magneto_port0 + [125] = "%.1f", --PORT_1,TUMB,125,1,0,1,Cockpit.Generic.magneto_port0 + [126] = "%.1f", --PORT_2,TUMB,126,-1,0,1,Cockpit.Generic.magneto_port1 + [127] = "%.1f", --STBD_1,TUMB,127,-1,0,1,Cockpit.Generic.magneto_stbd0 + [128] = "%.1f", --STBD_2,TUMB,128,-1,0,1,Cockpit.Generic.magneto_stbd1 + [124] = "%.1f", --MASTER_SWITCH,TUMB,124,-1,0,1,Cockpit.Mosquito.master_switch + [20] = "%.1f", --THROTTLE_CONTROLE_L_TRIGER,LEV,20,1,0,1,Throttle + [21] = "%.1f", --THROTTLE_CONTROL_R_TRIGER,LEV,21,1,0,1,Throttle + [18] = "%.1f", --THROTTLE_TRANSIT_L,NULL,18,-0,0,1,Throttle + [19] = "%.1f", --THROTTLE_TRANSIT_R,NULL,19,-0,0,1,Throttle + [288] = "%.1f", --THROTTLE_CONTROLE_L,NULL,288,-0,0,1,Throttle + [289] = "%.1f", --THROTTLE_CONTROLE_R,NULL,289,-0,0,1,Throttle + [25] = "%.1f", --FRICTION_ADJUSTING_THROTTLE,LEV,25,0,0,1,Cockpit.Generic.friction + [24] = "%.1f", --FRICTION_ADJUSTING_PROPELLER,LEV,24,0,0,1,Cockpit.Generic.prop_friction + [22] = "%.1f", --PROPELLER_CONTROL_L,NULL,22,-0,0,1,Cockpit.SpitfireLFMkIX.pitch + [23] = "%.1f", --PROPELLER_CONTROL_R,NULL,23,-0,0,1,Cockpit.SpitfireLFMkIX.pitch + [292] = "%.1f", --BOOST_ CUT-OUT,BTN,292,1,0,1,Cockpit.Mosquito.boost_cutoff + [197] = "%.1f", --OIL_DILUTION_LEFT,BTN,197,1,0,1,Cockpit.Mosquito.port_oil_dilution_button + [197] = "%.1f", --OIL_DILUTION_LEFT,BTN,197,1,0,1,Cockpit.Mosquito.port_oil_dilution_button + [198] = "%.1f", --OIL_DILUTION_RIGHT,BTN,198,1,0,1,Cockpit.Mosquito.stbd_oil_dilution_button + [129] = "%.1f", --STARTER_COVER_LEFT,TUMB,129,-1,0,1,Cockpit.Mosquito.port_starter_switch_cover + [129] = "%.1f", --STARTER_COVER_LEFT,TUMB,129,1,0,1,Cockpit.Mosquito.port_starter_switch_cover + [131] = "%.1f", --STARTER_LEFT,BTN,131,1,0,1,Cockpit.Mosquito.port_starter_switch + [130] = "%.1f", --STARTER_COVER_RIGHT,TUMB,130,-1,0,1,Cockpit.Mosquito.stbd_starter_switch_cover + [132] = "%.1f", --STARTER_RIGHT,BTN,132,1,0,1,Cockpit.Mosquito.stbd_starter_switch + [133] = "%.1f", --BOOSTER_COVER_LEFT,TUMB,133,-1,0,1,Cockpit.Mosquito.port_booster_switch_cover + [135] = "%.1f", --BOOSTER_LEFT,BTN,135,1,0,1,Cockpit.Mosquito.port_booster_switch + [134] = "%.1f", --BOOSTER_COVER_RIGHT,TUMB,134,-1,0,1,Cockpit.Mosquito.stbd_booster_switch_cover + [136] = "%.1f", --BOOSTER_RIGHT,BTN,136,1,0,1,Cockpit.Mosquito.stbd_booster_switch + [192] = "%.3f", --CUT-OUT_PORT,TUMB,192,-1,0,1,Cockpit.Mosquito.port_engine_cutout_handle + [193] = "%.1f", --FUEL_COCKS_LEFT,TUMB,193,1,-1,1,Cockpit.Mosquito.port_fuel_cock + [194] = "%.1f", --FUEL_COCKS_RIGHT,TUMB,194,-1,-1,1,Cockpit.Mosquito.stbd_fuel_cock + [195] = "%.1f", --TRANSFER_COCK,TUMB,195,-1,0,1,Cockpit.Mosquito.transfer_cock + [354] = "%.1f", --AIRSCREW_LH,BTN,354,1,0,1,Cockpit.Mosquito.port_airscrew_feathering_switch + [355] = "%.1f", --AIRSCREW_RH,BTN,355,1,0,1,Cockpit.Mosquito.stbd_airscrew_feathering_switch + [27] = "%.1f", --MIXTURE,TUMB,27,-1,0,1,Cockpit.Generic.mix + [196] = "%.1f", --TANK_PRS,TUMB,196,1,0,1,Cockpit.SpitfireLFMkIX.tank_pressurizer + [200] = "%.1f", --OIL_SUPPLY_PORT,TUMB,200,-1,0,1,Cockpit.Mosquito.port_aux_oil_lever + [199] = "%.1f", --OIL_SUPPLY_STBD,TUMB,199,1,0,1,Cockpit.Mosquito.stbd_aux_oil_lever + [191] = "%.1f", --CUT-OUT_STBD,TUMB,191,-1,0,1,Cockpit.Mosquito.stbd_engine_cutout_handle + + --Switchboard + [1] = "%.1f", --REPEATER_COMPASS_SW1,TUMB,1,-1,0,1,Cockpit.Mosquito.r_i_compass_switch + [2] = "%.1f", --REPEATER_COMPASS_SW2,TUMB,2,1,0,1,Cockpit.Mosquito.r_i_compass_switch + [3] = "%.1f", --BA_SW,TUMB,3,-1,0,1,Cockpit.Mosquito.beam_approach_switch + [112] = "%.1f", --RAD_FLAP_LH,TUMB,112,-1,0,1,Cockpit.Mosquito.lh_rad_flap_switch + [113] = "%.1f", --RAD_FLAP_RH,TUMB,113,1,0,1,Cockpit.Mosquito.rh_rad_flap_switch + [114] = "%.1f", --AIR_FILTER,TUMB,114,-1,0,1,Cockpit.Mosquito.tropical_air_filter_switch + [157] = "%.1f", --MORSE_KEY,BTN,157,1,0,1,Cockpit.SpitfireLFMkIX.morse_key + [158] = "%.1f", --DOWNWARD_LEVER,TUMB,158,-0.5,0,1,Cockpit.SpitfireLFMkIX.id_lamp_down_mode + [159] = "%.1f", --UPWARD_LEVER,TUMB,159,0.5,0,1,Cockpit.SpitfireLFMkIX.id_lamp_up_mode + [160] = "%.1f", --DOWN_IDENT_LIGHTS_SW,TUMB,160,-0.5,0,1,Cockpit.Mosquito.id_lamp_down_colour_switch + [161] = "%.1f", --CAMERA_GUN_SW,TUMB,161,1,0,1,Cockpit.Mosquito.camera_gun_switch + [162] = "%.1f", --NAV_LIGHTS_SW,TUMB,162,1,0,1,Cockpit.Generic.nav_lights_switch + [163] = "%.1f", --UV_LIGHT_SW,TUMB,163,-1,0,1,Cockpit.Generic.uv_lighting_switch + [164] = "%.1f", --PITOT_HEAD_SW,TUMB,164,1,0,1,Cockpit.Generic.pitot_heat_switch + [165] = "%.1f", --LR_FUEL_PUMP_SW,TUMB,165,-1,0,1,Cockpit.Mosquito.lr_fuel_pump_switch + [168] = "%.1f", --IFF_SW,TUMB,168,1,0,1,Cockpit.Mosquito.iff_radio_switch + [17] = "%.1f", --REAR_ILLUM,LEV,17,0,0,1,Cockpit.Mosquito.loop_antenna_flood_light_dimmer + [303] = "%.1f", --CHART_ILLUM,LEV,303,0,0,1,Cockpit.Mosquito.chart_flood_light_dimmer + [302] = "%.1f", --DOME_ILLUM,LEV,302,0,0,1,Cockpit.Mosquito.roof_dome_light_dimmer + [188] = "%.1f", --IFF966_CHAN,TUMB,188,-0.2,0,1,Cockpit.Generic.BC966IFF.channel_selector + [363] = "%.1f", --IFF966_DETONATE_COVER,TUMB,363,1,0,1,Cockpit.Generic.BC966IFF.detonator_switch_cover + [189] = "%.1f", --IFF966_DETONATE,TUMB,189,-1,0,1,Cockpit.Generic.BC966IFF.detonator_switch + [190] = "%.1f", --IFF966_OPER,TUMB,190,1,0,1,Cockpit.Generic.BC966IFF.power_switch + [307] = "%.1f", --T_T_F_SW,TUMB,307,-1,0,1,Cockpit.Mosquito.transmitter_type_f_switch + [26] = "%.1f", --SUPERCHARJER_SWITCH,TUMB,26,-1,0,1,Cockpit.Mosquito.supercharger_gear_change_switch + [294] = "%.1f", --UV_EXCITER,BTN,294,1,0,1,Cockpit.Generic.uv_exciter_button + [176] = "%.1f", --WIPER_RT,LEV,176,0,0,1,Cockpit.Generic.windscreen_wiper_rheostat + [169] = "%.1f", --ARI_DETONATE_COVER,TUMB,169,-1,0,1,Cockpit.Mosquito.radio_detonator_switch_cover + [170] = "%.1f", --ARI_DETONATE_1,BTN,170,1,0,1,Cockpit.Mosquito.radio_detonator_switch_l + [171] = "%.1f", --ARI_DETONATE_2,BTN,171,1,0,1,Cockpit.Mosquito.radio_detonator_switch_r + [172] = "%.1f", --PORT_EXTG_BTN_COVER,TUMB,172,1,0,1,Cockpit.Mosquito.port_extignuisher_switch_cover + [173] = "%.1f", --PORT_EXTG_BTN,BTN,173,1,0,1,Cockpit.Mosquito.port_extignuisher_switch + [174] = "%.1f", --STBD_EXTG_BTN_COVER,TUMB,174,1,0,1,Cockpit.Mosquito.stbd_extignuisher_switch_cover + [175] = "%.1f", --STBD_EXTG_BTN,BTN,175,1,0,1,Cockpit.Mosquito.stbd_extignuisher_switch + [178] = "%.1f", --RESIN_LIGHT_SW,TUMB,178,1,0,1,Cockpit.Mosquito.resin_lamps_switch + [167] = "%.1f", --NAV_HEAD_LAMP_SW,TUMB,167,-0.5,0,1,Cockpit.Mosquito.id_lamp_head_mode_switch + [166] = "%.1f", --REFLECTOR_SIGHT_SW,TUMB,166,1,0,1,Cockpit.Mosquito.reflector_sight_switch + [14] = "%.1f", --RIGHT_SIDE_ILLUM,LEV,14,0,0,1,Cockpit.Mosquito.rh_flood_light_dimmer + [15] = "%.1f", --BOX_B_ILLUM,LEV,15,0,0,1,Cockpit.Mosquito.box_b_flood_light_dimmer + [16] = "%.1f", --BOMB_PANEL_ILLUM,LEV,16,0,0,1,Cockpit.Mosquito.bomb_aimers_panel_flood_light_dimmer + [112] = "%.1f", --RAD_FLAP_LH,TUMB,112,-1,0,1,Cockpit.Mosquito.lh_rad_flap_switch + [113] = "%.1f", --RAD_FLAP_RH,TUMB,113,1,0,1,Cockpit.Mosquito.rh_rad_flap_switch + [114] = "%.1f", --AIR_FILTER,TUMB,114,-1,0,1,Cockpit.Mosquito.tropical_air_filter_switch + [157] = "%.1f", --MORSE_KEY,BTN,157,1,0,1,Cockpit.SpitfireLFMkIX.morse_key + [158] = "%.1f", --DOWNWARD_LEVER,TUMB,158,-0.5,0,1,Cockpit.SpitfireLFMkIX.id_lamp_down_mode + [159] = "%.1f", --UPWARD_LEVER,TUMB,159,0.5,0,1,Cockpit.SpitfireLFMkIX.id_lamp_up_mode + [160] = "%.1f", --DOWN_IDENT_LIGHTS_SW,TUMB,160,-0.5,0,1,Cockpit.Mosquito.id_lamp_down_colour_switch + [161] = "%.1f", --CAMERA_GUN_SW,TUMB,161,1,0,1,Cockpit.Mosquito.camera_gun_switch + [162] = "%.1f", --NAV_LIGHTS_SW,TUMB,162,-1,0,1,Cockpit.Generic.nav_lights_switch + [163] = "%.1f", --UV_LIGHT_SW,TUMB,163,1,0,1,Cockpit.Generic.uv_lighting_switch + [164] = "%.1f", --PITOT_HEAD_SW,TUMB,164,-1,0,1,Cockpit.Generic.pitot_heat_switch + [165] = "%.1f", --LR_FUEL_PUMP_SW,TUMB,165,1,0,1,Cockpit.Mosquito.lr_fuel_pump_switch + [168] = "%.1f", --IFF_SW,TUMB,168,-1,0,1,Cockpit.Mosquito.iff_radio_switch + [17] = "%.1f", --REAR_ILLUM,LEV,17,0,0,1,Cockpit.Mosquito.loop_antenna_flood_light_dimmer + [303] = "%.1f", --CHART_ILLUM,LEV,303,0,0,1,Cockpit.Mosquito.chart_flood_light_dimmer + [302] = "%.1f", --DOME_ILLUM,LEV,302,0,0,1,Cockpit.Mosquito.roof_dome_light_dimmer + [188] = "%.1f", --IFF966_CHAN,TUMB,188,-0.2,0,1,Cockpit.Generic.BC966IFF.channel_selector + [363] = "%.1f", --IFF966_DETONATE_COVER,TUMB,363,1,0,1,Cockpit.Generic.BC966IFF.detonator_switch_cover + [189] = "%.1f", --IFF966_DETONATE,TUMB,189,-1,0,1,Cockpit.Generic.BC966IFF.detonator_switch + [190] = "%.1f", --IFF966_OPER,TUMB,190,1,0,1,Cockpit.Generic.BC966IFF.power_switch + [307] = "%.1f", --T_T_F_SW,TUMB,307,-1,0,1,Cockpit.Mosquito.transmitter_type_f_switch + + --Three-Way Selector + [327] = "%.1f", --BOMB_DOORS,BTN,327,-1,-1,0,Cockpit.Mosquito.bomb_doors_lever + [328] = "%.1f", --CHASSIS,BTN,328,1,0,1,Cockpit.Mosquito.chassis_lever + [329] = "%.1f", --FLAPS,BTN,329,-1,-1,0,Cockpit.Mosquito.flaps_lever + [117] = "%.1f", --CHASSIS_GATE,TUMB,117,1,0,1,Cockpit.Mosquito.chassis_gate + [353] = "%.1f", --FLAPS_GATE,TUMB,353,-1,0,1,Cockpit.Mosquito.flaps_gate + + + --VHF Radio + [32] = "%.1f", --RCTRL_OFF,BTN,32,1,0,1,Cockpit.SpitfireLFMkIX.radio_0 + [33] = "%.1f", --RCTRL_A,BTN,33,1,0,1,Cockpit.SpitfireLFMkIX.radio_a + [34] = "%.1f", --RCTRL_B,BTN,34,1,0,1,Cockpit.SpitfireLFMkIX.radio_b + [35] = "%.1f", --RCTRL_C,BTN,35,1,0,1,Cockpit.SpitfireLFMkIX.radio_c + [36] = "%.1f", --RCTRL_D,BTN,36,1,0,1,Cockpit.SpitfireLFMkIX.radio_d + [42] = "%.1f", --RCTRL_DIM,TUMB,42,1,0,1,Cockpit.SpitfireLFMkIX.radio_dimmer + [44] = "%.1f", --RCTRL_T,TUMB,44,1,0,1,Cockpit.SpitfireLFMkIX.radio_mode + [364] = "%.1f", --RCTRL_VOL,LEV,364,0,0,1,Cockpit.SpitfireLFMkIX.radio_volume + [43] = "%.1f", --RCTRL_TLOCK,TUMB,43,-1,0,1,Cockpit.SpitfireLFMkIX.radio_lock + [4] = "%.1f", --PTT_ES,BTN,4,1,0,1,SCR-522 PTT Button + + --Weapons + [120] = "%.1f", --GUN_MASTER_COVER,TUMB,120,-1,0,1,Cockpit.Mosquito.gun_firing_master_switch_cover + [121] = "%.1f", --GUN_MASTER,TUMB,121,1,0,1,Cockpit.Mosquito.gun_firing_master_switch + [245] = "%.1f", --MACHINEGUN_FIRING,BTN,245,1,0,1,Cockpit.Bf109K4.trigger_a + [246] = "%.1f", --GUN_FIRING,BTN,246,1,0,1,Cockpit.Bf109K4.trigger_b2 + [244] = "%.1f", --CAMERA_GUN,BTN,244,1,0,1,Cockpit.Bf109K4.trigger_b2 + [8] = "%.1f", --WING_TANK_JETTSON_COVER,TUMB,8,1,0,1,Cockpit.Mosquito.wing_tank_jettison_button_cover + [9] = "%.1f", --WING_TANK_JETTSON,BTN,9,1,0,1,Cockpit.Mosquito.wing_tank_jettison_button + [323] = "%.1f", --HARNESS_LEVER,TUMB,323,1,0,1,Cockpit.Generic.harness_release_lever + [107] = "%.1f", --GUNSIGHT_RANGE,LEV,107,0,0,1,Cockpit.SpitfireLFMkIX.gun_sight_range + [108] = "%.1f", --GUNSIGHT_BASE,LEV,108,0,0,1,Cockpit.SpitfireLFMkIX.gun_sight_span + [144] = "%.1f", --JETTISON_CONTAINERS_COVER,TUMB,144,-1,0,1,Cockpit.Mosquito.containers_jettison_button_cover + [145] = "%.1f", --JETTISON_CONTAINERS,BTN,145,1,0,1,Cockpit.Mosquito.containers_jettison_button + [311] = "%.1f", --BOMB_PANEL_LOCK,TUMB,311,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_protective_cover + [143] = "%.1f", --CINE_CAMERA,TUMB,143,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_trigger_changeover_switch + [148] = "%.1f", --WING_BOMBS_OR_TANKS_1,TUMB,148,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_1_switch + [149] = "%.1f", --WING_BOMBS_OR_TANKS_2,TUMB,149,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_2_switch + [150] = "%.1f", --FUSELAGE_BOMBS_3,TUMB,150,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_3_switch + [151] = "%.1f", --FUSELAGE_BOMBS_4,TUMB,151,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_4_switch + [152] = "%.1f", --ALL_BOMBS_NOSE,TUMB,152,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_nose_fusing_switch + [153] = "%.1f" --ALL_BOMBS_TAIL,TUMB,153,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_tail_fusing_switch +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + + ExportScript.engineInstruments(mainPanelDevice) + ExportScript.navigation1Tile(mainPanelDevice) + ExportScript.gunnerTile(mainPanelDevice) + ExportScript.trimReadouts(mainPanelDevice) + --ExportScript.gearFlapsBombBayTile(mainPanelDevice) --TODO In Progress + ExportScript.airspeedAltitudeVerticalSpeedTile(mainPanelDevice) + ExportScript.StallSpeeds(mainPanelDevice) + + --[[ + ---------------------------------------------- + ---------Display: Side Slip-------------------- + ---------------------------------------------- + + --values less than 0 are L, more than 0 are R. max is 100 + local dial_slideSlip = math.floor(mainPanelDevice:get_argument_value(75) * 100) + ExportScript.Tools.SendData(3002, dial_slideSlip) + + ---------------------------------------------- + ---------Display: Turn Indicator-------------------- + ---------------------------------------------- + + --values less than 0 are L, more than 0 are R. max is 100 + local dial_turnIndicator = math.floor(mainPanelDevice:get_argument_value(76) * 100) + ExportScript.Tools.SendData(3003, dial_turnIndicator) +]]-- +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + ExportScript.fuelTanksTiles(mainPanelDevice) + ExportScript.VhfRadioTile(mainPanelDevice) + ExportScript.CrazyRadioTile(mainPanelDevice) + ExportScript.PilotRadioTile(mainPanelDevice) + ExportScript.airTemp(mainPanelDevice) + ExportScript.oxygenTile(mainPanelDevice) + ExportScript.BestPowerTiles(mainPanelDevice) + ExportScript.MaxSpeedTiles(mainPanelDevice) + + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + --===================================================================================== + --[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get tehe value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + ]] +--[[ + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.engineInstruments(mainPanelDevice) + +----------------------------- +-- Left Engine Instruments -- +----------------------------- + + local guage_rpmLeft = math.floor(mainPanelDevice:get_argument_value(50) * 5000) + guage_rpmLeft = format_int(round(guage_rpmLeft,-1)) + ExportScript.Tools.SendData(3000, guage_rpmLeft) --raw rpm value + + local guage_boostLeft_x = {0.0,0.052,0.142,0.289,0.425,0.547,0.662,0.776,0.887,0.983,1.0}--remove osme decimal places plz + local guage_boostLeft_y = {-7.0,-6.0,-4.0,0.0,4.0,8.0,12.0,16.0,20.0,24.0,25.0} + local guage_boostLeft = ExportScript.Linearize(mainPanelDevice:get_argument_value(54), guage_boostLeft_x, guage_boostLeft_y) + guage_boostLeft = round(guage_boostLeft,1) + ExportScript.Tools.SendData(3001, guage_boostLeft)--TODO. always show the 0 at the end of a solid number + + local guage_oilTempLeft = math.floor(mainPanelDevice:get_argument_value(56) * 100) + ExportScript.Tools.SendData(3002, guage_oilTempLeft) --raw oil temp value + + local guage_oilPresLeft = math.floor(mainPanelDevice:get_argument_value(58) * 150) + ExportScript.Tools.SendData(3003, guage_oilPresLeft) --raw oil pressure value + + local guage_radTempLeft_x = {0.0,0.078,0.203,0.287,0.391,0.496,0.652,0.80,1.0}--remove osme decimal places plz + local guage_radTempLeft_y = {40,60,80,90,100,110,120,130,140} + local guage_radTempLeft = ExportScript.Linearize(mainPanelDevice:get_argument_value(60), guage_radTempLeft_x, guage_radTempLeft_y) + guage_radTempLeft = round(guage_radTempLeft,0) + ExportScript.Tools.SendData(3004, guage_radTempLeft) + + ExportScript.Tools.SendData(4000, "ENG L\n" .. + "RPM " .. guage_rpmLeft .. "\n" .. + "Boost " .. guage_boostLeft) + + ExportScript.Tools.SendData(4001, "Oil T " .. guage_oilTempLeft .. "°C\n" .. + "Oil P " .. guage_oilPresLeft .. "\n" .. + "Rad T " .. guage_radTempLeft .. "°C") + +------------------------------ +-- Right Engine Instruments -- +------------------------------ + + local guage_rpmRight = math.floor(mainPanelDevice:get_argument_value(52) * 5000) + guage_rpmRight = format_int(round(guage_rpmRight, -1)) + ExportScript.Tools.SendData(3005, guage_rpmRight) --raw rpm value + + local guage_boostRight_x = {0.0,0.052,0.142,0.289,0.425,0.547,0.662,0.776,0.887,0.983,1.0} + local guage_boostRight_y = {-7.0,-6.0,-4.0,0.0,4.0,8.0,12.0,16.0,20.0,24.0,25.0} + local guage_boostRight = ExportScript.Linearize(mainPanelDevice:get_argument_value(55), guage_boostRight_x, guage_boostRight_y) + guage_boostRight = round(guage_boostRight,1) + ExportScript.Tools.SendData(3006, guage_boostRight)--TODO. always show the 0 at the end of a solid number + + local guage_oilTempRight = math.floor(mainPanelDevice:get_argument_value(57) * 100) + ExportScript.Tools.SendData(3007, guage_oilTempRight) --raw oil temp value + + local guage_oilPresRight = math.floor(mainPanelDevice:get_argument_value(59) * 150) + ExportScript.Tools.SendData(3008, guage_oilPresRight) --raw oil pressure value + + local guage_radTempRight_x = {0.0,0.078,0.203,0.287,0.391,0.496,0.652,0.80,1.0}--remove osme decimal places plz + local guage_radTempRight_y = {40,60,80,90,100,110,120,130,140} + local guage_radTempRight = ExportScript.Linearize(mainPanelDevice:get_argument_value(61), guage_radTempRight_x, guage_radTempRight_y) + guage_radTempRight = round(guage_radTempRight,0) + ExportScript.Tools.SendData(3009, guage_radTempRight) + + ExportScript.Tools.SendData(4002, "ENG R\n" .. + "RPM " .. guage_rpmRight .. "\n" .. + "Boost " .. guage_boostRight) + + ExportScript.Tools.SendData(4003, "Oil T " .. guage_oilTempRight .. "°C\n" .. + "Oil P " .. guage_oilPresRight .. "\n" .. + "Rad T " .. guage_radTempRight .. "°C") + +end + + +function ExportScript.gunnerTile(mainPanelDevice) + --[107] = "%.1f", --3045,GUNSIGHT_RANGE,LEV,107,0,0,1,Cockpit.SpitfireLFMkIX.gun_sight_range + --[108] = "%.1f", --3048,GUNSIGHT_BASE,LEV,108,0,0,1,Cockpit.SpitfireLFMkIX.gun_sight_span + + local gunSightRange_x = {0.0,0.288,0.537,0.764,1.0}--remove osme decimal places plz + local gunSightRange_y = {100.0,200.0,300.0,400.0,500.0} + local gunSightRange = ExportScript.Linearize(mainPanelDevice:get_argument_value(107), gunSightRange_x, gunSightRange_y) + gunSightRange = round(gunSightRange,0) + ExportScript.Tools.SendData(3010, gunSightRange) + + local gunSightSpan_x = {0.0,0.113,0.224,0.336,0.438,0.663,0.9,1.0}--remove some decimal places plz + local gunSightSpan_y = {100.0,90.0,80.0,70.0,60.0,50.0,40.0,35.0} + local gunSightSpan = ExportScript.Linearize(mainPanelDevice:get_argument_value(108), gunSightSpan_x, gunSightSpan_y) + gunSightSpan = round(gunSightSpan,0) + ExportScript.Tools.SendData(3011, gunSightSpan) + + + --Wingspan in feet + local v1_wingspanFt = 19 + local I16_wingspanFt = 30 + local BF109_wingspanFt = 32 + local Fw190_wingspanFt = 34 + local spitfire_wingspanFt = 32 + local P40P51_wingspanFt = 51 + local P47_wingspanFt = 41 + local mosquito_wingspanFt = 54 + local B17G_wingspanFt = 104 + + local optimalTargetWidthName + + if gunSightSpan >= (v1_wingspanFt - 1) and gunSightSpan <= (v1_wingspanFt + 1) then + optimalTargetWidthName = "V1" + elseif gunSightSpan >= (I16_wingspanFt - 1) and gunSightSpan <= (I16_wingspanFt + 1) then + optimalTargetWidthName = "I-16" + elseif gunSightSpan >= (BF109_wingspanFt - 1) and gunSightSpan <= (BF109_wingspanFt + 1) then + optimalTargetWidthName = "BF109" + elseif gunSightSpan >= (Fw190_wingspanFt - 1) and gunSightSpan <= (Fw190_wingspanFt + 1) then + optimalTargetWidthName = "Fw109" + elseif gunSightSpan >= (spitfire_wingspanFt - 1) and gunSightSpan <= (spitfire_wingspanFt + 1) then + optimalTargetWidthName = "Spitfire" + elseif gunSightSpan >= (P40P51_wingspanFt - 1) and gunSightSpan <= (P40P51_wingspanFt + 1) then + optimalTargetWidthName = "P-40/51" + elseif gunSightSpan >= (P47_wingspanFt - 1) and gunSightSpan <= (P47_wingspanFt + 1) then + optimalTargetWidthName = "P-47" + elseif gunSightSpan >= (mosquito_wingspanFt - 1) and gunSightSpan <= (mosquito_wingspanFt + 1) then + optimalTargetWidthName = "Mossie" + elseif gunSightSpan >= (B17G_wingspanFt - 1) and gunSightSpan <= (B17G_wingspanFt + 1) then + optimalTargetWidthName = "B-17G" + else + optimalTargetWidthName = "Tgt - N/A" + end + + ExportScript.Tools.SendData(3012, "Optimal\nTarget\n" .. optimalTargetWidthName) + + ExportScript.Tools.SendData(4004, "Gun Sight\nRng " .. gunSightRange .. " YA\n" .. "Base " .. gunSightSpan .. " ft\n" .. optimalTargetWidthName) + +end + + +function ExportScript.fuelTanksTiles(mainPanelDevice) + +---------------- +-- Inner Fuel -- +---------------- + local fuelInnerTankLeft_x = {0.0,0.1,0.2,0.355098,0.492801,0.623399,0.740702,0.859403,0.938302} + local fuelInnerTankLeft_y = {0.0,10.0,20.0,40.0,60.0,80.0,100.0,120.0,146.0} + local fuelInnerTankLeft = ExportScript.Linearize(mainPanelDevice:get_argument_value(92), fuelInnerTankLeft_x, fuelInnerTankLeft_y) + fuelInnerTankLeft = round(fuelInnerTankLeft,0) + ExportScript.Tools.SendData(3013, fuelInnerTankLeft) + + local fuelInnerTankRight_x = {0.0,0.1,0.2,0.355098,0.492801,0.623399,0.740702,0.859403,0.938302} + local fuelInnerTankRight_y = {0.0,10.0,20.0,40.0,60.0,80.0,100.0,120.0,146.0} + local fuelInnerTankRight = ExportScript.Linearize(mainPanelDevice:get_argument_value(93), fuelInnerTankRight_x, fuelInnerTankRight_y) + fuelInnerTankRight = round(fuelInnerTankRight,0) + ExportScript.Tools.SendData(3014, fuelInnerTankRight) + + local fuelInnerTankTotal = fuelInnerTankRight + fuelInnerTankLeft + ExportScript.Tools.SendData(3015, fuelInnerTankTotal) + + ExportScript.Tools.SendData(4005, "Fuel Inner\n" .. "PORT " .. fuelInnerTankLeft .. "\n" .. + "STBD " .. fuelInnerTankRight .. "\n" .. + "Total " .. fuelInnerTankTotal) + +----------------- +-- Center Fuel -- +----------------- +--You can induce false reading with negative Gs for testing + + local fuelCenterTankNo10_x = {0,0.1262,0.309701,0.506199,0.682902,0.8871} + local fuelCenterTankNo10_y = {0.0,10.0,20.0,30.0,40.0,53.0} + local fuelCenterTankNo10 = ExportScript.Linearize(mainPanelDevice:get_argument_value(94), fuelCenterTankNo10_x, fuelCenterTankNo10_y) + fuelCenterTankNo10 = round(fuelCenterTankNo10,0) + ExportScript.Tools.SendData(3016, fuelCenterTankNo10) + + local fuelCenterTankNo12_x = {0,0.0808,0.189,0.377599,0.5304,0.669502,0.8124,0.9264} + local fuelCenterTankNo12_y = {0.0,5.0,10.0,20.0,30.0,40.0,50.0,63.0} + + local fuelCenterTankNo12 = ExportScript.Linearize(mainPanelDevice:get_argument_value(95), fuelCenterTankNo12_x, fuelCenterTankNo12_y) + fuelCenterTankNo12 = round(fuelCenterTankNo12,0) + ExportScript.Tools.SendData(3017, fuelCenterTankNo12) + + local fuelCenterTankTotal = fuelCenterTankNo10 + fuelCenterTankNo12 + ExportScript.Tools.SendData(3018, fuelCenterTankTotal) + + ExportScript.Tools.SendData(4006, "Fuel Center\n" .. "№10 " .. fuelCenterTankNo10 .. "\n" .. + "№12 " .. fuelCenterTankNo12 .. "\n" .. + "Total " .. fuelCenterTankTotal) + +----------------------- +-- Outer Tanks Fuel -- +----------------------- + + local fuelOuterTankLeft_x = {0.0,0.1366,0.332098,0.566099,0.7699,0.909902} + local fuelOuterTankLeft_y = {0.0,10.0,20.0,30.0,40.0,59.0} + local fuelOuterTankLeft = ExportScript.Linearize(mainPanelDevice:get_argument_value(96), fuelOuterTankLeft_x, fuelOuterTankLeft_y) + fuelOuterTankLeft = round(fuelOuterTankLeft, 0) + ExportScript.Tools.SendData(3019, fuelOuterTankLeft) + + local fuelOuterTankRight_x = {0.0,0.1366,0.332098,0.566099,0.7699,0.909902} + local fuelOuterTankRight_y = {0.0,10.0,20.0,30.0,40.0,59.0} + local fuelOuterTankRight = ExportScript.Linearize(mainPanelDevice:get_argument_value(97), fuelOuterTankRight_x, fuelOuterTankRight_y) + fuelOuterTankRight = round(fuelOuterTankRight, 0) + ExportScript.Tools.SendData(3020, fuelOuterTankRight) + + local fuelOuterTankTotal = fuelOuterTankRight + fuelOuterTankLeft + ExportScript.Tools.SendData(3021, fuelOuterTankTotal) + + ExportScript.Tools.SendData(4007, "Fuel Outer\n" .. "PORT " .. fuelOuterTankLeft .. "\n" .. + "STBD " .. fuelOuterTankRight .. "\n" .. + "Total " .. fuelOuterTankTotal) + +---------------- +-- Total Fuel -- +---------------- + + local fuelAircraftTotal = fuelInnerTankTotal + fuelCenterTankTotal + fuelOuterTankTotal + ExportScript.Tools.SendData(3022, fuelAircraftTotal) + ExportScript.Tools.SendData(4008, "Inner " .. fuelInnerTankTotal .. "\n" .. + "Center " .. fuelCenterTankTotal .. "\n" .. + "Outer " .. fuelOuterTankTotal .. "\n" .. + "Fuel Tot " .. fuelAircraftTotal) + +end + + +function ExportScript.VhfRadioTile(mainPanelDevice) --https://streamable.com/nnjgpt +--TODO find a way to always show three digits + + --ExportScript.Tools.SendData(3051, GetDevice(27):get_frequency()) -- receiver raw + local switchPosition_R1155 = mainPanelDevice:get_argument_value(231) + local R1155_freq + + if switchPosition_R1155 < 0.05 then -- black/blue band + R1155_freq = (GetDevice(27):get_frequency())/1000000 + elseif switchPosition_R1155 < 0.15 then -- blue/red band + R1155_freq = (GetDevice(27):get_frequency())/1000000 + elseif switchPosition_R1155 < 0.25 then -- black1 band + R1155_freq = (GetDevice(27):get_frequency())/10000 + elseif switchPosition_R1155 < 0.35 then -- yellow band + R1155_freq = (GetDevice(27):get_frequency())/1000 + else --switchPosition_R1155 < 0.45 then -- black2 band + R1155_freq = (GetDevice(27):get_frequency())/1000 + end + + --R1155_freq = round(R1155_freq,3) + R1155_freq = ExportScript.Tools.RoundFreqeuncy(R1155_freq, Format, PrefixZeros, 0.001) + ExportScript.Tools.SendData(3023, R1155_freq) -- receiver + + + --ExportScript.Tools.SendData(3050, GetDevice(26):get_frequency()) -- transmitter raw + local switchPosition_T1154 = mainPanelDevice:get_argument_value(215) + local T1154_freq + + if switchPosition_T1154 <= 0.05 then + T1154_freq = (GetDevice(26):get_frequency())/1000000 + elseif switchPosition_T1154 <= 0.15 then + T1154_freq = (GetDevice(26):get_frequency())/1000000 + else + T1154_freq = (GetDevice(26):get_frequency())/1000 + end + + --T1154_freq = round(T1154_freq,3) + T1154_freq = ExportScript.Tools.RoundFreqeuncy(T1154_freq, Format, PrefixZeros, 0.001) + ExportScript.Tools.SendData(3024, T1154_freq) -- transmitter + + ExportScript.Tools.SendData(4016, "R1155 \n" .. R1155_freq .. "\n" + .. "T1154 \n" .. T1154_freq ) +end + + +function ExportScript.PilotRadioTile(mainPanelDevice) +-- VHF_Radio + local lVHF_Radio = GetDevice(24) + local VhfRadioFreq + if lVHF_Radio:is_on() then + ExportScript.Tools.SendData(3025, string.format("%7.3f", lVHF_Radio:get_frequency()/1000000)) + VhfRadioFreq = ExportScript.Tools.RoundFreqeuncy(lVHF_Radio:get_frequency()/1000000) + ExportScript.Tools.SendData(3025, VhfRadioFreq) + else + ExportScript.Tools.SendData(3025, " ") + end + + + --[32] = "%.1f", --3001,RCTRL_OFF,BTN,32,1,0,1,Cockpit.SpitfireLFMkIX.radio_0 + --[33] = "%.1f", --3002,RCTRL_A,BTN,33,1,0,1,Cockpit.SpitfireLFMkIX.radio_a + --[34] = "%.1f", --3003,RCTRL_B,BTN,34,1,0,1,Cockpit.SpitfireLFMkIX.radio_b + --[35] = "%.1f", --3004,RCTRL_C,BTN,35,1,0,1,Cockpit.SpitfireLFMkIX.radio_c + --[36] = "%.1f", --3005,RCTRL_D,BTN,36,1,0,1,Cockpit.SpitfireLFMkIX.radio_d + + local lVHF_Radio_PRESET = "" + if mainPanelDevice:get_argument_value(33) > 0.8 then + lVHF_Radio_PRESET = "A" + elseif mainPanelDevice:get_argument_value(34) > 0.8 then + lVHF_Radio_PRESET = "B" + elseif mainPanelDevice:get_argument_value(35) > 0.8 then + lVHF_Radio_PRESET = "C" + elseif mainPanelDevice:get_argument_value(36) > 0.8 then + lVHF_Radio_PRESET = "D" + else + lVHF_Radio_PRESET = "" + end + ExportScript.Tools.SendData(3026, lVHF_Radio_PRESET) + + ExportScript.Tools.SendData(4009, string.format("Radio " .. lVHF_Radio_PRESET .. "\n" .. VhfRadioFreq)) + +end + + +function ExportScript.CrazyRadioTile(mainPanelDevice) + + --this contains the formated table of the rear radio presets + local mossie_list_indication_1 = ExportScript.Tools.split(list_indication(1), "%c") + + local preset_A + local preset_B + local preset_C + local preset_D + local preset_E + local preset_F + local preset_G + --local preset_H + --local preset_I + local preset_J + local preset_K + local preset_L + local preset_M + local preset_N + --local preset_O + local preset_P + local preset_Q + --local preset_R + local preset_S + local preset_T + local preset_U + local preset_V + local preset_W + local preset_X + local preset_Y + --local preset_Z + + array_listOfPresetCallers = {"FRQ_0_0", "FRQ_0_1" ,"FRQ_0_2" ,"FRQ_0_3","FRQ_0_4","FRQ_0_5","FRQ_0_6" , + "FRQ_1_0","FRQ_1_1","FRQ_1_2","FRQ_1_3","FRQ_1_4","FRQ_1_5","FRQ_1_6" , + "FRQ_2_0","FRQ_2_1","FRQ_2_2","FRQ_2_3","FRQ_2_4","FRQ_2_5","FRQ_2_6"} + + array_listOfPresets = {preset_A, preset_B ,preset_C ,preset_D ,preset_E ,preset_F ,preset_G , + preset_J ,preset_K ,preset_L ,preset_M ,preset_N ,preset_P ,preset_Q , + preset_S ,preset_T ,preset_U ,preset_V ,preset_W ,preset_X ,preset_Y} + + + for i = 1,#array_listOfPresetCallers,1 do + for k,v in pairs(mossie_list_indication_1) do + if v == array_listOfPresetCallers[i] then + array_listOfPresets[i] = mossie_list_indication_1[k+1] + end + end + end + + ExportScript.Tools.SendData(4010, "Blue Radio\n" .. + "A " .. array_listOfPresets[1] .. "\n" .. + "B " .. array_listOfPresets[2] .. "\n" .. + "C " .. array_listOfPresets[3] .. "\n") + + + ExportScript.Tools.SendData(4011, "D " .. array_listOfPresets[4] .. "\n" .. + "E " .. array_listOfPresets[5] .. "\n" .. + "F " .. array_listOfPresets[6] .. "\n" .. + "G " .. array_listOfPresets[7] .. "\n") + + ExportScript.Tools.SendData(4012, "Red Radio\n" .. + "J " .. array_listOfPresets[8] .. "\n" .. + "K " .. array_listOfPresets[9] .. "\n" .. + "L " .. array_listOfPresets[10] .. "\n") + + + ExportScript.Tools.SendData(4013, "M " .. array_listOfPresets[11] .. "\n" .. + "N " .. array_listOfPresets[12] .. "\n" .. + "P " .. array_listOfPresets[13] .. "\n" .. + "Q " .. array_listOfPresets[14] .. "\n") + + ExportScript.Tools.SendData(4014, "Yellow Radio\n" .. + "S " .. array_listOfPresets[15] .. "\n" .. + "T " .. array_listOfPresets[16] .. "\n" .. + "U " .. array_listOfPresets[17] .. "\n") + + + ExportScript.Tools.SendData(4015, "V " .. array_listOfPresets[18] .. "\n" .. + "W " .. array_listOfPresets[19] .. "\n" .. + "X " .. array_listOfPresets[20] .. "\n" .. + "Y " .. array_listOfPresets[21] .. "\n") +end + + +function ExportScript.airTemp(mainPanelDevice) + + local airTemp_x = {0.0,0.103,0.889,1.0} + local airTemp_y = {30.0,20.0,-60.0,-70.0} + local airTemp = ExportScript.Linearize(mainPanelDevice:get_argument_value(314), airTemp_x, airTemp_y) + airTemp = round(airTemp, 0) + ExportScript.Tools.SendData(3027, airTemp) + ExportScript.Tools.SendData(4017, "Air Temp\n" .. airTemp .. "°C\n") +end + + +function ExportScript.navigation1Tile(mainPanelDevice) + + local dial_compass = math.floor(mainPanelDevice:get_argument_value(31) * 360)--TODO. This may not be the right instrument + + if dial_compass == 360 then + dial_compass = 000 + end + + dial_compass = string.format("%.1d" , dial_compass) + + if #dial_compass == 2 then + dial_compass = "0" .. dial_compass + elseif #dial_compass == 1 then + dial_compass = "00" .. dial_compass + end + + ExportScript.Tools.SendData(3028, dial_compass) + + local dial_compassNeedle_1 = math.floor(mainPanelDevice:get_argument_value(47) * 360) + + if dial_compassNeedle_1 == 360 then + dial_compassNeedle_1 = 000 + end + + dial_compassNeedle_1 = string.format("%.1d" , dial_compassNeedle_1) + + if #dial_compassNeedle_1 == 2 then + dial_compassNeedle_1 = "0" .. dial_compassNeedle_1 + elseif #dial_compassNeedle_1 == 1 then + dial_compassNeedle_1 = "00" .. dial_compassNeedle_1 + end + + ExportScript.Tools.SendData(3029, dial_compassNeedle_1) + + local dial_compassNeedle_2 = math.floor(mainPanelDevice:get_argument_value(48) * 360) + + if dial_compassNeedle_2 == 360 then + dial_compassNeedle_2 = 000 + end + + dial_compassNeedle_2 = string.format("%.1d" , dial_compassNeedle_2) + + if #dial_compassNeedle_2 == 2 then + dial_compassNeedle_2 = "0" .. dial_compassNeedle_2 + elseif #dial_compassNeedle_2 == 1 then + dial_compassNeedle_2 = "00" .. dial_compassNeedle_2 + end + + ExportScript.Tools.SendData(3030, dial_compassNeedle_2) + + ExportScript.Tools.SendData(4018, "HDG " .. dial_compass + .. "\nPNT 1 " .. dial_compassNeedle_1 + .. "\nPNT 2 " .. dial_compassNeedle_2) +end + + +function ExportScript.airspeedAltitudeVerticalSpeedTile(mainPanelDevice) + local dial_altimeter_tenThousands = math.floor(mainPanelDevice:get_argument_value(70) * 100000) + local altitude = dial_altimeter_tenThousands + altitude = round(altitude,-1) + if altitude > 60000 then + altitude = altitude - 100000 + end + + altitude = format_int(altitude) + + local dial_altimeterPressure = round((mainPanelDevice:get_argument_value(71) * 250) + 800,0) + + if string.find(dial_altimeterPressure, ".") then + --the dot was there, dont do anything + else --the dot is not there, so add it + dial_altimeterPressure = string.format(dial_altimeterPressure .. ".0") + end + + + ExportScript.Tools.SendData(3031, "Altimeter" .. "\n" .. altitude .. "ft") + ExportScript.Tools.SendData(3032, "Pressure" .. "\n" ..dial_altimeterPressure .. " hPa") + ExportScript.Tools.SendData(4019, "Altitude\n" .. altitude .. " ft" .. "\n" .. dial_altimeterPressure .. " hPa")--mbar == hPa. really! + + local dial_airspeed = math.floor(mainPanelDevice:get_argument_value(64) * 1000) --thanks ED + ExportScript.Tools.SendData(3033, "Airspeed\n" .. dial_airspeed .. " mph") + + + local verticalSpeed_x = {-1.0, -0.7, -0.443, -0.2, 0.0, 0.2, 0.443, 0.7, 1.0} + local verticalSpeed_y = {-4000.0, -3000.0, -2000.0, -1000.0, 0.0, 1000.0, 2000.0, 3000.0, 4000.0} + local verticalSpeed = ExportScript.Linearize(mainPanelDevice:get_argument_value(67), verticalSpeed_x, verticalSpeed_y) + verticalSpeed = round(verticalSpeed, 0) + verticalSpeed = format_int(verticalSpeed) + + ExportScript.Tools.SendData(3034, "VS\n" .. verticalSpeed .. " fpm") + + + ExportScript.Tools.SendData(4020, "Instruments" + .. "\n" .. dial_airspeed .. " mph" + .. "\n" .. altitude .. " ft" + .. "\n" .. verticalSpeed .. " fpm") + +end + + +function ExportScript.trimReadouts(mainPanelDevice) + + local trimElevatorRaw = mainPanelDevice:get_argument_value(6) + local trimElevatorDirection = "DOWN" + local trimElevatorDirectionShorthand = "D" + trimElevatorAmt = round(trimElevatorRaw * 100,0) + + + if trimElevatorAmt > 1 then --trim is positive, which is nose down + trimElevatorDirection = "DOWN" + trimElevatorDirectionShorthand = "D" + elseif trimElevatorAmt < -1 then --trim is negative, which is nose up + trimElevatorDirection = "UP" + trimElevatorDirectionShorthand = "U" + else --trim is basically neutral + trimElevatorDirection = " " + end + + trimElevatorAmt = math.abs(trimElevatorAmt) + ExportScript.Tools.SendData(3035, "ELV TRM\n" .. trimElevatorAmt .. "% " .. trimElevatorDirection) + + + local trimRudderRaw = mainPanelDevice:get_argument_value(110) + local trimRudderDirection = "STBD" + local trimRudderDirectionShortHand = "S" + trimRudderAmt = round(trimRudderRaw * 100,0) + + + if trimRudderAmt > 1 then --trim is positive, which is stbd + trimRudderDirection = "STBD" + trimRudderDirectionShortHand = "S" + elseif trimRudderAmt < -1 then --trim is negative, which is port + trimRudderDirection = "PORT" + trimRudderDirectionShortHand = "P" + else --trim is basically neutral + trimRudderDirection = " " + end + + trimRudderAmt = math.abs(trimRudderAmt) + ExportScript.Tools.SendData(3036, "RUD TRM\n" .. trimRudderAmt .. "% " .. trimRudderDirection) + + + local trimAileronRaw = mainPanelDevice:get_argument_value(122) + local trimAileronDirection = " " + local trimAileronDirectionShortHand = " " + trimAileronAmt = round(trimAileronRaw * 100,0) + + + if trimAileronAmt > 1 then --trim is positive + trimAileronDirection = "Right" + trimAileronDirectionShortHand = "R" + elseif trimAileronAmt < -1 then --trim is negative + trimAileronDirection = "Left" + trimAileronDirectionShortHand = "L" + else --trim is basically neutral + trimAileronDirection = " " + end + + trimAileronAmt = math.abs(trimAileronAmt) + ExportScript.Tools.SendData(3037, "AIL TRM\n" .. trimAileronAmt .. "% " .. trimAileronDirection) + + ExportScript.Tools.SendData(4021, "TRIM" + .. "\n" .. "ELV " .. trimElevatorAmt .. "% " .. trimElevatorDirectionShorthand + .. "\n" .. "RUD " .. trimRudderAmt .. "% " .. trimRudderDirectionShortHand + .. "\n" .. "AIL " .. trimAileronAmt .. "% " .. trimAileronDirectionShortHand) + +end + + +function ExportScript.gearFlapsBombBayTile(mainPanelDevice) + + ---------------------------------------------- + ---------Display: Gear Up and Down------------ + ---------------------------------------------- + + local light_gearRedUpLeft = mainPanelDevice:get_argument_value(77) --red up left + local light_gearGreenDownLeft = mainPanelDevice:get_argument_value(78) --green down left + local light_gearRedUpRight = mainPanelDevice:get_argument_value(79) --red up right + local light_gearGreenDownRight = mainPanelDevice:get_argument_value(80) --green down right + + local isGearUp + local isGearDown + + local gearStatusMessage + local flapsStatusMessage + local bombBayStatusMessage + + -- actual lit value is about 0.7728 (for green) and 0.9195 (for red) + if (light_gearRedUpLeft >= 0.5) and (light_gearRedUpRight >= 0.5) then + isGearUp = 1 + gearStatusMessage = "Gear - UP" + else + isGearUp = 0 + gearStatusMessage = "Gear - TRSNT" + end + + if light_gearGreenDownLeft >= 0.5 and light_gearGreenDownRight >= 0.5 then + isGearDown = 1 + gearStatusMessage = "Gear - DWN" + else + isGearDown = 0 + gearStatusMessage = "Gear - TRSNT" + end + + ExportScript.Tools.SendData(3038, isGearUp) + ExportScript.Tools.SendData(3039, isGearDown) + + + + + --ExportScript.Tools.SendData(30XX, "AIL TRM\n" .. trimAileronAmt .. "% " .. trimAileronDirection) + ---------------------------------------------- + ---------Display: Flaps-------------------- + ---------------------------------------------- + + local dial_flapIndicator = math.floor(mainPanelDevice:get_argument_value(81) * 100) + + if dial_flapIndicator >= 70 then + dial_flapIndicator = 70 + end + ExportScript.Tools.SendData(3040, dial_flapIndicator) + + ExportScript.Tools.SendData(4022, "External" + .. "\n" .. gearStatusMessage + .. "\n" .. "Flaps " .. dial_flapIndicator + .. "\n" .. "BBay " .. "OPN-CLSED") + +end + + +function ExportScript.oxygenTile(mainPanelDevice) -- 82, 83, 155, 156 + local dial_oxygenFlowRatePilot = math.floor(mainPanelDevice:get_argument_value(82) * 100) + ExportScript.Tools.SendData(3041, dial_oxygenFlowRatePilot) + + --numbers above 40 are "EMERGENCY" + + local isDial_oxygenFlowRatePilotEmergency + if dial_oxygenFlowRatePilot > 40 then + isDial_oxygenFlowRatePilotEmergency = 1 + else + isDial_oxygenFlowRatePilotEmergency = 0 + end + ExportScript.Tools.SendData(3042, isDial_oxygenFlowRatePilotEmergency) + + + local dial_oxygenSupplyPilotRaw = mainPanelDevice:get_argument_value(83) + + local dial_oxygenSupplyPilot = ( + (87.118 * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw) + - (228.16 * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw) + + (189.84 * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw) + + (51.237 * dial_oxygenSupplyPilotRaw) + - 0.0026) + + dial_oxygenSupplyPilot = round(dial_oxygenSupplyPilot, 0) + + ExportScript.Tools.SendData(3043, dial_oxygenSupplyPilot) + + --numbers below 12.5 (1/8 on the dial) are red zone + local isDial_oxygenSupplyPilotRedZone + if dial_oxygenSupplyPilot < 12.5 then + isDial_oxygenSupplyPilotRedZone = 1 + else + isDial_oxygenSupplyPilotRedZone = 0 + end + ExportScript.Tools.SendData(3044, isDial_oxygenSupplyPilotRedZone) + + + ----------------- + local dial_oxygenFlowRateCopilot = math.floor(mainPanelDevice:get_argument_value(155) * 100) + ExportScript.Tools.SendData(3045, dial_oxygenFlowRateCopilot) + + --numbers above 40 are "EMERGENCY" + + local isDial_oxygenFlowRateCopilotEmergency + if dial_oxygenFlowRateCopilot > 40 then + isDial_oxygenFlowRateCopilotEmergency = 1 + else + isDial_oxygenFlowRateCopilotEmergency = 0 + end + ExportScript.Tools.SendData(3046, isDial_oxygenFlowRateCopilotEmergency) + + + local dial_oxygenSupplyCopilotRaw = mainPanelDevice:get_argument_value(156) + + local dial_oxygenSupplyCopilot = ( + (87.118 * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw) + - (228.16 * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw) + + (189.84 * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw) + + (51.237 * dial_oxygenSupplyCopilotRaw) + - 0.0026) + + dial_oxygenSupplyCopilot = round(dial_oxygenSupplyCopilot, 0) + + ExportScript.Tools.SendData(3047, dial_oxygenSupplyCopilot) + + --numbers below 12.5 (1/8 on the dial) are red zone + local isDial_oxygenSupplyCopilotRedZone + if dial_oxygenSupplyCopilot < 12.5 then + isDial_oxygenSupplyCopilotRedZone = 1 + else + isDial_oxygenSupplyCopilotRedZone = 0 + end + ExportScript.Tools.SendData(3048, isDial_oxygenSupplyCopilotRedZone) + + ------------------- + + + local oxygenTilePilot_output = string.format("Oxy PLT" .. "\n" + .. "Flow " .. dial_oxygenFlowRatePilot .. "k ft\n" + .. "Amt. " .. dial_oxygenSupplyPilot) + + + + ExportScript.Tools.SendData(4023, oxygenTilePilot_output) + + local oxygenTileCopilot_output = string.format("Oxy CPLT" .. "\n" + .. "CP Flow ".. dial_oxygenFlowRateCopilot .. "k ft\n" + .. "CP Amt. ".. dial_oxygenSupplyCopilot) + + ExportScript.Tools.SendData(4024, oxygenTileCopilot_output) + + local oxygenTileBoth_output = string.format(--"Oxy PLT" .. "\n" + "P Flow ".. dial_oxygenFlowRatePilot .. "k ft\n" + .. "P Amt. ".. dial_oxygenSupplyPilot .. "\n" + .. "CP Flow ".. dial_oxygenFlowRateCopilot .. "k ft\n" + .. "CP Amt. ".. dial_oxygenSupplyCopilot) + + ExportScript.Tools.SendData(4025, oxygenTileBoth_output) + + local isPilotOxygenEmergency + if isDial_oxygenSupplyPilotRedZone == 1 or isDial_oxygenFlowRatePilotEmergency == 1 then + isPilotOxygenEmergency = 1 + else + isPilotOxygenEmergency = 0 + end + + ExportScript.Tools.SendData(3049, isPilotOxygenEmergency) + + local isCopilotOxygenEmergency + if isDial_oxygenSupplyCopilotRedZone == 1 or isDial_oxygenFlowRateCopilotEmergency == 1 then + isCopilotOxygenEmergency = 1 + else + isCopilotOxygenEmergency = 0 + end + + ExportScript.Tools.SendData(3050, isCopilotOxygenEmergency) + + local isPilotOrCopilotOxygenEmergency + if isPilotOxygenEmergency == 1 or isCopilotOxygenEmergency == 1 then + isPilotOrCopilotOxygenEmergency = 1 + else + isPilotOrCopilotOxygenEmergency = 0 + end + + ExportScript.Tools.SendData(3051, isPilotOrCopilotOxygenEmergency) + +end + + +function ExportScript.BestPowerTiles(mainPanelDevice) + + ExportScript.Tools.SendData(4026, "Takeoff 5" .. "\n" .. "RPM 3,000\nBoost +12") + + ExportScript.Tools.SendData(4027, "Inter. 60" .. "\n" .. "RPM 2,850\nBoost +9\nRad 125°C\nOil 90°C") + ExportScript.Tools.SendData(4028, "Max Cont." .. "\n" .. "RPM 2,650\nBoost +7\nRad 105°C\nOil 90°C") + ExportScript.Tools.SendData(4029, "Emergency 5" .. "\n" .. "RPM 3,000\nBoost +25\nRad 125°C\nOil 105°C") + + ------------------------------ + -- Max rate and range climb -- + ------------------------------ + + local maxRateAirspeed + local maxRateGear + local maxRateBoost + + local maxRangeRPM = 2650 + local maxRangeBoost = 7 + local maxRangeGear = "Low Gear" + + maxRateAirspeed = kts2mph(150) + local dial_altimeter_tenThousands = math.floor(mainPanelDevice:get_argument_value(70) * 100000) + local altitude = dial_altimeter_tenThousands + altitude = round(altitude,-1) + if altitude > 60000 then + altitude = altitude - 100000 + end + + if altitude > 18000 then + local altitudeDifference = altitude - 18000 + altitudeDifference = altitudeDifference / 1000 + maxRateAirspeed = maxRateAirspeed - (altitudeDifference * 2) --formula is on manual page 102 + maxRateAirspeed = round(maxRateAirspeed,0) + maxRangeBoost = 9 + maxRangeRPM = 2850 + end + + + local guage_boostLeft_x = {0.0,0.052,0.142,0.289,0.425,0.547,0.662,0.776,0.887,0.983,1.0}--remove osme decimal places plz + local guage_boostLeft_y = {-7.0,-6.0,-4.0,0.0,4.0,8.0,12.0,16.0,20.0,24.0,25.0} + local guage_boostLeft = ExportScript.Linearize(mainPanelDevice:get_argument_value(54), guage_boostLeft_x, guage_boostLeft_y) + guage_boostLeft = round(guage_boostLeft,1) + + maxRateBoost = 9 + maxRateGear = "Low Gear" + + if mainPanelDevice:get_argument_value(18) >= 0.98 then --aka, if the left throttle is basically maxed out + if guage_boostLeft <= 7 then + maxRateGear = "AUTO Gear" + else + maxRateGear = "Low Gear" + end + end + + if mainPanelDevice:get_argument_value(18) >= 0.98 then --aka, if the left throttle is basically maxed out + if guage_boostLeft <= 4 then + maxRangeGear = "AUTO Gear" + else + maxRangeGear = "Low Gear" + end + end + + ExportScript.Tools.SendData(4030, "Max Rate CLB" + .. "\n" .. "RPM 2,850" + .. "\n" .. "Boost +" .. maxRateBoost + .. "\n" .. maxRateGear + .. "\n" .. maxRateAirspeed .. " mph") + + + + ExportScript.Tools.SendData(4031, "Max Range CLB" + .. "\n" .. "RPM " .. format_int(maxRangeRPM) + .. "\n" .. "Boost +" .. maxRangeBoost + .. "\n" .. maxRangeGear + .. "\n" .. maxRateAirspeed .. " mph") + + ----------------- + -- Best Cruise -- + ----------------- + --page 103 of manual + + local bestCruiseGear = "AUTO Gear" + local bestCruiseAirspeed = 170 + + if altitude < 10000 then + bestCruiseAirspeed = kts2mph(200) + end + + local guage_rpmLeft = math.floor(mainPanelDevice:get_argument_value(50) * 5000) + guage_rpmLeft = round(guage_rpmLeft,-1) + + local dial_airspeed = math.floor(mainPanelDevice:get_argument_value(64) * 1000) --thanks ED + + if guage_rpmLeft >= 2650 then + if dial_airspeed < bestCruiseAirspeed then + bestCruiseGear = "MOD Gear" + else + bestCruiseGear = "AUTO Gear" + end + end + + ExportScript.Tools.SendData(4032, "Best Cruise" + .. "\n" .. "RPM Min" + .. "\n" .. "Boost +7" + .. "\n" .. bestCruiseGear + .. "\n" .. bestCruiseAirspeed .. " mph") + -------------------------- + -- Approach Speed Tiles -- + -------------------------- page 106 + + local landingText = "Landing 17k" .. "\n" .. "FLAP DOWN\n125 mph" .. "\n" .. "FLAP UP\n140 mph" --default string + + if mainPanelDevice:get_argument_value(18) < 0.5 then --aka, if the left throttle is basically 0 + --if mainPanelDevice:get_argument_value(19) < 0.5 then --aka, if the right throttle is basically 0 + landingText = "Landing 17k" .. "\n" .. "Glide DOWN\n140 mph" .. "\n" .. "Glide UP\n150 mph" + else + landingText = "Landing 17k" .. "\n" .. "FLAP DOWN\n125 mph" .. "\n" .. "FLAP UP\n140 mph" + --end -- the dual throttle thing isnt working TODO + end + + ExportScript.Tools.SendData(4033, landingText) +end + + +function ExportScript.MaxSpeedTiles(mainPanelDevice) + local dial_altimeter_tenThousands = math.floor(mainPanelDevice:get_argument_value(70) * 100000) + local altitude = dial_altimeter_tenThousands + altitude = round(altitude,-1) + if altitude > 60000 then + altitude = altitude - 100000 + end + + local limitA + local limitB + local limitC + local limitD + + if altitude < 10000 then + limitA = kts2mph(370) + limitB = kts2mph(330) + limitC = kts2mph(350) + limitD = kts2mph(305) + elseif altitude < 15000 then + limitA = kts2mph(350) + limitB = kts2mph(330) + limitC = kts2mph(350) + limitD = kts2mph(305) + elseif altitude < 20000 then + limitA = kts2mph(320) + limitB = kts2mph(320) + limitC = kts2mph(320) + limitD = kts2mph(305) + elseif altitude < 25000 then + limitA = kts2mph(295) + limitB = kts2mph(295) + limitC = kts2mph(295) + limitD = kts2mph(295) + elseif altitude < 30000 then + limitA = kts2mph(260) + limitB = kts2mph(260) + limitC = kts2mph(260) + limitD = kts2mph(260) + else --if altitude < 35000 then + limitA = kts2mph(235) + limitB = kts2mph(235) + limitC = kts2mph(235) + limitD = kts2mph(235) + end + + --the manual numbers are in knots TODO convert if confirmed via ED + ExportScript.Tools.SendData(4034, "Slick " .. limitA .. " mph" + .. "\nTanks " .. limitB .. " mph" + .. "\nR.P. " .. limitC .. " mph" + .. "\nExt. " .. limitD .. " mph") + + + + ExportScript.Tools.SendData(4035, "BBay " .. kts2mph(305) .. " mph" + .. "\nGear " .. kts2mph(155) .. " mph" + .. "\nF25° " .. kts2mph(175) .. " mph" + .. "\nFDWN " .. kts2mph(130) .. " mph") + +end + + +function ExportScript.StallSpeeds(mainPanelDevice) +-- stall warnings page 103 of manual +-- The approximate stall speeds at 18,000 feet and idle power are as follows: +-- ▪ Undercarriage and flaps retracted: 105 knots +-- ▪ Undercarriage and flaps extended: 95–100 knots +-- ▪ Typical approach: 90–95 knots + +--just make the highest number the warning because the gear lights are currently hard to get + local dial_airspeed = math.floor(mainPanelDevice:get_argument_value(64) * 1000) + + ExportScript.Tools.SendData(4036, "Stall Speeds" + .. "\nRet. " .. kts2mph(105) .. " mph" + .. "\nExt. " .. kts2mph(100) .. " mph" + .. "\nApp. " .. kts2mph(95) .. " mph") + + local isAircraftStall = 0 + local stallSpeed = kts2mph(105) + if dial_airspeed <= stallSpeed then + isAircraftStall = 1 + end + + ExportScript.Tools.SendData(3052, isAircraftStall) + +end + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their popperties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the extimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the prefered runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +--[[ +------------------------------ +-- Ideas for implementation -- +------------------------------ + +[ +-Airspeed tile with color changes for limits +-gear up and down indicators +-overheat for engine instruments indicator + -maybe have one tile that can display multiple things +-remember that you can get interesting things using + -"local hindKneeboardInfo = ExportScript.Tools.split(list_indication(8), "%c") + -this contains the formated table of the kneeboard of the hind" + +----------------------- +-- Ideas for "Tiles" -- +----------------------- + +------------------ +| Brakes | +| Supply: XXX | +| Port: XX | +| Starboard: XXX | +------------------ + +------------------ +| Status | +| BOMB BAY: XXXX | +| GEAR: XXX | +| FLAPS: XX | +------------------ In Progress + +----------------- +| Gear UP | +| PIC PIC | +| Under Carrage | +---------------- + +----------------- +| Under Carrage | +| PIC PIC | +| Gear DOWN | +----------------- + +----------------- +| NAVIGATION2 | +| Compass: XXX | +| Repeater: XXX | +| Director: XXX | +----------------- nogo + +------------------- +| Oxygen | +| PLT Flow: XXX | +| PLT Supply: XX | +| CPLT Flow: XXX | +| CPLT Supply: XX | +------------------- complete + +------------- +| Radio 1 | +| Channel A | +------------- complete + +---------------- +| Radio 2 | +| Band: Yellow | +| Freq: XXXXX | +---------------- Complete + +-------------- +| Alt: XXXX | +| Baro: XXXX | +| VSI: XXXX | +-------------- Complete + +----------------- +| NAVIGATION1 | +| Repeater: XXX | +| Needle 1: XXX | +| Needle 2: XXX | +----------------- Complete + +-------------------- +| Trim | +| Aileron: L XX% | +| Elevator: R XX% | +| Rudder: Centered | +-------------------- Complete + +------------ +| Air Temp | +| XXoC | +------------ Complete + +------------- ------------- +| Engine L | | Engine R | +| RPM: XXX | | RPM: XXX | +| Boost: XX | | Boost: XX | +------------- ------------- Complete. 3000 and 3002 + +-------------- ------------- +| Engine L | | Engine R | +| Oil T: XXX | | Oil T: XXX | +| Oil P: XXX | | Oil P: XXX | +| Rad T: XXX | | Rad T: XXX | +-------------- -------------- Complete. 3001 and 3003 + +------------------- +| Fuel Inner | +| Port: XX.X | +| Starboard: XX.X | +| Total: XX.X | +------------------- Complete. 4005 + +--------------- +| Fuel Center | +| No10: XX.X | +| No12: XX.X | +| Total: XX.X | +--------------- Complete. 4006 + +------------------- +| Fuel Outer | +| Port: XX.X | +| Starboard: XX.X | +| Total: XX.X | +------------------- Complete. 4007 + +------------------ +| Fuel Total XXX | +| Inner: XX.X | +| Center: XX.X | +| Outer: XX.X | +------------------ Complete. 4008 + +------------------- +| Gunner Sight | +| Range: XXX | +| Wingspan: XXX | +| Ideal: NameAcft | +------------------- Complete. 4004 + +]]-- + +------------------------------ +-- General Helper Functions -- +------------------------------ + +---------------------- +-- Helper Functions -- +---------------------- +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end + +function kts2mph(kts) -- converts kts to floored mph + local mph = kts * 1.15078 + mph = math.floor(mph) + return mph +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/OH58D.lua b/Scripts/DCS-ExportScript/ExportsModules/OH58D.lua new file mode 100644 index 00000000..adbb730b --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/OH58D.lua @@ -0,0 +1,582 @@ +-- OH-58D Kiowa by Polychop Sims Export +-- https://github.com/asherao/DCS-ExportScripts + +ExportScript.FoundDCSModule = true +ExportScript.Version.OH58D = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.2f", -- Open/Close Left Door {0,1,1} + [0] = "%.2f", -- Open/Close Right Door {0,1,1} + [0] = "%.2f", -- Open/Close Left Armor Panel {0,1,1} + [0] = "%.2f", -- Open/Close Right Armor Panel {0,1,1} + [0] = "%.2f", -- M4 Stow/Deploy {0,1,1} + [0] = "%.2f", -- Drop Smoke Grenade {0,1,1} + [7] = "%.2f", -- Start Switch {0,1,1} + [9] = "%.2f", -- Throttle Idle Release Switch {0,1,1} + [10] = "%.2f", -- EBF Filter Bypass Button {0,1,1} + [12] = "%.2f", -- Channel Select Switch Up/Down {-1,1,1} + [13] = "%.2f", -- Channel Select Switch Left/Right {-1,1,1} + [14] = "%.2f", -- Radio Select Switch 1/3 {-1,1,1} + [15] = "%.2f", -- Engine Rpm Trim {-1,1,1} + [16] = "%.2f", -- Radio Select Switch 2/4 {-1,1,1} + [17] = "%.2f", -- Radio Select Switch 5 {-1,1,1} + [27] = "%.2f", -- Force Trim - Interrupt {0,1,1} + [29] = "%.2f", -- SCAS Release {0,1,1} + [30] = "%.2f", -- Missile Activate (ATAS Only) {0,1,1} + [32] = "%.2f", -- Area Track {0,1,1} + [34] = "%.2f", -- ODA Button {0,1,1} + [35] = "%.2f", -- Fire Laser {0,1,1} + [36] = "%.2f", -- Brightness Dial {0,0,0.8} + [37] = "%.2f", -- Day/Night Switch {0,1,1} + [38] = "%.2f", -- On/Off/Test Knob {-1,1,1} + [39] = "%.2f", -- Audio Dial {0,0,0.75} + [40] = "%.2f", -- Lamp Dial {0,0,0.75} + [41] = "%.2f", -- Flare Dispenser Button {0,1,1} + [42] = "%.2f", -- Missile Step Button {0,1,1} + [43] = "%.2f", -- Nav/Target Designate Switch {-1,1,1} + [44] = "%.2f", -- Arm/Safe Switch {0,1,1} + [45] = "%.2f", -- Auto/Bypass Switch {0,1,1} + [46] = "%.2f", -- Emergency Jettison Cover {0,1,1} + [47] = "%.2f", -- Emergency Jettison [Launch All] {0,1,1} + [48] = "%.2f", -- Point Track {0,1,1} + [49] = "%.2f", -- IZLID [Gun Laser] {-1,1,1} + [50] = "%.2f", -- Ignition Keylock Switch {0,1,1} + [51] = "%.2f", -- Hover Bob-Up/Wpt Drop Button {0,1,1} + [52] = "%.2f", -- Weapon Fire Cover {0,1,1} + [58] = "%.2f", -- Adjustment Knob {0,1,1} + [59] = "%.2f", -- Adjustment Knob {0,0.5,1} + [62] = "%.2f", -- Barometric Knob {0,0,1} + [69] = "%.2f", -- Display Mode Manual/NVG {0,1,1} + [70] = "%.2f", -- Weapon Fire Button {0,1,1} + [71] = "%.2f", -- ICS Radio Button {0,1,1} + [72] = "%.2f", -- Display Mode Primary/Backup {0,1,1} + [73] = "%.2f", -- Line Address Key L1 {0,1,1} + [74] = "%.2f", -- Line Address Key L2 {0,1,1} + [75] = "%.2f", -- Line Address Key L3 {0,1,1} + [76] = "%.2f", -- Line Address Key L4 {0,1,1} + [77] = "%.2f", -- Line Address Key L5 {0,1,1} + [78] = "%.2f", -- Line Address Key R1 {0,1,1} + [79] = "%.2f", -- Line Address Key R2 {0,1,1} + [80] = "%.2f", -- Line Address Key R3 {0,1,1} + [81] = "%.2f", -- Line Address Key R4 {0,1,1} + [82] = "%.2f", -- Line Address Key R5 {0,1,1} + [83] = "%.2f", -- Line Address Key B1 {0,1,1} + [84] = "%.2f", -- Line Address Key B2 {0,1,1} + [85] = "%.2f", -- Line Address Key B3 {0,1,1} + [86] = "%.2f", -- Line Address Key B4 {0,1,1} + [87] = "%.2f", -- INIT {0,1,1} + [88] = "%.2f", -- Brightness {-1,1,1} + [89] = "%.2f", -- Contrast {-1,1,1} + [90] = "%.2f", -- Weapon Select Switch Up/Down {-1,1,1} + [91] = "%.2f", -- Weapon Select Switch Left/Right {-1,1,1} + [92] = "%.2f", -- Display Select Switch Up/Down {-1,1,1} + [93] = "%.2f", -- Display Select Switch Left/Right {-1,1,1} + [94] = "%.2f", -- Searchlight Control Switch Extend/Retract {-1,1,1} + [95] = "%.2f", -- Searchlight Control Switch Left/Right {-1,1,1} + [96] = "%.2f", -- SCAS Heading Hold Switch Engage/Disengage {-1,1,1} + [97] = "%.2f", -- SCAS Heading Hold Switch Trim Left/Trim Right {-1,1,1} + [98] = "%.2f", -- Searchlight Switch {0,1,1} + [109] = "%.2f", -- INIT [Initial Page] {0,1,1} + [111] = "%.2f", -- ALFGL Switch {0,1,1} + [112] = "%.2f", -- WPN/ASE Switch {-1,1,1} + [113] = "%.2f", -- IDM/INIT Switch {-1,1,1} + [114] = "%.2f", -- L2MUM Switch {0,1,1} + [115] = "%.2f", -- TIS Switch {-1,1,1} + [116] = "%.2f", -- LMC Switch {0,1,1} + [117] = "%.2f", -- ALE Switch {0,1,1} + [118] = "%.2f", -- BIT/Reset Switch {-1,1,1} + [119] = "%.2f", -- Test/Digit Switch {-1,1,1} + [120] = "%.2f", -- Select Switch {-1,1,1} + [121] = "%.2f", -- Multifunction Display Backup Button {0,1,1} + [122] = "%.2f", -- Brightness Dial {0,0,1} + [123] = "%.2f", -- Left Cipher Button {0,1,1} + [124] = "%.2f", -- Right Cipher Button {0,1,1} + [125] = "%.2f", -- Test Button {0,1,1} + [126] = "%.2f", -- Brightness Dial {0,0,0.8} + [130] = "%.2f", -- Reset/Set Button {0,1,1} + [131] = "%.2f", -- Mode Button {0,1,1} + [132] = "%.2f", -- Start/Stop/Advance Button {0,1,1} + [135] = "%.2f", -- MMS Code List Button {0,1,1} + [136] = "%.2f", -- MMS First/Last Switch {0,1,1} + [137] = "%.2f", -- MMS Laser Power Switch {-1,1,1} + [138] = "%.2f", -- MFD Symbology Intensity Switch {-1,1,1} + [139] = "%.2f", -- MMS Symbology Intensity Switch {-1,1,1} + [140] = "%.2f", -- Video Gain Switch {-1,1,1} + [141] = "%.2f", -- Video Level Switch {-1,1,1} + [142] = "%.2f", -- Video Focus Switch {-1,1,1} + [143] = "%.2f", -- MMS Symbology Intensity Switch Manual/Auto {0,1,1} + [144] = "%.2f", -- Video Gain Switch Manual/Auto {0,1,1} + [145] = "%.2f", -- Video Level Switch Manual/Auto {0,1,1} + [146] = "%.2f", -- Video Focus Switch Manual/Auto {0,1,1} + [147] = "%.2f", -- MMS Mode Selector {0,0.2,1} + [161] = "%.2f", -- Force Trim Switch {0,1,1} + [162] = "%.2f", -- Hydraulic System Switch {0,1,1} + [163] = "%.2f", -- Pitch/Roll Engage Switch {0,1,1} + [164] = "%.2f", -- Yaw Engage Switch {0,1,1} + [165] = "%.2f", -- Power Switch {0,1,1} + [166] = "%.2f", -- Test Button {0,1,1} + [167] = "%.2f", -- Left Pylon Jettison Switch Guard {0,1,1} + [168] = "%.2f", -- Right Pylon Jettison Switch Guard {0,1,1} + [169] = "%.2f", -- Left Pylon Jettison Switch {0,1,1} + [170] = "%.2f", -- Right Pylon Jettison Switch {0,1,1} + [171] = "%.2f", -- Master Switch {-1,1,1} + [172] = "%.2f", -- Gun Switch {-1,1,1} + [173] = "%.2f", -- Volume Control Knob {0,0,0.8} + [174] = "%.2f", -- Radio Monitor 1 [FM1] {0,1,1} + [175] = "%.2f", -- Radio Monitor 1 [FM1] {0,0.5,0.8} + [176] = "%.2f", -- Radio Monitor 2 [UHF] {0,1,1} + [177] = "%.2f", -- Radio Monitor 2 [UHF] {0,0.5,0.8} + [178] = "%.2f", -- Radio Monitor 3 [VHF] {0,1,1} + [179] = "%.2f", -- Radio Monitor 3 [VHF] {0,0.5,0.8} + [180] = "%.2f", -- Radio Monitor 4 [N/A] {0,1,1} + [181] = "%.2f", -- Radio Monitor 4 [N/A] {0,0.5,0.8} + [182] = "%.2f", -- Radio Monitor 5 [FM2] {0,1,1} + [183] = "%.2f", -- Radio Monitor 5 [FM2] {0,0.5,0.8} + [184] = "%.2f", -- Radio Monitor NAV A Audio Ouput {0,0,0.8} + [185] = "%.2f", -- Radio Monitor NAV B Audio Ouput {0,0,0.8} + [186] = "%.2f", -- ICS Rotary Switch {0,0.1,0.3} + [187] = "%.2f", -- Vox Control {0,0,0.8} + [188] = "%.2f", -- Transmit Selector Switch {0,0.1,0.7} + [189] = "%.2f", -- MIC Switch {0,1,1} + [190] = "%.2f", -- Remote ICS Switch {-1,1,1} + [192] = "%.2f", -- Acknowledge/Recall Switch {0,1,1} + [193] = "%.2f", -- Zeroize Switch Guard {0,1,1} + [194] = "%.2f", -- Emergency Switch Guard {0,1,1} + [195] = "%.2f", -- Zeroize Switch {0,1,1} + [196] = "%.2f", -- Emergency Switch {0,1,1} + [197] = "%.2f", -- Num 1 {0,1,1} + [198] = "%.2f", -- Num 2 {0,1,1} + [199] = "%.2f", -- Num 3 {0,1,1} + [200] = "%.2f", -- Num 4 {0,1,1} + [201] = "%.2f", -- Num 5 {0,1,1} + [202] = "%.2f", -- Num 6 {0,1,1} + [203] = "%.2f", -- Num 7 {0,1,1} + [204] = "%.2f", -- Num 8 {0,1,1} + [205] = "%.2f", -- Num 9 {0,1,1} + [206] = "%.2f", -- Num 0 {0,1,1} + [207] = "%.2f", -- Num Decimal {0,1,1} + [208] = "%.2f", -- Line Clear {0,1,1} + [209] = "%.2f", -- IFF {0,1,1} + [210] = "%.2f", -- Tune {0,1,1} + [211] = "%.2f", -- Scan {0,1,1} + [212] = "%.2f", -- Space {0,1,1} + [213] = "%.2f", -- Ident {0,1,1} + [214] = "%.2f", -- Enter {0,1,1} + [215] = "%.2f", -- Minus/Hyphen {0,1,1} + [216] = "%.2f", -- Alpha A {0,1,1} + [217] = "%.2f", -- Alpha B {0,1,1} + [218] = "%.2f", -- Alpha C {0,1,1} + [219] = "%.2f", -- Alpha D {0,1,1} + [220] = "%.2f", -- Alpha E {0,1,1} + [221] = "%.2f", -- Alpha F {0,1,1} + [222] = "%.2f", -- Alpha G {0,1,1} + [223] = "%.2f", -- Alpha H {0,1,1} + [224] = "%.2f", -- Alpha I {0,1,1} + [225] = "%.2f", -- Alpha J {0,1,1} + [226] = "%.2f", -- Alpha K {0,1,1} + [227] = "%.2f", -- Alpha L {0,1,1} + [228] = "%.2f", -- Alpha M {0,1,1} + [229] = "%.2f", -- Alpha N {0,1,1} + [230] = "%.2f", -- Alpha O {0,1,1} + [231] = "%.2f", -- Alpha P {0,1,1} + [232] = "%.2f", -- Alpha Q {0,1,1} + [233] = "%.2f", -- Alpha R {0,1,1} + [234] = "%.2f", -- Alpha S {0,1,1} + [235] = "%.2f", -- Alpha T {0,1,1} + [236] = "%.2f", -- Alpha U {0,1,1} + [237] = "%.2f", -- Alpha V {0,1,1} + [238] = "%.2f", -- Alpha W {0,1,1} + [239] = "%.2f", -- Alpha X {0,1,1} + [240] = "%.2f", -- Alpha Y {0,1,1} + [241] = "%.2f", -- Alpha Z {0,1,1} + [242] = "%.2f", -- Arrow Left (Backspace) {0,1,1} + [243] = "%.2f", -- Arrow Right (Space) {0,1,1} + [247] = "%.2f", -- FADEC Circuit Breaker Switch {0,1,1} + [248] = "%.2f", -- Battery 1 Switch {-1,1,1} + [249] = "%.2f", -- Battery 2 Switch {-1,1,1} + [250] = "%.2f", -- Ignition Circuit Breaker Switch {0,1,1} + [251] = "%.2f", -- Console Lighting Brightness Dial {0,0,0.8} + [252] = "%.2f", -- Instrument Lighting Brightness Dial {0,0,0.8} + [253] = "%.2f", -- Flood Light Brightness Dial {0,0,1} + [254] = "%.2f", -- Pitot Heater Switch {0,1,1} + [255] = "%.2f", -- Heater Switch {0,1,1} + [256] = "%.2f", -- Left Defog Blower Switch {0,1,1} + [257] = "%.2f", -- Right Defog Blower Switch {0,1,1} + [258] = "%.2f", -- Compartment Blower Switch {-1,1,1} + [259] = "%.2f", -- Fuel Boost Switch {0,1,1} + [260] = "%.2f", -- Engine Anti Ice Switch {0,1,1} + [261] = "%.2f", -- Engine Oil Bypass Switch {0,1,1} + [262] = "%.2f", -- Essential Bus Run/Start Switch {0,1,1} + [263] = "%.2f", -- AC Generator Switch {0,1,1} + [264] = "%.2f", -- DC Generator Switch {-1,1,1} + [268] = "%.2f", -- HF Circuit Breaker Switch {0,1,1} + [269] = "%.2f", -- IFF Circuit Breaker Switch {0,1,1} + [270] = "%.2f", -- Radar Detector Circuit Breaker Switch {0,1,1} + [271] = "%.2f", -- Radar Warning Circuit Breaker Switch {0,1,1} + [272] = "%.2f", -- L2MUM Power Circuit Breaker Switch {0,1,1} + [273] = "%.2f", -- Particle Separator Circuit Breaker {0,1,1} + [274] = "%.2f", -- IR Beacon Switch {0,1,1} + [275] = "%.2f", -- Formation Lights Brightness Dial {0,0,1} + [276] = "%.2f", -- CMWS Circuit Breaker Switch {0,1,1} + [277] = "%.2f", -- Battery Charger Circuit Breaker {0,1,1} + [278] = "%.2f", -- Fuzz Burner Circuit Breaker {0,1,1} + [279] = "%.2f", -- Flood Light Switch {-1,1,1} + [280] = "%.2f", -- Position Lights Switch {-1,1,1} + [281] = "%.2f", -- Anti-Collision Lights Switch {0,1,1} + [282] = "%.2f", -- FADEC Auto/Manual Switch {0,1,1} + [284] = "%.2f", -- Display Mode Manual/NVG {0,1,1} + [285] = "%.2f", -- Display Mode Primary/Backup {0,1,1} + [286] = "%.2f", -- Line Address Key L1 {0,1,1} + [287] = "%.2f", -- Line Address Key L2 {0,1,1} + [288] = "%.2f", -- Line Address Key L3 {0,1,1} + [289] = "%.2f", -- Line Address Key L4 {0,1,1} + [290] = "%.2f", -- Line Address Key L5 {0,1,1} + [291] = "%.2f", -- Line Address Key R1 {0,1,1} + [292] = "%.2f", -- Line Address Key R2 {0,1,1} + [293] = "%.2f", -- Line Address Key R3 {0,1,1} + [294] = "%.2f", -- Line Address Key R4 {0,1,1} + [295] = "%.2f", -- Line Address Key R5 {0,1,1} + [296] = "%.2f", -- Line Address Key B1 {0,1,1} + [297] = "%.2f", -- Line Address Key B2 {0,1,1} + [298] = "%.2f", -- Line Address Key B3 {0,1,1} + [299] = "%.2f", -- Line Address Key B4 {0,1,1} + [300] = "%.2f", -- INIT [L2MUM/CDS Cycle] {0,1,1} + [301] = "%.2f", -- Brightness {-1,1,1} + [302] = "%.2f", -- Contrast {-1,1,1} + [310] = "%.2f", -- BIT Switch {0,1,1} + [311] = "%.2f", -- Brightness Dial {0,0,0.8} + [610] = "%.2f", -- MMS 26 VAC Circuit Breaker {0,1,1} + [611] = "%.2f", -- MMS DC PWR Circuit Breaker {0,1,1} + [612] = "%.2f", -- MMS DC CONTR Circuit Breaker {0,1,1} + [613] = "%.2f", -- MMS AC Circuit Breaker {0,1,1} + [614] = "%.2f", -- SCAS 28 VAC Circuit Breaker {0,1,1} + [615] = "%.2f", -- STBY ATT Circuit Breaker {0,1,1} + [616] = "%.2f", -- MCPU BLWR Circuit Breaker {0,1,1} + [617] = "%.2f", -- HUMS 28 VDC Circuit Breaker {0,1,1} + [618] = "%.2f", -- HDG HOLD Circuit Breaker {0,1,1} + [619] = "%.2f", -- EL LT Circuit Breaker {0,1,1} + [620] = "%.2f", -- 26 VAC Circuit Breaker {0,1,1} + [621] = "%.2f", -- HF ARM Circuit Breaker {0,1,1} + [622] = "%.2f", -- HF CONTR Circuit Breaker {0,1,1} + [623] = "%.2f", -- HF PWR Circuit Breaker {0,1,1} + [624] = "%.2f", -- HF AC Circuit Breaker {0,1,1} + [625] = "%.2f", -- TAMS Circuit Breaker {0,1,1} + [626] = "%.2f", -- SATCOM AMP Circuit Breaker {0,1,1} + [627] = "%.2f", -- IDM Circuit Breaker {0,1,1} + [628] = "%.2f", -- ARMT CONTR Circuit Breaker {0,1,1} + [629] = "%.2f", -- PWR SIGHT Circuit Breaker {0,1,1} + [630] = "%.2f", -- PWR LGUN Circuit Breaker {0,1,1} + [631] = "%.2f", -- PWR RKT Circuit Breaker {0,1,1} + [632] = "%.2f", -- RADAR ALT Circuit Breaker {0,1,1} + [633] = "%.2f", -- BLWR COMPT Circuit Breaker {0,1,1} + [634] = "%.2f", -- CABIN HTR Circuit Breaker {0,1,1} + [635] = "%.2f", -- ENG ANTI ICE Circuit Breaker {0,1,1} + [636] = "%.2f", -- SCTY HF Circuit Breaker {0,1,1} + [637] = "%.2f", -- SCTY UHF Circuit Breaker {0,1,1} + [638] = "%.2f", -- SCTY VHF Circuit Breaker {0,1,1} + [639] = "%.2f", -- IFF CMPTR Circuit Breaker {0,1,1} + [640] = "%.2f", -- FM AMP Circuit Breaker {0,1,1} + [641] = "%.2f", -- FM2 Circuit Breaker {0,1,1} + [642] = "%.2f", -- VHF Circuit Breaker {0,1,1} + [643] = "%.2f", -- UHF Circuit Breaker {0,1,1} + [644] = "%.2f", -- SATCOM RT Circuit Breaker {0,1,1} + [645] = "%.2f", -- SCAS DC Circuit Breaker {0,1,1} + [646] = "%.2f", -- AIR DATA Circuit Breaker {0,1,1} + [647] = "%.2f", -- MAST TRQ Circuit Breaker {0,1,1} + [648] = "%.2f", -- AIR BAG Circuit Breaker {0,1,1} + [649] = "%.2f", -- EGI Circuit Breaker {0,1,1} + [650] = "%.2f", -- MFD CPO Circuit Breaker {0,1,1} + [651] = "%.2f", -- HYD SYS Circuit Breaker {0,1,1} + [652] = "%.2f", -- DATA XFER Circuit Breaker {0,1,1} + [653] = "%.2f", -- JETT Circuit Breaker {0,1,1} + [654] = "%.2f", -- FORCE TRIM Circuit Breaker {0,1,1} + [655] = "%.2f", -- ANTI COLL LT Circuit Breaker {0,1,1} + [656] = "%.2f", -- BUS INTCON Circuit Breaker {0,1,1} + [657] = "%.2f", -- STBY ATT Circuit Breaker {0,1,1} + [658] = "%.2f", -- NVG PWR Circuit Breaker {0,1,1} + [659] = "%.2f", -- CKPT LT Circuit Breaker {0,1,1} + [660] = "%.2f", -- POS LT Circuit Breaker {0,1,1} + [661] = "%.2f", -- SRCH LT CONTR Circuit Breaker {0,1,1} + [662] = "%.2f", -- SRCH LT PWR Circuit Breaker {0,1,1} + [663] = "%.2f", -- INV Circuit Breaker {0,1,1} + [664] = "%.2f", -- RECT Circuit Breaker {0,1,1} + [665] = "%.2f", -- DC GEN FIELD Circuit Breaker {0,1,1} + [666] = "%.2f", -- DC GEN RESET Circuit Breaker {0,1,1} + [667] = "%.2f", -- ENG OIL Circuit Breaker {0,1,1} + [668] = "%.2f", -- PITOT HTR Circuit Breaker {0,1,1} + [669] = "%.2f", -- ICS PLT Circuit Breaker {0,1,1} + [670] = "%.2f", -- ICS CPO Circuit Breaker {0,1,1} + [671] = "%.2f", -- FM1 Circuit Breaker {0,1,1} + [672] = "%.2f", -- ADU Circuit Breaker {0,1,1} + [673] = "%.2f", -- RFD Circuit Breaker {0,1,1} + [674] = "%.2f", -- MFD PLT Circuit Breaker {0,1,1} + [675] = "%.2f", -- INST VS Circuit Breaker {0,1,1} + [676] = "%.2f", -- ENG XDCR Circuit Breaker {0,1,1} + [677] = "%.2f", -- XMSN XDCR Circuit Breaker {0,1,1} + [678] = "%.2f", -- ROTOR XDCR Circuit Breaker {0,1,1} + [679] = "%.2f", -- FUEL QTY Circuit Breaker {0,1,1} + [680] = "%.2f", -- MCPU R Circuit Breaker {0,1,1} + [681] = "%.2f", -- MCPU L Circuit Breaker {0,1,1} + [682] = "%.2f", -- FUEL BOOST Circuit Breaker {0,1,1} + [683] = "%.2f", -- START Circuit Breaker {0,1,1} + [812] = "%.2f", -- Volume Control Knob {0,0,0.8} + [813] = "%.2f", -- Radio Monitor 1 [FM1] {0,1,1} + [814] = "%.2f", -- Radio Monitor 1 [FM1] {0,0.5,0.8} + [816] = "%.2f", -- Radio Monitor 2 [UHF] {0,1,1} + [817] = "%.2f", -- Radio Monitor 2 [UHF] {0,0.5,0.8} + [818] = "%.2f", -- Radio Monitor 3 [VHF] {0,1,1} + [819] = "%.2f", -- Radio Monitor 3 [VHF] {0,0.5,0.8} + [820] = "%.2f", -- Radio Monitor 4 [N/A] {0,1,1} + [821] = "%.2f", -- Radio Monitor 4 [N/A] {0,0.5,0.8} + [822] = "%.2f", -- Radio Monitor 5 [FM2] {0,1,1} + [823] = "%.2f", -- Radio Monitor 5 [FM2] {0,0.5,0.8} + [825] = "%.2f", -- Radio Monitor NAV A Audio Ouput {0,0,0.8} + [827] = "%.2f", -- Radio Monitor NAV B Audio Ouput {0,0,0.8} + [828] = "%.2f", -- ICS Rotary Switch {0,0.1,0.3} + [830] = "%.2f", -- Vox Control {0,0,0.8} + [831] = "%.2f", -- Transmit Selector Switch {0,0.1,0.7} + [832] = "%.2f", -- MIC Switch {0,1,1} + [834] = "%.2f", -- Grease-pencil aimpoint. {-0.7,1,0.7} + [835] = "%.2f", -- Grease-pencil aimpoint. {-0.7,1,0.7} + [837] = "%.2f", -- Channel Select Switch Up/Down {-1,1,1} + [838] = "%.2f", -- Channel Select Switch Left/Right {-1,1,1} + [841] = "%.2f", -- IR Jammer Base Switch {0,1,1} + [842] = "%.2f", -- IR Jammer Xmit Switch {0,1,1} + [860] = "%.2f", -- Pilot Air Vent Pull {0,0,1} + [861] = "%.2f", -- Copilot Air Vent Pull {0,0,1} +} + +export_ids = { + RADIO1 = 10001, + RADIO2 = 10002, + RADIO3 = 10003, + RADIO5 = 10004, + PARAM_DISPLAY_LEFT = 10005, -- WIP, awaiting feature + PARAM_DISPLAY_RIGHT = 10006, -- WIP, awaiting feature + CHAFF_FLARE = 10007, -- WIP, only showing flares +} +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + ExportScript.Radios(mainPanelDevice) + ExportScript.ParamDisplay(mainPanelDevice) + ExportScript.CMWS(mainPanelDevice) + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- + +-- Ideas -- +-- Clock listIndication 7 +-- PPH text + +function ExportScript.CMWS(mainPanelDevice) + --statusDisplay + --F 15 + --C 15 + local cmReadout = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(10).statusDisplay) + ExportScript.Tools.SendData(export_ids.CHAFF_FLARE, cmReadout) +end + +function ExportScript.ParamDisplay(mainPanelDevice) + local paramVal_left = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .LeftParamDisplay) + local paramVal_right = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .RightParamDisplay) + --NG_NP_SEL_Light + --FUELQTY_ENGTRQ_SEL_Light + --ACV_RECTV_SEL_Light + --RECTLD_SGENLD_SEL_Light + --BATTV_STARTV_SEL_Light + -- All of these are currently empty in the ListIndicatorValue + -- The following assume a "1" will be in the location of the selected position + local NG_NP_SEL_Light = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .NG_NP_SEL_Light) + local FUELQTY_ENGTRQ_SEL_Light = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .FUELQTY_ENGTRQ_SEL_Light) + local ACV_RECTV_SEL_Light = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .ACV_RECTV_SEL_Light) + local RECTLD_SGENLD_SEL_Light = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .RECTLD_SGENLD_SEL_Light) + local BATTV_STARTV_SEL_Light = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(1) + .BATTV_STARTV_SEL_Light) + + local textLeft + local textRight + if NG_NP_SEL_Light == "1" then + textLeft = "NR" + textRight = "NP" + elseif FUELQTY_ENGTRQ_SEL_Light == "1" then + textLeft = "FUEL QTY" + textRight = "ENG TRQ %" + elseif ACV_RECTV_SEL_Light == "1" then + textLeft = "ACV" + textRight = "RECT V" + elseif RECTLD_SGENLD_SEL_Light == "1" then + textLeft = "RECT LD %" + textRight = "S GEN LD %" + elseif BATTV_STARTV_SEL_Light == "1" then + textLeft = "BATT V" + textRight = "START V" + else + textLeft = "---" + textRight = "---" + end + ExportScript.Tools.SendData(export_ids.PARAM_DISPLAY_LEFT, paramVal_left .. "\n" .. textLeft) + ExportScript.Tools.SendData(export_ids.PARAM_DISPLAY_RIGHT, paramVal_right .. "\n" .. textRight) +end + +function ExportScript.Radios(mainPanelDevice) + -- https://invisible-characters.com/3164-HANGUL-FILLER.html filler character -->ㅤ<-- + -- https://fsymbols.com/signs/arrow/ 🢂🢀➡️⬅️ + -- you can change this to use either emoji blue arrows or text colored arrows + local useBlueArrows = 1 + local leftArrow + local rightArrow + + if useBlueArrows == 1 then + leftArrow = "⬅️" + rightArrow = "➡️" + else + leftArrow = "🢀" + rightArrow = "🢂" + end + + -- Radio 1 + local Radio1_ch = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).CHNL1) + local Radio1_freq = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).Freq1) + + local Radio1_selectTextP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .PilotSelectText1) + if Radio1_selectTextP == "1" then Radio1_selectTextP = rightArrow else Radio1_selectTextP = "ㅤ" end + + local Radio1_selectTextCP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .CopilotSelectTxt1) + if Radio1_selectTextCP == "1" then Radio1_selectTextCP = leftArrow else Radio1_selectTextCP = "ㅤ" end + ExportScript.Tools.SendData(export_ids.RADIO1, + Radio1_selectTextCP .. Radio1_ch .. Radio1_selectTextP .. "\n" .. Radio1_freq) + + + -- Radio 2 + local Radio2_ch = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).CHNL2) + local Radio2_freq = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).Freq2) + + local Radio2_selectTextP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .PilotSelectText2) + if Radio2_selectTextP == "1" then Radio2_selectTextP = rightArrow else Radio2_selectTextP = "ㅤ" end + + local Radio2_selectTextCP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .CopilotSelectTxt2) + if Radio2_selectTextCP == "1" then Radio2_selectTextCP = leftArrow else Radio2_selectTextCP = "ㅤ" end + ExportScript.Tools.SendData(export_ids.RADIO2, + Radio2_selectTextCP .. Radio2_ch .. Radio2_selectTextP .. "\n" .. Radio2_freq) + + -- Radio 3 + local Radio3_ch = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).CHNL3) + local Radio3_freq = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).Freq3) + + local Radio3_selectTextP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .PilotSelectText3) + if Radio3_selectTextP == "1" then Radio3_selectTextP = rightArrow else Radio3_selectTextP = "ㅤ" end + + local Radio3_selectTextCP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .CopilotSelectTxt3) + if Radio3_selectTextCP == "1" then Radio3_selectTextCP = leftArrow else Radio3_selectTextCP = "ㅤ" end + ExportScript.Tools.SendData(export_ids.RADIO3, + Radio3_selectTextCP .. Radio3_ch .. Radio3_selectTextP .. "\n" .. Radio3_freq) + + -- Radio 5 + local Radio5_ch = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).CHNL5) + local Radio5_freq = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8).Freq5) + + local Radio5_selectTextP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .PilotSelectText5) + if Radio5_selectTextP == "1" then Radio5_selectTextP = rightArrow else Radio5_selectTextP = "ㅤ" end + + local Radio5_selectTextCP = ExportScript.Tools.coerce_nil_to_string(ExportScript.Tools.getListIndicatorValue(8) + .CopilotSelectTxt5) + if Radio5_selectTextCP == "1" then Radio5_selectTextCP = leftArrow else Radio5_selectTextCP = "ㅤ" end + ExportScript.Tools.SendData(export_ids.RADIO5, + Radio5_selectTextCP .. Radio5_ch .. Radio5_selectTextP .. "\n" .. Radio5_freq) +end + +--------------------- +-- Debug Functions -- +--------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 .. ': ' .. ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2 .. ': ' .. ExportScript.Tools.dump(ltmp1)) + end +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/P-47D-30.lua b/Scripts/DCS-ExportScript/ExportsModules/P-47D-30.lua new file mode 100644 index 00000000..14ef5d7d --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/P-47D-30.lua @@ -0,0 +1,471 @@ +--[[ +P-47D-30 Export Script +Created by: nosaMtrevoC of ED Forums (dt1) +version 0.14 + +For use with DCS-ExportScripts plugin https://github.com/charlestytler/streamdeck-dcs-interface (Awesome work) + +[Changelog]_______________________________________________________________________________________________________________________________________________________ +Version 0.14 - Changed errors in the Drop Ordinance Arming Panel and added switch cover ID's (thanks to olddog from ED Forums for the find) +Version 0.13 - Formatting Changes +Version 0.12 - Fixed some string formatting inconsistancies and errors +Version 0.11 - Initial Release + + +Extra ID's created for nice formatted output on Stream Deck See ID Guide Below: +For use with ctytler's Stream Deck plugin (requires DCS-ExportScripts) at https://github.com/charlestytler/streamdeck-dcs-interface (Also Awesome) + +The following ID's 2000-4000 in the table below are a work in progress. I figured I'd release the standard export script for people to use while working on this. + +[Formatted for Stream Deck] +[ID]______ [Description]__________________________ [Status]_______ [Output e.g.]__________________________________________________________________________________ +2012 True Heading Value Formatted Working 235 +2025 Altitude Formatted Working 6544 +2096 Altitude 50' or below Working 1 or 0 (1 is altitude warning / 0 is no warning) Use this to change altitude warning light +2155 Main Fuel Tank In Progress Work in Progress (will output 92gal etc..) +2156 Aux. Fuel Tank In Progress Work in Progress (will output 92gal etc..) +2011 IAS Airspeed Working 235 mph +3011 IAS Overspeed Indicator Working if Airspeed is greater than 475 value is 1 (allows you to show light etc..) P-47 Max IAS is 505 mph +3033 Multi Guage In Progress Shows Manifold Press./RPM/Oil Temp/Oil Pressure/Fueel Pressure in one button (on Stream Deck) +3032 Multi Guage Warning Light In Progress Monitors if any of the values on the multi guage are out of range (if so 1, if not 0) Allows you to change the button color to yellow if danger. + +[Currently working on]____________________________________________________________________________________________________________________________________________ + -Documenting ID's and outputs better + -Testing output to ensure proper string formatting for each value + -Creating formatted outputs for Stream Deck Users (above table of id's) + +]] + +ExportScript.FoundDCSModule = true +ExportScript.Version.P47D30 = "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 + ]] + + + -- [Flight Instruments] ------------------------------------------------------------------- + [11] = "%.4f", -- Airspeed Indicator {0.0, 900.0} {0.0, 0.9} (IAS from 0-900) scale 10mph from 50-300 and 50mph after maxIAS:505mph + [29] = "%.4f", -- Variometer Guage {-6000.0, 6000.0} {-0.6, 0.6} (VSI-Vertical Speed indicator or Rate of Climb Indicator AN5825 0-6000' neg/pos vertical speed in feet per minute) + + -- [Directional Gyro] --------------------------------------------------------------------- + [12] = "%.4f", -- DI gauge {0.0, 2.0 * 3.1415926} {0.0, 1.0} + + -- [Altimeter Guage] ---------------------------------------------------------------------- + [24] = "%.4f", -- Altimeter Hundreds {0.0, 10.0} {0.0, 1.0} (e.g. .9500 is 950 feet) + [25] = "%.4f", -- Altimeter Thousands {0.0, 10.0} {0.0, 1.0} (e.g. .0950 is 950 feet) + [26] = "%.4f", -- Altimeter Tens of Thousands {0.0, 10.0} {0.0, 1.0} (e.g. .0095 is 950 feet, this value times 100,000 shows feet like 950.0000 feet) + --CA [21] = "%.4f", -- Altimeter Set Pressure {28.1, 31.0} {0.0, 1.0} (sea level reference pressure in inches of Mercury (kolsmann window)) + [171] = "%.4f", -- Altimeter Reference Hundreds {0.0, 10.0} {0.0, 1.0} (100 ft. index triangle markers) + [172] = "%.4f", -- Altimeter Reference Thousands {0.0, 10.0} {0.0, 1.0} (1000 ft. index triangle markers) + + -- [Artificial Horizon] ------------------------------------------------------------------- + [14] = "%.4f", -- AH Bank {-math.pi, math.pi} {1.0, -1.0} + [15] = "%.4f", -- AH Pitch {-math.pi / 4.0, math.pi / 4.0} {1.0, -1.0} + [136] = "%.4f", -- AH Zero {-10.0 * math.pi / 180.0, 10.0 * math.pi / 180.0} {-1.0, 1.0} + [20] = "%0.1f", -- AH Cage {0.0, 1.0} {0.0, 1.0} + + -- [Turn and bank indicator] -------------------------------------------------------------- + [28] = "%.4f", -- Side Slip Ball {-1.0, 1.0} {-1.0, 1.0} + [27] = "%.4f", -- Turn Needle {-1.0, 1.0} {-1.0, 1.0} + + -- [Oxygen Pressure Indicator] ------------------------------------------------------------ + [33] = "%.4f", -- Oxygen delivery gauge {0.0, 1.0} {0.0, 1.0} + [34] = "%.4f", -- Oxygen pressure gauge {0.0, 500.0} {0.0, 1.0} + + -- [Fuel contents gauge] ------------------------------------------------------------------ + [109] = "%.4f", -- Fuel Reserve main { 0.0, 40.0, 100.0, 150.0, 175.0, 200.0, 225.0, 250.0, 264.0, 270.0} {0.000, 0.144, 0.347, 0.506, 0.599, 0.666, 0.753, 0.828, 0.877, 1.000} + [110] = "%.4f", -- Fuel Reserve Aux { 0.0, 10.0, 25.0, 50.0, 75.0, 100.0} {0.000, 0.103, 0.254, 0.506, 0.756, 1.000} + + -- [A-11 clock] --------------------------------------------------------------------------- + [4] = "%.4f", -- CLOCK_currtime_hours {0.0, 12.0}{0.0, 1.0} (needle position of hours, e.g. 0.5 is 6 pm for hour hand, 0.75 would be 9pm) + [5] = "%.4f", -- CLOCK_currtime_minutes {0.0, 60.0}{0.0, 1.0} (needle position of minutes hand, e.g. 0.5 would be 30 minutes, 0.25 would be 15 minutes etc..) + [6] = "%.4f", -- CLOCK_currtime_seconds {0.0, 60.0}{0.0, 1.0} (needle position of seconds hand, e.g. 0.25 would be 15 seconds, 0.75 would be 45 seconds) + + -- [hydraulic pressure] ------------------------------------------------------------------- + [78] = "%.4f", -- Hydraulic pressure gauge {0.0, 2000.0} {0.0, 1.0} + + -- [Landing gears handle] ----------------------------------------------------------------- + [150] = "%.4f", -- Landing_Gear_Handle + [151] = "%.4f", -- Landing_Gear_Handle_Indoor + [80] = "%.f", -- LandingGearGreenLight (Need to test this one) + [82] = "%.f", -- LandingGearRedLight + + -- [Guages] ------------------------------------------------------------------------------- + [23] = "%.4f", -- Tachometer gauge RPM {0.0, 4500.0} {0.0, 1.0} + [102] = "%.4f", -- Carburettor temperature gauge {-71.0, -70.0, 150.0} {-0.5, -0.35, 1.0} + [103] = "%.4f", -- Turbine tachometer {0.0, 35000.0} {0.0, 1.0} + [108] = "%.4f", -- Water pressure gauge {0.0, 5.0} {0.0, 1.0} + [9] = "%.4f", -- Vacuum Suction Guage {0.0, 10.0} {0.0, 1.0} (AN5771-5 Vacuum System 0-10 inches of mercury inHg) min:3.85 max:4.15 norm:4.0 + [10] = "%.4f", -- Manifold pressure gauge {10.0, 75.0} {0.0, 1.0} (Absolute Pressure in inches of mercury inHg from 10-75) norm:32-45 inHg WarEmerg: 64 inHg + [104] = "%.4f", -- Ammeter {-150.0, 0.0, 150.0} {1.0, 0.0, 1.0} + [111] = "%.4f", -- Cylinder heads temperature gauge {0.0, 350.0} {0.0, 1.0} + + -- [Tri-needle gauge] --------------------------------------------------------------------- + [30] = "%.4f", -- Tri Guage Oil Temperature {-71.0, -70.0, 150.0} {-1.0, 0.0, 1.0} + [31] = "%.4f", -- Tri Guage Oil Pressure {0.0, 200.0} {0.0, 1.0} + [32] = "%.4f", -- Tri Guage Fuel Pressure {0.0, 35.0} {0.0, 1.0} + + -- Accelerometer -------------------------------------------------------------------------- + [175] = "%.4f", -- Accelerometer Main {-5.0, 12.0} {0.0, 1.0} + [177] = "%.4f", -- Accelerometer Minimum {-5.0, 12.0} {0.0, 1.0} + [178] = "%.4f", -- Accelerometer Maximum {-5.0, 12.0} {0.0, 1.0} + + -- [Cooling flaps combined indicator] ----------------------------------------------------- + [89] = "%.4f", -- Intercooler Flap Position {0.0, 1.0} {0.0, 1.0} + [90] = "%.4f", -- Oil Cooler Flap Position {0.0, 1.0} {0.0, 1.0} + + --[Other] --------------------------------------------------------------------------------- + [180] = "%.4f", -- Panel_Shake_Z + [181] = "%.4f", -- Panel_Shake_Y + [189] = "%.4f", -- Panel_Rot_X + [118] = "%0.1f", -- Canopy_Trucks + [38] = "%0.1f", -- Canopy_Visibility + [135] = "%0.1f", -- pilot Draw + + -- [Stick] -------------------------------------------------------------------------------- + [50] = "%.4f", -- StickPitch + [51] = "%.4f", -- StickBank + + -- [Rudder Pedals] ------------------------------------------------------------------------ + [54] = "%.4f", -- RudderPedals + [55] = "%.4f", -- Left_Wheel_Brake + [56] = "%.4f", -- Right_Wheel_Brake + + -- [K-14 gunsight] ------------------------------------------------------------------------ + [36] = "%.4f", -- sightRange + [188] = "%.4f", -- K_14_Shake_Z + [187] = "%.4f", -- K_14_Shake_Y + +} + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + + + -- [Flight Stick] ------------------------------------------------------------------------- + [53] = "%d", -- Button A - MG Trigger + [52] = "%d", -- Button B2 - Secondary & Drop Ordnance Trigger + + -- [Canopy Controls] ---------------------------------------------------------------------- + [39] = "%d", -- ["HATCH_ES"] = cabin_rocker(0, _("Cockpit.P47.canopy_es"), devices.CONTROLS, device_commands.Button_13 + [155] = "%d", -- ["HATCH_LH_H"] = cabin_pull_handle(0, _('Cockpit.Yak52.canopy_operate'), devices.CONTROLS, device_commands.Button_16 + [156] = "%d", -- ["HATCH_RH_H"] = cabin_pull_handle(0, _('Cockpit.Yak52.canopy_operate'), devices.CONTROLS, device_commands.Button_17 + [157] = "%d", -- Cockpit Jettison Pull Handle + + -- Main Panel ----------------------------------------------------------------------------- + -- [Flight Instrument Panel] ---------------------------------------------------------- + [8] = "%d", -- Winding/Adjustment Clock Button + [7] = "%.4f", -- Winding/Adjustment Clock (rotary) + + [63] = "%d", -- Starter Switch Activate + + [64] = "%d", -- Primer Pump ??? + [65] = "%d", -- Primer Activate ??? + + [113] = "%d", -- Cowl Flaps Button + [46] = "%.4f", -- Defroster Knob (rotary ???) + + [49] = "%.4f", -- Cockpit Ventilation Knob (rotary ???) + [66] = "%0.1f", -- Magneto Selector (0.0=OFF / 0.1=LEFT / 0.2=RIGHT / 0.3=BOTH) + [13] = "%.4f", -- DI + + [17] = "%.4f", -- Artificial Horizon (pitch adj. rotary) + [18] = "%.4f", -- Artificial Horizon (cage, rotary) + + [22] = "%0.1f", -- Altimeter (Axis) {0.0, 1.0} in 0.1 Steps + [176] = "%d", -- Accelerometer Reset + [21] = "%d", -- Turbine Overspeed Lamp Test Button + [83] = "%d", -- Landing Warning Lamp Test Button + [81] = "%d", -- Landing Warning Green Lamp Test Button, D-35 specific + [83] = "%d", -- Landing Warning Red Lamp Test Button, D-35 specific + [70] = "%d", -- Fuel Pressure Lamp Test Button + [79] = "%d", -- Battery Switch + [162] = "%d", -- Parking Brake Lever + + -- [Drop Ordinance Arming Panel] ------------------------------------------------------ + [163] = "%d", -- Stores Jettison Pull Handles Jettison Left hand + [164] = "%d", -- Stores Jettison Pull Handles Jettison Right Hand + [165] = "%d", -- Stores Jettison Pull Handles Jettison Both + + [139] = "%d", -- LH Wing Bomb Switch Cover + [140] = "%d", -- LH Wing Bomb Switch + [141] = "%d", -- RH Wing Bomb Switch Cover + [142] = "%d", -- RH Wing Bomb Switch + [143] = "%d", -- Belly Bomb Switch Cover + [144] = "%d", -- Belly Bomb Switch + [145] = "%d", -- LH Chemical Switch Cover + [146] = "%d", -- LH Chemical Switch + [147] = "%d", -- RH Chemical Switch Cover + [148] = "%d", -- RH Chemical Switch + + -- ---------------------------------------------------------------------------------------- + + -- Port Wall ------------------------------------------------------------------------------ + -- [Throttle Quadrant] ---------------------------------------------------------------- + [43] = "%.4f", -- Throttle (rotary/slider) + [44] = "%d", -- Radio Button / Microphone on (on throttle) + [40] = "%d", -- NOS_ES device_commands.Button_1 ??? + [41] = "%d", -- NOS_ES device_commands.Button_2 ??? + [46] = "%.4f", -- Airscrew Lever - Prop RPM + [45] = "%.4f", -- Airscrew Lever - Prop Lock + [58] = "%.4f", -- Boost Lever + [49] = "%.4f", -- Boost Lever Lock + [48] = "%.4f", -- Mix Lever + [57] = "%.4f", -- Frictioner Lever + + -- [Prop Control Box] ---------------------------------------------------------------- + [72] = "%0.1f", -- Propellor Control Multi Position Switch (test ???) + [74] = "%0.1f", -- Propellor Control Multi Position Switch (test ???) (0.1=Minus / 0.2=Plus / 0.3=OFF / 0.4=AUTO) + [73] = "%d", -- Propellor Control CB (test ???) + + -- [Recovery Flaps Switch] ----------------------------------------------------------- + [75] = "%d", -- Reovery Flaps Cover + [76] = "%d", -- Recovery Flaps (floating point ???) + + -- [Main Switch Box] ----------------------------------------------------------------- + [194] = "%.4f", -- Gun Sight Rheostat + [195] = "%.4f", -- Compass Light Rheostat + [170] = "%.4f", -- UV Instruments Light Rheostat + [61] = "%.4f", -- Booster Pump(s) Control Rheostat + [197] = "%d", -- Wing Tips Nav. Lights Switch + [198] = "%d", -- Tail Nav. Light Switch + [199] = "%d", -- Landing Light Switch + [71] = "%d", -- Cockpit Light Switch + [132] = "%d", -- Cockpit Light Button + [200] = "%d", -- Generator Switch + [201] = "%d", -- Pitot Heater Switch + [62] = "%d", -- Oil Dilution Switch + [202] = "%d", -- LG / FL Test Switch + [203] = "%d", -- OXY / TRB Test Switch + + -- Circuit Breaker Reset Switches + [204] = "%d", -- LH Inboard Guns CB + [205] = "%d", -- LH Outboard Guns CB + [206] = "%d", -- RH Inboard Guns CB + [207] = "%d", -- RH Outboard Guns CB + [208] = "%d", -- Fuel Pumps CB + [209] = "%d", -- Oil Cooler CB + [210] = "%d", -- Intercooler CB + [211] = "%d", -- Gun Relay and Gun Camera CB + [212] = "%d", -- Gun Sight, Camera Heat & Water Injection CB + [213] = "%d", -- Canopy Motor CB + [214] = "%d", -- Landing Light CB + [215] = "%d", -- Warn. Instruments CB + [216] = "%d", -- Internal Lighting CB + [217] = "%d", -- Pitot & Starter CB + [218] = "%d", -- Position Lights + CB + [219] = "%d", -- Recognition Lights + CB + [220] = "%d", -- Radio CB + [158] = "%d", -- Drop Ordinance CB + [159] = "%d", -- Recovery Flaps CB + + [87] = "%d", -- Intercooler Flap Switch + [88] = "%d", -- Oil Cooler Flap Switch + [67] = "%d", -- Guns Switch Cover + [68] = "%d", -- Guns Switch + + -- Trim Control Box + [91] = "%.4f", -- Aileron Trim Wheel + [92] = "%.4f", -- Elevator Trim Wheel + [93] = "%.4f", -- Rudder Trim Wheel + + [153] = "%d", -- Undercarriage Extension Lever + [94] = "%d", -- Landing Flaps Lever + [166] = "%d", -- LH C5 Assy. Cover + -- ---------------------------------------------------------------------------------------- + + + -- Starboard Wall ------------------------------------------------------------------------- + -- [Recognition Lights Control Box] --------------------------------------------------- + [96] = "%d", -- Recognition Lights Key Button + [97] = "%d", -- Recognition Lights White multipostion Switch + [98] = "%d", -- Recognition Lights Red multipostion Switch + [99] = "%d", -- Recognition Lights Green multipostion Switch + [100] = "%d", -- Recognition Lights Yellow multipostion Switch + + -- [Radio Remote Channel Switcher] + [1] = "%d", -- Off Button + [2] = "%d", -- A Button + [3] = "%d", -- B Button + [4] = "%d", -- C Button + [5] = "%d", -- D Button + [6] = "%d", -- Dimmer Toggle + [17] = "%d", -- Transmit Lock Toggle + [156] = "%d", -- Mode Selector + [77] = "%d", -- Volume Knob + + -- [Detrola Receiver] ----------------------------------------------------------------- + [137] = "%.4f", -- Detrola Frequency Selector + [138] = "%.4f", -- Detrola Volume + + -- [Oxygen Apparatus] ----------------------------------------------------------------- + [130] = "%d", -- Oxygen Emergency By-pass + [131] = "%d", -- Auto-Mix On-Off + + -- [Tail Wheel Lock Lever] ------------------------------------------------------------ + [101] = "%d", -- Tail Wheel Lock + + -- [Secret Radio Destruction Box] ----------------------------------------------------- + [185] = "%d", -- IFF_0 + [186] = "%d", -- IFF_1 + + -- [RH C5 Assy. Cover] ---------------------------------------------------------------- + [168] = "%.4f", --Cockpit.Generic.uv_rotating_cap + + -- ---------------------------------------------------------------------------------------- + + -- Deck ----------------------------------------------------------------------------------- + [85] = "%0.1f", -- Main Fuel Tank Selector (0.0=MAIN / 0.25=EXTERNAL / 0.5=OFF / 0.75=AUX. ) + [86] = "%0.1f", -- Droptank Selector (0.0=BELLY / 0.5=LEFT / 1.00=RIGHT ) + [114] = "%d", -- Air Filter By-Pass Lever + [160] = "%d", -- Hydraulic System Hand Pump + [161] = "%0.1f", -- Carburettor Heater Lever + + -- Gunsight ------------------------------------------------------------------------------- + [35] = "%.4f", -- Wing Span Selector + [36] = "%.4f", -- Target Range Selector + [37] = "%d", -- Fixed Reticle Mask Lever +} + + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + -- ID: [2012] - Heading + local trueHeading = string.format("%d", (mainPanelDevice:get_argument_value(12) * 360)) .. "°" .. "\nHDG" + ExportScript.Tools.SendData(2012, trueHeading) --True heading + + -- Altitude + local digAltitude = mainPanelDevice:get_argument_value(26) * 100000 + local lowAltitude = 0 + -- Altitude Fix (needed if pressure isn't set properly) + if digAltitude > 90000 then + ExportScript.Tools.SendData(2025, "-") --ten thousands + else + ExportScript.Tools.SendData(2025, string.format("%d", digAltitude)) --ten thousands + end + + -- Altitude Warning Light + if digAltitude <= 50 then + lowAltitude = 1 + elseif digAltitude > 90000 then + lowAltitude = 1 + else + lowAltitude = 0 + end + ExportScript.Tools.SendData(2096, lowAltitude) + + -- Fuel Indicator + ExportScript.Tools.SendData(2155, string.format("%d", ExportScript.CalculateFuel(mainPanelDevice:get_argument_value(109))) .. ' gal' ) --155 Left Fuel Tank + ExportScript.Tools.SendData(2156, string.format("%d", ExportScript.CalculateFuel(mainPanelDevice:get_argument_value(110))) .. ' gal' ) --156 Right Fuel Tank + + -- Speed IAS in mph + local speedNum = mainPanelDevice:get_argument_value(11) * 1000 + local speedNeedle = string.format("%d", (mainPanelDevice:get_argument_value(11) * 1000)) .. "\nMPH" + ExportScript.Tools.SendData(2011, speedNeedle) --Air Speed Needle + + -- Over speed warning Indicator + if speedNum < 475 then + ExportScript.Tools.SendData(3011, 0) --Within Limits + else + ExportScript.Tools.SendData(3011, 1) --About to Overspeed + end + + -- Multi Guage Indicators + local manifold = (mainPanelDevice:get_argument_value(10) * 75) --Manifold pressure gauge {10.0, 75.0} {0.0, 1.0} + local rpm = mainPanelDevice:get_argument_value(23) * 4500 -- RPM + local tofTemp = (mainPanelDevice:get_argument_value(30) -70) * 150 -- Tri Guage Oil Temperature {-71.0, -70.0, 150.0} {-1.0, 0.0, 1.0} + local tofOil = mainPanelDevice:get_argument_value(31) * 200 -- Tri Guage Oil Pressure {0.0, 200.0} {0.0, 1.0} + local tofFuel = mainPanelDevice:get_argument_value(32) * 35 -- Tri Guage Fuel Pressure {0.0, 35.0} {0.0, 1.0} + + local FullInfoString = "Man. " .. string.format("%d", manifold) .. " inHg" .. + "\nEngRPM " .. string.format("%d", rpm) .. + "\nOil Temp " .. string.format("%d", tofTemp) .. " °C" .. + "\nOil " .. string.format("%d", tofOil) .. " PSI" .. + "\nFuel " .. string.format("%d", tofFuel) .. " PSI" + + ExportScript.Tools.SendData(3033, FullInfoString) + + --SYSTEMS MONITORING FOR ABOVE Multi Guage Indicators (changes stream deck buutton to red for one of the above values out of range (danger)) + local infoDanger = 0 + + if manifold > 64 then --Manifold no more than 64 inches mercury + infoDanger = 1 + elseif rpm > 3025 then --rpm no more than 3000 + infoDanger = 1 + elseif tofTemp > 105 then --temp no more than 105c + infoDanger = 1 + elseif tofOil > 90 then --Oil press. no more than 90PSI + infoDanger = 1 + elseif tofOil < 50 then --oil press. no less than 50 + infoDanger = 1 + elseif tofFuel > 21 then --fuel press. no more than + infoDanger = 1 + elseif tofFuel < 24.2 then --fuel press. no less than + infoDanger = 1 + end + ExportScript.Tools.SendData(3032, infoDanger) + + +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + -- every frame export to DAC +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + -- export in low tick interval to Ikarus +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + -- export in low tick interval to DAC +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.CalculateFuel(fuelNeedlePosition) -- Calculate fuel to nice output + -- Fuel Reserve main { 0.0, 40.0, 100.0, 150.0, 175.0, 200.0, 225.0, 250.0, 264.0, 270.0} {0.000, 0.144, 0.347, 0.506, 0.599, 0.666, 0.753, 0.828, 0.877, 1.000} + -- Fuel Reserve Aux { 0.0, 10.0, 25.0, 50.0, 75.0, 100.0} {0.000, 0.103, 0.254, 0.506, 0.756, 1.000} + local usGallons = fuelNeedlePosition + + -- Calculate fuel needle position into US Gallons here + + return usGallons +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/P-51D-30-NA.lua b/Scripts/DCS-ExportScript/ExportsModules/P-51D-30-NA.lua index 9313f66f..379b3b57 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/P-51D-30-NA.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/P-51D-30-NA.lua @@ -1,7 +1,12 @@ --- P-51D-30-NA Export +-- P-51D-25-NA Export + +-- https://github.com/asherao/DCS-ExportScripts +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info ExportScript.FoundDCSModule = true -ExportScript.Version.P51D30NA = "1.2.1" +ExportScript.Version.P51D25NA = "1.2.1" ExportScript.ConfigEveryFrameArguments = { @@ -201,17 +206,17 @@ ExportScript.ConfigArguments = [147] = "%.4f", -- Canopy Hand Crank (rotary) [149] = "%d", -- Canopy Emergency Release Handle -- AN/ARA-8 - [152] = "%0.1f", -- Homing Adapter Mode TRANSMIT/COMM./HOMING - [153] = "%d", -- Homing Adapter Power On/Off - [154] = "%d", -- Homing Adapter's Circuit Breaker + --[152] = "%0.1f", -- Homing Adapter Mode TRANSMIT/COMM./HOMING + --[153] = "%d", -- Homing Adapter Power On/Off + --[154] = "%d", -- Homing Adapter's Circuit Breaker -- SCR-695 - [139] = "%0.1f", -- IFF Code Selector Code 1/2/3/4/5/6 - [140] = "%d", -- IFF Power On/Off - [141] = "%d", -- IFF TIME/OFF/ON - [142] = "%d", -- IFF Detonator Circuit On/Off - [143] = "%d", -- IFF Distress Signal On/Off - [145] = "%d", -- IFF Detonator Left - [146] = "%d", -- IFF Detonator Right + --[139] = "%0.1f", -- IFF Code Selector Code 1/2/3/4/5/6 + --[140] = "%d", -- IFF Power On/Off + --[141] = "%d", -- IFF TIME/OFF/ON + --[142] = "%d", -- IFF Detonator Circuit On/Off + --[143] = "%d", -- IFF Distress Signal On/Off + --[145] = "%d", -- IFF Detonator Left + --[146] = "%d", -- IFF Detonator Right -- Trimmers [91] = "%.4f", -- Aileron Trim (rotary) [92] = "%.4f", -- Elevator Trim (rotary) @@ -278,16 +283,17 @@ end -- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] + + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end end function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) @@ -329,3 +335,723 @@ end ----------------------------- -- Custom functions -- ----------------------------- + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + + --Break out instrument panel values individually for better visibility on stream deck. + ExportScript.Tools.SendData(8020, 'HDG\n' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º') + ExportScript.Tools.SendData(8021, 'ALT\n' .. format_int(round(altMsl_feet,-1)) .. '\nft') + ExportScript.Tools.SendData(8022, 'ALT\n' .. format_int(round(altMsl_meters,-1)) .. '\nm') + ExportScript.Tools.SendData(8023, 'IAS\n' .. round(ias_knots,0) .. '\nkts') + ExportScript.Tools.SendData(8024, 'IAS\n' .. round(ias_metric,0) .. '\nkm/h') + ExportScript.Tools.SendData(8025, 'IAS\n' .. round(ias_mph,0) .. '\nmph') + ExportScript.Tools.SendData(8026, 'V/S\n' .. format_int(round(verticalVelocity_imperial,-2)) .. '\nft/min') + ExportScript.Tools.SendData(8027, 'V/S\n' .. format_int(round(verticalVelocity_metric,0)) .. '\nm/s') +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their properties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the estimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the preferred runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +---------------------- +-- Helper Functions -- +---------------------- +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/P-51D.lua b/Scripts/DCS-ExportScript/ExportsModules/P-51D.lua index 3bb3158f..379b3b57 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/P-51D.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/P-51D.lua @@ -1,5 +1,10 @@ -- P-51D-25-NA Export +-- https://github.com/asherao/DCS-ExportScripts +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info + ExportScript.FoundDCSModule = true ExportScript.Version.P51D25NA = "1.2.1" @@ -278,16 +283,17 @@ end -- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] + + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end end function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) @@ -329,3 +335,723 @@ end ----------------------------- -- Custom functions -- ----------------------------- + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + + --Break out instrument panel values individually for better visibility on stream deck. + ExportScript.Tools.SendData(8020, 'HDG\n' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º') + ExportScript.Tools.SendData(8021, 'ALT\n' .. format_int(round(altMsl_feet,-1)) .. '\nft') + ExportScript.Tools.SendData(8022, 'ALT\n' .. format_int(round(altMsl_meters,-1)) .. '\nm') + ExportScript.Tools.SendData(8023, 'IAS\n' .. round(ias_knots,0) .. '\nkts') + ExportScript.Tools.SendData(8024, 'IAS\n' .. round(ias_metric,0) .. '\nkm/h') + ExportScript.Tools.SendData(8025, 'IAS\n' .. round(ias_mph,0) .. '\nmph') + ExportScript.Tools.SendData(8026, 'V/S\n' .. format_int(round(verticalVelocity_imperial,-2)) .. '\nft/min') + ExportScript.Tools.SendData(8027, 'V/S\n' .. format_int(round(verticalVelocity_metric,0)) .. '\nm/s') +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their properties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the estimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the preferred runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +---------------------- +-- Helper Functions -- +---------------------- +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/SA342L.lua b/Scripts/DCS-ExportScript/ExportsModules/SA342L.lua index 07990a11..1aa40c2f 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/SA342L.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/SA342L.lua @@ -1,30 +1,21 @@ --- SA342L - +-- SA342 Gazelle +-- based on Bailey ExportScripts ExportScript.FoundDCSModule = true -ExportScript.Version.SA342L = "1.2.1" +ExportScript.Version.SA342L = "2.0" 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 - ]] -- Gyro Panel [200] = "%.4f", -- Gyro_Needle_State {-1,1} Gyro Panel SYNC [201] = "%.f", -- Gyro_voyant_test Lamp {0,1} [202] = "%.f", -- Gyro_voyant_trim Lamp {0,1} [203] = "%.f", -- Gyro_voyant_bpp Lamp {0,1} + [208] = "%.f", --GYRO_Flags {0,1} -- Autopilot Panel [37] = "%.4f", -- T_Needle_State {-1,1} Pitch correction Indicator [38] = "%.4f", -- R_Needle_State {-1,1} Roll correction Indicator [39] = "%.4f", -- L_Needle_State {-1,1} Yaw correction Indicator - --[196] = "%.4f", -- RWR_light {0,1} -- RWR background light + [196] = "%.4f", -- RWR_light {0,1} -- RWR background light --[] = "%.4f", -- PE_fondbright {0,1} ??? --[353] = "%.4f", -- NADIR_fondbright {0,1} ??? -- Flare Dispenser Lamps @@ -76,9 +67,9 @@ ExportScript.ConfigEveryFrameArguments = [92] = "%0.1f", -- Baro_Altimeter_press_cent 0X00 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} [95] = "%0.1f", -- Baro_Altimeter_press_mille X000 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} -- radar altimetre - [94] = "%.4f", -- Radar_Altimeter {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0,0.019,0.035,0.072,0.109,0.147,0.18,0.214,0.247,0.283,0.316,0.345,0.376,0.407,0.438,0.469,0.501,0.564,0.606,0.648,0.676,0.706,0.732,0.756,0.775,0.794,0.811,0.829,0.843,0.858,0.87} + [94] = "%.4f", -- Radar_Altimeter feet {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0,0.019,0.035,0.072,0.109,0.147,0.18,0.214,0.247,0.283,0.316,0.345,0.376,0.407,0.438,0.469,0.501,0.564,0.606,0.648,0.676,0.706,0.732,0.756,0.775,0.794,0.811,0.829,0.843,0.858,0.87} [93] = "%.4f", -- DangerRALT_index {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0.0,0.0175,0.0338,0.0715,0.109,0.147,0.182,0.215,0.247,0.282,0.315,0.3445,0.377,0.407,0.439,0.47,0.5005,0.5628,0.6052,0.646,0.675,0.7058,0.7315,0.755,0.7747,0.793,0.8097,0.8272,0.8425,0.8575,0.8693} - --[97] = "%.f", -- RAltlamp {0,1} + [97] = "%.f", -- RAltlamp {0,1} [98] = "%.f", -- RAlt_flag_Panne OFF Flag{0,1} [99] = "%.1f", -- RAlt_flag_MA A (Test) Flag{0,1} [91] = "%.1f", -- RAlt_knob_MA Power/Test Knop{0,1} @@ -165,8 +156,23 @@ ExportScript.ConfigEveryFrameArguments = [455] = "%.f", -- Intercomp VHF Light [456] = "%.f", -- Intercomp FM1 Light [457] = "%.f", -- Intercomp UHF Light + -- SA342M HOT3 Weapon Panel Lamps + [183] = "%.f", -- HOT3 WP Lamps BON + [184] = "%.f", -- HOT3 WP Lamps MAUVAIS + [185] = "%.f", -- HOT3 WP Lamps ALIMENTATION + [186] = "%.f", -- HOT3 WP Lamps MISSILE PRET + [187] = "%.f", -- HOT3 WP Lamps TIR AUTOR. + [188] = "%.f", -- HOT3 WP Lamps DEFAUT + [189] = "%.f", -- HOT3 WP Lamps TEST I + [190] = "%.f", -- HOT3 WP Lamps JOUR + [191] = "%.f", -- HOT3 WP Lamps LUMINOSITE + [192] = "%.f", -- HOT3 WP Lamps TEST II + [193] = "%.f" -- HOT3 WP Lamps NUIT } + + + ExportScript.ConfigArguments = { --[[ @@ -182,14 +188,16 @@ ExportScript.ConfigArguments = [374] = "%1d", -- WP2 - Ma Right [375] = "%1d", -- WP2 - Ma Right Cover [376] = "%1d", -- WP2 - Seq Ripple selection + [377] = "%1d", + [378] = "%1d", -- PILOTSIGHT [171] = "%1d", -- PILOTSIGHT - Pilot Sight -- PILOT STICK --[50] = "%1d", -- PILOT STICK - Magnetic Brake --[53] = "%1d", -- PILOT STICK - Wiper once --[209] = "%1d", -- PILOT STICK - Autopilot Button - --[293] = "%1d", -- PILOT STICK - Slave - --[294] = "%1d", -- PILOT STICK - Auto-Hover + [293] = "%1d", -- PILOT STICK - Slave + [294] = "%1d", -- PILOT STICK - Auto-Hover -- WSO LEFT SIDE STICK [255] = "%1d", -- PE WSO STICK - Lasing Button Cover [256] = "%1d", -- PE WSO STICK - Lasing Button @@ -210,6 +218,11 @@ ExportScript.ConfigArguments = [45] = "%.4f", -- CLOCK - Winder (Axis) {0.0, 1.0} in 0.1 Steps [46] = "%1d", -- CLOCK - Start/Stop [47] = "%1d", -- CLOCK - Reset + -- SA342M HOT3 only + -- PH SA342M HOT3 + [180] = "%.2f", -- PH - Test II/Test I/Off/Day/Night {0.0,0.25,0.50,0.75,1.0} + [181] = "%.3f", -- PH - Station Select 0/1/0/2/0/3/0/4/0 {0.0,0.125,0.250,0,375,0.500,0.625,0.750,0.875,1.0} + [182] = "%.4f", -- PH - Brightness (Axis) {0.0, 1.0} in 0.1 Steps -- PE SA342L/M/Mistral BCV (BOITIER DE COMMANDE VIDEO – video command box) [362] = "%1d", -- PE BCV - Centering [364] = "%1d", -- PE BCV - VDO/VTH @@ -268,7 +281,7 @@ ExportScript.ConfigArguments = [124] = "%1d", -- TV - On/Off [125] = "%.4f", -- TV - Contrast (Axis) {0.0, 1.0} in 0.1 Steps [123] = "%.4f", -- TV - Brightness (Axis) {0.0, 1.0} in 0.1 Steps - --[126] = "%.4f", -- TV - Cover (Axis) {0.0, 1.0} in 0.1 Steps + [126] = "%.4f", -- TV - Cover (Axis) {0.0, 1.0} in 0.1 Steps -- RWR [148] = "%1d", -- RWR - Off/On/Croc {-1.0,0.0,1.0} [149] = "%1d", -- RWR - Marker @@ -322,7 +335,7 @@ ExportScript.ConfigArguments = [146] = "%1d", -- NAVLIGHTS - Navigation Lights CLI/OFF/FIX {-1.0,0.0,1.0} [228] = "%1d", -- NAVLIGHTS - Anticollision Light NOR/OFF/ATT {-1.0,0.0,1.0} [105] = "%1d", -- NAVLIGHTS - Landing Light Off/Vario/On {-1.0,0.0,1.0} - [106] = "%1d", -- NAVLIGHTS - Landing Light Extend/Retract +-- [106] = "%1d", -- NAVLIGHTS - Landing Light Extend/Retract [382] = "%1d", -- NAVLIGHTS - Panels Lighting On/Off [30] = "%.4f", -- NAVLIGHTS - AntiCollision Light Intensity (Axis) {0.0, 1.0} in 0.1 Steps [229] = "%1d", -- NAVLIGHTS - Formation Lights On/Off @@ -379,348 +392,371 @@ ExportScript.ConfigArguments = [394] = "%1d", -- UHF RADIO - 7 [395] = "%1d", -- UHF RADIO - 8 [396] = "%1d", -- UHF RADIO - 9 - [397] = "%1d" -- UHF RADIO - 0 -} + [397] = "%1d", -- UHF RADIO - 0 ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - --[97] = "%.f", -- RAltlamp {0,1} - ExportScript.Tools.SendData(97, (mainPanelDevice:get_argument_value(97) > 0.009 and 1 or 0)) +[1330] = "%1d", --ALV Y +[1331] = "%1d", --ALV G +[1332] = "%1d", --CVS Y +[1333] = "%1d", --CVS G + +[590] = "%1d", --pcb zoom +[591] = "%.2f", --pcb dist +[592] = "%1d", --pcb stab + +[605] = "%1d", --mini cover +[606] = "%1d", --mini arm +[596] = "%1d", --izlid + +[1333] = "%1d", --CVS G +[1333] = "%1d", --CVS G +[172] = "%1d" --periscope + --MEUS-- - --[102] = "%.4f", -- ADF_Aiguille_large Heading Needle large {-360.0,0.0,360.0}{-1.0,0.0,1.0} - local ADF_Aiguille_large = mainPanelDevice:get_argument_value(102) - if ADF_Aiguille_large ~= 0 then - ADF_Aiguille_large = ADF_Aiguille_large + 0.5 - if ADF_Aiguille_large > 1 then - ADF_Aiguille_large = ADF_Aiguille_large - 1.0 - end - end - ExportScript.Tools.SendData(102, string.format("%.4f", ADF_Aiguille_large)) +} +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + + ExportScript.Radios(mainPanelDevice) + end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] end ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] +end - -- UHF Radio - --------------------------------------------------- - local lUHFRadio = GetDevice(31) - if lUHFRadio:is_on() then - --ExportScript.Tools.SendData(2000, string.format("%.3f", lUHFRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('UHF_Freq: '..ExportScript.Tools.dump(list_indication(5))) +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - local lUHFRadioFreq = ExportScript.Tools.getListIndicatorValue(5) - if lUHFRadioFreq ~= nil and lUHFRadioFreq.UHF_Freq ~= nil then - ExportScript.Tools.SendData(2000, string.format("%s", lUHFRadioFreq.UHF_Freq)) - end - else - ExportScript.Tools.SendData(2000, " ") + +end + +function ExportScript.Radios(mainPanelDevice) + + +if mainPanelDevice:get_argument_value(556) == 0 then + + +elseif mainPanelDevice:get_argument_value(556) > 0 then + +local rotor = ((mainPanelDevice:get_argument_value(52) - 0.096) * (1/0.175)) + turbine = ((mainPanelDevice:get_argument_value(135) - 0.095) * 61.80469715698393) +rotor = string.format("%.1f", rotor) +turbine = string.format("%.1f", turbine) + + -- [300] = "%.f", -- Voyant_DEM Start lamp{0,1} + -- [301] = "%.f", -- Voyant_RLT Idle lamp {0,1} + -- [302] = "%.f", -- Voyant_BLOC Blocked Engine lamp {0,1} + +--idleio = mainPanelDevice:get_argument_value(301) +--startio = mainPanelDevice:get_argument_value(300) +--blocio =mainPanelDevice:get_argument_value(302) + +local idleio = mainPanelDevice:get_argument_value(301) + if idleio == 0 then + idlelamp="⚫" + elseif idleio > 0 then + idlelamp="🟡" end - -- AM Radio - --------------------------------------------------- - local lAMRadio = GetDevice(5) - if lAMRadio:is_on() then - --ExportScript.Tools.SendData(2001, string.format("%.3f", lAMRadio:get_frequency()/1000000)) - ExportScript.Tools.SendData(2001, ExportScript.Tools.RoundFreqeuncy(lAMRadio:get_frequency()/1000000)) +local startio = mainPanelDevice:get_argument_value(300) + if startio == 0 then + startlamp="⚫" + elseif startio > 0 then + startlamp="🟢" end - -- FM Radio PR4G - --------------------------------------------------- - local lFMRadio = GetDevice(28) - if lFMRadio:is_on() then - --ExportScript.Tools.SendData(2002, string.format("%.3f", lFMRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('FM_Freq: '..ExportScript.Tools.dump(list_indication(4))) +local blocio = mainPanelDevice:get_argument_value(302) + if blocio == 0 then + bloclamp="⚫" + elseif blocio > 0 then + bloclamp="🔴" + end - local lFMRadioFreq = ExportScript.Tools.getListIndicatorValue(4) +ExportScript.Tools.SendData(1006, string.format("R " .. rotor .. "\n" .. + "T " .. turbine .. "\n" .. + startlamp .. idlelamp .. bloclamp)) +end +--value = (output - output_min) * ((value_max) / (output_max-output_min)) +t4p = mainPanelDevice:get_argument_value(15) +t4temp = (-9679.7 * t4p^5) + (25333 * t4p^4) - (24033 * t4p^3) + (9712.1 * t4p^2) - (346.74 * t4p) - 105.2 - if lFMRadioFreq ~= nil and lFMRadioFreq.FM_Freq ~= nil then - ExportScript.Tools.SendData(2002, string.format("%s", lFMRadioFreq.FM_Freq)) - end - else - ExportScript.Tools.SendData(2002, " ") + + if + t4temp <= 550 then + t4lamp = "🟢" + elseif + t4temp > 550 and t4temp < 600 then + t4lamp = "🟡" + elseif + t4temp >= 600 then + t4lamp = "🔴" end - -- [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} -- laut clickabledata.lua - -- [273] = "%.1f", -- FM RADIO - Chanel Selector {0.0,0.2,0.3,0.5,0.6,0.8,0.9,1.1} -- gerundet - local lFM_RADIO_PRESET = {[0.0]="1",[0.2]="2",[0.3]="3",[0.5]="4",[0.6]="5",[0.8]="6",[0.9]="0",[1.1]="R"} - ExportScript.Tools.SendData(2003, lFM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(273), 1, "ceil")]) - - -- Weapon Panel - --------------------------------------------------- - if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On - local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(8) - - if lWeaponPanelDisplays ~= nil then - if lWeaponPanelDisplays.LEFT_screen ~= nil then - ExportScript.Tools.SendData(2004, string.format("%s", lWeaponPanelDisplays.LEFT_screen)) - end - if lWeaponPanelDisplays.RIGHT_screen ~= nil then - ExportScript.Tools.SendData(2005, string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) - end - end - else - ExportScript.Tools.SendData(2004, "-") - ExportScript.Tools.SendData(2005, "-") + t4temp = string.format("%.f", t4temp) --?? + +local oiltemp = (mainPanelDevice:get_argument_value(151) * 100) + + if + oiltemp <= 24 then + oillamp = "🟡" + elseif + oiltemp > 24 and oiltemp < 85 then + oillamp = "🟢" + elseif + oiltemp >= 85 then + oillamp = "🔴" end -end -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] + oiltemp = string.format("%.f", oiltemp) --?? - -- UHF Radio - --------------------------------------------------- - local lUHFRadio = GetDevice(31) - if lUHFRadio:is_on() then - --ExportScript.Tools.SendDataDAC("2000", string.format("%.3f", lUHFRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('UHF_Freq: '..ExportScript.Tools.dump(list_indication(5))) + ExportScript.Tools.SendData(1005, string.format("🌡️Oil\n" .. + oillamp .. oiltemp .. " ºC" .. "\n" .. + "🌡️T4\n" .. + t4lamp .. t4temp .. " ºC")) +----------- +--output_min = 0 +--output_max = 0.886 +--value_min = 0 +--value_max = 370 +--output = 1 - local lUHFRadioFreq = ExportScript.Tools.getListIndicatorValue(5) +--value = (output - output_min) * ((value_max) / (output_max-output_min)) - if lUHFRadioFreq ~= nil and lUHFRadioFreq.UHF_Freq ~= nil then - ExportScript.Tools.SendDataDAC("2000", string.format("%s", lUHFRadioFreq.UHF_Freq)) - end +--fuel +fuel = ((mainPanelDevice:get_argument_value(137) - 0.093) * ((450)/(0.932-0.093))) +fuel = string.format("%.f", fuel) +ExportScript.Tools.SendData(1016, string.format(fuel .. "L")) + +torque = ((mainPanelDevice:get_argument_value(16) - 0.085) * ((110)/(0.908-0.085))) +torque = string.format("%.f", torque) +ExportScript.Tools.SendData(1008, string.format("⚙️" .. torque .. "%%\n\n" .. "⛽" .. fuel .. "L")) + +--IAS +local x = (mainPanelDevice:get_argument_value(51)) +local IASkmh = ((294.33 * x^3) - (245.86 * x^2) + (396.8 * x) + 12.511) +IASkmh = string.format("%.f", IASkmh) +IASkts = IASkmh * 0.539957 +IASkts = string.format("%.f", IASkts) +ExportScript.Tools.SendData(1009, string.format(IASkmh .. " Kmh\n" .. + "(" .. IASkts .. " Kts)")) +--Rad alt +local x = (mainPanelDevice:get_argument_value(94)) +local ralt = (2329.2*x^4) - (1163.2*x^3) - (1.5301*x^2) + (325.05*x) +ralt = string.format("%.f", ralt) + +ExportScript.Tools.SendData(1015, string.format(ralt)) + +--baro alt +baro = ((mainPanelDevice:get_argument_value(87)) * 10000) +baroft = (baro * 3.2808399) +baroft = string.format("%.f", baroft) + +QNH1000 = ((mainPanelDevice:get_argument_value(95)) * 10) +QNH0100 = ((mainPanelDevice:get_argument_value(92)) * 10) +QNH0010 = ((mainPanelDevice:get_argument_value(90)) * 10) +QNH0001 = ((mainPanelDevice:get_argument_value(88)) * 10) + +QNH1000 = string.format("%.f", QNH1000) +QNH0100 = string.format("%.f", QNH0100) +QNH0010 = string.format("%.f", QNH0010) +QNH0001 = string.format("%.f", QNH0001) + +ExportScript.Tools.SendData(1010, string.format(ralt .. "m (R)\n" .. baroft .. "ft (B)\n" .. QNH1000 .. QNH0100 .. QNH0010 .. QNH0001)) + +---ADI to waypoint +phdg = ((mainPanelDevice:get_argument_value(113)) * 360) +phdg = string.format("%.f", phdg) +ExportScript.Tools.SendData(1018, string.format(phdg .. "º")) + +toWPdiv = ((mainPanelDevice:get_argument_value(102)) * 360) +toWPdiv = string.format("%.f", toWPdiv) +toWPhdg = phdg + toWPdiv + +WPdistcent = (mainPanelDevice:get_argument_value(110) * 10) +WPdistcent = string.format("%.f", WPdistcent) +WPdistdix = (mainPanelDevice:get_argument_value(111) * 10) +WPdistdix = string.format("%.f", WPdistdix) +WPdistunit = (mainPanelDevice:get_argument_value(112) * 10) +WPdistunit = string.format("%.f", WPdistunit) +ExportScript.Tools.SendData(1019, string.format(WPdistcent .. WPdistdix .. "." .. WPdistunit .. "Km")) + + + +ExportScript.Tools.SendData(1017, string.format("Hdg " .. phdg .. "º\n" + .. "Wpt " .. toWPdiv .. "º\n" + .. WPdistcent .. WPdistdix .. "." .. WPdistunit)) + +--CWP any + +w1 = mainPanelDevice:get_argument_value(1) +w2 = mainPanelDevice:get_argument_value(2) +w3 = mainPanelDevice:get_argument_value(3) +w4 = mainPanelDevice:get_argument_value(4) +w5 = mainPanelDevice:get_argument_value(5) +w6 = mainPanelDevice:get_argument_value(6) +w7 = mainPanelDevice:get_argument_value(7) +w8 = mainPanelDevice:get_argument_value(8) +w9 = mainPanelDevice:get_argument_value(9) +w10 = mainPanelDevice:get_argument_value(10) +w11 = mainPanelDevice:get_argument_value(11) +w12 = mainPanelDevice:get_argument_value(12) +w13 = mainPanelDevice:get_argument_value(13) + +if (w1 + w2 + w3 + w4 + w5 + w6 + w7 + + w8 + w9 + w10 + w11 + w12 + w13) > 0 then + w14 = 1 else - ExportScript.Tools.SendDataDAC("2000", "-") + w14 = 0 end +ExportScript.Tools.SendData(1018, w14) - -- AM Radio - --------------------------------------------------- - local lAMRadio = GetDevice(5) - if lAMRadio:is_on() then - --ExportScript.Tools.SendDataDAC("2001", string.format("%.3f", lAMRadio:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2001", ExportScript.Tools.RoundFreqeuncy(lAMRadio:get_frequency()/1000000)) +--Hot3 +-- [181] = "%.3f", -- PH - Station Select 0/1/0/2/0/3/0/4/0 {0.0,0.125,0.250,0,375,0.500,0.625,0.750,0.875,1.0} + + +----------- +--Clock +gameTimeLocal = LoGetMissionStartTime() + LoGetModelTime() + +function formatTime(time) + seconds = math.floor(time) % 60 + minutes = math.floor(time / 60) % 60 + hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. string.format("%02d", minutes) .. "L" +end + +ExportScript.Tools.SendData(9999, formatTime(gameTimeLocal)) +--digital cronometro + chmin = (mainPanelDevice:get_argument_value(44) * ((1 / (1/30))*60)) +chmin = string.format("%.f", chmin) + + hour2= math.floor(chmin / 3600) + min1= math.floor(chmin / 60) + if + min1 >= 60 then min3 = min1 - (60 * hour2) + elseif + min1 < 60 then min3 = min1 end + sec1= math.floor(chmin % 60) + +--hour2 = string.format("%02i", hour) +--hour = string.format(hour .. "H") +min3 = string.format("%02i", min3) +min3 = string.format(min3 .. "'") +sec1 = string.format("%02i", sec1) - -- FM Radio PR4G - --------------------------------------------------- - local lFMRadio = GetDevice(28) - if lFMRadio:is_on() then - --ExportScript.Tools.SendDataDAC(2002, string.format("%.3f", lFMRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('FM_Freq: '..ExportScript.Tools.dump(list_indication(4))) +ExportScript.Tools.SendData(1012, string.format(formatTime(gameTimeLocal))) --.. sec)) --just Local Hour +ExportScript.Tools.SendData(1013, string.format(min3 .. sec1)) --just the timer +ExportScript.Tools.SendData(1014, string.format(formatTime(gameTimeLocal) .. "\n" .. "🕗" .."\n" .. + min3 .. sec1)) --Local Hour and Timer - local lFMRadioFreq = ExportScript.Tools.getListIndicatorValue(4) +if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On + local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(7) - if lFMRadioFreq ~= nil and lFMRadioFreq.FM_Freq ~= nil then - ExportScript.Tools.SendDataDAC("2002", string.format("%s", lFMRadioFreq.FM_Freq)) + if lWeaponPanelDisplays ~= nil then + if lWeaponPanelDisplays.LEFT_screen ~= nil then + ExportScript.Tools.SendData(2000, string.format("%s", lWeaponPanelDisplays.LEFT_screen)) + end + if lWeaponPanelDisplays.RIGHT_screen ~= nil then + ExportScript.Tools.SendData(2001, string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) end - else - ExportScript.Tools.SendDataDAC("2002", "-") end +else + ExportScript.Tools.SendData(2000, "-") + ExportScript.Tools.SendData(2001, "-") +end +------------ +if mainPanelDevice:get_argument_value(272) > 0.0 then +FM = ExportScript.Tools.split(list_indication(3), "%c")[9] +ExportScript.Tools.SendData(1020, FM) +else +ExportScript.Tools.SendData(1020, "--.---") +end - -- [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} -- laut clickabledata.lua - -- [273] = "%.1f", -- FM RADIO - Chanel Selector {0.0,0.2,0.3,0.5,0.6,0.8,0.9,1.1} -- gerundet - local lFM_RADIO_PRESET = {[0.0]="1",[0.2]="2",[0.3]="3",[0.5]="4",[0.6]="5",[0.8]="6",[0.9]="0",[1.1]="R"} - ExportScript.Tools.SendDataDAC("2003", lFM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(273), 1, "ceil")]) +if mainPanelDevice:get_argument_value(383) > 0.0 then +UHF = ExportScript.Tools.split(list_indication(4), "%c")[9] +ExportScript.Tools.SendData(1021, UHF) +else +ExportScript.Tools.SendData(1021, "---.---") +end + +----------- - -- Weapon Panel - --------------------------------------------------- - if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On - local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(8) - - if lWeaponPanelDisplays ~= nil then - if lWeaponPanelDisplays.LEFT_screen ~= nil then - ExportScript.Tools.SendDataDAC("2004", string.format("%s", lWeaponPanelDisplays.LEFT_screen)) - end - if lWeaponPanelDisplays.RIGHT_screen ~= nil then - ExportScript.Tools.SendDataDAC("2005", string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) - end - end - else - ExportScript.Tools.SendDataDAC("2004", "-") - ExportScript.Tools.SendDataDAC("2005", "-") - end + --------- + -- ADF -- + --------- + local ADF_nav1_centaine = mainPanelDevice:get_argument_value(158) * 10 + local ADF_nav1_dizaine = mainPanelDevice:get_argument_value(159) * 10 + local ADF_nav1_unite = mainPanelDevice:get_argument_value(160) * 10 + local ADF_nav1_dec = mainPanelDevice:get_argument_value(161) * 10 - -- generic Radio display and frequency rotarys - ------------------------------------------------- - -- genericRadioConf - ExportScript.genericRadioConf = {} - ExportScript.genericRadioConf['maxRadios'] = 3 -- numbers of aviables/supported radios - ExportScript.genericRadioConf[1] = {} -- first radio - ExportScript.genericRadioConf[1]['Name'] = "UHF Radio" -- name of radio - ExportScript.genericRadioConf[1]['DeviceID'] = 31 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[1]['minFrequency'] = 225.000 -- lowest frequency - ExportScript.genericRadioConf[1]['maxFrequency'] = 399.975 -- highest frequency - ExportScript.genericRadioConf[1]['Power'] = {} -- power button active - ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3001 -- power button id from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.167 -- power on value from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - --ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active - --ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua - --ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active - --ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - --ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} - --ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change - --ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active - --ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua - --ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - --ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - -- Load Button = VLD Button - ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset - ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3003 -- load button id from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active - --ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[2] = {} -- secound radio - ExportScript.genericRadioConf[2]['Name'] = "AM Radio" -- name of radio - ExportScript.genericRadioConf[2]['DeviceID'] = 5 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[2]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[2]['minFrequency'] = 118.000 -- lowest frequency - ExportScript.genericRadioConf[2]['maxFrequency'] = 143.975 -- highest frequency - ExportScript.genericRadioConf[2]['Power'] = {} -- power button active - ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3001 -- power button id from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.33 -- power on value from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - --ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active - --ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua - --ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active - --ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 137 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - --ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} - --ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.01 -- minimal step for preset change - --ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active - --ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua - --ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - --ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - --ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset - --ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3006 -- load button id from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active - --ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[3] = {} -- secound radio - ExportScript.genericRadioConf[3]['Name'] = "FM Radio" -- name of radio - ExportScript.genericRadioConf[3]['DeviceID'] = 28 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[3]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[3]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[3]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[3]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[3]['minFrequency'] = 30.000 -- lowest frequency - ExportScript.genericRadioConf[3]['maxFrequency'] = 87.975 -- highest frequency - ExportScript.genericRadioConf[3]['Power'] = {} -- power button active - ExportScript.genericRadioConf[3]['Power']['ButtonID'] = 3001 -- power button id from cklickable.lua - ExportScript.genericRadioConf[3]['Power']['ValueOn'] = 0.25 -- power on value from cklickable.lua - ExportScript.genericRadioConf[3]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - --ExportScript.genericRadioConf[3]['Volume'] = {} -- volume knob active - --ExportScript.genericRadioConf[3]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[3]['Preset']['ArgumentID'] = 273 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset']['ButtonID'] = 3002 -- preset button id from cklickable.lua - --ExportScript.genericRadioConf[3]['Preset']['ButtonID2'] = 3002 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - -- [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} -- laut clickabledata.lua - ExportScript.genericRadioConf[3]['Preset']['List'] = {[0.0]="1",[0.143]="2",[0.286]="3",[0.429]="4",[0.572]="5",[0.715]="6",[0.858]="0",[1.0]="-"} - ExportScript.genericRadioConf[3]['Preset']['Step'] = 0.143 -- minimal step for preset change - --ExportScript.genericRadioConf[3]['Preset']['Step2'] = -0.01 -- minimal step for preset change - --ExportScript.genericRadioConf[3]['Squelch'] = {} -- squelch switch active - --ExportScript.genericRadioConf[3]['Squelch']['ArgumentID'] = 148 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[3]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua - --ExportScript.genericRadioConf[3]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - --ExportScript.genericRadioConf[3]['Squelch']['ValueOff'] = -1.0 -- squelch off value from cklickable.lua - --ExportScript.genericRadioConf[3]['Load'] = {} -- load button preset - --ExportScript.genericRadioConf[3]['Load']['ButtonID'] = 3004 -- load button id from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset'] = {} -- switch manual or preset active - --ExportScript.genericRadioConf[3]['ManualPreset']['ArgumentID'] = 149 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadio(nil, nil) + ADF_nav1_centaine = string.format("%.0f", ADF_nav1_centaine) + ADF_nav1_dizaine = string.format("%.0f", ADF_nav1_dizaine) + ADF_nav1_unite = string.format("%.0f", ADF_nav1_unite) + ADF_nav1_dec = string.format("%.1d", ADF_nav1_dec) + + local ADF_nav2_centaine = mainPanelDevice:get_argument_value(162) * 10 + local ADF_nav2_dizaine = mainPanelDevice:get_argument_value(163) * 10 + local ADF_nav2_unite = mainPanelDevice:get_argument_value(164) * 10 + local ADF_nav2_dec = mainPanelDevice:get_argument_value(165) * 10 + + ADF_nav2_centaine = string.format("%.0f", ADF_nav2_centaine) + ADF_nav2_dizaine = string.format("%.0f", ADF_nav2_dizaine) + ADF_nav2_unite = string.format("%.0f", ADF_nav2_unite) + ADF_nav2_dec = string.format("%.1d", ADF_nav2_dec) + - --===================================================================================== - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + local ADF_RADIO_Select = mainPanelDevice:get_argument_value(166) + local isADF1Selected = 1 + if ADF_RADIO_Select > 0.01 then + isADF1Selected = 0 + end + ExportScript.Tools.SendData(2007, isADF1Selected) - -- list_indication get tehe value of cockpit displays - local ltmp1 = 0 - for ltmp2 = 0, 20, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + local ADF_display + if isADF1Selected == 1 then + ADF_freqDisplay = (ADF_nav1_centaine .. ADF_nav1_dizaine .. ADF_nav1_unite .. "." .. ADF_nav1_dec) + else + ADF_freqDisplay = (ADF_nav2_centaine .. ADF_nav2_dizaine .. ADF_nav2_unite .. "." .. ADF_nav2_dec) end - ]] ---[[ - -- getmetatable get function name from devices - local ltmp1 = 0 - for ltmp2 = 1, 70, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + + local ADF_shortandSelect + if isADF1Selected == 1 then + ADF_shortandSelect = "A1" + else + ADF_shortandSelect = "A2" end -]] + + local ADF1_freqDisplay = (ADF_nav1_centaine .. ADF_nav1_dizaine .. ADF_nav1_unite .. "." .. ADF_nav1_dec) + local ADF2_freqDisplay = (ADF_nav2_centaine .. ADF_nav2_dizaine .. ADF_nav2_unite .. "." .. ADF_nav2_dec) + ExportScript.Tools.SendData(2014, "ADF1\n" .. ADF1_freqDisplay) + ExportScript.Tools.SendData(2015, "ADF2\n" .. ADF2_freqDisplay) + --NADIR-- + +if isADF1Selected == 1 then +ExportScript.Tools.SendData(1022, "ADF1\n" .. ADF1_freqDisplay) +else +ExportScript.Tools.SendData(1022, "ADF2\n" .. ADF2_freqDisplay) +end + +AM_dizaine = mainPanelDevice:get_argument_value(134) * 10 +AM_unite = mainPanelDevice:get_argument_value(136) * 10 +AM_dec = mainPanelDevice:get_argument_value(138) * 10 +AM_cent = mainPanelDevice:get_argument_value(139) * 100 + +AM_dizaine = string.format("%.0f", AM_dizaine) +AM_unite = string.format("%.0f", AM_unite) +AM_dec = string.format("%.0f", AM_dec) +AM_cent = string.format("%.2d", AM_cent) + +if mainPanelDevice:get_argument_value(141) == 1 then +ExportScript.Tools.SendData(1023, "1" .. AM_dizaine .. AM_unite .. "." .. AM_dec .. AM_cent) +else +ExportScript.Tools.SendData(1023, "---.---") end ------------------------------ --- Custom functions -- ------------------------------ \ No newline at end of file +local nadirwp = ExportScript.Tools.split(list_indication(2), "%c")[135] +ExportScript.Tools.SendData(2016, nadirwp) +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/SA342M.lua b/Scripts/DCS-ExportScript/ExportsModules/SA342M.lua index b1f40455..78576460 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/SA342M.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/SA342M.lua @@ -1,30 +1,21 @@ --- SA342M - +-- SA342 Gazelle +-- based on Bailey ExportScripts ExportScript.FoundDCSModule = true -ExportScript.Version.SA342M = "1.2.1" +ExportScript.Version.SA342M = "2.0" 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 - ]] -- Gyro Panel [200] = "%.4f", -- Gyro_Needle_State {-1,1} Gyro Panel SYNC [201] = "%.f", -- Gyro_voyant_test Lamp {0,1} [202] = "%.f", -- Gyro_voyant_trim Lamp {0,1} [203] = "%.f", -- Gyro_voyant_bpp Lamp {0,1} + [208] = "%.f", --GYRO_Flags {0,1} -- Autopilot Panel [37] = "%.4f", -- T_Needle_State {-1,1} Pitch correction Indicator [38] = "%.4f", -- R_Needle_State {-1,1} Roll correction Indicator [39] = "%.4f", -- L_Needle_State {-1,1} Yaw correction Indicator - --[196] = "%.4f", -- RWR_light {0,1} -- RWR background light + [196] = "%.4f", -- RWR_light {0,1} -- RWR background light --[] = "%.4f", -- PE_fondbright {0,1} ??? --[353] = "%.4f", -- NADIR_fondbright {0,1} ??? -- Flare Dispenser Lamps @@ -76,9 +67,9 @@ ExportScript.ConfigEveryFrameArguments = [92] = "%0.1f", -- Baro_Altimeter_press_cent 0X00 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} [95] = "%0.1f", -- Baro_Altimeter_press_mille X000 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} -- radar altimetre - [94] = "%.4f", -- Radar_Altimeter {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0,0.019,0.035,0.072,0.109,0.147,0.18,0.214,0.247,0.283,0.316,0.345,0.376,0.407,0.438,0.469,0.501,0.564,0.606,0.648,0.676,0.706,0.732,0.756,0.775,0.794,0.811,0.829,0.843,0.858,0.87} + [94] = "%.4f", -- Radar_Altimeter feet {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0,0.019,0.035,0.072,0.109,0.147,0.18,0.214,0.247,0.283,0.316,0.345,0.376,0.407,0.438,0.469,0.501,0.564,0.606,0.648,0.676,0.706,0.732,0.756,0.775,0.794,0.811,0.829,0.843,0.858,0.87} [93] = "%.4f", -- DangerRALT_index {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0.0,0.0175,0.0338,0.0715,0.109,0.147,0.182,0.215,0.247,0.282,0.315,0.3445,0.377,0.407,0.439,0.47,0.5005,0.5628,0.6052,0.646,0.675,0.7058,0.7315,0.755,0.7747,0.793,0.8097,0.8272,0.8425,0.8575,0.8693} - --[97] = "%.f", -- RAltlamp {0,1} + [97] = "%.f", -- RAltlamp {0,1} [98] = "%.f", -- RAlt_flag_Panne OFF Flag{0,1} [99] = "%.1f", -- RAlt_flag_MA A (Test) Flag{0,1} [91] = "%.1f", -- RAlt_knob_MA Power/Test Knop{0,1} @@ -179,6 +170,9 @@ ExportScript.ConfigEveryFrameArguments = [193] = "%.f" -- HOT3 WP Lamps NUIT } + + + ExportScript.ConfigArguments = { --[[ @@ -194,14 +188,16 @@ ExportScript.ConfigArguments = [374] = "%1d", -- WP2 - Ma Right [375] = "%1d", -- WP2 - Ma Right Cover [376] = "%1d", -- WP2 - Seq Ripple selection + [377] = "%1d", + [378] = "%1d", -- PILOTSIGHT [171] = "%1d", -- PILOTSIGHT - Pilot Sight -- PILOT STICK --[50] = "%1d", -- PILOT STICK - Magnetic Brake --[53] = "%1d", -- PILOT STICK - Wiper once --[209] = "%1d", -- PILOT STICK - Autopilot Button - --[293] = "%1d", -- PILOT STICK - Slave - --[294] = "%1d", -- PILOT STICK - Auto-Hover + [293] = "%1d", -- PILOT STICK - Slave + [294] = "%1d", -- PILOT STICK - Auto-Hover -- WSO LEFT SIDE STICK [255] = "%1d", -- PE WSO STICK - Lasing Button Cover [256] = "%1d", -- PE WSO STICK - Lasing Button @@ -285,7 +281,7 @@ ExportScript.ConfigArguments = [124] = "%1d", -- TV - On/Off [125] = "%.4f", -- TV - Contrast (Axis) {0.0, 1.0} in 0.1 Steps [123] = "%.4f", -- TV - Brightness (Axis) {0.0, 1.0} in 0.1 Steps - --[126] = "%.4f", -- TV - Cover (Axis) {0.0, 1.0} in 0.1 Steps + [126] = "%.4f", -- TV - Cover (Axis) {0.0, 1.0} in 0.1 Steps -- RWR [148] = "%1d", -- RWR - Off/On/Croc {-1.0,0.0,1.0} [149] = "%1d", -- RWR - Marker @@ -339,7 +335,7 @@ ExportScript.ConfigArguments = [146] = "%1d", -- NAVLIGHTS - Navigation Lights CLI/OFF/FIX {-1.0,0.0,1.0} [228] = "%1d", -- NAVLIGHTS - Anticollision Light NOR/OFF/ATT {-1.0,0.0,1.0} [105] = "%1d", -- NAVLIGHTS - Landing Light Off/Vario/On {-1.0,0.0,1.0} - [106] = "%1d", -- NAVLIGHTS - Landing Light Extend/Retract +-- [106] = "%1d", -- NAVLIGHTS - Landing Light Extend/Retract [382] = "%1d", -- NAVLIGHTS - Panels Lighting On/Off [30] = "%.4f", -- NAVLIGHTS - AntiCollision Light Intensity (Axis) {0.0, 1.0} in 0.1 Steps [229] = "%1d", -- NAVLIGHTS - Formation Lights On/Off @@ -396,348 +392,371 @@ ExportScript.ConfigArguments = [394] = "%1d", -- UHF RADIO - 7 [395] = "%1d", -- UHF RADIO - 8 [396] = "%1d", -- UHF RADIO - 9 - [397] = "%1d" -- UHF RADIO - 0 -} + [397] = "%1d", -- UHF RADIO - 0 ------------------------------ --- HIGH IMPORTANCE EXPORTS -- --- done every export event -- ------------------------------ --- Pointed to by ProcessIkarusDCSHighImportance -function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) - --[[ - every frame export to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] - --[97] = "%.f", -- RAltlamp {0,1} - ExportScript.Tools.SendData(97, (mainPanelDevice:get_argument_value(97) > 0.009 and 1 or 0)) +[1330] = "%1d", --ALV Y +[1331] = "%1d", --ALV G +[1332] = "%1d", --CVS Y +[1333] = "%1d", --CVS G + +[590] = "%1d", --pcb zoom +[591] = "%.2f", --pcb dist +[592] = "%1d", --pcb stab + +[605] = "%1d", --mini cover +[606] = "%1d", --mini arm +[596] = "%1d", --izlid + +[1333] = "%1d", --CVS G +[1333] = "%1d", --CVS G +[172] = "%1d" --periscope + --MEUS-- - --[102] = "%.4f", -- ADF_Aiguille_large Heading Needle large {-360.0,0.0,360.0}{-1.0,0.0,1.0} - local ADF_Aiguille_large = mainPanelDevice:get_argument_value(102) - if ADF_Aiguille_large ~= 0 then - ADF_Aiguille_large = ADF_Aiguille_large + 0.5 - if ADF_Aiguille_large > 1 then - ADF_Aiguille_large = ADF_Aiguille_large - 1.0 - end - end - ExportScript.Tools.SendData(102, string.format("%.4f", ADF_Aiguille_large)) +} +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + + ExportScript.Radios(mainPanelDevice) + end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) - --[[ - every frame export to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] end ------------------------------------------------------ --- LOW IMPORTANCE EXPORTS -- --- done every gExportLowTickInterval export events -- ------------------------------------------------------ - --- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to Ikarus - Example from A-10C - Get Radio Frequencies - get data from device - local lUHFRadio = GetDevice(54) - ExportScript.Tools.SendData("ExportID", "Format") - ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data - ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] +end - -- UHF Radio - --------------------------------------------------- - local lUHFRadio = GetDevice(31) - if lUHFRadio:is_on() then - --ExportScript.Tools.SendData(2000, string.format("%.3f", lUHFRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('UHF_Freq: '..ExportScript.Tools.dump(list_indication(5))) +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - local lUHFRadioFreq = ExportScript.Tools.getListIndicatorValue(5) - if lUHFRadioFreq ~= nil and lUHFRadioFreq.UHF_Freq ~= nil then - ExportScript.Tools.SendData(2000, string.format("%s", lUHFRadioFreq.UHF_Freq)) - end - else - ExportScript.Tools.SendData(2000, " ") + +end + +function ExportScript.Radios(mainPanelDevice) + + +if mainPanelDevice:get_argument_value(556) == 0 then + + +elseif mainPanelDevice:get_argument_value(556) > 0 then + +local rotor = ((mainPanelDevice:get_argument_value(52) - 0.096) * (1/0.175)) + turbine = ((mainPanelDevice:get_argument_value(135) - 0.095) * 61.80469715698393) +rotor = string.format("%.1f", rotor) +turbine = string.format("%.1f", turbine) + + -- [300] = "%.f", -- Voyant_DEM Start lamp{0,1} + -- [301] = "%.f", -- Voyant_RLT Idle lamp {0,1} + -- [302] = "%.f", -- Voyant_BLOC Blocked Engine lamp {0,1} + +--idleio = mainPanelDevice:get_argument_value(301) +--startio = mainPanelDevice:get_argument_value(300) +--blocio =mainPanelDevice:get_argument_value(302) + +local idleio = mainPanelDevice:get_argument_value(301) + if idleio == 0 then + idlelamp="⚫" + elseif idleio > 0 then + idlelamp="🟡" end - -- AM Radio - --------------------------------------------------- - local lAMRadio = GetDevice(5) - if lAMRadio:is_on() then - --ExportScript.Tools.SendData(2001, string.format("%.3f", lAMRadio:get_frequency()/1000000)) - ExportScript.Tools.SendData(2001, ExportScript.Tools.RoundFreqeuncy(lAMRadio:get_frequency()/1000000)) +local startio = mainPanelDevice:get_argument_value(300) + if startio == 0 then + startlamp="⚫" + elseif startio > 0 then + startlamp="🟢" end - -- FM Radio PR4G - --------------------------------------------------- - local lFMRadio = GetDevice(28) - if lFMRadio:is_on() then - --ExportScript.Tools.SendData(2002, string.format("%.3f", lFMRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('FM_Freq: '..ExportScript.Tools.dump(list_indication(4))) +local blocio = mainPanelDevice:get_argument_value(302) + if blocio == 0 then + bloclamp="⚫" + elseif blocio > 0 then + bloclamp="🔴" + end - local lFMRadioFreq = ExportScript.Tools.getListIndicatorValue(4) +ExportScript.Tools.SendData(1006, string.format("R " .. rotor .. "\n" .. + "T " .. turbine .. "\n" .. + startlamp .. idlelamp .. bloclamp)) +end +--value = (output - output_min) * ((value_max) / (output_max-output_min)) +t4p = mainPanelDevice:get_argument_value(15) +t4temp = (-9679.7 * t4p^5) + (25333 * t4p^4) - (24033 * t4p^3) + (9712.1 * t4p^2) - (346.74 * t4p) - 105.2 - if lFMRadioFreq ~= nil and lFMRadioFreq.FM_Freq ~= nil then - ExportScript.Tools.SendData(2002, string.format("%s", lFMRadioFreq.FM_Freq)) - end - else - ExportScript.Tools.SendData(2002, " ") + + if + t4temp <= 550 then + t4lamp = "🟢" + elseif + t4temp > 550 and t4temp < 600 then + t4lamp = "🟡" + elseif + t4temp >= 600 then + t4lamp = "🔴" end - -- [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} -- laut clickabledata.lua - -- [273] = "%.1f", -- FM RADIO - Chanel Selector {0.0,0.2,0.3,0.5,0.6,0.8,0.9,1.1} -- gerundet - local lFM_RADIO_PRESET = {[0.0]="1",[0.2]="2",[0.3]="3",[0.5]="4",[0.6]="5",[0.8]="6",[0.9]="0",[1.1]="R"} - ExportScript.Tools.SendData(2003, lFM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(273), 1, "ceil")]) - - -- Weapon Panel - --------------------------------------------------- - if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On - local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(8) - - if lWeaponPanelDisplays ~= nil then - if lWeaponPanelDisplays.LEFT_screen ~= nil then - ExportScript.Tools.SendData(2004, string.format("%s", lWeaponPanelDisplays.LEFT_screen)) - end - if lWeaponPanelDisplays.RIGHT_screen ~= nil then - ExportScript.Tools.SendData(2005, string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) - end - end - else - ExportScript.Tools.SendData(2004, "-") - ExportScript.Tools.SendData(2005, "-") + t4temp = string.format("%.f", t4temp) --?? + +local oiltemp = (mainPanelDevice:get_argument_value(151) * 100) + + if + oiltemp <= 24 then + oillamp = "🟡" + elseif + oiltemp > 24 and oiltemp < 85 then + oillamp = "🟢" + elseif + oiltemp >= 85 then + oillamp = "🔴" end -end -function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) - --[[ - export in low tick interval to DAC - Example from A-10C - Get Radio Frequencies - get data from device - local UHF_RADIO = GetDevice(54) - ExportScript.Tools.SendDataDAC("ExportID", "Format") - ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) - ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) - ]] + oiltemp = string.format("%.f", oiltemp) --?? - -- UHF Radio - --------------------------------------------------- - local lUHFRadio = GetDevice(31) - if lUHFRadio:is_on() then - --ExportScript.Tools.SendDataDAC("2000", string.format("%.3f", lUHFRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('UHF_Freq: '..ExportScript.Tools.dump(list_indication(5))) + ExportScript.Tools.SendData(1005, string.format("🌡️Oil\n" .. + oillamp .. oiltemp .. " ºC" .. "\n" .. + "🌡️T4\n" .. + t4lamp .. t4temp .. " ºC")) +----------- +--output_min = 0 +--output_max = 0.886 +--value_min = 0 +--value_max = 370 +--output = 1 - local lUHFRadioFreq = ExportScript.Tools.getListIndicatorValue(5) +--value = (output - output_min) * ((value_max) / (output_max-output_min)) - if lUHFRadioFreq ~= nil and lUHFRadioFreq.UHF_Freq ~= nil then - ExportScript.Tools.SendDataDAC("2000", string.format("%s", lUHFRadioFreq.UHF_Freq)) - end +--fuel +fuel = ((mainPanelDevice:get_argument_value(137) - 0.093) * ((450)/(0.932-0.093))) +fuel = string.format("%.f", fuel) +ExportScript.Tools.SendData(1016, string.format(fuel .. "L")) + +torque = ((mainPanelDevice:get_argument_value(16) - 0.085) * ((110)/(0.908-0.085))) +torque = string.format("%.f", torque) +ExportScript.Tools.SendData(1008, string.format("⚙️" .. torque .. "%%\n\n" .. "⛽" .. fuel .. "L")) + +--IAS +local x = (mainPanelDevice:get_argument_value(51)) +local IASkmh = ((294.33 * x^3) - (245.86 * x^2) + (396.8 * x) + 12.511) +IASkmh = string.format("%.f", IASkmh) +IASkts = IASkmh * 0.539957 +IASkts = string.format("%.f", IASkts) +ExportScript.Tools.SendData(1009, string.format(IASkmh .. " Kmh\n" .. + "(" .. IASkts .. " Kts)")) +--Rad alt +local x = (mainPanelDevice:get_argument_value(94)) +local ralt = (2329.2*x^4) - (1163.2*x^3) - (1.5301*x^2) + (325.05*x) +ralt = string.format("%.f", ralt) + +ExportScript.Tools.SendData(1015, string.format(ralt)) + +--baro alt +baro = ((mainPanelDevice:get_argument_value(87)) * 10000) +baroft = (baro * 3.2808399) +baroft = string.format("%.f", baroft) + +QNH1000 = ((mainPanelDevice:get_argument_value(95)) * 10) +QNH0100 = ((mainPanelDevice:get_argument_value(92)) * 10) +QNH0010 = ((mainPanelDevice:get_argument_value(90)) * 10) +QNH0001 = ((mainPanelDevice:get_argument_value(88)) * 10) + +QNH1000 = string.format("%.f", QNH1000) +QNH0100 = string.format("%.f", QNH0100) +QNH0010 = string.format("%.f", QNH0010) +QNH0001 = string.format("%.f", QNH0001) + +ExportScript.Tools.SendData(1010, string.format(ralt .. "m (R)\n" .. baroft .. "ft (B)\n" .. QNH1000 .. QNH0100 .. QNH0010 .. QNH0001)) + +---ADI to waypoint +phdg = ((mainPanelDevice:get_argument_value(113)) * 360) +phdg = string.format("%.f", phdg) +ExportScript.Tools.SendData(1018, string.format(phdg .. "º")) + +toWPdiv = ((mainPanelDevice:get_argument_value(102)) * 360) +toWPdiv = string.format("%.f", toWPdiv) +toWPhdg = phdg + toWPdiv + +WPdistcent = (mainPanelDevice:get_argument_value(110) * 10) +WPdistcent = string.format("%.f", WPdistcent) +WPdistdix = (mainPanelDevice:get_argument_value(111) * 10) +WPdistdix = string.format("%.f", WPdistdix) +WPdistunit = (mainPanelDevice:get_argument_value(112) * 10) +WPdistunit = string.format("%.f", WPdistunit) +ExportScript.Tools.SendData(1019, string.format(WPdistcent .. WPdistdix .. "." .. WPdistunit .. "Km")) + + + +ExportScript.Tools.SendData(1017, string.format("Hdg " .. phdg .. "º\n" + .. "Wpt " .. toWPdiv .. "º\n" + .. WPdistcent .. WPdistdix .. "." .. WPdistunit)) + +--CWP any + +w1 = mainPanelDevice:get_argument_value(1) +w2 = mainPanelDevice:get_argument_value(2) +w3 = mainPanelDevice:get_argument_value(3) +w4 = mainPanelDevice:get_argument_value(4) +w5 = mainPanelDevice:get_argument_value(5) +w6 = mainPanelDevice:get_argument_value(6) +w7 = mainPanelDevice:get_argument_value(7) +w8 = mainPanelDevice:get_argument_value(8) +w9 = mainPanelDevice:get_argument_value(9) +w10 = mainPanelDevice:get_argument_value(10) +w11 = mainPanelDevice:get_argument_value(11) +w12 = mainPanelDevice:get_argument_value(12) +w13 = mainPanelDevice:get_argument_value(13) + +if (w1 + w2 + w3 + w4 + w5 + w6 + w7 + + w8 + w9 + w10 + w11 + w12 + w13) > 0 then + w14 = 1 else - ExportScript.Tools.SendDataDAC("2000", "-") + w14 = 0 end +ExportScript.Tools.SendData(1018, w14) - -- AM Radio - --------------------------------------------------- - local lAMRadio = GetDevice(5) - if lAMRadio:is_on() then - --ExportScript.Tools.SendDataDAC("2001", string.format("%.3f", lAMRadio:get_frequency()/1000000)) - ExportScript.Tools.SendDataDAC("2001", ExportScript.Tools.RoundFreqeuncy(lAMRadio:get_frequency()/1000000)) +--Hot3 +-- [181] = "%.3f", -- PH - Station Select 0/1/0/2/0/3/0/4/0 {0.0,0.125,0.250,0,375,0.500,0.625,0.750,0.875,1.0} + + +----------- +--Clock +gameTimeLocal = LoGetMissionStartTime() + LoGetModelTime() + +function formatTime(time) + seconds = math.floor(time) % 60 + minutes = math.floor(time / 60) % 60 + hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. string.format("%02d", minutes) .. "L" +end + +ExportScript.Tools.SendData(9999, formatTime(gameTimeLocal)) +--digital cronometro + chmin = (mainPanelDevice:get_argument_value(44) * ((1 / (1/30))*60)) +chmin = string.format("%.f", chmin) + + hour2= math.floor(chmin / 3600) + min1= math.floor(chmin / 60) + if + min1 >= 60 then min3 = min1 - (60 * hour2) + elseif + min1 < 60 then min3 = min1 end + sec1= math.floor(chmin % 60) + +--hour2 = string.format("%02i", hour) +--hour = string.format(hour .. "H") +min3 = string.format("%02i", min3) +min3 = string.format(min3 .. "'") +sec1 = string.format("%02i", sec1) - -- FM Radio PR4G - --------------------------------------------------- - local lFMRadio = GetDevice(28) - if lFMRadio:is_on() then - --ExportScript.Tools.SendDataDAC(2002, string.format("%.3f", lFMRadio:get_frequency()/1000000)) - --ExportScript.Tools.WriteToLog('FM_Freq: '..ExportScript.Tools.dump(list_indication(4))) +ExportScript.Tools.SendData(1012, string.format(formatTime(gameTimeLocal))) --.. sec)) --just Local Hour +ExportScript.Tools.SendData(1013, string.format(min3 .. sec1)) --just the timer +ExportScript.Tools.SendData(1014, string.format(formatTime(gameTimeLocal) .. "\n" .. "🕗" .."\n" .. + min3 .. sec1)) --Local Hour and Timer - local lFMRadioFreq = ExportScript.Tools.getListIndicatorValue(4) +if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On + local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(7) - if lFMRadioFreq ~= nil and lFMRadioFreq.FM_Freq ~= nil then - ExportScript.Tools.SendDataDAC("2002", string.format("%s", lFMRadioFreq.FM_Freq)) + if lWeaponPanelDisplays ~= nil then + if lWeaponPanelDisplays.LEFT_screen ~= nil then + ExportScript.Tools.SendData(2000, string.format("%s", lWeaponPanelDisplays.LEFT_screen)) + end + if lWeaponPanelDisplays.RIGHT_screen ~= nil then + ExportScript.Tools.SendData(2001, string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) end - else - ExportScript.Tools.SendDataDAC("2002", "-") end +else + ExportScript.Tools.SendData(2000, "-") + ExportScript.Tools.SendData(2001, "-") +end +------------ +if mainPanelDevice:get_argument_value(272) > 0.0 then +FM = ExportScript.Tools.split(list_indication(3), "%c")[9] +ExportScript.Tools.SendData(1020, FM) +else +ExportScript.Tools.SendData(1020, "--.---") +end - -- [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} -- laut clickabledata.lua - -- [273] = "%.1f", -- FM RADIO - Chanel Selector {0.0,0.2,0.3,0.5,0.6,0.8,0.9,1.1} -- gerundet - local lFM_RADIO_PRESET = {[0.0]="1",[0.2]="2",[0.3]="3",[0.5]="4",[0.6]="5",[0.8]="6",[0.9]="0",[1.1]="R"} - ExportScript.Tools.SendDataDAC("2003", lFM_RADIO_PRESET[ExportScript.Tools.round(mainPanelDevice:get_argument_value(273), 1, "ceil")]) +if mainPanelDevice:get_argument_value(383) > 0.0 then +UHF = ExportScript.Tools.split(list_indication(4), "%c")[9] +ExportScript.Tools.SendData(1021, UHF) +else +ExportScript.Tools.SendData(1021, "---.---") +end + +----------- - -- Weapon Panel - --------------------------------------------------- - if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On - local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(8) - - if lWeaponPanelDisplays ~= nil then - if lWeaponPanelDisplays.LEFT_screen ~= nil then - ExportScript.Tools.SendDataDAC("2004", string.format("%s", lWeaponPanelDisplays.LEFT_screen)) - end - if lWeaponPanelDisplays.RIGHT_screen ~= nil then - ExportScript.Tools.SendDataDAC("2005", string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) - end - end - else - ExportScript.Tools.SendDataDAC("2004", "-") - ExportScript.Tools.SendDataDAC("2005", "-") - end + --------- + -- ADF -- + --------- + local ADF_nav1_centaine = mainPanelDevice:get_argument_value(158) * 10 + local ADF_nav1_dizaine = mainPanelDevice:get_argument_value(159) * 10 + local ADF_nav1_unite = mainPanelDevice:get_argument_value(160) * 10 + local ADF_nav1_dec = mainPanelDevice:get_argument_value(161) * 10 - -- generic Radio display and frequency rotarys - ------------------------------------------------- - -- genericRadioConf - ExportScript.genericRadioConf = {} - ExportScript.genericRadioConf['maxRadios'] = 3 -- numbers of aviables/supported radios - ExportScript.genericRadioConf[1] = {} -- first radio - ExportScript.genericRadioConf[1]['Name'] = "UHF Radio" -- name of radio - ExportScript.genericRadioConf[1]['DeviceID'] = 31 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[1]['minFrequency'] = 225.000 -- lowest frequency - ExportScript.genericRadioConf[1]['maxFrequency'] = 399.975 -- highest frequency - ExportScript.genericRadioConf[1]['Power'] = {} -- power button active - ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3001 -- power button id from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.167 -- power on value from cklickable.lua - ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - --ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active - --ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua - --ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active - --ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - --ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"} - --ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change - --ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active - --ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua - --ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - --ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - -- Load Button = VLD Button - ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset - ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3003 -- load button id from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active - --ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua - --ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[2] = {} -- secound radio - ExportScript.genericRadioConf[2]['Name'] = "AM Radio" -- name of radio - ExportScript.genericRadioConf[2]['DeviceID'] = 5 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[2]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[2]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[2]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[2]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[2]['minFrequency'] = 118.000 -- lowest frequency - ExportScript.genericRadioConf[2]['maxFrequency'] = 143.975 -- highest frequency - ExportScript.genericRadioConf[2]['Power'] = {} -- power button active - ExportScript.genericRadioConf[2]['Power']['ButtonID'] = 3001 -- power button id from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOn'] = 0.33 -- power on value from cklickable.lua - ExportScript.genericRadioConf[2]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - --ExportScript.genericRadioConf[2]['Volume'] = {} -- volume knob active - --ExportScript.genericRadioConf[2]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua - --ExportScript.genericRadioConf[2]['Preset'] = {} -- preset knob active - --ExportScript.genericRadioConf[2]['Preset']['ArgumentID'] = 137 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[2]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - --ExportScript.genericRadioConf[2]['Preset']['List'] = {[0.0]="01",[0.01]="02",[0.02]="03",[0.03]="04",[0.04]="05",[0.05]="06",[0.06]="07",[0.07]="08",[0.08]="09",[0.09]="10",[0.10]="11",[0.11]="12",[0.12]="13",[0.13]="14",[0.14]="15",[0.15]="16",[0.16]="17",[0.17]="18",[0.18]="19",[0.19]="20",[0.20]="01"} - --ExportScript.genericRadioConf[2]['Preset']['Step'] = 0.01 -- minimal step for preset change - --ExportScript.genericRadioConf[2]['Squelch'] = {} -- squelch switch active - --ExportScript.genericRadioConf[2]['Squelch']['ArgumentID'] = 134 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[2]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua - --ExportScript.genericRadioConf[2]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - --ExportScript.genericRadioConf[2]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua - --ExportScript.genericRadioConf[2]['Load'] = {} -- load button preset - --ExportScript.genericRadioConf[2]['Load']['ButtonID'] = 3006 -- load button id from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset'] = {} -- switch manual or preset active - --ExportScript.genericRadioConf[2]['ManualPreset']['ArgumentID'] = 135 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua - --ExportScript.genericRadioConf[2]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadioConf[3] = {} -- secound radio - ExportScript.genericRadioConf[3]['Name'] = "FM Radio" -- name of radio - ExportScript.genericRadioConf[3]['DeviceID'] = 28 -- DeviceID for GetDevice from device.lua - ExportScript.genericRadioConf[3]['setFrequency'] = true -- change frequency active - ExportScript.genericRadioConf[3]['FrequencyMultiplicator'] = 1000000 -- Multiplicator from Hz to MHz - ExportScript.genericRadioConf[3]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style - ExportScript.genericRadioConf[3]['FrequencyStep'] = 25 -- minimal step for frequency change - ExportScript.genericRadioConf[3]['minFrequency'] = 30.000 -- lowest frequency - ExportScript.genericRadioConf[3]['maxFrequency'] = 87.975 -- highest frequency - ExportScript.genericRadioConf[3]['Power'] = {} -- power button active - ExportScript.genericRadioConf[3]['Power']['ButtonID'] = 3001 -- power button id from cklickable.lua - ExportScript.genericRadioConf[3]['Power']['ValueOn'] = 0.25 -- power on value from cklickable.lua - ExportScript.genericRadioConf[3]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua - --ExportScript.genericRadioConf[3]['Volume'] = {} -- volume knob active - --ExportScript.genericRadioConf[3]['Volume']['ButtonID'] = 3005 -- volume button id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset'] = {} -- preset knob active - ExportScript.genericRadioConf[3]['Preset']['ArgumentID'] = 273 -- ManualPreset argument id from cklickable.lua - ExportScript.genericRadioConf[3]['Preset']['ButtonID'] = 3002 -- preset button id from cklickable.lua - --ExportScript.genericRadioConf[3]['Preset']['ButtonID2'] = 3002 -- preset button id from cklickable.lua - -- Preset based on switchlogic on clickabledata.lua - -- [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} -- laut clickabledata.lua - ExportScript.genericRadioConf[3]['Preset']['List'] = {[0.0]="1",[0.143]="2",[0.286]="3",[0.429]="4",[0.572]="5",[0.715]="6",[0.858]="0",[1.0]="-"} - ExportScript.genericRadioConf[3]['Preset']['Step'] = 0.143 -- minimal step for preset change - --ExportScript.genericRadioConf[3]['Preset']['Step2'] = -0.01 -- minimal step for preset change - --ExportScript.genericRadioConf[3]['Squelch'] = {} -- squelch switch active - --ExportScript.genericRadioConf[3]['Squelch']['ArgumentID'] = 148 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[3]['Squelch']['ButtonID'] = 3008 -- squelch button id from cklickable.lua - --ExportScript.genericRadioConf[3]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua - --ExportScript.genericRadioConf[3]['Squelch']['ValueOff'] = -1.0 -- squelch off value from cklickable.lua - --ExportScript.genericRadioConf[3]['Load'] = {} -- load button preset - --ExportScript.genericRadioConf[3]['Load']['ButtonID'] = 3004 -- load button id from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset'] = {} -- switch manual or preset active - --ExportScript.genericRadioConf[3]['ManualPreset']['ArgumentID'] = 149 -- ManualPreset argument id from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset']['ButtonID'] = 3004 -- ManualPreset button id from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset']['ValueManual'] = 0.2-- ManualPreset Manual value from cklickable.lua - --ExportScript.genericRadioConf[3]['ManualPreset']['ValuePreset'] = 0.3-- ManualPreset Preset value from cklickable.lua - - ExportScript.genericRadio(nil, nil) + ADF_nav1_centaine = string.format("%.0f", ADF_nav1_centaine) + ADF_nav1_dizaine = string.format("%.0f", ADF_nav1_dizaine) + ADF_nav1_unite = string.format("%.0f", ADF_nav1_unite) + ADF_nav1_dec = string.format("%.1d", ADF_nav1_dec) + + local ADF_nav2_centaine = mainPanelDevice:get_argument_value(162) * 10 + local ADF_nav2_dizaine = mainPanelDevice:get_argument_value(163) * 10 + local ADF_nav2_unite = mainPanelDevice:get_argument_value(164) * 10 + local ADF_nav2_dec = mainPanelDevice:get_argument_value(165) * 10 + + ADF_nav2_centaine = string.format("%.0f", ADF_nav2_centaine) + ADF_nav2_dizaine = string.format("%.0f", ADF_nav2_dizaine) + ADF_nav2_unite = string.format("%.0f", ADF_nav2_unite) + ADF_nav2_dec = string.format("%.1d", ADF_nav2_dec) + - --===================================================================================== - --[[ - ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) - ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + local ADF_RADIO_Select = mainPanelDevice:get_argument_value(166) + local isADF1Selected = 1 + if ADF_RADIO_Select > 0.01 then + isADF1Selected = 0 + end + ExportScript.Tools.SendData(2007, isADF1Selected) - -- list_indication get tehe value of cockpit displays - local ltmp1 = 0 - for ltmp2 = 0, 20, 1 do - ltmp1 = list_indication(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + local ADF_display + if isADF1Selected == 1 then + ADF_freqDisplay = (ADF_nav1_centaine .. ADF_nav1_dizaine .. ADF_nav1_unite .. "." .. ADF_nav1_dec) + else + ADF_freqDisplay = (ADF_nav2_centaine .. ADF_nav2_dizaine .. ADF_nav2_unite .. "." .. ADF_nav2_dec) end - ]] ---[[ - -- getmetatable get function name from devices - local ltmp1 = 0 - for ltmp2 = 1, 70, 1 do - ltmp1 = GetDevice(ltmp2) - ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) - ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + + local ADF_shortandSelect + if isADF1Selected == 1 then + ADF_shortandSelect = "A1" + else + ADF_shortandSelect = "A2" end -]] + + local ADF1_freqDisplay = (ADF_nav1_centaine .. ADF_nav1_dizaine .. ADF_nav1_unite .. "." .. ADF_nav1_dec) + local ADF2_freqDisplay = (ADF_nav2_centaine .. ADF_nav2_dizaine .. ADF_nav2_unite .. "." .. ADF_nav2_dec) + ExportScript.Tools.SendData(2014, "ADF1\n" .. ADF1_freqDisplay) + ExportScript.Tools.SendData(2015, "ADF2\n" .. ADF2_freqDisplay) + --NADIR-- + +if isADF1Selected == 1 then +ExportScript.Tools.SendData(1022, "ADF1\n" .. ADF1_freqDisplay) +else +ExportScript.Tools.SendData(1022, "ADF2\n" .. ADF2_freqDisplay) +end + +AM_dizaine = mainPanelDevice:get_argument_value(134) * 10 +AM_unite = mainPanelDevice:get_argument_value(136) * 10 +AM_dec = mainPanelDevice:get_argument_value(138) * 10 +AM_cent = mainPanelDevice:get_argument_value(139) * 100 + +AM_dizaine = string.format("%.0f", AM_dizaine) +AM_unite = string.format("%.0f", AM_unite) +AM_dec = string.format("%.0f", AM_dec) +AM_cent = string.format("%.2d", AM_cent) + +if mainPanelDevice:get_argument_value(141) == 1 then +ExportScript.Tools.SendData(1023, "1" .. AM_dizaine .. AM_unite .. "." .. AM_dec .. AM_cent) +else +ExportScript.Tools.SendData(1023, "---.---") end ------------------------------ --- Custom functions -- ------------------------------ \ No newline at end of file +local nadirwp = ExportScript.Tools.split(list_indication(2), "%c")[135] +ExportScript.Tools.SendData(2016, nadirwp) +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/SA342Minigun.lua b/Scripts/DCS-ExportScript/ExportsModules/SA342Minigun.lua new file mode 100644 index 00000000..67d10754 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/SA342Minigun.lua @@ -0,0 +1,763 @@ +-- SA342 Gazelle +-- based on Bailey ExportScripts +ExportScript.FoundDCSModule = true +ExportScript.Version.SA342Minigun = "2.0" + +ExportScript.ConfigEveryFrameArguments = +{ + -- Gyro Panel + [200] = "%.4f", -- Gyro_Needle_State {-1,1} Gyro Panel SYNC + [201] = "%.f", -- Gyro_voyant_test Lamp {0,1} + [202] = "%.f", -- Gyro_voyant_trim Lamp {0,1} + [203] = "%.f", -- Gyro_voyant_bpp Lamp {0,1} + [208] = "%.f", --GYRO_Flags {0,1} + -- Autopilot Panel + [37] = "%.4f", -- T_Needle_State {-1,1} Pitch correction Indicator + [38] = "%.4f", -- R_Needle_State {-1,1} Roll correction Indicator + [39] = "%.4f", -- L_Needle_State {-1,1} Yaw correction Indicator + [196] = "%.4f", -- RWR_light {0,1} -- RWR background light + --[] = "%.4f", -- PE_fondbright {0,1} ??? + --[353] = "%.4f", -- NADIR_fondbright {0,1} ??? + -- Flare Dispenser Lamps + [233] = "%.f", -- Voyant_FD_On {0,1} Power On + [231] = "%.f", -- Voyant_FD_G {0,1} select Left + [232] = "%.f", -- Voyant_FD_D {0,1} select Right + [227] = "%.f", -- Voyant_FD_LEU {0,1} Status LEU + [223] = "%.f", -- Voyant_FD_G_vide1 {0,1} Status Left G + [224] = "%.f", -- Voyant_FD_G_vide2 {0,1} Status Left VIDE + [225] = "%.f", -- Voyant_FD_D_vide1 {0,1} Status Right G + [226] = "%.f", -- Voyant_FD_D_vide2 {0,1} Status Right VIDE + -- ADF Radio + [158] = "%0.1f", -- ADF_nav1_centaine {0,1} X00.0 khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [159] = "%0.1f", -- ADF_nav1_dizaine {0,1} 0X0.0 khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [160] = "%0.1f", -- ADF_nav1_unite {0,1} 00X.0 khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [161] = "%0.1f", -- ADF_nav1_dec {0,1} 000.X khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [162] = "%0.1f", -- ADF_nav2_centaine {0,1} X00.0 khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [163] = "%0.1f", -- ADF_nav2_dizaine {0,1} 0X0.0 khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [164] = "%0.1f", -- ADF_nav2_unite {0,1} 00X.0 khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [165] = "%0.1f", -- ADF_nav2_dec {0,1} 000.X khz {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + -- ADF Gauge + [113] = "%.4f", -- ADF_Fond Compass rose {0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360}{0.0,0.028,0.055,0.084,0.111,0.138,0.166,0.194,0.222,0.249,0.2775,0.305,0.332,0.36,0.388,0.415,0.4434,0.47,0.498,0.526,0.555,0.583,0.611,0.638,0.6665,0.694,0.722,0.75,0.776,0.805,0.833,0.861,0.8885,0.917,0.944,0.972,1.0} + --[102] = "%.4f", -- ADF_Aiguille_large Heading Needle large {-360.0,0.0,360.0}{-1.0,0.0,1.0} + [103] = "%.4f", -- ADF_Aiguille_fine Heading Needle fine {-360.0,0.0,360.0}{-1.0,0.0,1.0} + [107] = "%.1f", -- ADF_FlagCAP {0,1} + [109] = "%.1f", -- ADF_FlagBut {0,1} + [108] = "%.1f", -- ADF_FlagCompteur PX Flag {0,1} + [110] = "%0.1f", -- ADF_compteur_Cent {0,1} X00 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [111] = "%0.1f", -- ADF_compteur_Dix {0,1} 0X0 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [112] = "%0.1f", -- ADF_compteur_Unit {0,1} 00X {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + -- CLOCK + [41] = "%.3f", -- CLOCK_HOUR {0,1,2,3,4,5,6,7,8,9,10,11,12}{0,0.081,0.162,0.245,0.33,0.415,0.501,0.587,0.672,0.756,0.838,0.919,1} + [42] = "%.3f", -- CLOCK_SECOND {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60}{0,0.017,0.033,0.049,0.065,0.08,0.098,0.115,0.131,0.147,0.163,0.18,0.195,0.213,0.23,0.246,0.262,0.279,0.296,0.313,0.33,0.346,0.363,0.38,0.397,0.415,0.431,0.449,0.466,0.483,0.501,0.518,0.535,0.552,0.569,0.586,0.604,0.621,0.638,0.655,0.672,0.688,0.705,0.722,0.739,0.755,0.771,0.788,0.804,0.821,0.838,0.853,0.87,0.885,0.902,0.919,0.934,0.95,0.967,0.984,1} + [43] = "%.3f", -- CLOCK_MINUTE {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60}{0,0.017,0.033,0.049,0.065,0.08,0.098,0.115,0.131,0.147,0.163,0.18,0.195,0.213,0.23,0.246,0.262,0.279,0.296,0.313,0.33,0.346,0.363,0.38,0.397,0.415,0.431,0.449,0.466,0.483,0.501,0.518,0.535,0.552,0.569,0.586,0.604,0.621,0.638,0.655,0.672,0.688,0.705,0.722,0.739,0.755,0.771,0.788,0.804,0.821,0.838,0.853,0.87,0.885,0.902,0.919,0.934,0.95,0.967,0.984,1} + [44] = "%.3f", -- CLOCK_MINI {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}{0,0.032,0.065,0.098,0.131,0.164,0.198,0.231,0.264,0.297,0.331,0.364,0.397,0.43,0.464,0.497,0.523,0.551,0.576,0.605,0.63,0.659,0.684,0.714,0.758,0.796,0.838,0.879,0.92,0.958,1} + [210] = "%.4f", -- Clock_ExtCouronne + -- Wipers + --[547] = "%.4f", -- EGPilote {-1,1} + --[546] = "%.4f", -- EGCopilote {-1,1} + -- LIGHTS + --[40] = "%.4f", -- Lum_Plafond {0,1} Main Panel Lights + --[142] = "%.4f", -- PBOIntensity {0,1} Main Panel Background lights + --[144] = "%.4f", -- PUPIntensity {0,1} Lower Panel Background lights + -- Baro altimetre + [87] = "%.4f", -- Baro_Altimeter_thousands Needle {0.0,1.0} + [573] = "%.4f", -- Baro_Altimeter_hundred Needle {0.0,1.0} + [88] = "%0.1f", -- Baro_Altimeter_press_unite 000X {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [90] = "%0.1f", -- Baro_Altimeter_press_dix 00X0 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [92] = "%0.1f", -- Baro_Altimeter_press_cent 0X00 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [95] = "%0.1f", -- Baro_Altimeter_press_mille X000 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + -- radar altimetre + [94] = "%.4f", -- Radar_Altimeter feet {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0,0.019,0.035,0.072,0.109,0.147,0.18,0.214,0.247,0.283,0.316,0.345,0.376,0.407,0.438,0.469,0.501,0.564,0.606,0.648,0.676,0.706,0.732,0.756,0.775,0.794,0.811,0.829,0.843,0.858,0.87} + [93] = "%.4f", -- DangerRALT_index {0,5,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850}{0.0,0.0175,0.0338,0.0715,0.109,0.147,0.182,0.215,0.247,0.282,0.315,0.3445,0.377,0.407,0.439,0.47,0.5005,0.5628,0.6052,0.646,0.675,0.7058,0.7315,0.755,0.7747,0.793,0.8097,0.8272,0.8425,0.8575,0.8693} + +[97] = "%.f", -- RAltlamp {0,1} + [98] = "%.f", -- RAlt_flag_Panne OFF Flag{0,1} + [99] = "%.1f", -- RAlt_flag_MA A (Test) Flag{0,1} + [91] = "%.1f", -- RAlt_knob_MA Power/Test Knop{0,1} + -- TORQUE + [16] = "%.3f", -- Torque {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110}{0.085,0.13,0.172,0.214,0.253,0.289,0.326,0.362,0.395,0.43,0.466,0.501,0.537,0.573,0.607,0.639,0.676,0.71,0.746,0.785,0.826,0.865,0.908} + [55] = "%.3f", -- Torque_Bug {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110}{0.084,0.128,0.171,0.2134,0.252,0.2889,0.325,0.361,0.396,0.431,0.467,0.501,0.535,0.571,0.605,0.639,0.674,0.71,0.745,0.785,0.825,0.865,0.91} + [17] = "%.f", -- VOYANT_TORQUE Lamp {0,1} + -- Gyro_Compas + [26] = "%.3f", -- Gyro_Compas {0,30,60,90,120,150,180,210,240,270,300,330,360}{0,0.083,0.167,0.251,0.334,0.418,0.5,0.583,0.667,0.751,0.832,0.917,1} + -- Stby HA ADI + [214] = "%.4f", -- StbyHA_Roll {-180,-90,-60,-30,-20,-10,0,10,20,30,60,90,180}{-1,-0.502,-0.335,-0.166,-0.11,-0.052,0,0.055,0.113,0.171,0.334,0.502,1} + [213] = "%.4f", -- StbyHA_Pitch {-180,-150,-120,-90,-60,-50,-40,-30,-20,-15,-10,-5,0,5,10,15,20,30,40,50,60,90,120,150,180}{-1,-0.833,-0.667,-0.5,-0.333,-0.278,-0.223,-0.167,-0.111,-0.084,-0.057,-0.003,0,0.028,0.056,0.083,0.111,0.167,0.223,0.278,0.333,0.5,0.667,0.833,1} + [211] = "%.1f", -- StdbyHA_Flag Fault Flag {0,1} + [212] = "%.4f", -- Stdby_HA_W W Sympol {0,1} + [217] = "%.4f", -- Stdby_HA_Curseur Knob Needle {0,1} + -- QComb Fuel Indicator + [137] = "%.3f", -- QComb {0,50,100,150,200,250,300,350,400,500}{0.093,0.243,0.354,0.428,0.521,0.621,0.692,0.771,0.834,0.932} + -- Horizon Artificiel Principal + [27] = "%.4f", -- Pitch_HA {-180,-170,-160,-150,-140,-130,-120,-110,-100,-90,-80,-70,-60,-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180}{-1,-0.946,-0.898,-0.838,-0.78,-0.723,-0.667,-0.61,-0.556,-0.501,-0.446,-0.393,-0.334,-0.277,-0.223,-0.166,-0.104,-0.054,0,0.054,0.102,0.161,0.22,0.277,0.333,0.389,0.443,0.498,0.553,0.607,0.666,0.722,0.776,0.834,0.896,0.946,1} + [28] = "%.4f", -- Roll_HA {-180,-90,-60,-30,-20,-10,0,10,20,30,60,90,180}{-1,-0.498,-0.331,-0.162,-0.111,-0.053,0,0.058,0.112,0.168,0.331,0.498,1} + [20] = "%.4f", -- Bille_HA Slip Ball {-1,1} + [18] = "%.1f", -- flag_GS_HA GS Flag {0,1} + [19] = "%.1f", -- flag_HS_HA Fault Flag {0,1} + [29] = "%.1f", -- flag_Lock_HA Lock Flag {0,1} + [117] = "%.4f", -- Curseur_HA Knob Needle {0,1} + [120] = "%.4f", -- W_HA W Sympol {-1,1} + [118] = "%.4f", -- VerBar_HA Vertical Bar {-1,1} + [119] = "%.4f", -- HorBar_HA Horizon Bar {-1,1} + -- variometre + [24] = "%.4f", -- Variometre {-800,-700,-600,-500,-400,-300,-200,-100,-50,0,50,100,200,300,400,500,600,700,800}{-0.481,-0.436,-0.391,-0.338,-0.28,-0.218,-0.153,-0.075,-0.035,0.0,0.035,0.071,0.139,0.202,0.264,0.32,0.372,0.418,0.463} + -- IAS + [51] = "%.4f", -- IAS {0,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370}{0,0.1,0.133,0.172,0.207,0.243,0.277,0.316,0.35,0.38,0.41,0.439,0.465,0.491,0.517,0.541,0.565,0.587,0.611,0.63,0.651,0.671,0.692,0.712,0.731,0.75,0.77,0.791,0.809,0.829,0.849,0.867,0.886} + -- RPM + [135] = "%.4f", -- Turbine_RPM large Needle {0,5000,10000,15000,20000,25000,29000,35000,40000,43500,45000,50000}{0.095,0.181,0.263,0.346,0.424,0.505,0.572,0.665,0.748,0.802,0.828,0.909} + [52] = "%.4f", -- Rotor_RPM small Needle {0,50,100,150,200,250,262,316.29,361.05,387,400,450}{0.096,0.191,0.283,0.374,0.461,0.549,0.57,0.665,0.748,0.802,0.811,0.904} + -- Voltmetre + [14] = "%.3f", -- Voltmetre {0,5,10,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}{0.045,0.074,0.103,0.133,0.163,0.192,0.221,0.25,0.281,0.31,0.339,0.368,0.399,0.429,0.458,0.488,0.518,0.547,0.576,0.605,0.635,0.664,0.695,0.724} + -- TQuatre Engine temperature Indicator + [15] = "%.3f", -- TQuatre Engine Temp {0,100,200,300,400,500,600,700,800}{0.1575,0.228,0.3,0.3845,0.473,0.577,0.676,0.772,0.8625} + -- TempExt outside temperature + [25] = "%.3f", -- TempExt {-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70}{-0.758,-0.691,-0.625,-0.558,-0.492,-0.425,-0.359,-0.292,-0.224,-0.158,-0.09,-0.024,0.043,0.11,0.177,0.244,0.31,0.379,0.445,0.512,0.579,0.644,0.712} + -- TempThm Oil Temperature Indicator + [151] = "%.3f", -- TempThm Oil Temp {-20,-10,0,10,20,30,40,50,60,70,80,85,90,100}{0.046,0.102,0.157,0.213,0.268,0.323,0.38,0.435,0.492,0.547,0.603,0.63,0.659,0.715} + -- Fuel Tank Indicator + [152] = "%.3f", -- Gauge_RSupp {-1,0,0.25,0.5,0.75,1}{0,0.202,0.426,0.63,0.801,1} + -- VHF AM Radio + [133] = "%.1f", -- AM_Radio_freq_cent {0,1} X00.000 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [134] = "%.1f", -- AM_Radio_freq_dix {0,1} 0X0.000 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [136] = "%.1f", -- AM_Radio_freq_unite {0,1} 00X.000 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [138] = "%.1f", -- AM_Radio_freq_dixieme {0,1} 000.X00 {0,1,2,3,4,5,6,7,8,9,0}{0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0} + [139] = "%.2f", -- AM_Radio_freq_centieme {0,1} 000.0XX {00,25,50,75,00}{0.0,0.25,0.50,0.75,1.0} + -- Lamps + -- Voyant_DEM + [300] = "%.f", -- Voyant_DEM Start lamp{0,1} + -- Voyant_RLT + [301] = "%.f", -- Voyant_RLT Idle lamp {0,1} + -- Voyant_BLOC + [302] = "%.f", -- Voyant_BLOC Blocked Engine lamp {0,1} + -- RSUPP Fueltank + [320] = "%.f", -- Voyant_RSupp Fueltank lamp {0,1} + -- RCONV Convoy Fueltank + [321] = "%.f", -- Voyant_RConv Convoy Fueltank lamüp {0,1} + -- Voyant_FILTAS Sandfilter lamp + [322] = "%.f", -- Voyant_FILTAS sandfilter lamp {0,1} + -- Voyant_Alarme Master Alarme lamp + [303] = "%.f", -- Voyant_Alarme Master Alarme lamp {0,1} + -- AM_RADIO + [141] = "%.f", -- AM_Radio_lamp {0,1} + -- Tableau Alarme Lamps + [1] = "%.f", -- TA_Pitot {0,1} + [2] = "%.f", -- TA_Hmot {0,1} + [3] = "%.f", -- TA_Hbtp {0,1} + [4] = "%.f", -- TA_Hral {0,1} + [5] = "%.f", -- TA_Gene {0,1} + [6] = "%.f", -- TA_Alter {0,1} + [7] = "%.f", -- TA_Bat {0,1} + [8] = "%.f", -- TA_PA {0,1} + [9] = "%.f", -- TA_Nav {0,1} + [10] = "%.f", -- TA_Comb {0,1} + [11] = "%.f", -- TA_Bphy {0,1} + [12] = "%.f", -- TA_Lim {0,1} + [13] = "%.f", -- TA_Filt {0,1} + -- Intercomp Lamps + [455] = "%.f", -- Intercomp VHF Light + [456] = "%.f", -- Intercomp FM1 Light + [457] = "%.f", -- Intercomp UHF Light + -- SA342M HOT3 Weapon Panel Lamps + [183] = "%.f", -- HOT3 WP Lamps BON + [184] = "%.f", -- HOT3 WP Lamps MAUVAIS + [185] = "%.f", -- HOT3 WP Lamps ALIMENTATION + [186] = "%.f", -- HOT3 WP Lamps MISSILE PRET + [187] = "%.f", -- HOT3 WP Lamps TIR AUTOR. + [188] = "%.f", -- HOT3 WP Lamps DEFAUT + [189] = "%.f", -- HOT3 WP Lamps TEST I + [190] = "%.f", -- HOT3 WP Lamps JOUR + [191] = "%.f", -- HOT3 WP Lamps LUMINOSITE + [192] = "%.f", -- HOT3 WP Lamps TEST II + [193] = "%.f" -- HOT3 WP Lamps NUIT +} + + + + +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + -- WEAPONS PANEL 1 + [354] = "%1d", -- WP1 - Off/On/Stsnfby {-1.0,0.0,1.0} + [357] = "%.4f", -- WP1 - Brightness (Axis) {0.0, 1.0} in 0.1 Steps + -- WEAPONS PANEL 2 + [372] = "%1d", -- WP2 - Ma Left + [373] = "%1d", -- WP2 - Ma Left Cover + [374] = "%1d", -- WP2 - Ma Right + [375] = "%1d", -- WP2 - Ma Right Cover + [376] = "%1d", -- WP2 - Seq Ripple selection + [377] = "%1d", + [378] = "%1d", + -- PILOTSIGHT + [171] = "%1d", -- PILOTSIGHT - Pilot Sight + -- PILOT STICK + --[50] = "%1d", -- PILOT STICK - Magnetic Brake + --[53] = "%1d", -- PILOT STICK - Wiper once + --[209] = "%1d", -- PILOT STICK - Autopilot Button + [293] = "%1d", -- PILOT STICK - Slave + [294] = "%1d", -- PILOT STICK - Auto-Hover + -- WSO LEFT SIDE STICK + [255] = "%1d", -- PE WSO STICK - Lasing Button Cover + [256] = "%1d", -- PE WSO STICK - Lasing Button + [257] = "%1d", -- PE WSO STICK - Missile Launch Cover + [258] = "%1d", -- PE WSO STICK - Missile Launch Button + [259] = "%1d", -- PE WSO STICK - Inversed Symbology Toggle + [260] = "%1d", -- PE WSO STICK - Inversed Image Toggle + [264] = "%.1f", -- PE WSO STICK - Image Focus {-1.0,1.0} + [262] = "%.1f", -- PE WSO STICK - Gain {-1.0,1.0} + [263] = "%.1f", -- PE WSO STICK - Image Brightness {-1.0,1.0} + [219] = "%.1f", -- PE WSO STICK - Symbology Brightness {-1.0,1.0} + -- GYRO + [197] = "%1d", -- GYRO - Test Cover + [198] = "%1d", -- GYRO - Test Switch On/Off + [199] = "%1d", -- GYRO - Left/Center/Right + [153] = "%.2f", -- GYRO - CM/A/GM/D/GD {0.0,0.25,0.50,0.75,1.0} + -- CLOCK + [45] = "%.4f", -- CLOCK - Winder (Axis) {0.0, 1.0} in 0.1 Steps + [46] = "%1d", -- CLOCK - Start/Stop + [47] = "%1d", -- CLOCK - Reset + -- SA342M HOT3 only + -- PH SA342M HOT3 + [180] = "%.2f", -- PH - Test II/Test I/Off/Day/Night {0.0,0.25,0.50,0.75,1.0} + [181] = "%.3f", -- PH - Station Select 0/1/0/2/0/3/0/4/0 {0.0,0.125,0.250,0,375,0.500,0.625,0.750,0.875,1.0} + [182] = "%.4f", -- PH - Brightness (Axis) {0.0, 1.0} in 0.1 Steps + -- PE SA342L/M/Mistral BCV (BOITIER DE COMMANDE VIDEO – video command box) + [362] = "%1d", -- PE BCV - Centering + [364] = "%1d", -- PE BCV - VDO/VTH + [365] = "%.1f", -- PE BCV - Zoom {-1.0,1.0} + [366] = "%.1f", -- PE BCV - CTH A/V/M {0.0,0.5,1.0} + [367] = "%1d", -- PE BCV - Power + [370] = "%.2f", -- PE BCV - Mode A/C/V/PIL/ASS {0.0,0.25,0.50,0.75,1.0} + -- NADIR + [330] = "%.4f", -- NADIR - Off/Brightness (Axis) {0.0, 1.0} in 0.1 Steps + [331] = "%.2f", -- NADIR - Mode Off/Stby/Ground/Sea/Air Speed Sensor/Ground Test {0.0,0.2,0.4,0.6,0.8,1.0} + [332] = "%.2f", -- NADIR - Parameter Wind/Magnetic Heading/Ground Speed/Calculated Time/Current Position/Waypoint {0.0,0.2,0.4,0.6,0.8,1.0} + [333] = "%1d", -- NADIR - ENT + [334] = "%1d", -- NADIR - DES + [335] = "%1d", -- NADIR - AUX + [336] = "%1d", -- NADIR - IC + [337] = "%1d", -- NADIR - DOWN + [351] = "%1d", -- NADIR - 0 + [338] = "%1d", -- NADIR - 1 + [339] = "%1d", -- NADIR - 2 + [340] = "%1d", -- NADIR - 3 + [342] = "%1d", -- NADIR - 4 + [343] = "%1d", -- NADIR - 5 + [344] = "%1d", -- NADIR - 6 + [346] = "%1d", -- NADIR - 7 + [347] = "%1d", -- NADIR - 8 + [348] = "%1d", -- NADIR - 9 + [341] = "%1d", -- NADIR - POL + [345] = "%1d", -- NADIR - GEO + [349] = "%1d", -- NADIR - POS + [350] = "%1d", -- NADIR - GEL + [352] = "%1d", -- NADIR - EFF + -- AM_RADIO + [128] = "%.2f", -- AM RADIO - Selector {0.0,0.33,0.66,0.99} + [129] = "%.4f", -- AM RADIO - Freq decimals (Axis) {0.0, 1.0} in 0.1 Steps + [130] = "%1d", -- AM RADIO - 25/50kHz Selector + [131] = "%.4f", -- AM RADIO - Freq dial (Axis) {0.0, 1.0} in 0.1 Steps + -- FM_RADIO + [272] = "%.2f", -- FM RADIO - Main Selector {0.0,0.25,0.50,0.75,1.0} + [273] = "%.3f", -- FM RADIO - Chanel Selector {0.0,0.143,0.286,0.429,0.572,0.715,0.858,1.0} + [274] = "%1d", -- FM RADIO - 7 + [275] = "%1d", -- FM RADIO - 8 + [276] = "%1d", -- FM RADIO - 9 + [277] = "%1d", -- FM RADIO - 0 + [278] = "%1d", -- FM RADIO - X + [279] = "%1d", -- FM RADIO - 4 + [280] = "%1d", -- FM RADIO - 5 + [281] = "%1d", -- FM RADIO - 6 + [282] = "%1d", -- FM RADIO - RC + [283] = "%1d", -- FM RADIO - UP + [284] = "%1d", -- FM RADIO - 1 + [285] = "%1d", -- FM RADIO - 2 + [286] = "%1d", -- FM RADIO - 3 + [287] = "%1d", -- FM RADIO - VAL + [288] = "%1d", -- FM RADIO - DOWN + -- TV + [124] = "%1d", -- TV - On/Off + [125] = "%.4f", -- TV - Contrast (Axis) {0.0, 1.0} in 0.1 Steps + [123] = "%.4f", -- TV - Brightness (Axis) {0.0, 1.0} in 0.1 Steps + [126] = "%.4f", -- TV - Cover (Axis) {0.0, 1.0} in 0.1 Steps + -- RWR + [148] = "%1d", -- RWR - Off/On/Croc {-1.0,0.0,1.0} + [149] = "%1d", -- RWR - Marker + [150] = "%1d", -- RWR - Page + [121] = "%.4f", -- RWR - Audio (Axis) {0.0, 1.0} in 0.1 Steps + [122] = "%.4f", -- RWR - Brightness (Axis) {0.0, 1.0} in 0.1 Steps + -- ADI + [115] = "%.4f", -- ADI - Unlock (Axis) {0.0, 1.0} in 0.1 Steps + [116] = "%1d", -- ADI - Unlock + -- Stby ADI + [215] = "%.4f", -- STDBY ADI - Unlock (Axis) {0.0, 1.0} in 0.1 Steps + [216] = "%1d", -- STDBY ADI - Unlock + -- ArtVisVhfDop (Source selector for main artificial horizon vertical bar) + [218] = "%.2f", -- ADI - Source Off/Camera target point/ADF ermitter/NADIR Waypoint {0.0,0.33,0.66,0.99} + -- INTERCOM + [452] = "%1d", -- INTERCOM - VHF AM Radio + [68] = "%.4f", -- INTERCOM - VHF AM Radio Volume (Axis) {0.0, 1.0} in 0.1 Steps + [453] = "%1d", -- INTERCOM - FM Radio + [69] = "%.4f", -- INTERCOM - FM Radio Volume (Axis) {0.0, 1.0} in 0.1 Steps + [454] = "%1d", -- INTERCOM - UHF Radio + [70] = "%.4f", -- INTERCOM - UHF Radio Volume (Axis) {0.0, 1.0} in 0.1 Steps + -- TORQUE + [58] = "%1d", -- TORQUE Bug/Test + [54] = "%.4f", -- TORQUE Bug/Test (Axis) {0.0, 1.0} in 0.1 Steps + -- LIGHTS + [22] = "%.4f", -- LIGHTS - Main Dashboard Lighting (Axis) {0.0, 1.0} in 0.1 Steps + [21] = "%.4f", -- LIGHTS - Console Lighting (Axis) {0.0, 1.0} in 0.1 Steps + [145] = "%.4f", -- LIGHTS - UV Lighting (Axis) {0.0, 1.0} in 0.1 Steps + [23] = "%1d", -- LIGHTS - NORM/BNL + [147] = "%.4f", -- LIGHTS - Roof Lamp Knob (Axis) {0.0, 1.0} in 0.1 Steps + [154] = "%1d", -- LIGHTS - Red Lens On/Off + -- ELECTRIC + [264] = "%1d", -- ELECTRIC - Battery + [265] = "%1d", -- ELECTRIC - Alternator + [268] = "%1d", -- ELECTRIC - Generator + [62] = "%1d", -- ELECTRIC - Voltmeter Test + [170] = "%1d", -- ELECTRIC - Pitot + [271] = "%1d", -- ELECTRIC - Fuel Pump + [267] = "%1d", -- ELECTRIC - Additionnal Fuel Tank + [56] = "%1d", -- ELECTRIC - Starter Start/Stop/Air {-1.0,0.0,1.0} + [57] = "%1d", -- ELECTRIC - Test + [48] = "%1d", -- ELECTRIC - Copilot Wiper {-1.0,0.0,1.0} + [49] = "%1d", -- ELECTRIC - Pilot Wiper {-1.0,0.0,1.0} + [61] = "%1d", -- ELECTRIC - Left from Pitot + [59] = "%1d", -- ELECTRIC - HYD Test + [66] = "%1d", -- ELECTRIC - Alter Rearm + [67] = "%1d", -- ELECTRIC - Gene Rearm + [63] = "%1d", -- ELECTRIC - Convoy Tank On/Off + [64] = "%1d", -- ELECTRIC - Sand Filter On/Off + -- NAVLIGHTS + [146] = "%1d", -- NAVLIGHTS - Navigation Lights CLI/OFF/FIX {-1.0,0.0,1.0} + [228] = "%1d", -- NAVLIGHTS - Anticollision Light NOR/OFF/ATT {-1.0,0.0,1.0} + [105] = "%1d", -- NAVLIGHTS - Landing Light Off/Vario/On {-1.0,0.0,1.0} +-- [106] = "%1d", -- NAVLIGHTS - Landing Light Extend/Retract + [382] = "%1d", -- NAVLIGHTS - Panels Lighting On/Off + [30] = "%.4f", -- NAVLIGHTS - AntiCollision Light Intensity (Axis) {0.0, 1.0} in 0.1 Steps + [229] = "%1d", -- NAVLIGHTS - Formation Lights On/Off + [230] = "%.4f", -- NAVLIGHTS - Formation Lights Intensity (Axis) {0.0, 1.0} in 0.1 Steps + -- FLARE DISPENSER + [220] = "%1d", -- FLARE DISPENSER - G/G+D/D {-1.0,0.0,1.0} + [221] = "%1d", -- FLARE DISPENSER - Mode + [222] = "%1d", -- FLARE DISPENSER - Off/Speed {-1.0,0.0,1.0} + [194] = "%1d", -- FLARE DISPENSER - Fire Button Cover + [195] = "%1d", -- FLARE DISPENSER - Fire Button + -- AUTOPILOT + [31] = "%1d", -- AUTOPILOT - Autopilot On/Off + [32] = "%1d", -- AUTOPILOT - Pitch On/Off + [33] = "%1d", -- AUTOPILOT - Roll On/Off + [34] = "%1d", -- AUTOPILOT - Yaw On/Off + [35] = "%1d", -- AUTOPILOT - Mode Speed/OFF/Altitude {-1.0,0.0,1.0} + [60] = "%1d", -- AUTOPILOT - Trim On/Off + [65] = "%1d", -- AUTOPILOT - Magnetic Brake On/Off + -- WEAPONS + [269] = "%1d", -- WEAPONS - Master arm On/Off + -- ROTORS + [556] = "%.4f", -- ROTORS - Rotor Brake (Axis) {0.0, 1.0} in 0.055 Steps + -- RADIOALTIMETER + [96] = "%.4f", -- RADIOALTIMETER - Radar Alt Bug (Axis) {0.0, 1.0} in 0.1 Steps + [100] = "%1d", -- RADIOALTIMETER - Radar Alt On/Off - Test + [91] = "%.4f", -- RADIOALTIMETER - Radar Alt On/Off - Test (Axis) {0.0, 1.0} in 0.1 Steps + -- BAROALTIMETER + [89] = "%.4f", -- BAROALTIMETER - Baro pressure QFE knob (Axis) {0.0, 1.0} in 0.1 Steps + -- FUEL SYSTEM + [557] = "%.4f", -- FUEL SYSTEM - Fuel Flow Lever (Axis) {0.0, 1.0} in 0.2 Steps + -- ADF RADIO + [166] = "%1d", -- ADF RADIO - Select + [167] = "%1d", -- ADF RADIO - Tone + [178] = "%.2f", -- ADF RADIO - Mode {0.0,0.33,0.66,0.99} + [179] = "%.4f", -- ADF RADIO - Gain (Axis) {0.0, 1.0} in 0.2 Steps + [168] = "%.4f", -- ADF RADIO - Nav1 Hundred (Axis) {0.0, 1.0} in 0.2 Steps + [169] = "%.4f", -- ADF RADIO - Nav1 Ten (Axis) {0.0, 1.0} in 0.2 Steps + [173] = "%.4f", -- ADF RADIO - Nav1 Unit (Axis) {0.0, 1.0} in 0.2 Steps + [174] = "%.4f", -- ADF RADIO - Nav2 Hundred (Axis) {0.0, 1.0} in 0.2 Steps + [175] = "%.4f", -- ADF RADIO - Nav2 Ten (Axis) {0.0, 1.0} in 0.2 Steps + [176] = "%.4f", -- ADF RADIO - Nav2 Unit (Axis) {0.0, 1.0} in 0.2 Steps + -- UHF RADIO + [383] = "%.3f", -- UHF RADIO - MODE 0/FF/NA/SV/DL/G/EN {0.0,0.167,0.334,0.501,0.668,0.835,1.0} + [384] = "%1d", -- UHF RADIO - DRW + [385] = "%1d", -- UHF RADIO - VLD + [386] = "%.4f", -- UHF RADIO - PAGE (Axis) {0.0, 1.0} in 0.2 Steps + [387] = "%1d", -- UHF RADIO - CONF + [388] = "%1d", -- UHF RADIO - 1 + [389] = "%1d", -- UHF RADIO - 2 + [390] = "%1d", -- UHF RADIO - 3 + [391] = "%1d", -- UHF RADIO - 4 + [392] = "%1d", -- UHF RADIO - 5 + [393] = "%1d", -- UHF RADIO - 6 + [394] = "%1d", -- UHF RADIO - 7 + [395] = "%1d", -- UHF RADIO - 8 + [396] = "%1d", -- UHF RADIO - 9 + [397] = "%1d", -- UHF RADIO - 0 + + +[1330] = "%1d", --ALV Y +[1331] = "%1d", --ALV G +[1332] = "%1d", --CVS Y +[1333] = "%1d", --CVS G + +[590] = "%1d", --pcb zoom +[591] = "%.2f", --pcb dist +[592] = "%1d", --pcb stab + +[605] = "%1d", --mini cover +[606] = "%1d", --mini arm +[596] = "%1d", --izlid + +[1333] = "%1d", --CVS G +[1333] = "%1d", --CVS G +[172] = "%1d" --periscope + --MEUS-- + +} +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + + ExportScript.Radios(mainPanelDevice) + +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + + + +end + +function ExportScript.Radios(mainPanelDevice) + + +if mainPanelDevice:get_argument_value(556) == 0 then + + +elseif mainPanelDevice:get_argument_value(556) > 0 then + +local rotor = ((mainPanelDevice:get_argument_value(52) - 0.096) * (1/0.175)) + turbine = ((mainPanelDevice:get_argument_value(135) - 0.095) * 61.80469715698393) +rotor = string.format("%.1f", rotor) +turbine = string.format("%.1f", turbine) + + -- [300] = "%.f", -- Voyant_DEM Start lamp{0,1} + -- [301] = "%.f", -- Voyant_RLT Idle lamp {0,1} + -- [302] = "%.f", -- Voyant_BLOC Blocked Engine lamp {0,1} + +--idleio = mainPanelDevice:get_argument_value(301) +--startio = mainPanelDevice:get_argument_value(300) +--blocio =mainPanelDevice:get_argument_value(302) + +local idleio = mainPanelDevice:get_argument_value(301) + if idleio == 0 then + idlelamp="⚫" + elseif idleio > 0 then + idlelamp="🟡" + end + +local startio = mainPanelDevice:get_argument_value(300) + if startio == 0 then + startlamp="⚫" + elseif startio > 0 then + startlamp="🟢" + end + +local blocio = mainPanelDevice:get_argument_value(302) + if blocio == 0 then + bloclamp="⚫" + elseif blocio > 0 then + bloclamp="🔴" + end + +ExportScript.Tools.SendData(1006, string.format("R " .. rotor .. "\n" .. + "T " .. turbine .. "\n" .. + startlamp .. idlelamp .. bloclamp)) +end +--value = (output - output_min) * ((value_max) / (output_max-output_min)) +t4p = mainPanelDevice:get_argument_value(15) +t4temp = (-9679.7 * t4p^5) + (25333 * t4p^4) - (24033 * t4p^3) + (9712.1 * t4p^2) - (346.74 * t4p) - 105.2 + + + if + t4temp <= 550 then + t4lamp = "🟢" + elseif + t4temp > 550 and t4temp < 600 then + t4lamp = "🟡" + elseif + t4temp >= 600 then + t4lamp = "🔴" + end + + t4temp = string.format("%.f", t4temp) --?? + +local oiltemp = (mainPanelDevice:get_argument_value(151) * 100) + + if + oiltemp <= 24 then + oillamp = "🟡" + elseif + oiltemp > 24 and oiltemp < 85 then + oillamp = "🟢" + elseif + oiltemp >= 85 then + oillamp = "🔴" + end + + oiltemp = string.format("%.f", oiltemp) --?? + + ExportScript.Tools.SendData(1005, string.format("🌡️Oil\n" .. + oillamp .. oiltemp .. " ºC" .. "\n" .. + "🌡️T4\n" .. + t4lamp .. t4temp .. " ºC")) +----------- +--output_min = 0 +--output_max = 0.886 +--value_min = 0 +--value_max = 370 +--output = 1 + +--value = (output - output_min) * ((value_max) / (output_max-output_min)) + +--fuel +fuel = ((mainPanelDevice:get_argument_value(137) - 0.093) * ((450)/(0.932-0.093))) +fuel = string.format("%.f", fuel) +ExportScript.Tools.SendData(1016, string.format(fuel .. "L")) + +torque = ((mainPanelDevice:get_argument_value(16) - 0.085) * ((110)/(0.908-0.085))) +torque = string.format("%.f", torque) +ExportScript.Tools.SendData(1008, string.format("⚙️" .. torque .. "%%\n\n" .. "⛽" .. fuel .. "L")) + +--IAS +local x = (mainPanelDevice:get_argument_value(51)) +local IASkmh = ((294.33 * x^3) - (245.86 * x^2) + (396.8 * x) + 12.511) +IASkmh = string.format("%.f", IASkmh) +IASkts = IASkmh * 0.539957 +IASkts = string.format("%.f", IASkts) +ExportScript.Tools.SendData(1009, string.format(IASkmh .. " Kmh\n" .. + "(" .. IASkts .. " Kts)")) +--Rad alt +local x = (mainPanelDevice:get_argument_value(94)) +local ralt = (2329.2*x^4) - (1163.2*x^3) - (1.5301*x^2) + (325.05*x) +ralt = string.format("%.f", ralt) + +ExportScript.Tools.SendData(1015, string.format(ralt)) + +--baro alt +baro = ((mainPanelDevice:get_argument_value(87)) * 10000) +baroft = (baro * 3.2808399) +baroft = string.format("%.f", baroft) + +QNH1000 = ((mainPanelDevice:get_argument_value(95)) * 10) +QNH0100 = ((mainPanelDevice:get_argument_value(92)) * 10) +QNH0010 = ((mainPanelDevice:get_argument_value(90)) * 10) +QNH0001 = ((mainPanelDevice:get_argument_value(88)) * 10) + +QNH1000 = string.format("%.f", QNH1000) +QNH0100 = string.format("%.f", QNH0100) +QNH0010 = string.format("%.f", QNH0010) +QNH0001 = string.format("%.f", QNH0001) + +ExportScript.Tools.SendData(1010, string.format(ralt .. "m (R)\n" .. baroft .. "ft (B)\n" .. QNH1000 .. QNH0100 .. QNH0010 .. QNH0001)) + +---ADI to waypoint +phdg = ((mainPanelDevice:get_argument_value(113)) * 360) +phdg = string.format("%.f", phdg) +ExportScript.Tools.SendData(1018, string.format(phdg .. "º")) + +toWPdiv = ((mainPanelDevice:get_argument_value(102)) * 360) +toWPdiv = string.format("%.f", toWPdiv) +toWPhdg = phdg + toWPdiv + +WPdistcent = (mainPanelDevice:get_argument_value(110) * 10) +WPdistcent = string.format("%.f", WPdistcent) +WPdistdix = (mainPanelDevice:get_argument_value(111) * 10) +WPdistdix = string.format("%.f", WPdistdix) +WPdistunit = (mainPanelDevice:get_argument_value(112) * 10) +WPdistunit = string.format("%.f", WPdistunit) +ExportScript.Tools.SendData(1019, string.format(WPdistcent .. WPdistdix .. "." .. WPdistunit .. "Km")) + + + +ExportScript.Tools.SendData(1017, string.format("Hdg " .. phdg .. "º\n" + .. "Wpt " .. toWPdiv .. "º\n" + .. WPdistcent .. WPdistdix .. "." .. WPdistunit)) + +--CWP any + +w1 = mainPanelDevice:get_argument_value(1) +w2 = mainPanelDevice:get_argument_value(2) +w3 = mainPanelDevice:get_argument_value(3) +w4 = mainPanelDevice:get_argument_value(4) +w5 = mainPanelDevice:get_argument_value(5) +w6 = mainPanelDevice:get_argument_value(6) +w7 = mainPanelDevice:get_argument_value(7) +w8 = mainPanelDevice:get_argument_value(8) +w9 = mainPanelDevice:get_argument_value(9) +w10 = mainPanelDevice:get_argument_value(10) +w11 = mainPanelDevice:get_argument_value(11) +w12 = mainPanelDevice:get_argument_value(12) +w13 = mainPanelDevice:get_argument_value(13) + +if (w1 + w2 + w3 + w4 + w5 + w6 + w7 + + w8 + w9 + w10 + w11 + w12 + w13) > 0 then + w14 = 1 + else + w14 = 0 + end +ExportScript.Tools.SendData(1018, w14) + +--Hot3 +-- [181] = "%.3f", -- PH - Station Select 0/1/0/2/0/3/0/4/0 {0.0,0.125,0.250,0,375,0.500,0.625,0.750,0.875,1.0} + + +----------- +--Clock +gameTimeLocal = LoGetMissionStartTime() + LoGetModelTime() + +function formatTime(time) + seconds = math.floor(time) % 60 + minutes = math.floor(time / 60) % 60 + hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. string.format("%02d", minutes) .. "L" +end + +ExportScript.Tools.SendData(9999, formatTime(gameTimeLocal)) +--digital cronometro + chmin = (mainPanelDevice:get_argument_value(44) * ((1 / (1/30))*60)) +chmin = string.format("%.f", chmin) + + hour2= math.floor(chmin / 3600) + min1= math.floor(chmin / 60) + if + min1 >= 60 then min3 = min1 - (60 * hour2) + elseif + min1 < 60 then min3 = min1 + end + sec1= math.floor(chmin % 60) + +--hour2 = string.format("%02i", hour) +--hour = string.format(hour .. "H") +min3 = string.format("%02i", min3) +min3 = string.format(min3 .. "'") +sec1 = string.format("%02i", sec1) + +ExportScript.Tools.SendData(1012, string.format(formatTime(gameTimeLocal))) --.. sec)) --just Local Hour +ExportScript.Tools.SendData(1013, string.format(min3 .. sec1)) --just the timer +ExportScript.Tools.SendData(1014, string.format(formatTime(gameTimeLocal) .. "\n" .. "🕗" .."\n" .. + min3 .. sec1)) --Local Hour and Timer + +if mainPanelDevice:get_argument_value(354) >= 0.0 then -- Weapon panel is On + local lWeaponPanelDisplays = ExportScript.Tools.getListIndicatorValue(7) + + if lWeaponPanelDisplays ~= nil then + if lWeaponPanelDisplays.LEFT_screen ~= nil then + ExportScript.Tools.SendData(2000, string.format("%s", lWeaponPanelDisplays.LEFT_screen)) + end + if lWeaponPanelDisplays.RIGHT_screen ~= nil then + ExportScript.Tools.SendData(2001, string.format("%s", lWeaponPanelDisplays.RIGHT_screen)) + end + end +else + ExportScript.Tools.SendData(2000, "-") + ExportScript.Tools.SendData(2001, "-") +end +------------ +if mainPanelDevice:get_argument_value(272) > 0.0 then +FM = ExportScript.Tools.split(list_indication(3), "%c")[9] +ExportScript.Tools.SendData(1020, FM) +else +ExportScript.Tools.SendData(1020, "--.---") +end + +if mainPanelDevice:get_argument_value(383) > 0.0 then +UHF = ExportScript.Tools.split(list_indication(4), "%c")[9] +ExportScript.Tools.SendData(1021, UHF) +else +ExportScript.Tools.SendData(1021, "---.---") +end + +----------- + + --------- + -- ADF -- + --------- + local ADF_nav1_centaine = mainPanelDevice:get_argument_value(158) * 10 + local ADF_nav1_dizaine = mainPanelDevice:get_argument_value(159) * 10 + local ADF_nav1_unite = mainPanelDevice:get_argument_value(160) * 10 + local ADF_nav1_dec = mainPanelDevice:get_argument_value(161) * 10 + + ADF_nav1_centaine = string.format("%.0f", ADF_nav1_centaine) + ADF_nav1_dizaine = string.format("%.0f", ADF_nav1_dizaine) + ADF_nav1_unite = string.format("%.0f", ADF_nav1_unite) + ADF_nav1_dec = string.format("%.1d", ADF_nav1_dec) + + local ADF_nav2_centaine = mainPanelDevice:get_argument_value(162) * 10 + local ADF_nav2_dizaine = mainPanelDevice:get_argument_value(163) * 10 + local ADF_nav2_unite = mainPanelDevice:get_argument_value(164) * 10 + local ADF_nav2_dec = mainPanelDevice:get_argument_value(165) * 10 + + ADF_nav2_centaine = string.format("%.0f", ADF_nav2_centaine) + ADF_nav2_dizaine = string.format("%.0f", ADF_nav2_dizaine) + ADF_nav2_unite = string.format("%.0f", ADF_nav2_unite) + ADF_nav2_dec = string.format("%.1d", ADF_nav2_dec) + + + local ADF_RADIO_Select = mainPanelDevice:get_argument_value(166) + local isADF1Selected = 1 + if ADF_RADIO_Select > 0.01 then + isADF1Selected = 0 + end + ExportScript.Tools.SendData(2007, isADF1Selected) + + local ADF_display + if isADF1Selected == 1 then + ADF_freqDisplay = (ADF_nav1_centaine .. ADF_nav1_dizaine .. ADF_nav1_unite .. "." .. ADF_nav1_dec) + else + ADF_freqDisplay = (ADF_nav2_centaine .. ADF_nav2_dizaine .. ADF_nav2_unite .. "." .. ADF_nav2_dec) + end + + local ADF_shortandSelect + if isADF1Selected == 1 then + ADF_shortandSelect = "A1" + else + ADF_shortandSelect = "A2" + end + + local ADF1_freqDisplay = (ADF_nav1_centaine .. ADF_nav1_dizaine .. ADF_nav1_unite .. "." .. ADF_nav1_dec) + local ADF2_freqDisplay = (ADF_nav2_centaine .. ADF_nav2_dizaine .. ADF_nav2_unite .. "." .. ADF_nav2_dec) + ExportScript.Tools.SendData(2014, "ADF1\n" .. ADF1_freqDisplay) + ExportScript.Tools.SendData(2015, "ADF2\n" .. ADF2_freqDisplay) + --NADIR-- + +if isADF1Selected == 1 then +ExportScript.Tools.SendData(1022, "ADF1\n" .. ADF1_freqDisplay) +else +ExportScript.Tools.SendData(1022, "ADF2\n" .. ADF2_freqDisplay) +end + +AM_dizaine = mainPanelDevice:get_argument_value(134) * 10 +AM_unite = mainPanelDevice:get_argument_value(136) * 10 +AM_dec = mainPanelDevice:get_argument_value(138) * 10 +AM_cent = mainPanelDevice:get_argument_value(139) * 100 + +AM_dizaine = string.format("%.0f", AM_dizaine) +AM_unite = string.format("%.0f", AM_unite) +AM_dec = string.format("%.0f", AM_dec) +AM_cent = string.format("%.2d", AM_cent) + +if mainPanelDevice:get_argument_value(141) == 1 then +ExportScript.Tools.SendData(1023, "1" .. AM_dizaine .. AM_unite .. "." .. AM_dec .. AM_cent) +else +ExportScript.Tools.SendData(1023, "---.---") +end + +local nadirwp = ExportScript.Tools.split(list_indication(2), "%c")[135] +ExportScript.Tools.SendData(2016, nadirwp) +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/SK-60.lua b/Scripts/DCS-ExportScript/ExportsModules/SK-60.lua new file mode 100644 index 00000000..6fbed636 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/SK-60.lua @@ -0,0 +1,124 @@ +-- SK-60 + +ExportScript.FoundDCSModule = true +ExportScript.Version.SK60 = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.4f", -- Example +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + --------------- + -- Log Dumps -- + --------------- + --ExportScript.CockpitParamsLogDump(mainPanelDevice) + --ExportScript.MetaTableLogDump(mainPanelDevice) + --ExportScript.ListIndicationLogDump(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] +end + +----------------------------- +-- Custom functions -- +----------------------------- + +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 + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + 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 + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIX.lua b/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIX.lua index 905d43e3..e5a322fe 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIX.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIX.lua @@ -1,5 +1,46 @@ -- Spitfire LFMk IX +------------- +-- Exports -- +------------- +--[[ +2000 - Radio Freq +2001 - Radio Channel +2002 - +2003 - Compass readout +2004 - Directional Gyro Readout +2005 - Oxygen Flow Rate Pilot +2006 - isDial_oxygenFlowRatePilotEmergency +2007 - dial_oxygenSupplyPilot +2008 - isDial_oxygenSupplyPilotRedZone +2009 - isPilotOxygenEmergency (either oxygen goes emergency) +2010 - Altimeter Altitude +2011 - Altimeter Pressure setting +2012 - Efficient Climb Airspeed +2013 - Gun Wingspan +2014 - Gun Range +2015 - Optimal Target Aircraft Wingspan +2016 - (is) gear lamp down on +2017 - (is) gear lamp up on +2018 - Elevator Trim readout +2019 - Rudder Trim Readout + + +3000 - RPM and Boost Tile +3001 - Compass and Directional Gyro Tile +3002 - Oxygen Tile +3003 - Channel and Freq Tile +3004 - Altimeter Tile +3005 - Best Takeoff Tile +3006 - Best Combat Tile +3007 - Best Nominal Tile +3008 - Best Cruising Tile +3009 - Best Climb Tile +3010 - Gun Sight Solution Tile +3011 - Trim Tile + +--]] + ExportScript.FoundDCSModule = true ExportScript.Version.SpitfireLFMkIX = "1.2.1" @@ -30,7 +71,7 @@ ExportScript.ConfigEveryFrameArguments = [27] = "%.4f", -- Altimeter gauge Thousands {0.0, 1.0}{0.0, 10.0} [28] = "%.4f", -- Altimeter gauge Tens Thousabds {0.0, 1.0}{0.0, 10.0} [29] = "%.4f", -- Altimeter gauge Pressure {0.0, 1.0}{800.0, 1050.0} - [31] = "%.4f", -- DI gauge {0.0, 1.0}{0.0, 2.0 * 3.1415926} + [31] = "%.4f", -- DI gauge Directional Gyro {0.0, 1.0}{0.0, 2.0 * 3.1415926} [33] = "%.4f", -- Sideslip gauge {-1.0, 1.0} [34] = "%.4f", -- Turn gauge {-1.0, 1.0} [35] = "%.4f", -- Voltmeter {0.0, 1.0}{0.0, 20.0} @@ -57,7 +98,7 @@ ExportScript.ConfigEveryFrameArguments = --[62] = "%.4f", -- ??? --[63] = "%.4f", -- ??? --[59] = "%.4f", -- ??? - --[45] = "%.4f" -- GUNSIGHT_RANGE ??? + --[45] = "%.4f" -- ??? } ExportScript.ConfigArguments = { @@ -94,7 +135,7 @@ ExportScript.ConfigArguments = [81] = "%.1f", -- Gun Sight Dimmer (Axis) {0.0, 1.0} in 0.1 Steps -- Port Wall [145] = "%.2f", -- Elevator Trim Wheel (Axis) {-1.0, 1.0} in 0.01 Steps - [146] = "%.1f", -- Rudder Trim Wheel (Axis) {-1.0, 1.0} in 0.1 Steps + [154] = "%.1f", -- Rudder Trim Wheel (Axis) {-1.0, 1.0} in 0.1 Steps -- Radio Remote Channel Switcher [115] = "%1d", -- Off Button [116] = "%1d", -- A Button @@ -137,10 +178,20 @@ ExportScript.ConfigArguments = [100] = "%1d", -- Fuel Cock [98] = "%1d", -- Droptank Cock [99] = "%1d", -- Droptank Release Handle + + [165] = "%1d", -- Pilot ON/OFF. 0 to 1. 1 and 0 are OFF + + [95] = "%1d", -- Gear Handle Fore/Aft + [96] = "%1d", -- Gear Handle Left/Right + [97] = "%1d", -- Gear UP/DOWN roller + -- Canopy Controls [149] = "%1d", -- Cockpit Open/Close Control [140] = "%1d", -- Cockpit Jettison Pull Ball [147] = "%1d" -- Cockpit Side Door Open/Close Control + + + } ----------------------------- @@ -160,6 +211,21 @@ function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) ]] + + ExportScript.trimReadouts(mainPanelDevice) -- for some reason this does not work at the bottom of this list + ExportScript.gearLamp(mainPanelDevice) -- for some reason this does not work at the bottom of this list + ------ Working line? + ExportScript.engLeftRpmTile(mainPanelDevice) + ExportScript.oxygenTile(mainPanelDevice) + ExportScript.VhfRadioTile(mainPanelDevice) + ExportScript.navigation1Tile(mainPanelDevice) + ExportScript.altimeterTile(mainPanelDevice) + ExportScript.BestPowerTiles(mainPanelDevice) + ExportScript.bestClimb(mainPanelDevice) + ExportScript.gunnerTile(mainPanelDevice) + ExportScript.radioButtonSelection(mainPanelDevice) + + end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) @@ -265,4 +331,369 @@ end ----------------------------- -- Custom functions -- ------------------------------ \ No newline at end of file +----------------------------- + +function ExportScript.trimReadouts(mainPanelDevice) + --[145] = "%.2f", -- Elevator Trim Wheel (Axis) {-1.0, 1.0} in 0.01 Steps + --[154] = "%.1f", -- Rudder Trim Wheel (Axis) {-1.0, 1.0} in 0.1 Steps + + local trimElevatorRaw = mainPanelDevice:get_argument_value(145) + local trimElevatorDirection = " " + local trimElevatorDirectionShorthand = " " + trimElevatorAmt = round(trimElevatorRaw * 100,0) + + + if trimElevatorAmt > 1 then --trim is positive, which is nose down + trimElevatorDirection = "DOWN" + trimElevatorDirectionShorthand = "D" + elseif trimElevatorAmt < -1 then --trim is negative, which is nose up + trimElevatorDirection = "UP" + trimElevatorDirectionShorthand = "U" + else --trim is basically neutral + trimElevatorDirection = " " + end + + trimElevatorAmt = math.abs(trimElevatorAmt) + ExportScript.Tools.SendData(2018, "ELVTR TRM\n" .. trimElevatorAmt .. "% " .. trimElevatorDirection) + + + local trimRudderRaw = mainPanelDevice:get_argument_value(154) + local trimRudderDirection = " " + local trimRudderDirectionShortHand = " " + local trimRudderAmt = round(trimRudderRaw * 100,0) + + + if trimRudderAmt > 1 then --trim is positive, which is stbd + trimRudderDirection = "STBD" + trimRudderDirectionShortHand = "S" + elseif trimRudderAmt < -1 then --trim is negative, which is port + trimRudderDirection = "PORT" + trimRudderDirectionShortHand = "P" + else --trim is basically neutral + trimRudderDirection = " " + end + + trimRudderAmt = math.abs(trimRudderAmt) + ExportScript.Tools.SendData(2019, "RDR TRM\n" .. trimRudderAmt .. "% " .. trimRudderDirection) + + ExportScript.Tools.SendData(3011, "TRIM" .. "\n" .. + "ELVTR " .. trimElevatorAmt .. "% " .. trimElevatorDirectionShorthand .. "\n" .. + "RDR " .. trimRudderAmt .. "% " .. trimRudderDirectionShortHand) + +end + +function ExportScript.engLeftRpmTile(mainPanelDevice) --boost is [39], rpm is [37] + + local guage_rpm = math.floor(mainPanelDevice:get_argument_value(37) * 10000) + + local dial_boostRaw = math.floor(mainPanelDevice:get_argument_value(39))--experemental + + + local dial_boostLeft = math.floor(dial_boostRaw * 24) + + ExportScript.Tools.SendData(3000, string.format("Eng" .. "\n" + .. "RPM ".. guage_rpm .. "\n" + .. "Boost ".. dial_boostLeft .. "\n")) +end + + +function ExportScript.oxygenTile(mainPanelDevice) + local dial_oxygenFlowRatePilot = math.floor(mainPanelDevice:get_argument_value(11) * 100) + ExportScript.Tools.SendData(2005, dial_oxygenFlowRatePilot) + + --numbers above 40 are "EMERGENCY" + + local isDial_oxygenFlowRatePilotEmergency + if dial_oxygenFlowRatePilot > 40 then + isDial_oxygenFlowRatePilotEmergency = 1 + else + isDial_oxygenFlowRatePilotEmergency = 0 + end + ExportScript.Tools.SendData(2006, isDial_oxygenFlowRatePilotEmergency) + + + local dial_oxygenSupplyPilotRaw = mainPanelDevice:get_argument_value(12) + + local dial_oxygenSupplyPilot = ( + + (87.118 * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw) + - (228.16 * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw) + + (189.84 * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw) + + (51.237 * dial_oxygenSupplyPilotRaw) + - 0.0026) + + dial_oxygenSupplyPilot = round(dial_oxygenSupplyPilot, 0) + + ExportScript.Tools.SendData(2007, dial_oxygenSupplyPilot) + + --numbers below 12.5 (1/8 on the dial) are red zone + local isDial_oxygenSupplyPilotRedZone + if dial_oxygenSupplyPilot < 12.5 then + isDial_oxygenSupplyPilotRedZone = 1 + else + isDial_oxygenSupplyPilotRedZone = 0 + end + ExportScript.Tools.SendData(2008, isDial_oxygenSupplyPilotRedZone) + + local oxygenTile_output = string.format("Oxy PLT" .. "\n" + .. "Flow ".. dial_oxygenFlowRatePilot .. "k ft\n" + .. "Amt. ".. dial_oxygenSupplyPilot .. "\n") + + ExportScript.Tools.SendData(3002, oxygenTile_output) + + local isPilotOxygenEmergency + if isDial_oxygenSupplyPilotRedZone == 1 or isDial_oxygenFlowRatePilotEmergency == 1 then + isPilotOxygenEmergency = 1 + else + isPilotOxygenEmergency = 0 + end + + ExportScript.Tools.SendData(2009, isPilotOxygenEmergency) + +end + +function ExportScript.VhfRadioTile(mainPanelDevice) +-- VHF_Radio + local lVHF_Radio = GetDevice(15) + local VhfRadioFreq + if lVHF_Radio:is_on() then + ExportScript.Tools.SendData(2000, string.format("%7.3f", lVHF_Radio:get_frequency()/1000000)) + VhfRadioFreq = ExportScript.Tools.RoundFreqeuncy(lVHF_Radio:get_frequency()/1000000) + ExportScript.Tools.SendData(2000, VhfRadioFreq) + else + ExportScript.Tools.SendData(2000, " ") + end + + --[[ + [115] = "%1d", -- Off Button + [116] = "%1d", -- A Button + [117] = "%1d", -- B Button + [118] = "%1d", -- C Button + [119] = "%1d", -- D Button]] + local lVHF_Radio_PRESET = "" + if mainPanelDevice:get_argument_value(116) > 0.8 then + lVHF_Radio_PRESET = "A" + elseif mainPanelDevice:get_argument_value(117) > 0.8 then + lVHF_Radio_PRESET = "B" + elseif mainPanelDevice:get_argument_value(118) > 0.8 then + lVHF_Radio_PRESET = "C" + elseif mainPanelDevice:get_argument_value(119) > 0.8 then + lVHF_Radio_PRESET = "D" + else + lVHF_Radio_PRESET = "" + end + ExportScript.Tools.SendData(2001, lVHF_Radio_PRESET) + + ExportScript.Tools.SendData(3003, string.format("Radio " .. lVHF_Radio_PRESET .. "\n" .. VhfRadioFreq)) + +end + + +function ExportScript.navigation1Tile(mainPanelDevice) -- [73] + local dial_compass = math.floor(mainPanelDevice:get_argument_value(73) * 360) + + if dial_compass == 0 then + dial_compass = 360 + end + + local dial_compassTxt = dial_compass + if string.len(tostring(dial_compassTxt)) == 2 then + dial_compass = string.format("0" .. dial_compass) + elseif string.len(tostring(dial_compassTxt)) == 1 then + dial_compass = string.format("00" .. dial_compass) + end + + ExportScript.Tools.SendData(2003, dial_compass) + + + local dial_directionalGyro = math.floor(mainPanelDevice:get_argument_value(31) * 360) + + if dial_directionalGyro == 0 then + dial_directionalGyro = 360 + end + + local dial_directionalGyroTxt = dial_directionalGyro + if string.len(tostring(dial_directionalGyroTxt)) == 2 then + dial_directionalGyro = string.format("0" .. dial_directionalGyro) + elseif string.len(tostring(dial_directionalGyroTxt)) == 1 then + dial_directionalGyro = string.format("00" .. dial_directionalGyro) + end + ExportScript.Tools.SendData(2004, dial_directionalGyro) + + ExportScript.Tools.SendData(3001, string.format("Comp " .. dial_compass .. "\n" + .. "Gyro " .. dial_directionalGyro)) +end + + +function ExportScript.altimeterTile(mainPanelDevice) + --[26] = "%.4f", -- Altimeter gauge Hundreds {0.0, 1.0}{0.0, 10.0} + --[27] = "%.4f", -- Altimeter gauge Thousands {0.0, 1.0}{0.0, 10.0} + --[28] = "%.4f", -- Altimeter gauge Tens Thousands {0.0, 1.0}{0.0, 10.0} + --[29] = "%.4f", -- Altimeter gauge Pressure {0.0, 1.0}{800.0, 1050.0} + local dial_altimeter_tenThousands = math.floor(mainPanelDevice:get_argument_value(28) * 100000) + local altitude = dial_altimeter_tenThousands + altitude = round(altitude,-1) + if altitude > 60000 then + altitude = altitude - 100000 + end + + altitude = format_int(altitude) + + local dial_altimeterPressure = round((mainPanelDevice:get_argument_value(29) * 250) + 800,0) + + if string.find(dial_altimeterPressure, ".") then + --the dot was there, dont do anything + else --the dot is not there, so add it + dial_altimeterPressure = string.format(dial_altimeterPressure .. ".0") + end + + + ExportScript.Tools.SendData(2010, "Altimeter" .. "\n" .. altitude .. "ft") + ExportScript.Tools.SendData(2011, "Pressure" .. "\n" ..dial_altimeterPressure .. " mbar") + ExportScript.Tools.SendData(3004, "Altitude\n" .. altitude .. " ft" .. "\n" .. dial_altimeterPressure .. " mbar")--mbar == hpa. really! + +end + +function ExportScript.BestPowerTiles(mainPanelDevice) + ExportScript.Tools.SendData(3005, "Takeoff 5" .. "\n" .. "RPM 3000\nBoost 12\nAlt 305") + ExportScript.Tools.SendData(3006, "Combat 5" .. "\n" .. "RPM 3000\nBoost 18\nAlt 5.5/16.2") + ExportScript.Tools.SendData(3007, "Nominal 60" .. "\n" .. "RPM 2850\nBoost 12\nAlt 9/19") + ExportScript.Tools.SendData(3008, "Cruse" .. "\n" .. "RPM 2650\nBoost 7\nAlt 12/20.7") +end + +function ExportScript.bestClimb(mainPanelDevice) + + local dial_altimeter_tenThousands = math.floor(mainPanelDevice:get_argument_value(28) * 100000)--altitude + local efficientAirspeed + if dial_altimeter_tenThousands < 12000 then + efficientAirspeed = 185 + elseif dial_altimeter_tenThousands < 15000 then + efficientAirspeed = 180 + elseif dial_altimeter_tenThousands < 20000 then + efficientAirspeed = 170 + elseif dial_altimeter_tenThousands < 25000 then + efficientAirspeed = 160 + elseif dial_altimeter_tenThousands < 30000 then + efficientAirspeed = 150 + elseif dial_altimeter_tenThousands < 33000 then + efficientAirspeed = 140 + elseif dial_altimeter_tenThousands < 37000 then + efficientAirspeed = 130 + elseif dial_altimeter_tenThousands < 40000 then + efficientAirspeed = 120 + else + efficientAirspeed = 110 + end + ExportScript.Tools.SendData(3009, "Climb" .. "\n" .. "RPM 2650\nBoost 7\n" .. efficientAirspeed .. " mph") + ExportScript.Tools.SendData(2012, "Efficient\nClimb\n" .. efficientAirspeed .. " mph") +end + +function ExportScript.gunnerTile(mainPanelDevice) + local dial_gunnerWingspan = mainPanelDevice:get_argument_value(78) + dial_gunnerWingspan = (-75.229 * dial_gunnerWingspan) + 100.51 + dial_gunnerWingspan = round(dial_gunnerWingspan,0) + ExportScript.Tools.SendData(2013, "Gun\nWingspan\n" .. dial_gunnerWingspan .. " ft") + + local dial_gunnerRange = mainPanelDevice:get_argument_value(77) + dial_gunnerRange = (301.1 * dial_gunnerRange * dial_gunnerRange) + + (243.06 * dial_gunnerRange) + + (149.68) + dial_gunnerRange = round(dial_gunnerRange,-1) + ExportScript.Tools.SendData(2014, "Gun\nRange\n" .. dial_gunnerRange .. " ft") + + --Wingspan in feet + local v1_wingspanFt = 19 + local I16_wingspanFt = 30 + local BF109_wingspanFt = 32 + local Fw190_wingspanFt = 34 + local spitfire_wingspanFt = 32 + local P40P51_wingspanFt = 51 + local P47_wingspanFt = 41 + local mosquito_wingspanFt = 54 + local B17G_wingspanFt = 104 + + local optimalTargetWidthName + + if dial_gunnerWingspan >= (v1_wingspanFt - 1) and dial_gunnerWingspan <= (v1_wingspanFt + 1) then + optimalTargetWidthName = "V1" + elseif dial_gunnerWingspan >= (I16_wingspanFt - 1) and dial_gunnerWingspan <= (I16_wingspanFt + 1) then + optimalTargetWidthName = "I-16" + elseif dial_gunnerWingspan >= (BF109_wingspanFt - 1) and dial_gunnerWingspan <= (BF109_wingspanFt + 1) then + optimalTargetWidthName = "BF109" + elseif dial_gunnerWingspan >= (Fw190_wingspanFt - 1) and dial_gunnerWingspan <= (Fw190_wingspanFt + 1) then + optimalTargetWidthName = "Fw109" + elseif dial_gunnerWingspan >= (spitfire_wingspanFt - 1) and dial_gunnerWingspan <= (spitfire_wingspanFt + 1) then + optimalTargetWidthName = "Spitfire" + elseif dial_gunnerWingspan >= (P40P51_wingspanFt - 1) and dial_gunnerWingspan <= (P40P51_wingspanFt + 1) then + optimalTargetWidthName = "P-40/51" + elseif dial_gunnerWingspan >= (P47_wingspanFt - 1) and dial_gunnerWingspan <= (P47_wingspanFt + 1) then + optimalTargetWidthName = "P-47" + elseif dial_gunnerWingspan >= (mosquito_wingspanFt - 1) and dial_gunnerWingspan <= (mosquito_wingspanFt + 1) then + optimalTargetWidthName = "Mossie" + elseif dial_gunnerWingspan >= (B17G_wingspanFt - 1) and dial_gunnerWingspan <= (B17G_wingspanFt + 1) then + optimalTargetWidthName = "B-17G" + else + optimalTargetWidthName = "Tgt - N/A" + end + + ExportScript.Tools.SendData(2015, "Optimal\nTarget\n" .. optimalTargetWidthName) + + ExportScript.Tools.SendData(3010, "Gun Sight\nRng " .. dial_gunnerRange .. " ft\n" .. + "Base " .. dial_gunnerWingspan .. " ft\n" .. + "" .. optimalTargetWidthName) +end + + + + +function ExportScript.gearLamp(mainPanelDevice) + --[49] = "%1d", -- Gear Lamp Down + --[48] = "%1d", -- Gear Lamp Up + + local gearLampDown = mainPanelDevice:get_argument_value(49) + local gearLampUp = mainPanelDevice:get_argument_value(48) + + local isgearLampDownLightOn + local isgearLampUpLightOn + + + if gearLampDown == 1 then + isgearLampDownLightOn = 1 + else + isgearLampDownLightOn = 0 + end + + if gearLampUp == 1 then + isgearLampUpLightOn = 1 + else + isgearLampUpLightOn = 0 + end + + + ExportScript.Tools.SendData(2016, isgearLampDownLightOn) + ExportScript.Tools.SendData(2017, isgearLampUpLightOn) +end + + + + +----------------------- +-- General Functions -- +----------------------- + +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 \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIXCW.lua b/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIXCW.lua index 2f8b73c2..2c4170cc 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIXCW.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/SpitfireLFMkIXCW.lua @@ -160,6 +160,7 @@ function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) ]] + end function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-25.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-25.lua index 891ddf8d..0e692f7d 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Su-25.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-25.lua @@ -1,488 +1,488 @@ --- Su-25A Export - -ExportScript.FoundFCModule = true -ExportScript.Version.Su25 = "1.2.1" - --- auxiliary function -dofile(ExportScript.Config.ExportModulePath.."FC_AuxiliaryFuntions.lua") - ------------------------------------------ --- FLAMING CLIFFS AIRCRAFT / Su-25A -- --- FC aircraft don't support GetDevice -- ------------------------------------------ - -function ExportScript.ProcessIkarusFCHighImportanceConfig() - local lFunctionTyp = "Ikarus" -- function type for shared function - local myData = LoGetSelfData() - - if (myData) then - local lLatitude = myData.LatLongAlt.Lat -- LATITUDE - local lLongitude = myData.LatLongAlt.Long -- LONGITUDE - - local lMachNumber = LoGetMachNumber() -- MACH - - local lEngineTempLeft = LoGetEngineInfo().Temperature.left -- ENG1 EGT C - local lEngineTempRight = LoGetEngineInfo().Temperature.right -- ENG2 EGT C - --[[ - local lBasicAtmospherePressure = LoGetBasicAtmospherePressure() -- BAROMETRIC PRESSURE - local lAltBar = LoGetAltitudeAboveSeaLevel() -- ALTITUDE SEA LEVEL (Meter) - local lAltRad = LoGetAltitudeAboveGroundLevel() -- ALTITUDE GROUND LEVEL (Meter) - local lTrueAirSpeed = LoGetTrueAirSpeed() -- TRUE AIRSPEED (Meter/Second) - local lPitch, lBank, lYaw = LoGetADIPitchBankYaw() -- PITCH, BANK, YAW (Radian) - - local lHeading = myData.Heading -- HEADING (Radian) - local lVVI = LoGetVerticalVelocity() -- VERTICAL SPEED (Meter/Second) - local lIAS = LoGetIndicatedAirSpeed() -- INDICATED AIRSPEED (Meter/Second) - - local lAoA = LoGetAngleOfAttack() -- ANGLE OF ATTACK AoA (Radian) - - local lGlide = LoGetGlideDeviation() -- VOR1 HORIZONTAL DEFLECTION (-1 +1) - local lSide = LoGetSideDeviation() -- VOR1 VERTICAL DEFLECTION (-1 +1) - local lSlipBallPosition = LoGetSlipBallPosition() -- SLIP BALL (-1 +1) - local lAccelerationUnits = LoGetAccelerationUnits().y -- G-LOAD - - local lNavInfoPitch = LoGetNavigationInfo().Requirements.pitch -- AP REQUIRED PITCH (Radian) - local lNavInfoRoll = LoGetNavigationInfo().Requirements.roll -- AP REQUIRED BANK (Radian) - local lNavInfoSpeed = LoGetNavigationInfo().Requirements.speed -- AP SPEED (Meter/Second) - local lNavInfoAltitude = LoGetNavigationInfo().Requirements.altitude -- AP ALTITUDE (Meter) - local lNavInfoVerticalSpeed = LoGetNavigationInfo().Requirements.vertical_speed -- AP VERTICAL SPEED (Meter/Second) - - local lControlPanel_HSI = LoGetControlPanel_HSI() -- HSI Data - local lHSI_RMI = LoGetControlPanel_HSI().RMI_raw -- VOR1 OBS (Radian) - local lHSI_ADF = LoGetControlPanel_HSI().ADF_raw -- ADF OBS (Radian) - local lHSI_Heading = LoGetControlPanel_HSI().Heading_raw -- Heading (Radian) - - local lEngineRPMleft = LoGetEngineInfo().RPM.left -- ENG1 RPM % - local lEngineRPMright = LoGetEngineInfo().RPM.right -- ENG2 RPM % - - local lEngineFuelInternal = LoGetEngineInfo().fuel_internal -- TANK1 (INT) (KG) - local lEngineFuelExternal = LoGetEngineInfo().fuel_external -- TANK2 (EXT) (KG) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - local lPayloadInfo = LoGetPayloadInfo() -- Paylod, e.g. bombs, guns, rockets, fuel tanks,... - ]] - - local lDistanceToWay = 999 - local lRoute = LoGetRoute() - - if (myData and lRoute) then -- if neither are nil - local myLoc = LoGeoCoordinatesToLoCoordinates(lLongitude, lLatitude) - --lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.y - lRoute.goto_point.world_point.y)^2) - lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.z - lRoute.goto_point.world_point.z)^2) - end - - -- IAS-TAS Indicator - ExportScript.AF.FC_Russian_AirSpeed_1100hkm() - - -- AOA Indicator and Accelerometer (AOA, GLoad) - ExportScript.AF.FC_Russian_AOA_Su25() - - -- ADI - ExportScript.AF.FC_Russian_ADI_Old() - - -- HSI - ExportScript.AF.FC_Russian_HSI_old() - - -- Vertical Velocity Indicator (VVI, TurnIndicator, SlipBallPosition) - ExportScript.AF.FC_Russian_VVI_Old() - - -- Radar Altimeter (below 100m is warning light on) - ExportScript.AF.FC_Russian_RadarAltimeter_1500m(100) - - -- Barometric Altimeter - ExportScript.AF.FC_Russian_BarometricAltimeter_late_special() - - -- Tachometer (RPM) - ExportScript.AF.FC_Russian_EngineRPM() - - -- Left Jet Engine Turbine Temperature Indicator (EngineTemp, ExportID) - ExportScript.AF.FC_Russian_EGT_1000gc(lEngineTempLeft, 70) - - -- Right Jet Engine Turbine Temperature Indicator (EngineTemp, ExportID) - ExportScript.AF.FC_Russian_EGT_1000gc(lEngineTempRight, 71) - - -- Clock from Ka-50 - ExportScript.AF.FC_Russian_Clock_late() - - -- HSI Distance - ExportScript.AF.FC_Russian_HSI_Distance_old(lDistanceToWay) - - -- Mach {max, Mach} - local lMachTmp = 0 - if lMachNumber > 0.475 then - --[[ - y_min = 0.0 -- minimaler Ausgabewert - y_max = 1.0 -- maximaler Ausgabewert - x_min = 0.475 -- minimaler Eingangswert - x_max = 1.0 -- maximaler Eingangswert - x = 0.65 -- aktueller Eingangswert - - d_y = 1 -- Delta Ausgabewerte (y_max - y_min) - d_x = 0.525 -- Delta Eingangswerte (x_max - x_min) - m = 1.9047619047619047619047619047619 -- Steigung der linearen Funktion (d_y / d_x) - n = -0.9047619047619047619047619047619 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) - - y = 0,333333333333333333333333333334 -- Ergebnis (m * x + n) - ]] - lMachTmp = 1.9047619047619047619047619047619 * lMachNumber + -0.9047619047619047619047619047619 - else - lMachTmp = 0 - end - - ExportScript.Tools.SendData(72, string.format("%0.4f", 0.665)) - ExportScript.Tools.SendData(73, string.format("%0.4f", lMachTmp)) - else - ExportScript.Tools.WriteToLog("Unknown FC Error, no LoGetSelfData.") - end -end - -function ExportScript.ProcessDACConfigHighImportance() - local lFunctionTyp = "DAC" -- function type for shared function - - -- your script - -end - -function ExportScript.ProcessIkarusFCLowImportanceConfig() - local lFunctionTyp = "Ikarus" -- function type for shared function - - ExportScript.AF.FC_WeaponPanel_SU25(lFunctionTyp) - - ExportScript.AF.FC_SPO15RWR(lFunctionTyp) - - ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) - - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo ~= nil then - -- Hydraulic Pressure Left - ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 240, 85) - - -- Hydraulic Pressure Right - ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.right, 240, 86) - end - - -- EKRAN Message - ExportScript.AF.FC_EKRAN() - - -- Mechanical Configuration Indicator (GearWarningLight, NoseGear, LeftGear, RightGear, Airbreaks, Flaps1, Flaps2) - ExportScript.AF.FC_Russian_MDI_SU25(lFunctionTyp) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - - if lMechInfo ~= nil then - -- Wheelbrakes Hydraulic Pressure Left - ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 87) - - -- Wheelbrakes Hydraulic Pressure Right - ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 88) - end - - --(x < 0 and 'negative' or 'non-negative') - --[[ - local lPayloadInfo = LoGetPayloadInfo() - ExportScript.Tools.WriteToLog('lPayloadInfo: '..ExportScript.Tools.dump(lPayloadInfo)) - - local lSnares = LoGetSnares() -- Flare and Chaff - ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) - - local lSightingSystemInfo = LoGetSightingSystemInfo() - ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)) - - local lTWSInfo = LoGetTWSInfo() -- SPO Informationen, z.B. Radarwarner F15C - ExportScript.Tools.WriteToLog('lTWSInfo: '..ExportScript.Tools.dump(lTWSInfo)) - - local lTargetInformation = LoGetTargetInformation() -- detalierte Radar Infos z.B. F15C - ExportScript.Tools.WriteToLog('lTargetInformation: '..ExportScript.Tools.dump(lTargetInformation)) - - local lLockedTargetInformation = LoGetLockedTargetInformation() - ExportScript.Tools.WriteToLog('lLockedTargetInformation: '..ExportScript.Tools.dump(lLockedTargetInformation)) - - local lF15_TWS_Contacs = LoGetF15_TWS_Contacts() -- the same information but only for F-15 in TWS mode - ExportScript.Tools.WriteToLog('lF15_TWS_Contacs: '..ExportScript.Tools.dump(lF15_TWS_Contacs)) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) - - local lMCPState = LoGetMCPState() -- Warnlichter - ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) - - local lControlPanel_HSI = LoGetControlPanel_HSI() - ExportScript.Tools.WriteToLog('lControlPanel_HSI: '..ExportScript.Tools.dump(lControlPanel_HSI)) - - local lRadioBeaconsStatus = LoGetRadioBeaconsStatus() - ExportScript.Tools.WriteToLog('lRadioBeaconsStatus: '..ExportScript.Tools.dump(lRadioBeaconsStatus)) - - local lEngineInfo = LoGetEngineInfo() - ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - ]] - -- Weapon Control System - --local lNameByType = LoGetNameByType () -- args 4 (number : level1,level2,level3,level4), result string - -- values from LoGetTargetInformation().type - --ExportScript.Tools.WriteToLog('lNameByType: '..ExportScript.Tools.dump(lNameByType)) -end - -function ExportScript.ProcessDACConfigLowImportance() - local lFunctionTyp = "DAC" -- function type for shared function - ExportScript.AF.FC_WeaponPanel_SU25(lFunctionTyp) - ExportScript.AF.FC_SPO15RWR(lFunctionTyp) - ExportScript.AF.FC_Russian_MDI_SU25(lFunctionTyp) - ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) - - ExportScript.AF.StatusLamp() - ExportScript.AF.SightingSystem() -end - ------------------------------ --- Custom functions -- ------------------------------ - -function ExportScript.AF.SightingSystem() - local lSightingSystemInfo = LoGetSightingSystemInfo() - if lSightingSystemInfo == nil then - return - end - --ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)9 - --[[ - [PRF] = { - [selection] = string: "ILV" - [current] = string: "MED" - } - [laser_on] = boolean: "false" - [scale] = { - [azimuth] = number: "0.52359873056412" - [distance] = number: "10000" - } - [radar_on] = boolean: "false" - [optical_system_on] = boolean: "false" - [LaunchAuthorized] = boolean: "false" - [ECM_on] = boolean: "false" - [Manufacturer] = string: "RUS" - [TDC] = { - [y] = number: "0" - [x] = number: "0" - } - [ScanZone] = { - [coverage_H] = { - [min] = number: "0" - [max] = number: "20000" - } - [size] = { - [azimuth] = number: "1.0471974611282" - [elevation] = number: "0.17453290522099" - } - [position] = { - [exceeding_manual] = number: "0" - [distance_manual] = number: "0" - [azimuth] = number: "0" - [elevation] = number: "0" - } - } - ]] - ExportScript.Tools.SendDataDAC("600", lSightingSystemInfo.ECM_on == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("601", lSightingSystemInfo.laser_on == true and 1 or 0 ) - --ExportScript.Tools.SendDataDAC("602", lSightingSystemInfo.optical_system_on == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("603", lSightingSystemInfo.LaunchAuthorized == true and 1 or 0 ) - --ExportScript.Tools.SendDataDAC("604", lSightingSystemInfo.radar_on == true and 1 or 0 ) -end - -function ExportScript.AF.FlareChaff() - local lSnares = LoGetSnares() -- Flare and Chaff - if lSnares == nil then - return - end - --ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) - - --[chaff] = number: "128" - --[flare] = number: "128" -end - -function ExportScript.AF.StatusLamp() - local lMCPState = LoGetMCPState() -- Warning Lights - if lMCPState == nil then - return - end - --ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) - --[[ - [RightTailPlaneFailure] = boolean: "false" - [EOSFailure] = boolean: "false" - [ECMFailure] = boolean: "false" - [RightAileronFailure] = boolean: "false" - [MasterWarning] = boolean: "false" - [RightEngineFailure] = boolean: "false" - [CannonFailure] = boolean: "false" - [MLWSFailure] = boolean: "false" - [ACSFailure] = boolean: "false" - [RadarFailure] = boolean: "false" - [HelmetFailure] = boolean: "false" - [HUDFailure] = boolean: "false" - [LeftMainPumpFailure] = boolean: "false" - [RightWingPumpFailure] = boolean: "false" - [LeftWingPumpFailure] = boolean: "false" - [MFDFailure] = boolean: "false" - [RWSFailure] = boolean: "false" - [GearFailure] = boolean: "false" - [HydraulicsFailure] = boolean: "false" - [AutopilotFailure] = boolean: "true" - [FuelTankDamage] = boolean: "false" - [LeftAileronFailure] = boolean: "false" - [CanopyOpen] = boolean: "false" - [RightMainPumpFailure] = boolean: "false" - [StallSignalization] = boolean: "false" - [LeftEngineFailure] = boolean: "false" - [AutopilotOn] = boolean: "false" - [LeftTailPlaneFailure] = boolean: "false" - ]] - - ExportScript.Tools.SendDataDAC("700", lMCPState.LeftTailPlaneFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("701", lMCPState.RightTailPlaneFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("702", lMCPState.MasterWarning == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("703", lMCPState.LeftEngineFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("704", lMCPState.RightEngineFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("705", lMCPState.LeftAileronFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("706", lMCPState.RightAileronFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("707", lMCPState.LeftMainPumpFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("708", lMCPState.RightMainPumpFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("709", lMCPState.LeftWingPumpFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("710", lMCPState.RightWingPumpFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("711", lMCPState.EOSFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("712", lMCPState.ECMFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("713", lMCPState.CannonFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("714", lMCPState.MLWSFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("715", lMCPState.ACSFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("716", lMCPState.RadarFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("717", lMCPState.HelmetFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("718", lMCPState.HUDFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("719", lMCPState.MFDFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("720", lMCPState.RWSFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("721", lMCPState.GearFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("722", lMCPState.HydraulicsFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("723", lMCPState.AutopilotFailure == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("724", lMCPState.FuelTankDamage == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("725", lMCPState.CanopyOpen == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("726", lMCPState.StallSignalization == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) - - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo ~= nil then - --WriteToLog('lEngineInfo: '..dump(lEngineInfo)) - ExportScript.Tools.SendDataDAC("728", lEngineInfo.EngineStart.left ) -- lamp start left engine 1 (0|1) - ExportScript.Tools.SendDataDAC("729", lEngineInfo.EngineStart.right ) -- lamp start right engine 1 (0|1) - end - - local lAoA = LoGetAngleOfAttack() - if lAoA ~= nil then - lAoA = lAoA * 57.3 - ExportScript.Tools.SendDataDAC("730", (lAoA > 20.0 and 1 or 0) ) -- lamp start AOA warning (0|1) - end -end - -function ExportScript.AF.FuelQuantityIndicator(FunctionTyp) - local lFunctionTyp = FunctionTyp or "Ikarus" --- Fuel quantity shows the fuel remaining in all tanks - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo == nil then - return - end - --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - --[[ - [fuel_external] = number: "0" - [Temperature] = { - [left] = number: "626.99444580078" - [right] = number: "626.99444580078" - } - [RPM] = { - [left] = number: "87.453765869141" - [right] = number: "87.453758239746" - } - [FuelConsumption] = { - [left] = number: "0.1500396137767" - [right] = number: "0.1500396137767" - } - [fuel_internal] = number: "3773.2749023438" - [EngineStart] = { - [left] = number: "0" - [right] = number: "0" - } - [HydraulicPressure] = { - [left] = number: "210" - [right] = number: "210" - } - lPayloadInfo.Stations[8].CLSID == E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF -- ext 800l Fuel Tank - ]] - - local lTotalFuel = lEngineInfo.fuel_internal - local lFuel_leftbar = 1.0 - local lFuel_rightbar = 1.0 - local lExtTank1 = 1.0 -- external tanks - local lExtTank2 = 1.0 -- inner tanks - - if lTotalFuel < 5000 then - if lTotalFuel > 1500 then - --[[ - y_min = 0.0 -- minimaler Ausgabewert - y_max = 1.0 -- maximaler Ausgabewert - x_min = 1500 -- minimaler Eingangswert - x_max = 5000 -- maximaler Eingangswert - x = 3500 -- aktueller Eingangswert - - d_y = 1 -- Delta Ausgabewerte (y_max - y_min) - d_x = 3500 -- Delta Eingangswerte (x_max - x_min) - m = 2.8571428571428571428571428571429e-4 -- Steigung der linearen Funktion (d_y / d_x) - n = -0.42857142857142857142857142857143 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) - - y = 0,57142857142857142857142857142857 -- Ergebnis (m * x + n) - ]] - lFuel_leftbar = 2.8571428571428571428571428571429e-4 * lTotalFuel + -0.42857142857142857142857142857143 - else - lFuel_leftbar = 0.0 - end - else - lFuel_leftbar = 1.0 - end - if lTotalFuel < 1200 then - lFuel_rightbar = lTotalFuel / 1200 - else - lFuel_rightbar = 1.0 - end - - local lPayloadInfo = LoGetPayloadInfo() - if lPayloadInfo ~= nil then - --WriteToLog('lPayloadInfo: '..dump(lPayloadInfo)) - if lPayloadInfo.Stations[10].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" or - lPayloadInfo.Stations[9].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" then -- external tanks presend and full (panel 6 and 5) - lExtTank1 = ((lEngineInfo.fuel_external < 1240.0 ) and 1.0 or 0.0) - end - if lPayloadInfo.Stations[5].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" or - lPayloadInfo.Stations[6].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" then-- inner tanks presend and full (panel 3 and 8) - lExtTank2 = ((lEngineInfo.fuel_external < 1.0 ) and 1.0 or 0.0) - end - end - -- Fuel_leftbar - -- Fuel_rightbar - -- Light1 - -- Light2 - -- Light3 - -- Light4 - -- Light5 - -- BingoLight - - if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - ExportScript.Tools.SendData(300, string.format("%0.4f", lFuel_leftbar)) - ExportScript.Tools.SendData(301, string.format("%0.4f", lFuel_rightbar)) - ExportScript.Tools.SendData(302, lExtTank1) -- external tanks - ExportScript.Tools.SendData(303, lExtTank2) -- inner tanks - ExportScript.Tools.SendData(304, (lEngineInfo.fuel_internal < 2790.0 and 1 or 0)) -- inner wing tank - ExportScript.Tools.SendData(305, (lEngineInfo.fuel_internal < 1840.0 and 1 or 0)) -- inner hull tank - ExportScript.Tools.SendData(306, (lEngineInfo.fuel_internal < 600.0 and 1 or 0)) -- Bingo Fuel - end - - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - ExportScript.Tools.SendDataDAC(300, string.format("%d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10)) -- total fuel in kg - ExportScript.Tools.SendDataDAC(303, lExtTank1) -- external tanks - ExportScript.Tools.SendDataDAC(304, lExtTank2) -- inner tanks - ExportScript.Tools.SendDataDAC(305, (lEngineInfo.fuel_internal < 2790.0 and 1 or 0)) -- inner wing tank - ExportScript.Tools.SendDataDAC(306, (lEngineInfo.fuel_internal < 1840.0 and 1 or 0)) -- inner hull tank - ExportScript.Tools.SendDataDAC(307, (lEngineInfo.fuel_internal < 1.0 and 1 or 0)) -- central hull tank - ExportScript.Tools.SendDataDAC(308, (lEngineInfo.fuel_internal < 600.0 and 1 or 0)) -- Bingo Fuel - end +-- Su-25A Export + +ExportScript.FoundFCModule = true +ExportScript.Version.Su25 = "1.2.1" + +-- auxiliary function +dofile(ExportScript.Config.ExportModulePath.."FC_AuxiliaryFuntions.lua") + +----------------------------------------- +-- FLAMING CLIFFS AIRCRAFT / Su-25A -- +-- FC aircraft don't support GetDevice -- +----------------------------------------- + +function ExportScript.ProcessIkarusFCHighImportanceConfig() + local lFunctionTyp = "Ikarus" -- function type for shared function + local myData = LoGetSelfData() + + if (myData) then + local lLatitude = myData.LatLongAlt.Lat -- LATITUDE + local lLongitude = myData.LatLongAlt.Long -- LONGITUDE + + local lMachNumber = LoGetMachNumber() -- MACH + + local lEngineTempLeft = LoGetEngineInfo().Temperature.left -- ENG1 EGT C + local lEngineTempRight = LoGetEngineInfo().Temperature.right -- ENG2 EGT C + --[[ + local lBasicAtmospherePressure = LoGetBasicAtmospherePressure() -- BAROMETRIC PRESSURE + local lAltBar = LoGetAltitudeAboveSeaLevel() -- ALTITUDE SEA LEVEL (Meter) + local lAltRad = LoGetAltitudeAboveGroundLevel() -- ALTITUDE GROUND LEVEL (Meter) + local lTrueAirSpeed = LoGetTrueAirSpeed() -- TRUE AIRSPEED (Meter/Second) + local lPitch, lBank, lYaw = LoGetADIPitchBankYaw() -- PITCH, BANK, YAW (Radian) + + local lHeading = myData.Heading -- HEADING (Radian) + local lVVI = LoGetVerticalVelocity() -- VERTICAL SPEED (Meter/Second) + local lIAS = LoGetIndicatedAirSpeed() -- INDICATED AIRSPEED (Meter/Second) + + local lAoA = LoGetAngleOfAttack() -- ANGLE OF ATTACK AoA (Radian) + + local lGlide = LoGetGlideDeviation() -- VOR1 HORIZONTAL DEFLECTION (-1 +1) + local lSide = LoGetSideDeviation() -- VOR1 VERTICAL DEFLECTION (-1 +1) + local lSlipBallPosition = LoGetSlipBallPosition() -- SLIP BALL (-1 +1) + local lAccelerationUnits = LoGetAccelerationUnits().y -- G-LOAD + + local lNavInfoPitch = LoGetNavigationInfo().Requirements.pitch -- AP REQUIRED PITCH (Radian) + local lNavInfoRoll = LoGetNavigationInfo().Requirements.roll -- AP REQUIRED BANK (Radian) + local lNavInfoSpeed = LoGetNavigationInfo().Requirements.speed -- AP SPEED (Meter/Second) + local lNavInfoAltitude = LoGetNavigationInfo().Requirements.altitude -- AP ALTITUDE (Meter) + local lNavInfoVerticalSpeed = LoGetNavigationInfo().Requirements.vertical_speed -- AP VERTICAL SPEED (Meter/Second) + + local lControlPanel_HSI = LoGetControlPanel_HSI() -- HSI Data + local lHSI_RMI = LoGetControlPanel_HSI().RMI_raw -- VOR1 OBS (Radian) + local lHSI_ADF = LoGetControlPanel_HSI().ADF_raw -- ADF OBS (Radian) + local lHSI_Heading = LoGetControlPanel_HSI().Heading_raw -- Heading (Radian) + + local lEngineRPMleft = LoGetEngineInfo().RPM.left -- ENG1 RPM % + local lEngineRPMright = LoGetEngineInfo().RPM.right -- ENG2 RPM % + + local lEngineFuelInternal = LoGetEngineInfo().fuel_internal -- TANK1 (INT) (KG) + local lEngineFuelExternal = LoGetEngineInfo().fuel_external -- TANK2 (EXT) (KG) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + local lPayloadInfo = LoGetPayloadInfo() -- Paylod, e.g. bombs, guns, rockets, fuel tanks,... + ]] + + local lDistanceToWay = 999 + local lRoute = LoGetRoute() + + if (myData and lRoute) then -- if neither are nil + local myLoc = LoGeoCoordinatesToLoCoordinates(lLongitude, lLatitude) + --lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.y - lRoute.goto_point.world_point.y)^2) + lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.z - lRoute.goto_point.world_point.z)^2) + end + + -- IAS-TAS Indicator + ExportScript.AF.FC_Russian_AirSpeed_1100hkm() + + -- AOA Indicator and Accelerometer (AOA, GLoad) + ExportScript.AF.FC_Russian_AOA_Su25() + + -- ADI + ExportScript.AF.FC_Russian_ADI_Old() + + -- HSI + ExportScript.AF.FC_Russian_HSI_old() + + -- Vertical Velocity Indicator (VVI, TurnIndicator, SlipBallPosition) + ExportScript.AF.FC_Russian_VVI_Old() + + -- Radar Altimeter (below 100m is warning light on) + ExportScript.AF.FC_Russian_RadarAltimeter_1500m(100) + + -- Barometric Altimeter + ExportScript.AF.FC_Russian_BarometricAltimeter_late_special() + + -- Tachometer (RPM) + ExportScript.AF.FC_Russian_EngineRPM() + + -- Left Jet Engine Turbine Temperature Indicator (EngineTemp, ExportID) + ExportScript.AF.FC_Russian_EGT_1000gc(lEngineTempLeft, 70) + + -- Right Jet Engine Turbine Temperature Indicator (EngineTemp, ExportID) + ExportScript.AF.FC_Russian_EGT_1000gc(lEngineTempRight, 71) + + -- Clock from Ka-50 + ExportScript.AF.FC_Russian_Clock_late() + + -- HSI Distance + ExportScript.AF.FC_Russian_HSI_Distance_old(lDistanceToWay) + + -- Mach {max, Mach} + local lMachTmp = 0 + if lMachNumber > 0.475 then + --[[ + y_min = 0.0 -- minimaler Ausgabewert + y_max = 1.0 -- maximaler Ausgabewert + x_min = 0.475 -- minimaler Eingangswert + x_max = 1.0 -- maximaler Eingangswert + x = 0.65 -- aktueller Eingangswert + + d_y = 1 -- Delta Ausgabewerte (y_max - y_min) + d_x = 0.525 -- Delta Eingangswerte (x_max - x_min) + m = 1.9047619047619047619047619047619 -- Steigung der linearen Funktion (d_y / d_x) + n = -0.9047619047619047619047619047619 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) + + y = 0,333333333333333333333333333334 -- Ergebnis (m * x + n) + ]] + lMachTmp = 1.9047619047619047619047619047619 * lMachNumber + -0.9047619047619047619047619047619 + else + lMachTmp = 0 + end + + ExportScript.Tools.SendData(72, string.format("%0.4f", 0.665)) + ExportScript.Tools.SendData(73, string.format("%0.4f", lMachTmp)) + else + ExportScript.Tools.WriteToLog("Unknown FC Error, no LoGetSelfData.") + end +end + +function ExportScript.ProcessDACConfigHighImportance() + local lFunctionTyp = "DAC" -- function type for shared function + + -- your script + +end + +function ExportScript.ProcessIkarusFCLowImportanceConfig() + local lFunctionTyp = "Ikarus" -- function type for shared function + + ExportScript.AF.FC_WeaponPanel_SU25(lFunctionTyp) + + ExportScript.AF.FC_SPO15RWR(lFunctionTyp) + + ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) + + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo ~= nil then + -- Hydraulic Pressure Left + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 240, 85) + + -- Hydraulic Pressure Right + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.right, 240, 86) + end + + -- EKRAN Message + ExportScript.AF.FC_EKRAN() + + -- Mechanical Configuration Indicator (GearWarningLight, NoseGear, LeftGear, RightGear, Airbreaks, Flaps1, Flaps2) + ExportScript.AF.FC_Russian_MDI_SU25(lFunctionTyp) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + + if lMechInfo ~= nil then + -- Wheelbrakes Hydraulic Pressure Left + ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 87) + + -- Wheelbrakes Hydraulic Pressure Right + ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 88) + end + + --(x < 0 and 'negative' or 'non-negative') + --[[ + local lPayloadInfo = LoGetPayloadInfo() + ExportScript.Tools.WriteToLog('lPayloadInfo: '..ExportScript.Tools.dump(lPayloadInfo)) + + local lSnares = LoGetSnares() -- Flare and Chaff + ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) + + local lSightingSystemInfo = LoGetSightingSystemInfo() + ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)) + + local lTWSInfo = LoGetTWSInfo() -- SPO Informationen, z.B. Radarwarner F15C + ExportScript.Tools.WriteToLog('lTWSInfo: '..ExportScript.Tools.dump(lTWSInfo)) + + local lTargetInformation = LoGetTargetInformation() -- detalierte Radar Infos z.B. F15C + ExportScript.Tools.WriteToLog('lTargetInformation: '..ExportScript.Tools.dump(lTargetInformation)) + + local lLockedTargetInformation = LoGetLockedTargetInformation() + ExportScript.Tools.WriteToLog('lLockedTargetInformation: '..ExportScript.Tools.dump(lLockedTargetInformation)) + + local lF15_TWS_Contacs = LoGetF15_TWS_Contacts() -- the same information but only for F-15 in TWS mode + ExportScript.Tools.WriteToLog('lF15_TWS_Contacs: '..ExportScript.Tools.dump(lF15_TWS_Contacs)) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) + + local lMCPState = LoGetMCPState() -- Warnlichter + ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) + + local lControlPanel_HSI = LoGetControlPanel_HSI() + ExportScript.Tools.WriteToLog('lControlPanel_HSI: '..ExportScript.Tools.dump(lControlPanel_HSI)) + + local lRadioBeaconsStatus = LoGetRadioBeaconsStatus() + ExportScript.Tools.WriteToLog('lRadioBeaconsStatus: '..ExportScript.Tools.dump(lRadioBeaconsStatus)) + + local lEngineInfo = LoGetEngineInfo() + ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + ]] + -- Weapon Control System + --local lNameByType = LoGetNameByType () -- args 4 (number : level1,level2,level3,level4), result string + -- values from LoGetTargetInformation().type + --ExportScript.Tools.WriteToLog('lNameByType: '..ExportScript.Tools.dump(lNameByType)) +end + +function ExportScript.ProcessDACConfigLowImportance() + local lFunctionTyp = "DAC" -- function type for shared function + ExportScript.AF.FC_WeaponPanel_SU25(lFunctionTyp) + ExportScript.AF.FC_SPO15RWR(lFunctionTyp) + ExportScript.AF.FC_Russian_MDI_SU25(lFunctionTyp) + ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) + + ExportScript.AF.StatusLamp() + ExportScript.AF.SightingSystem() +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.AF.SightingSystem() + local lSightingSystemInfo = LoGetSightingSystemInfo() + if lSightingSystemInfo == nil then + return + end + --ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)9 + --[[ + [PRF] = { + [selection] = string: "ILV" + [current] = string: "MED" + } + [laser_on] = boolean: "false" + [scale] = { + [azimuth] = number: "0.52359873056412" + [distance] = number: "10000" + } + [radar_on] = boolean: "false" + [optical_system_on] = boolean: "false" + [LaunchAuthorized] = boolean: "false" + [ECM_on] = boolean: "false" + [Manufacturer] = string: "RUS" + [TDC] = { + [y] = number: "0" + [x] = number: "0" + } + [ScanZone] = { + [coverage_H] = { + [min] = number: "0" + [max] = number: "20000" + } + [size] = { + [azimuth] = number: "1.0471974611282" + [elevation] = number: "0.17453290522099" + } + [position] = { + [exceeding_manual] = number: "0" + [distance_manual] = number: "0" + [azimuth] = number: "0" + [elevation] = number: "0" + } + } + ]] + ExportScript.Tools.SendDataDAC("600", lSightingSystemInfo.ECM_on == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("601", lSightingSystemInfo.laser_on == true and 1 or 0 ) + --ExportScript.Tools.SendDataDAC("602", lSightingSystemInfo.optical_system_on == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("603", lSightingSystemInfo.LaunchAuthorized == true and 1 or 0 ) + --ExportScript.Tools.SendDataDAC("604", lSightingSystemInfo.radar_on == true and 1 or 0 ) +end + +function ExportScript.AF.FlareChaff() + local lSnares = LoGetSnares() -- Flare and Chaff + if lSnares == nil then + return + end + --ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) + + --[chaff] = number: "128" + --[flare] = number: "128" +end + +function ExportScript.AF.StatusLamp() + local lMCPState = LoGetMCPState() -- Warning Lights + if lMCPState == nil then + return + end + --ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) + --[[ + [RightTailPlaneFailure] = boolean: "false" + [EOSFailure] = boolean: "false" + [ECMFailure] = boolean: "false" + [RightAileronFailure] = boolean: "false" + [MasterWarning] = boolean: "false" + [RightEngineFailure] = boolean: "false" + [CannonFailure] = boolean: "false" + [MLWSFailure] = boolean: "false" + [ACSFailure] = boolean: "false" + [RadarFailure] = boolean: "false" + [HelmetFailure] = boolean: "false" + [HUDFailure] = boolean: "false" + [LeftMainPumpFailure] = boolean: "false" + [RightWingPumpFailure] = boolean: "false" + [LeftWingPumpFailure] = boolean: "false" + [MFDFailure] = boolean: "false" + [RWSFailure] = boolean: "false" + [GearFailure] = boolean: "false" + [HydraulicsFailure] = boolean: "false" + [AutopilotFailure] = boolean: "true" + [FuelTankDamage] = boolean: "false" + [LeftAileronFailure] = boolean: "false" + [CanopyOpen] = boolean: "false" + [RightMainPumpFailure] = boolean: "false" + [StallSignalization] = boolean: "false" + [LeftEngineFailure] = boolean: "false" + [AutopilotOn] = boolean: "false" + [LeftTailPlaneFailure] = boolean: "false" + ]] + + ExportScript.Tools.SendDataDAC("700", lMCPState.LeftTailPlaneFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("701", lMCPState.RightTailPlaneFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("702", lMCPState.MasterWarning == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("703", lMCPState.LeftEngineFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("704", lMCPState.RightEngineFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("705", lMCPState.LeftAileronFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("706", lMCPState.RightAileronFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("707", lMCPState.LeftMainPumpFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("708", lMCPState.RightMainPumpFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("709", lMCPState.LeftWingPumpFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("710", lMCPState.RightWingPumpFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("711", lMCPState.EOSFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("712", lMCPState.ECMFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("713", lMCPState.CannonFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("714", lMCPState.MLWSFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("715", lMCPState.ACSFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("716", lMCPState.RadarFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("717", lMCPState.HelmetFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("718", lMCPState.HUDFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("719", lMCPState.MFDFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("720", lMCPState.RWSFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("721", lMCPState.GearFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("722", lMCPState.HydraulicsFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("723", lMCPState.AutopilotFailure == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("724", lMCPState.FuelTankDamage == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("725", lMCPState.CanopyOpen == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("726", lMCPState.StallSignalization == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) + + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo ~= nil then + --WriteToLog('lEngineInfo: '..dump(lEngineInfo)) + ExportScript.Tools.SendDataDAC("728", lEngineInfo.EngineStart.left ) -- lamp start left engine 1 (0|1) + ExportScript.Tools.SendDataDAC("729", lEngineInfo.EngineStart.right ) -- lamp start right engine 1 (0|1) + end + + local lAoA = LoGetAngleOfAttack() + if lAoA ~= nil then + lAoA = lAoA * 57.3 + ExportScript.Tools.SendDataDAC("730", (lAoA > 20.0 and 1 or 0) ) -- lamp start AOA warning (0|1) + end +end + +function ExportScript.AF.FuelQuantityIndicator(FunctionTyp) + local lFunctionTyp = FunctionTyp or "Ikarus" +-- Fuel quantity shows the fuel remaining in all tanks + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo == nil then + return + end + --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + --[[ + [fuel_external] = number: "0" + [Temperature] = { + [left] = number: "626.99444580078" + [right] = number: "626.99444580078" + } + [RPM] = { + [left] = number: "87.453765869141" + [right] = number: "87.453758239746" + } + [FuelConsumption] = { + [left] = number: "0.1500396137767" + [right] = number: "0.1500396137767" + } + [fuel_internal] = number: "3773.2749023438" + [EngineStart] = { + [left] = number: "0" + [right] = number: "0" + } + [HydraulicPressure] = { + [left] = number: "210" + [right] = number: "210" + } + lPayloadInfo.Stations[8].CLSID == E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF -- ext 800l Fuel Tank + ]] + + local lTotalFuel = lEngineInfo.fuel_internal + local lFuel_leftbar = 1.0 + local lFuel_rightbar = 1.0 + local lExtTank1 = 1.0 -- external tanks + local lExtTank2 = 1.0 -- inner tanks + + if lTotalFuel < 5000 then + if lTotalFuel > 1500 then + --[[ + y_min = 0.0 -- minimaler Ausgabewert + y_max = 1.0 -- maximaler Ausgabewert + x_min = 1500 -- minimaler Eingangswert + x_max = 5000 -- maximaler Eingangswert + x = 3500 -- aktueller Eingangswert + + d_y = 1 -- Delta Ausgabewerte (y_max - y_min) + d_x = 3500 -- Delta Eingangswerte (x_max - x_min) + m = 2.8571428571428571428571428571429e-4 -- Steigung der linearen Funktion (d_y / d_x) + n = -0.42857142857142857142857142857143 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) + + y = 0,57142857142857142857142857142857 -- Ergebnis (m * x + n) + ]] + lFuel_leftbar = 2.8571428571428571428571428571429e-4 * lTotalFuel + -0.42857142857142857142857142857143 + else + lFuel_leftbar = 0.0 + end + else + lFuel_leftbar = 1.0 + end + if lTotalFuel < 1200 then + lFuel_rightbar = lTotalFuel / 1200 + else + lFuel_rightbar = 1.0 + end + + local lPayloadInfo = LoGetPayloadInfo() + if lPayloadInfo ~= nil then + --WriteToLog('lPayloadInfo: '..dump(lPayloadInfo)) + if lPayloadInfo.Stations[10].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" or + lPayloadInfo.Stations[9].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" then -- external tanks presend and full (panel 6 and 5) + lExtTank1 = ((lEngineInfo.fuel_external < 1240.0 ) and 1.0 or 0.0) + end + if lPayloadInfo.Stations[5].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" or + lPayloadInfo.Stations[6].CLSID == "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}" then-- inner tanks presend and full (panel 3 and 8) + lExtTank2 = ((lEngineInfo.fuel_external < 1.0 ) and 1.0 or 0.0) + end + end + -- Fuel_leftbar + -- Fuel_rightbar + -- Light1 + -- Light2 + -- Light3 + -- Light4 + -- Light5 + -- BingoLight + + if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then + ExportScript.Tools.SendData(300, string.format("%0.4f", lFuel_leftbar)) + ExportScript.Tools.SendData(301, string.format("%0.4f", lFuel_rightbar)) + ExportScript.Tools.SendData(302, lExtTank1) -- external tanks + ExportScript.Tools.SendData(303, lExtTank2) -- inner tanks + ExportScript.Tools.SendData(304, (lEngineInfo.fuel_internal < 2790.0 and 1 or 0)) -- inner wing tank + ExportScript.Tools.SendData(305, (lEngineInfo.fuel_internal < 1840.0 and 1 or 0)) -- inner hull tank + ExportScript.Tools.SendData(306, (lEngineInfo.fuel_internal < 600.0 and 1 or 0)) -- Bingo Fuel + end + + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + ExportScript.Tools.SendDataDAC(300, string.format("%d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10)) -- total fuel in kg + ExportScript.Tools.SendDataDAC(303, lExtTank1) -- external tanks + ExportScript.Tools.SendDataDAC(304, lExtTank2) -- inner tanks + ExportScript.Tools.SendDataDAC(305, (lEngineInfo.fuel_internal < 2790.0 and 1 or 0)) -- inner wing tank + ExportScript.Tools.SendDataDAC(306, (lEngineInfo.fuel_internal < 1840.0 and 1 or 0)) -- inner hull tank + ExportScript.Tools.SendDataDAC(307, (lEngineInfo.fuel_internal < 1.0 and 1 or 0)) -- central hull tank + ExportScript.Tools.SendDataDAC(308, (lEngineInfo.fuel_internal < 600.0 and 1 or 0)) -- Bingo Fuel + end end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-27.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-27.lua index 8dce616a..e47e89c5 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Su-27.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-27.lua @@ -1,119 +1,119 @@ --- Su-27 Export +-- Su-27 Export -ExportScript.FoundFCModule = true +ExportScript.FoundFCModule = true ExportScript.Version.Su27 = "1.2.1" -- auxiliary function -dofile(ExportScript.Config.ExportModulePath.."FC_AuxiliaryFuntions.lua") - ------------------------------------------ --- FLAMING CLIFFS AIRCRAFT / Su-27 -- --- FC aircraft don't support GetDevice -- ------------------------------------------ - -function ExportScript.ProcessIkarusFCHighImportanceConfig() - local lFunctionTyp = "Ikarus" -- function type for shared function - local myData = LoGetSelfData() - - if (myData) then +dofile(ExportScript.Config.ExportModulePath.."FC_AuxiliaryFuntions.lua") + +----------------------------------------- +-- FLAMING CLIFFS AIRCRAFT / Su-27 -- +-- FC aircraft don't support GetDevice -- +----------------------------------------- + +function ExportScript.ProcessIkarusFCHighImportanceConfig() + local lFunctionTyp = "Ikarus" -- function type for shared function + local myData = LoGetSelfData() + + if (myData) then local lLatitude = myData.LatLongAlt.Lat -- LATITUDE local lLongitude = myData.LatLongAlt.Long -- LONGITUDE local lEngineTempLeft = LoGetEngineInfo().Temperature.left -- ENG1 EGT C local lEngineTempRight = LoGetEngineInfo().Temperature.right -- ENG2 EGT C - --[[ - local lBasicAtmospherePressure = LoGetBasicAtmospherePressure() -- BAROMETRIC PRESSURE - local lAltBar = LoGetAltitudeAboveSeaLevel() -- ALTITUDE SEA LEVEL (Meter) - local lAltRad = LoGetAltitudeAboveGroundLevel() -- ALTITUDE GROUND LEVEL (Meter) - local lTrueAirSpeed = LoGetTrueAirSpeed() -- TRUE AIRSPEED (Meter/Second) - local lPitch, lBank, lYaw = LoGetADIPitchBankYaw() -- PITCH, BANK, YAW (Radian) - - local lHeading = myData.Heading -- HEADING (Radian) - local lVVI = LoGetVerticalVelocity() -- VERTICAL SPEED (Meter/Second) - local lIAS = LoGetIndicatedAirSpeed() -- INDICATED AIRSPEED (Meter/Second) - local lMachNumber = LoGetMachNumber() -- MACH - local lAoA = LoGetAngleOfAttack() -- ANGLE OF ATTACK AoA (Radian) - - local lGlide = LoGetGlideDeviation() -- VOR1 HORIZONTAL DEFLECTION (-1 +1) - local lSide = LoGetSideDeviation() -- VOR1 VERTICAL DEFLECTION (-1 +1) - local lSlipBallPosition = LoGetSlipBallPosition() -- SLIP BALL (-1 +1) - local lAccelerationUnits = LoGetAccelerationUnits().y -- G-LOAD - - local lNavInfoPitch = LoGetNavigationInfo().Requirements.pitch -- AP REQUIRED PITCH (Radian) - local lNavInfoRoll = LoGetNavigationInfo().Requirements.roll -- AP REQUIRED BANK (Radian) - local lNavInfoSpeed = LoGetNavigationInfo().Requirements.speed -- AP SPEED (Meter/Second) - local lNavInfoAltitude = LoGetNavigationInfo().Requirements.altitude -- AP ALTITUDE (Meter) - local lNavInfoVerticalSpeed = LoGetNavigationInfo().Requirements.vertical_speed -- AP VERTICAL SPEED (Meter/Second) - - local lControlPanel_HSI = LoGetControlPanel_HSI() -- HSI Data - local lHSI_RMI = LoGetControlPanel_HSI().RMI_raw -- VOR1 OBS (Radian) - local lHSI_ADF = LoGetControlPanel_HSI().ADF_raw -- ADF OBS (Radian) - local lHSI_Heading = LoGetControlPanel_HSI().Heading_raw -- Heading (Radian) - - local lEngineRPMleft = LoGetEngineInfo().RPM.left -- ENG1 RPM % - local lEngineRPMright = LoGetEngineInfo().RPM.right -- ENG2 RPM % - local lEngineFuelInternal = LoGetEngineInfo().fuel_internal -- TANK1 (INT) (KG) - local lEngineFuelExternal = LoGetEngineInfo().fuel_external -- TANK2 (EXT) (KG) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + --[[ + local lBasicAtmospherePressure = LoGetBasicAtmospherePressure() -- BAROMETRIC PRESSURE + local lAltBar = LoGetAltitudeAboveSeaLevel() -- ALTITUDE SEA LEVEL (Meter) + local lAltRad = LoGetAltitudeAboveGroundLevel() -- ALTITUDE GROUND LEVEL (Meter) + local lTrueAirSpeed = LoGetTrueAirSpeed() -- TRUE AIRSPEED (Meter/Second) + local lPitch, lBank, lYaw = LoGetADIPitchBankYaw() -- PITCH, BANK, YAW (Radian) + + local lHeading = myData.Heading -- HEADING (Radian) + local lVVI = LoGetVerticalVelocity() -- VERTICAL SPEED (Meter/Second) + local lIAS = LoGetIndicatedAirSpeed() -- INDICATED AIRSPEED (Meter/Second) + local lMachNumber = LoGetMachNumber() -- MACH + local lAoA = LoGetAngleOfAttack() -- ANGLE OF ATTACK AoA (Radian) + + local lGlide = LoGetGlideDeviation() -- VOR1 HORIZONTAL DEFLECTION (-1 +1) + local lSide = LoGetSideDeviation() -- VOR1 VERTICAL DEFLECTION (-1 +1) + local lSlipBallPosition = LoGetSlipBallPosition() -- SLIP BALL (-1 +1) + local lAccelerationUnits = LoGetAccelerationUnits().y -- G-LOAD + + local lNavInfoPitch = LoGetNavigationInfo().Requirements.pitch -- AP REQUIRED PITCH (Radian) + local lNavInfoRoll = LoGetNavigationInfo().Requirements.roll -- AP REQUIRED BANK (Radian) + local lNavInfoSpeed = LoGetNavigationInfo().Requirements.speed -- AP SPEED (Meter/Second) + local lNavInfoAltitude = LoGetNavigationInfo().Requirements.altitude -- AP ALTITUDE (Meter) + local lNavInfoVerticalSpeed = LoGetNavigationInfo().Requirements.vertical_speed -- AP VERTICAL SPEED (Meter/Second) + + local lControlPanel_HSI = LoGetControlPanel_HSI() -- HSI Data + local lHSI_RMI = LoGetControlPanel_HSI().RMI_raw -- VOR1 OBS (Radian) + local lHSI_ADF = LoGetControlPanel_HSI().ADF_raw -- ADF OBS (Radian) + local lHSI_Heading = LoGetControlPanel_HSI().Heading_raw -- Heading (Radian) + + local lEngineRPMleft = LoGetEngineInfo().RPM.left -- ENG1 RPM % + local lEngineRPMright = LoGetEngineInfo().RPM.right -- ENG2 RPM % + local lEngineFuelInternal = LoGetEngineInfo().fuel_internal -- TANK1 (INT) (KG) + local lEngineFuelExternal = LoGetEngineInfo().fuel_external -- TANK2 (EXT) (KG) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... local lPayloadInfo = LoGetPayloadInfo() -- Paylod, e.g. bombs, guns, rockets, fuel tanks,... - ]] - - local lDistanceToWay = 999 - local lRoute = LoGetRoute() - - if (myData and lRoute) then -- if neither are nil - local myLoc = LoGeoCoordinatesToLoCoordinates(lLongitude, lLatitude) - --lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.y - lRoute.goto_point.world_point.y)^2) - lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.z - lRoute.goto_point.world_point.z)^2) - end - - -- IAS-MACH Indicator - ExportScript.AF.FC_Russian_AirSpeed_1600hkm() - - -- AOA Indicator and Accelerometer (AOA, GLoad) - ExportScript.AF.FC_Russian_AOA_Su2733() - - -- ADI - ExportScript.AF.FC_Russian_ADI_Old() - - -- HSI - ExportScript.AF.FC_Russian_HSI(lDistanceToWay) - - -- Vertical Velocity Indicator (VVI) - ExportScript.AF.FC_Russian_VVI_Old() - - -- Radar Altimeter (below 100m is warning light on) - ExportScript.AF.FC_Russian_RadarAltimeter_1500m(100) - - -- Barometric Altimeter - ExportScript.AF.FC_Russian_BarometricAltimeter_20000() - - -- Tachometer (RPM) - ExportScript.AF.FC_Russian_EngineRPM() - - -- Left Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) - ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempLeft, 1200, 100, 70, 71) - - -- Right Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) - ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempRight, 1200, 100, 72, 73) - - -- Clock from Ka-50 - ExportScript.AF.FC_Russian_Clock_late() - else - ExportScript.Tools.WriteToLog("Unknown FC Error, no LoGetSelfData.") - end -end - + ]] + + local lDistanceToWay = 999 + local lRoute = LoGetRoute() + + if (myData and lRoute) then -- if neither are nil + local myLoc = LoGeoCoordinatesToLoCoordinates(lLongitude, lLatitude) + --lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.y - lRoute.goto_point.world_point.y)^2) + lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.z - lRoute.goto_point.world_point.z)^2) + end + + -- IAS-MACH Indicator + ExportScript.AF.FC_Russian_AirSpeed_1600hkm() + + -- AOA Indicator and Accelerometer (AOA, GLoad) + ExportScript.AF.FC_Russian_AOA_Su2733() + + -- ADI + ExportScript.AF.FC_Russian_ADI_Old() + + -- HSI + ExportScript.AF.FC_Russian_HSI(lDistanceToWay) + + -- Vertical Velocity Indicator (VVI) + ExportScript.AF.FC_Russian_VVI_Old() + + -- Radar Altimeter (below 100m is warning light on) + ExportScript.AF.FC_Russian_RadarAltimeter_1500m(100) + + -- Barometric Altimeter + ExportScript.AF.FC_Russian_BarometricAltimeter_20000() + + -- Tachometer (RPM) + ExportScript.AF.FC_Russian_EngineRPM() + + -- Left Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) + ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempLeft, 1200, 100, 70, 71) + + -- Right Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) + ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempRight, 1200, 100, 72, 73) + + -- Clock from Ka-50 + ExportScript.AF.FC_Russian_Clock_late() + else + ExportScript.Tools.WriteToLog("Unknown FC Error, no LoGetSelfData.") + end +end + function ExportScript.ProcessDACConfigHighImportance() local lFunctionTyp = "DAC" -- function type for shared function -- your script -end - +end + function ExportScript.ProcessIkarusFCLowImportanceConfig() - local lFunctionTyp = "Ikarus" -- function type for shared function + local lFunctionTyp = "Ikarus" -- function type for shared function ExportScript.AF.FC_WeaponPanel_SU27(lFunctionTyp) @@ -122,218 +122,218 @@ function ExportScript.ProcessIkarusFCLowImportanceConfig() -- EKRAN Message ExportScript.AF.FC_EKRAN() - + -- Fuel Quantity Indicator ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) - - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo ~= nil then - --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - -- Hydraulic Pressure Left - ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 240, 85) - - -- Hydraulic Pressure Right - ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.right, 240, 86) - end - - -- Engine Lamps, Start and Afterburner - ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) - + + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo ~= nil then + --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + -- Hydraulic Pressure Left + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 240, 85) + + -- Hydraulic Pressure Right + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.right, 240, 86) + end + + -- Engine Lamps, Start and Afterburner + ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) + -- Mechanical Configuration Indicator ExportScript.AF.MechanicalDevicesIndicator(lFunctionTyp) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - if lMechInfo ~= nil then - -- Wheelbrakes Hydraulic Pressure Left - ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 87) - - -- Wheelbrakes Hydraulic Pressure Right - ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 88) - - --ExportScript.Tools.WriteToLog('lMechInfo.noseflap.value: '..ExportScript.Tools.dump(lMechInfo.noseflap.value)) -- Vorfluegel, Balkenanzeige neben dem Radarhoehenmesser (0=oben bis 30=unten) - end - - -- Airintake - ExportScript.AF.FC_Russian_AirIntake() - - --[[ - local lPayloadInfo = LoGetPayloadInfo() - ExportScript.Tools.WriteToLog('lPayloadInfo: '..ExportScript.Tools.dump(lPayloadInfo)) - - local lSnares = LoGetSnares() -- Flare and Chaff - ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) - - local lSightingSystemInfo = LoGetSightingSystemInfo() - ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)) - - local lTWSInfo = LoGetTWSInfo() -- SPO Informationen, z.B. Radarwarner F15C - ExportScript.Tools.WriteToLog('lTWSInfo: '..ExportScript.Tools.dump(lTWSInfo)) - - local lTargetInformation = LoGetTargetInformation() -- detalierte Radar Infos z.B. F15C - ExportScript.Tools.WriteToLog('lTargetInformation: '..ExportScript.Tools.dump(lTargetInformation)) - - local lLockedTargetInformation = LoGetLockedTargetInformation() - ExportScript.Tools.WriteToLog('lLockedTargetInformation: '..ExportScript.Tools.dump(lLockedTargetInformation)) - - local lF15_TWS_Contacs = LoGetF15_TWS_Contacts() -- the same information but only for F-15 in TWS mode - ExportScript.Tools.WriteToLog('lF15_TWS_Contacs: '..ExportScript.Tools.dump(lF15_TWS_Contacs)) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) - - local lMCPState = LoGetMCPState() -- Warnlichter - ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) - - local lControlPanel_HSI = LoGetControlPanel_HSI() - ExportScript.Tools.WriteToLog('lControlPanel_HSI: '..ExportScript.Tools.dump(lControlPanel_HSI)) - - local lRadioBeaconsStatus = LoGetRadioBeaconsStatus() - ExportScript.Tools.WriteToLog('lRadioBeaconsStatus: '..ExportScript.Tools.dump(lRadioBeaconsStatus)) - - local lEngineInfo = LoGetEngineInfo() - ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - ]] - -- Weapon Control System - --local lNameByType = LoGetNameByType () -- args 4 (number : level1,level2,level3,level4), result string - -- values from LoGetTargetInformation().type - --ExportScript.Tools.WriteToLog('lNameByType: '..ExportScript.Tools.dump(lNameByType)) -end - + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + if lMechInfo ~= nil then + -- Wheelbrakes Hydraulic Pressure Left + ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 87) + + -- Wheelbrakes Hydraulic Pressure Right + ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 240, 88) + + --ExportScript.Tools.WriteToLog('lMechInfo.noseflap.value: '..ExportScript.Tools.dump(lMechInfo.noseflap.value)) -- Vorfluegel, Balkenanzeige neben dem Radarhoehenmesser (0=oben bis 30=unten) + end + + -- Airintake + ExportScript.AF.FC_Russian_AirIntake() + + --[[ + local lPayloadInfo = LoGetPayloadInfo() + ExportScript.Tools.WriteToLog('lPayloadInfo: '..ExportScript.Tools.dump(lPayloadInfo)) + + local lSnares = LoGetSnares() -- Flare and Chaff + ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) + + local lSightingSystemInfo = LoGetSightingSystemInfo() + ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)) + + local lTWSInfo = LoGetTWSInfo() -- SPO Informationen, z.B. Radarwarner F15C + ExportScript.Tools.WriteToLog('lTWSInfo: '..ExportScript.Tools.dump(lTWSInfo)) + + local lTargetInformation = LoGetTargetInformation() -- detalierte Radar Infos z.B. F15C + ExportScript.Tools.WriteToLog('lTargetInformation: '..ExportScript.Tools.dump(lTargetInformation)) + + local lLockedTargetInformation = LoGetLockedTargetInformation() + ExportScript.Tools.WriteToLog('lLockedTargetInformation: '..ExportScript.Tools.dump(lLockedTargetInformation)) + + local lF15_TWS_Contacs = LoGetF15_TWS_Contacts() -- the same information but only for F-15 in TWS mode + ExportScript.Tools.WriteToLog('lF15_TWS_Contacs: '..ExportScript.Tools.dump(lF15_TWS_Contacs)) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) + + local lMCPState = LoGetMCPState() -- Warnlichter + ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) + + local lControlPanel_HSI = LoGetControlPanel_HSI() + ExportScript.Tools.WriteToLog('lControlPanel_HSI: '..ExportScript.Tools.dump(lControlPanel_HSI)) + + local lRadioBeaconsStatus = LoGetRadioBeaconsStatus() + ExportScript.Tools.WriteToLog('lRadioBeaconsStatus: '..ExportScript.Tools.dump(lRadioBeaconsStatus)) + + local lEngineInfo = LoGetEngineInfo() + ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + ]] + -- Weapon Control System + --local lNameByType = LoGetNameByType () -- args 4 (number : level1,level2,level3,level4), result string + -- values from LoGetTargetInformation().type + --ExportScript.Tools.WriteToLog('lNameByType: '..ExportScript.Tools.dump(lNameByType)) +end + function ExportScript.ProcessDACConfigLowImportance() local lFunctionTyp = "DAC" -- function type for shared function - + ExportScript.AF.FC_WeaponPanel_SU27(lFunctionTyp) - ExportScript.AF.FC_SPO15RWR(lFunctionTyp) + ExportScript.AF.FC_SPO15RWR(lFunctionTyp) ExportScript.AF.MechanicalDevicesIndicator(lFunctionTyp) - ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) - ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) - ExportScript.AF.StatusLamp() - ExportScript.AF.SightingSystem() - ExportScript.AF.PPDSPPanel() -end - ------------------------------ --- Custom functions -- ------------------------------ - -function ExportScript.AF.SightingSystem() - local lSightingSystemInfo = LoGetSightingSystemInfo() - if lSightingSystemInfo == nil then - return - end - --ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)9 - --[[ - [PRF] = { - [selection] = string: "ILV" - [current] = string: "MED" - } - [laser_on] = boolean: "false" - [scale] = { - [azimuth] = number: "0.52359873056412" - [distance] = number: "10000" - } - [radar_on] = boolean: "false" - [optical_system_on] = boolean: "false" - [LaunchAuthorized] = boolean: "false" - [ECM_on] = boolean: "false" - [Manufacturer] = string: "RUS" - [TDC] = { - [y] = number: "0" - [x] = number: "0" - } - [ScanZone] = { - [coverage_H] = { - [min] = number: "0" - [max] = number: "20000" - } - [size] = { - [azimuth] = number: "1.0471974611282" - [elevation] = number: "0.17453290522099" - } - [position] = { - [exceeding_manual] = number: "0" - [distance_manual] = number: "0" - [azimuth] = number: "0" - [elevation] = number: "0" - } - } - ]] - ExportScript.Tools.SendDataDAC("600", lSightingSystemInfo.ECM_on == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("601", lSightingSystemInfo.laser_on == true and 1 or 0 ) - --ExportScript.Tools.SendDataDAC("602", lSightingSystemInfo.optical_system_on == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("603", lSightingSystemInfo.LaunchAuthorized == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("604", lSightingSystemInfo.radar_on == true and 1 or 0 ) -end - -function ExportScript.AF.PPDSPPanel() - local lSnares = LoGetSnares() -- Flare and Chaff - if lSnares == nil then - return - end - --ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) - - --[chaff] = number: "96" - --[flare] = number: "96" - - local lChaffLED = ExportScript.Tools.round(lSnares.chaff / 12, 0, "ceil") + 1 - local lFlareLED = ExportScript.Tools.round(lSnares.flare / 12, 0, "ceil") + 1 - - ExportScript.Tools.SendDataDAC("800", (lChaffLED <= 1 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("801", (lChaffLED <= 2 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("802", (lChaffLED <= 3 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("803", (lChaffLED <= 4 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("804", (lChaffLED <= 5 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("805", (lChaffLED <= 6 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("806", (lChaffLED <= 7 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("807", (lChaffLED <= 8 and 0 or 1) ) - - ExportScript.Tools.SendDataDAC("810", (lFlareLED <= 1 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("811", (lFlareLED <= 2 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("812", (lFlareLED <= 3 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("813", (lFlareLED <= 4 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("814", (lFlareLED <= 5 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("815", (lFlareLED <= 6 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("816", (lFlareLED <= 7 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("817", (lFlareLED <= 8 and 0 or 1) ) -end - -function ExportScript.AF.StatusLamp() - local lMCPState = LoGetMCPState() -- Warning Lights - if lMCPState == nil then - return - end - --ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) - --[[ - [RightTailPlaneFailure] = boolean: "false" - [EOSFailure] = boolean: "false" - [ECMFailure] = boolean: "false" - [RightAileronFailure] = boolean: "false" - [MasterWarning] = boolean: "false" - [RightEngineFailure] = boolean: "false" - [CannonFailure] = boolean: "false" - [MLWSFailure] = boolean: "false" - [ACSFailure] = boolean: "false" - [RadarFailure] = boolean: "false" - [HelmetFailure] = boolean: "false" - [HUDFailure] = boolean: "false" - [LeftMainPumpFailure] = boolean: "false" - [RightWingPumpFailure] = boolean: "false" - [LeftWingPumpFailure] = boolean: "false" - [MFDFailure] = boolean: "false" - [RWSFailure] = boolean: "false" - [GearFailure] = boolean: "false" - [HydraulicsFailure] = boolean: "false" - [AutopilotFailure] = boolean: "true" - [FuelTankDamage] = boolean: "false" - [LeftAileronFailure] = boolean: "false" - [CanopyOpen] = boolean: "false" - [RightMainPumpFailure] = boolean: "false" - [StallSignalization] = boolean: "false" - [LeftEngineFailure] = boolean: "false" - [AutopilotOn] = boolean: "false" - [LeftTailPlaneFailure] = boolean: "false" - ]] - + ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) + ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) + ExportScript.AF.StatusLamp() + ExportScript.AF.SightingSystem() + ExportScript.AF.PPDSPPanel() +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.AF.SightingSystem() + local lSightingSystemInfo = LoGetSightingSystemInfo() + if lSightingSystemInfo == nil then + return + end + --ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)9 + --[[ + [PRF] = { + [selection] = string: "ILV" + [current] = string: "MED" + } + [laser_on] = boolean: "false" + [scale] = { + [azimuth] = number: "0.52359873056412" + [distance] = number: "10000" + } + [radar_on] = boolean: "false" + [optical_system_on] = boolean: "false" + [LaunchAuthorized] = boolean: "false" + [ECM_on] = boolean: "false" + [Manufacturer] = string: "RUS" + [TDC] = { + [y] = number: "0" + [x] = number: "0" + } + [ScanZone] = { + [coverage_H] = { + [min] = number: "0" + [max] = number: "20000" + } + [size] = { + [azimuth] = number: "1.0471974611282" + [elevation] = number: "0.17453290522099" + } + [position] = { + [exceeding_manual] = number: "0" + [distance_manual] = number: "0" + [azimuth] = number: "0" + [elevation] = number: "0" + } + } + ]] + ExportScript.Tools.SendDataDAC("600", lSightingSystemInfo.ECM_on == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("601", lSightingSystemInfo.laser_on == true and 1 or 0 ) + --ExportScript.Tools.SendDataDAC("602", lSightingSystemInfo.optical_system_on == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("603", lSightingSystemInfo.LaunchAuthorized == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("604", lSightingSystemInfo.radar_on == true and 1 or 0 ) +end + +function ExportScript.AF.PPDSPPanel() + local lSnares = LoGetSnares() -- Flare and Chaff + if lSnares == nil then + return + end + --ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) + + --[chaff] = number: "96" + --[flare] = number: "96" + + local lChaffLED = ExportScript.Tools.round(lSnares.chaff / 12, 0, "ceil") + 1 + local lFlareLED = ExportScript.Tools.round(lSnares.flare / 12, 0, "ceil") + 1 + + ExportScript.Tools.SendDataDAC("800", (lChaffLED <= 1 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("801", (lChaffLED <= 2 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("802", (lChaffLED <= 3 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("803", (lChaffLED <= 4 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("804", (lChaffLED <= 5 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("805", (lChaffLED <= 6 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("806", (lChaffLED <= 7 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("807", (lChaffLED <= 8 and 0 or 1) ) + + ExportScript.Tools.SendDataDAC("810", (lFlareLED <= 1 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("811", (lFlareLED <= 2 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("812", (lFlareLED <= 3 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("813", (lFlareLED <= 4 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("814", (lFlareLED <= 5 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("815", (lFlareLED <= 6 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("816", (lFlareLED <= 7 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("817", (lFlareLED <= 8 and 0 or 1) ) +end + +function ExportScript.AF.StatusLamp() + local lMCPState = LoGetMCPState() -- Warning Lights + if lMCPState == nil then + return + end + --ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) + --[[ + [RightTailPlaneFailure] = boolean: "false" + [EOSFailure] = boolean: "false" + [ECMFailure] = boolean: "false" + [RightAileronFailure] = boolean: "false" + [MasterWarning] = boolean: "false" + [RightEngineFailure] = boolean: "false" + [CannonFailure] = boolean: "false" + [MLWSFailure] = boolean: "false" + [ACSFailure] = boolean: "false" + [RadarFailure] = boolean: "false" + [HelmetFailure] = boolean: "false" + [HUDFailure] = boolean: "false" + [LeftMainPumpFailure] = boolean: "false" + [RightWingPumpFailure] = boolean: "false" + [LeftWingPumpFailure] = boolean: "false" + [MFDFailure] = boolean: "false" + [RWSFailure] = boolean: "false" + [GearFailure] = boolean: "false" + [HydraulicsFailure] = boolean: "false" + [AutopilotFailure] = boolean: "true" + [FuelTankDamage] = boolean: "false" + [LeftAileronFailure] = boolean: "false" + [CanopyOpen] = boolean: "false" + [RightMainPumpFailure] = boolean: "false" + [StallSignalization] = boolean: "false" + [LeftEngineFailure] = boolean: "false" + [AutopilotOn] = boolean: "false" + [LeftTailPlaneFailure] = boolean: "false" + ]] + ExportScript.Tools.SendDataDAC("700", lMCPState.LeftTailPlaneFailure == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("701", lMCPState.RightTailPlaneFailure == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("702", lMCPState.MasterWarning == true and 1 or 0 ) @@ -361,367 +361,367 @@ function ExportScript.AF.StatusLamp() ExportScript.Tools.SendDataDAC("724", lMCPState.FuelTankDamage == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("725", lMCPState.CanopyOpen == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("726", lMCPState.StallSignalization == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) - - local lAccelerationUnits = LoGetAccelerationUnits() - if lAccelerationUnits ~= nil then - --ExportScript.Tools.WriteToLog('lAccelerationUnits: '..ExportScript.Tools.dump(lAccelerationUnits)) - ExportScript.Tools.SendDataDAC("732", (lAccelerationUnits.y > 8.0 and 1 or 0) ) -- lamp Over-G warning - end -end - + ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) + + local lAccelerationUnits = LoGetAccelerationUnits() + if lAccelerationUnits ~= nil then + --ExportScript.Tools.WriteToLog('lAccelerationUnits: '..ExportScript.Tools.dump(lAccelerationUnits)) + ExportScript.Tools.SendDataDAC("732", (lAccelerationUnits.y > 8.0 and 1 or 0) ) -- lamp Over-G warning + end +end + function ExportScript.AF.FuelQuantityIndicator(FunctionTyp) - local lFunctionTyp = FunctionTyp or "Ikarus" --- Fuel quantity shows the fuel remaining in all tanks - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo == nil then - return - end - --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - --[[ - [fuel_external] = number: "0" - [Temperature] = { - [left] = number: "626.99444580078" - [right] = number: "626.99444580078" - } - [RPM] = { - [left] = number: "87.453765869141" - [right] = number: "87.453758239746" - } - [FuelConsumption] = { - [left] = number: "0.1500396137767" - [right] = number: "0.1500396137767" - } - [fuel_internal] = number: "3773.2749023438" - [EngineStart] = { - [left] = number: "0" - [right] = number: "0" - } - [HydraulicPressure] = { - [left] = number: "210" - [right] = number: "210" - } - lPayloadInfo.Stations[8].CLSID == E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF -- ext 800l Fuel Tank - ]] - - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - ExportScript.Tools.SendDataDAC("300", string.format("%d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10) ) -- total fuel in kg - --ExportScript.Tools.SendDataDAC("301", string.format("%d", lEngineInfo.fuel_internal)) -- total fuel in kg - --ExportScript.Tools.SendDataDAC("302", string.format("%d", lEngineInfo.fuel_external)) -- external fuel in kg - - ExportScript.Tools.SendDataDAC("304", (lEngineInfo.fuel_internal < 5600.0 and 1 or 0) ) -- Tank warning 1 - ExportScript.Tools.SendDataDAC("305", (lEngineInfo.fuel_internal < 4500.0 and 1 or 0) ) -- Tank warning 2 - ExportScript.Tools.SendDataDAC("306", (lEngineInfo.fuel_internal < 1500.0 and 1 or 0) ) -- Tank warning 3 - ExportScript.Tools.SendDataDAC("307", (lEngineInfo.fuel_internal < 800.0 and 1 or 0) ) -- Tank warning 4 + local lFunctionTyp = FunctionTyp or "Ikarus" +-- Fuel quantity shows the fuel remaining in all tanks + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo == nil then + return + end + --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + --[[ + [fuel_external] = number: "0" + [Temperature] = { + [left] = number: "626.99444580078" + [right] = number: "626.99444580078" + } + [RPM] = { + [left] = number: "87.453765869141" + [right] = number: "87.453758239746" + } + [FuelConsumption] = { + [left] = number: "0.1500396137767" + [right] = number: "0.1500396137767" + } + [fuel_internal] = number: "3773.2749023438" + [EngineStart] = { + [left] = number: "0" + [right] = number: "0" + } + [HydraulicPressure] = { + [left] = number: "210" + [right] = number: "210" + } + lPayloadInfo.Stations[8].CLSID == E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF -- ext 800l Fuel Tank + ]] + + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + ExportScript.Tools.SendDataDAC("300", string.format("%d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10) ) -- total fuel in kg + --ExportScript.Tools.SendDataDAC("301", string.format("%d", lEngineInfo.fuel_internal)) -- total fuel in kg + --ExportScript.Tools.SendDataDAC("302", string.format("%d", lEngineInfo.fuel_external)) -- external fuel in kg + + ExportScript.Tools.SendDataDAC("304", (lEngineInfo.fuel_internal < 5600.0 and 1 or 0) ) -- Tank warning 1 + ExportScript.Tools.SendDataDAC("305", (lEngineInfo.fuel_internal < 4500.0 and 1 or 0) ) -- Tank warning 2 + ExportScript.Tools.SendDataDAC("306", (lEngineInfo.fuel_internal < 1500.0 and 1 or 0) ) -- Tank warning 3 + ExportScript.Tools.SendDataDAC("307", (lEngineInfo.fuel_internal < 800.0 and 1 or 0) ) -- Tank warning 4 ExportScript.Tools.SendDataDAC("308", (lEngineInfo.fuel_internal < 600.0 and 1 or 0) ) -- Bingo Fuel end if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - local lTotalFuel_9_3 = 0 - local lTotalFuel_5_0 = 0 - local lTotalFuel = lEngineInfo.fuel_internal - - if lTotalFuel < 9000 then - if lTotalFuel > 3000 then - --[[ - y_min = 0.0 -- minimaler Ausgabewert - y_max = 1.0 -- maximaler Ausgabewert - x_min = 3000 -- minimaler Eingangswert - x_max = 9000 -- maximaler Eingangswert - x = 8000 -- aktueller Eingangswert - - d_y = 1 -- Delta Ausgabewerte (y_max - y_min) - d_x = 6000 -- Delta Eingangswerte (x_max - x_min) - m = 1.66666666666666666666666666667e-4 -- Steigung der linearen Funktion (d_y / d_x) - n = -0,5 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) - - y = 0.83333 -- Ergebnis (m * x + n) - ]] - lTotalFuel_9_3 = 1.6666666666666666666666666666667e-4 * lTotalFuel + -0.5 - else - lTotalFuel_9_3 = 0.0 - end - else - lTotalFuel_9_3 = 1.0 - end - if lTotalFuel < 5000 then - lTotalFuel_5_0 = lTotalFuel / 5000 - else - lTotalFuel_5_0 = 1.0 - end - - -- TotalFuel_5_0 - -- TotalFuel_9_3 - -- Light1 - -- Light2 - -- Light3 - -- Light4 - -- BingoLight - ExportScript.Tools.SendData(300, lTotalFuel_5_0) + local lTotalFuel_9_3 = 0 + local lTotalFuel_5_0 = 0 + local lTotalFuel = lEngineInfo.fuel_internal + + if lTotalFuel < 9000 then + if lTotalFuel > 3000 then + --[[ + y_min = 0.0 -- minimaler Ausgabewert + y_max = 1.0 -- maximaler Ausgabewert + x_min = 3000 -- minimaler Eingangswert + x_max = 9000 -- maximaler Eingangswert + x = 8000 -- aktueller Eingangswert + + d_y = 1 -- Delta Ausgabewerte (y_max - y_min) + d_x = 6000 -- Delta Eingangswerte (x_max - x_min) + m = 1.66666666666666666666666666667e-4 -- Steigung der linearen Funktion (d_y / d_x) + n = -0,5 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) + + y = 0.83333 -- Ergebnis (m * x + n) + ]] + lTotalFuel_9_3 = 1.6666666666666666666666666666667e-4 * lTotalFuel + -0.5 + else + lTotalFuel_9_3 = 0.0 + end + else + lTotalFuel_9_3 = 1.0 + end + if lTotalFuel < 5000 then + lTotalFuel_5_0 = lTotalFuel / 5000 + else + lTotalFuel_5_0 = 1.0 + end + + -- TotalFuel_5_0 + -- TotalFuel_9_3 + -- Light1 + -- Light2 + -- Light3 + -- Light4 + -- BingoLight + ExportScript.Tools.SendData(300, lTotalFuel_5_0) ExportScript.Tools.SendData(301, lTotalFuel_9_3) ExportScript.Tools.SendData(302, (lEngineInfo.fuel_internal < 5600.0 and 1 or 0)) -- Tank warning 1 ExportScript.Tools.SendData(303, (lEngineInfo.fuel_internal < 4500.0 and 1 or 0)) -- Tank warning 2 ExportScript.Tools.SendData(304, (lEngineInfo.fuel_internal < 1500.0 and 1 or 0)) -- Tank warning 3 ExportScript.Tools.SendData(305, (lEngineInfo.fuel_internal < 800.0 and 1 or 0)) -- Tank warning 4 ExportScript.Tools.SendData(306, (lEngineInfo.fuel_internal < 600.0 and 1 or 0)) -- Bingo Fuel - end -end - + end +end + function ExportScript.AF.MechanicalDevicesIndicator(FunctionTyp) - local lFunctionTyp = FunctionTyp or "Ikarus" --- The mechanical devices indicator shows the position of the landing gear, flaps, leading edge flaps and airbrake - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - --ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) - if lMechInfo == nil then - return - end - --[[ - [hook] = { - [status] = number: "0" - [value] = number: "0" - } - [parachute] = { - [status] = number: "0" - [value] = number: "0" - } - [controlsurfaces] = { - [eleron] = { - [left] = number: "0" - [right] = number: "-0.21084336936474" - } - [elevator] = { - [left] = number: "-0" - [right] = number: "-0" - } - [rudder] = { - [left] = number: "0" - [right] = number: "0" - } - } - [airintake] = { - [status] = number: "0" - [value] = number: "0" - } - [canopy] = { - [status] = number: "0" - [value] = number: "0" - } - [refuelingboom] = { - [status] = number: "0" - [value] = number: "0" - } - [wing] = { - [status] = number: "0" - [value] = number: "0" - } - [noseflap] = { - [status] = number: "0" - [value] = number: "0" - } - [gear] = { - [value] = number: "0" - [nose] = { - [rod] = number: "0" - } - [main] = { - [left] = { - [rod] = number: "0" - } - [right] = { - [rod] = number: "0" - } - } - [status] = number: "0" - } - [speedbrakes] = { - [status] = number: "0" - [value] = number: "0" - } - [wheelbrakes] = { - [status] = number: "0" - [value] = number: "0" - } - [flaps] = { - [status] = number: "0" - [value] = number: "0" - }]] - --local lTrueAirSpeed = LoGetTrueAirSpeed() + local lFunctionTyp = FunctionTyp or "Ikarus" +-- The mechanical devices indicator shows the position of the landing gear, flaps, leading edge flaps and airbrake + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + --ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) + if lMechInfo == nil then + return + end + --[[ + [hook] = { + [status] = number: "0" + [value] = number: "0" + } + [parachute] = { + [status] = number: "0" + [value] = number: "0" + } + [controlsurfaces] = { + [eleron] = { + [left] = number: "0" + [right] = number: "-0.21084336936474" + } + [elevator] = { + [left] = number: "-0" + [right] = number: "-0" + } + [rudder] = { + [left] = number: "0" + [right] = number: "0" + } + } + [airintake] = { + [status] = number: "0" + [value] = number: "0" + } + [canopy] = { + [status] = number: "0" + [value] = number: "0" + } + [refuelingboom] = { + [status] = number: "0" + [value] = number: "0" + } + [wing] = { + [status] = number: "0" + [value] = number: "0" + } + [noseflap] = { + [status] = number: "0" + [value] = number: "0" + } + [gear] = { + [value] = number: "0" + [nose] = { + [rod] = number: "0" + } + [main] = { + [left] = { + [rod] = number: "0" + } + [right] = { + [rod] = number: "0" + } + } + [status] = number: "0" + } + [speedbrakes] = { + [status] = number: "0" + [value] = number: "0" + } + [wheelbrakes] = { + [status] = number: "0" + [value] = number: "0" + } + [flaps] = { + [status] = number: "0" + [value] = number: "0" + }]] + --local lTrueAirSpeed = LoGetTrueAirSpeed() --ExportScript.Tools.WriteToLog('lTrueAirSpeed: '..ExportScript.Tools.dump(lTrueAirSpeed)) - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - ExportScript.Tools.SendDataDAC("500", (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1 or 0 ) ) -- gear warning light - ExportScript.Tools.SendDataDAC("501", (lMechInfo.gear.value > 0.85 and 1 or 0) ) -- nose gear - ExportScript.Tools.SendDataDAC("502", (lMechInfo.gear.value > 0.95 and 1 or 0) ) -- left gear - ExportScript.Tools.SendDataDAC("503", (lMechInfo.gear.value > 0.97 and 1 or 0) ) -- right gear - - ExportScript.Tools.SendDataDAC("510", (lMechInfo.speedbrakes.value > 0.1 and 1 or 0) ) -- speedbreakes on > 0.1 (0 - 1) - - ExportScript.Tools.SendDataDAC("531", (lMechInfo.flaps.value > 0.93 and 1 or 0) ) -- flap - ExportScript.Tools.SendDataDAC("532", ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0) ) -- Intake FOD shields - ExportScript.Tools.SendDataDAC("533", ((lMechInfo.gear.status == 0 and lMechInfo.flaps.value > 0.93) and 1 or 0) ) -- Flaps Warning, same light as gear warning light, but blinking light - + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + ExportScript.Tools.SendDataDAC("500", (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1 or 0 ) ) -- gear warning light + ExportScript.Tools.SendDataDAC("501", (lMechInfo.gear.value > 0.85 and 1 or 0) ) -- nose gear + ExportScript.Tools.SendDataDAC("502", (lMechInfo.gear.value > 0.95 and 1 or 0) ) -- left gear + ExportScript.Tools.SendDataDAC("503", (lMechInfo.gear.value > 0.97 and 1 or 0) ) -- right gear + + ExportScript.Tools.SendDataDAC("510", (lMechInfo.speedbrakes.value > 0.1 and 1 or 0) ) -- speedbreakes on > 0.1 (0 - 1) + + ExportScript.Tools.SendDataDAC("531", (lMechInfo.flaps.value > 0.93 and 1 or 0) ) -- flap + ExportScript.Tools.SendDataDAC("532", ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0) ) -- Intake FOD shields + ExportScript.Tools.SendDataDAC("533", ((lMechInfo.gear.status == 0 and lMechInfo.flaps.value > 0.93) and 1 or 0) ) -- Flaps Warning, same light as gear warning light, but blinking light + ExportScript.Tools.SendDataDAC("541", (lMechInfo.parachute.value < 0.5 and 1 or 0) ) -- Parachute end if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - local lWarningLight = 0.0 - - --lWarningLight = ((lMechInfo.flaps.value > 0.93 and lTrueAirSpeed > 340) and 0.5 or 0.0) -- Speed Warning for Flaps, same light as gear warning light, but blinking light - lWarningLight = ((lMechInfo.gear.status == 0 and lMechInfo.flaps.value > 0.93) and 1.0 or lWarningLight ) -- Speed Warning for Flaps, same light as gear warning light, but blinking light - lWarningLight = (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1.0 or lWarningLight ) -- gear warning light + local lWarningLight = 0.0 + + --lWarningLight = ((lMechInfo.flaps.value > 0.93 and lTrueAirSpeed > 340) and 0.5 or 0.0) -- Speed Warning for Flaps, same light as gear warning light, but blinking light + lWarningLight = ((lMechInfo.gear.status == 0 and lMechInfo.flaps.value > 0.93) and 1.0 or lWarningLight ) -- Speed Warning for Flaps, same light as gear warning light, but blinking light + lWarningLight = (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1.0 or lWarningLight ) -- gear warning light ExportScript.Tools.SendData(500, string.format("%.1f", lWarningLight)) ExportScript.Tools.SendData(501, (lMechInfo.gear.value > 0.85 and 1 or 0)) -- nose gear ExportScript.Tools.SendData(502, (lMechInfo.gear.value > 0.95 and 1 or 0)) -- left gear ExportScript.Tools.SendData(503, (lMechInfo.gear.value == 1 and 1 or 0)) -- right gear - ExportScript.Tools.SendData(510, (lMechInfo.speedbrakes.value > 0.1 and 1 or 0)) -- speedbreakes on > 0.1 (0 - 1) + ExportScript.Tools.SendData(510, (lMechInfo.speedbrakes.value > 0.1 and 1 or 0)) -- speedbreakes on > 0.1 (0 - 1) ExportScript.Tools.SendData(531, (lMechInfo.flaps.value > 0.93 and 1 or 0)) -- flap ExportScript.Tools.SendData(532, ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0)) -- Intake FOD shields - end -end - -function ExportScript.AF.FC_WeaponPanel_SU27(FunctionTyp) - local lFunctionTyp = FunctionTyp or "Ikarus" - - if ExportScript.AF.TmpWeaponPanelPresend == nil then - ExportScript.AF.TmpWeaponPanelPresend = {[101] = 0, [102] = 0, [103] = 0, [104] = 0, [105] = 0, [106] = 0, [107] = 0, [108] = 0, [109] = 0, [110] = 0} - end - - if ExportScript.AF.TmpWeaponPanelActive == nil then - ExportScript.AF.TmpWeaponPanelActive = {[201] = 0, [202] = 0, [203] = 0, [204] = 0, [205] = 0, [206] = 0, [207] = 0, [208] = 0, [209] = 0, [210] = 0} - end - - if ExportScript.AF.TmpWeaponPanel == nil then - ExportScript.AF.TmpWeaponPanel = {[231] = 0, [232] = 0, [233] = 0, [234] = 0, [235] = 0} - end - - if ExportScript.AF.EventNumberFC_WeaponPanel == nil then - ExportScript.AF.EventNumberFC_WeaponPanel = 0 - end - - if(ExportScript.AF.EventNumberFC_WeaponPanel < ExportScript.AF.EventNumber) then - ExportScript.AF.EventNumberFC_WeaponPanel = ExportScript.AF.EventNumber - - -- defination - ExportScript.AF.PayloadInfo = LoGetPayloadInfo() - if ExportScript.AF.PayloadInfo ~= nil then - if ExportScript.AF.CurrentStationTmp == nil then - ExportScript.AF.CurrentStationTmp = -1 - end - - if ExportScript.AF.PayloadInfo.CurrentStation > 0 and - ExportScript.AF.CurrentStationTmp ~= ExportScript.AF.PayloadInfo.CurrentStation then - ExportScript.AF.CurrentStationTmp = ExportScript.AF.PayloadInfo.CurrentStation - - ExportScript.AF.TmpStationToPanel = {} - ExportScript.AF.TmpStationToPanel[1] = {Panel = 1, StationID = 101, CurrentID = 201 } -- left - ExportScript.AF.TmpStationToPanel[2] = {Panel = 10, StationID = 110, CurrentID = 210 } -- right - ExportScript.AF.TmpStationToPanel[3] = {Panel = 2, StationID = 102, CurrentID = 202 } - ExportScript.AF.TmpStationToPanel[4] = {Panel = 9, StationID = 109, CurrentID = 209 } - ExportScript.AF.TmpStationToPanel[5] = {Panel = 3, StationID = 103, CurrentID = 203 } - ExportScript.AF.TmpStationToPanel[6] = {Panel = 8, StationID = 108, CurrentID = 208 } - ExportScript.AF.TmpStationToPanel[7] = {Panel = 4, StationID = 104, CurrentID = 204 } - ExportScript.AF.TmpStationToPanel[8] = {Panel = 7, StationID = 107, CurrentID = 207 } - ExportScript.AF.TmpStationToPanel[9] = {Panel = 5, StationID = 105, CurrentID = 205 } - ExportScript.AF.TmpStationToPanel[10] = {Panel = 6, StationID = 106, CurrentID = 206 } - - -- ExportScript.AF.TmpWeaponPanelActive reset - for i = 201, 210, 1 do - ExportScript.AF.TmpWeaponPanelActive[i] = 0 - end - - if ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation] ~= nil then - ExportScript.AF.TmpWeaponPanelActive[ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation].CurrentID] = 1 -- currrent value - - table.foreach(ExportScript.AF.PayloadInfo.Stations, ExportScript.AF.WeaponStatusPanel_selectCurrentPayloadStation) -- corresponding station - end - end - - local lWeaponType = 0.0 -- transversely striped - if ExportScript.AF.PayloadInfo.CurrentStation > 0 then - if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level1 == 4 then - if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 4 then -- Weapon type Missle - lWeaponType = 0.1 -- MSL - elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 7 then -- Weapon type NURS with Container - if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level3 == 33 then -- Weapon type Rocket - lWeaponType = 0.2 -- RCT - end - elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 5 then -- Weapon type Bomb - lWeaponType = 0.3 -- BB - end - end - end - - --[[ - Weapon Panel - | - --------------------------------------------------- - | | | | | | | | | | | - 1 2 3 4 5 C 6 7 8 9 10 -- display - 1 3 5 7 9 10 8 6 4 2 -- Paylod ID - ]] - -- Payload Info - -- weapon stations (panel) 1 (left) - 10 (right), no lamp for center station - - -- WeaponPresend1 {0, 1} - -- WeaponPresend2 {0, 1} - -- WeaponPresend3 {0, 1} - -- WeaponPresend4 {0, 1} - -- WeaponPresend5 {0, 1} - -- WeaponPresend6 {0, 1} - -- WeaponPresend7 {0, 1} - -- WeaponPresend8 {0, 1} - -- WeaponPresend9 {0, 1} - -- WeaponPresend10 {0, 1} - -- WeaponActive1 {0, 1} - -- WeaponActive2 {0, 1} - -- WeaponActive3 {0, 1} - -- WeaponActive4 {0, 1} - -- WeaponActive5 {0, 1} - -- WeaponActive6 {0, 1} - -- WeaponActive7 {0, 1} - -- WeaponActive8 {0, 1} - -- WeaponActive9 {0, 1} - -- WeaponActive10 {0, 1} - - ExportScript.AF.TmpWeaponPanelPresend[101] = (ExportScript.AF.PayloadInfo.Stations[1].count > 0 and 1 or 0) -- weapon presend panel 1 - ExportScript.AF.TmpWeaponPanelPresend[102] = (ExportScript.AF.PayloadInfo.Stations[3].count > 0 and 1 or 0) -- weapon presend panel 2 - ExportScript.AF.TmpWeaponPanelPresend[103] = (ExportScript.AF.PayloadInfo.Stations[5].count > 0 and 1 or 0) -- weapon presend panel 3 - ExportScript.AF.TmpWeaponPanelPresend[104] = (ExportScript.AF.PayloadInfo.Stations[7].count > 0 and 1 or 0) -- weapon presend panel 4 - ExportScript.AF.TmpWeaponPanelPresend[105] = (ExportScript.AF.PayloadInfo.Stations[9].count > 0 and 1 or 0) -- weapon presend panel 5 - ExportScript.AF.TmpWeaponPanelPresend[106] = (ExportScript.AF.PayloadInfo.Stations[10].count > 0 and 1 or 0) -- weapon presend panel 6 - ExportScript.AF.TmpWeaponPanelPresend[107] = (ExportScript.AF.PayloadInfo.Stations[8].count > 0 and 1 or 0) -- weapon presend panel 7 - ExportScript.AF.TmpWeaponPanelPresend[108] = (ExportScript.AF.PayloadInfo.Stations[6].count > 0 and 1 or 0) -- weapon presend panel 8 - ExportScript.AF.TmpWeaponPanelPresend[109] = (ExportScript.AF.PayloadInfo.Stations[4].count > 0 and 1 or 0) -- weapon presend panel 9 - ExportScript.AF.TmpWeaponPanelPresend[110] = (ExportScript.AF.PayloadInfo.Stations[2].count > 0 and 1 or 0) -- weapon presend panel 10 - --ExportScript.AF.TmpWeaponPanelActive[201] -- weapon active panel 1 - --ExportScript.AF.TmpWeaponPanelActive[202] -- weapon active panel 2 - --ExportScript.AF.TmpWeaponPanelActive[203] -- weapon active panel 3 - --ExportScript.AF.TmpWeaponPanelActive[204] -- weapon active panel 4 - --ExportScript.AF.TmpWeaponPanelActive[205] -- weapon active panel 5 - --ExportScript.AF.TmpWeaponPanelActive[206] -- weapon active panel 6 - --ExportScript.AF.TmpWeaponPanelActive[207] -- weapon active panel 7 - --ExportScript.AF.TmpWeaponPanelActive[208] -- weapon active panel 8 - --ExportScript.AF.TmpWeaponPanelActive[209] -- weapon active panel 9 - --ExportScript.AF.TmpWeaponPanelActive[210] -- weapon active panel 10 - end - end - - if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do - ExportScript.Tools.SendData(key, value) - end - for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do - ExportScript.Tools.SendData(key, value) - end - end - - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do - ExportScript.Tools.SendDataDAC(key, value) - end - for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do - ExportScript.Tools.SendDataDAC(key, value) - end - end + end +end + +function ExportScript.AF.FC_WeaponPanel_SU27(FunctionTyp) + local lFunctionTyp = FunctionTyp or "Ikarus" + + if ExportScript.AF.TmpWeaponPanelPresend == nil then + ExportScript.AF.TmpWeaponPanelPresend = {[101] = 0, [102] = 0, [103] = 0, [104] = 0, [105] = 0, [106] = 0, [107] = 0, [108] = 0, [109] = 0, [110] = 0} + end + + if ExportScript.AF.TmpWeaponPanelActive == nil then + ExportScript.AF.TmpWeaponPanelActive = {[201] = 0, [202] = 0, [203] = 0, [204] = 0, [205] = 0, [206] = 0, [207] = 0, [208] = 0, [209] = 0, [210] = 0} + end + + if ExportScript.AF.TmpWeaponPanel == nil then + ExportScript.AF.TmpWeaponPanel = {[231] = 0, [232] = 0, [233] = 0, [234] = 0, [235] = 0} + end + + if ExportScript.AF.EventNumberFC_WeaponPanel == nil then + ExportScript.AF.EventNumberFC_WeaponPanel = 0 + end + + if(ExportScript.AF.EventNumberFC_WeaponPanel < ExportScript.AF.EventNumber) then + ExportScript.AF.EventNumberFC_WeaponPanel = ExportScript.AF.EventNumber + + -- defination + ExportScript.AF.PayloadInfo = LoGetPayloadInfo() + if ExportScript.AF.PayloadInfo ~= nil then + if ExportScript.AF.CurrentStationTmp == nil then + ExportScript.AF.CurrentStationTmp = -1 + end + + if ExportScript.AF.PayloadInfo.CurrentStation > 0 and + ExportScript.AF.CurrentStationTmp ~= ExportScript.AF.PayloadInfo.CurrentStation then + ExportScript.AF.CurrentStationTmp = ExportScript.AF.PayloadInfo.CurrentStation + + ExportScript.AF.TmpStationToPanel = {} + ExportScript.AF.TmpStationToPanel[1] = {Panel = 1, StationID = 101, CurrentID = 201 } -- left + ExportScript.AF.TmpStationToPanel[2] = {Panel = 10, StationID = 110, CurrentID = 210 } -- right + ExportScript.AF.TmpStationToPanel[3] = {Panel = 2, StationID = 102, CurrentID = 202 } + ExportScript.AF.TmpStationToPanel[4] = {Panel = 9, StationID = 109, CurrentID = 209 } + ExportScript.AF.TmpStationToPanel[5] = {Panel = 3, StationID = 103, CurrentID = 203 } + ExportScript.AF.TmpStationToPanel[6] = {Panel = 8, StationID = 108, CurrentID = 208 } + ExportScript.AF.TmpStationToPanel[7] = {Panel = 4, StationID = 104, CurrentID = 204 } + ExportScript.AF.TmpStationToPanel[8] = {Panel = 7, StationID = 107, CurrentID = 207 } + ExportScript.AF.TmpStationToPanel[9] = {Panel = 5, StationID = 105, CurrentID = 205 } + ExportScript.AF.TmpStationToPanel[10] = {Panel = 6, StationID = 106, CurrentID = 206 } + + -- ExportScript.AF.TmpWeaponPanelActive reset + for i = 201, 210, 1 do + ExportScript.AF.TmpWeaponPanelActive[i] = 0 + end + + if ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation] ~= nil then + ExportScript.AF.TmpWeaponPanelActive[ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation].CurrentID] = 1 -- currrent value + + table.foreach(ExportScript.AF.PayloadInfo.Stations, ExportScript.AF.WeaponStatusPanel_selectCurrentPayloadStation) -- corresponding station + end + end + + local lWeaponType = 0.0 -- transversely striped + if ExportScript.AF.PayloadInfo.CurrentStation > 0 then + if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level1 == 4 then + if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 4 then -- Weapon type Missle + lWeaponType = 0.1 -- MSL + elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 7 then -- Weapon type NURS with Container + if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level3 == 33 then -- Weapon type Rocket + lWeaponType = 0.2 -- RCT + end + elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 5 then -- Weapon type Bomb + lWeaponType = 0.3 -- BB + end + end + end + + --[[ + Weapon Panel + | + --------------------------------------------------- + | | | | | | | | | | | + 1 2 3 4 5 C 6 7 8 9 10 -- display + 1 3 5 7 9 10 8 6 4 2 -- Paylod ID + ]] + -- Payload Info + -- weapon stations (panel) 1 (left) - 10 (right), no lamp for center station + + -- WeaponPresend1 {0, 1} + -- WeaponPresend2 {0, 1} + -- WeaponPresend3 {0, 1} + -- WeaponPresend4 {0, 1} + -- WeaponPresend5 {0, 1} + -- WeaponPresend6 {0, 1} + -- WeaponPresend7 {0, 1} + -- WeaponPresend8 {0, 1} + -- WeaponPresend9 {0, 1} + -- WeaponPresend10 {0, 1} + -- WeaponActive1 {0, 1} + -- WeaponActive2 {0, 1} + -- WeaponActive3 {0, 1} + -- WeaponActive4 {0, 1} + -- WeaponActive5 {0, 1} + -- WeaponActive6 {0, 1} + -- WeaponActive7 {0, 1} + -- WeaponActive8 {0, 1} + -- WeaponActive9 {0, 1} + -- WeaponActive10 {0, 1} + + ExportScript.AF.TmpWeaponPanelPresend[101] = (ExportScript.AF.PayloadInfo.Stations[1].count > 0 and 1 or 0) -- weapon presend panel 1 + ExportScript.AF.TmpWeaponPanelPresend[102] = (ExportScript.AF.PayloadInfo.Stations[3].count > 0 and 1 or 0) -- weapon presend panel 2 + ExportScript.AF.TmpWeaponPanelPresend[103] = (ExportScript.AF.PayloadInfo.Stations[5].count > 0 and 1 or 0) -- weapon presend panel 3 + ExportScript.AF.TmpWeaponPanelPresend[104] = (ExportScript.AF.PayloadInfo.Stations[7].count > 0 and 1 or 0) -- weapon presend panel 4 + ExportScript.AF.TmpWeaponPanelPresend[105] = (ExportScript.AF.PayloadInfo.Stations[9].count > 0 and 1 or 0) -- weapon presend panel 5 + ExportScript.AF.TmpWeaponPanelPresend[106] = (ExportScript.AF.PayloadInfo.Stations[10].count > 0 and 1 or 0) -- weapon presend panel 6 + ExportScript.AF.TmpWeaponPanelPresend[107] = (ExportScript.AF.PayloadInfo.Stations[8].count > 0 and 1 or 0) -- weapon presend panel 7 + ExportScript.AF.TmpWeaponPanelPresend[108] = (ExportScript.AF.PayloadInfo.Stations[6].count > 0 and 1 or 0) -- weapon presend panel 8 + ExportScript.AF.TmpWeaponPanelPresend[109] = (ExportScript.AF.PayloadInfo.Stations[4].count > 0 and 1 or 0) -- weapon presend panel 9 + ExportScript.AF.TmpWeaponPanelPresend[110] = (ExportScript.AF.PayloadInfo.Stations[2].count > 0 and 1 or 0) -- weapon presend panel 10 + --ExportScript.AF.TmpWeaponPanelActive[201] -- weapon active panel 1 + --ExportScript.AF.TmpWeaponPanelActive[202] -- weapon active panel 2 + --ExportScript.AF.TmpWeaponPanelActive[203] -- weapon active panel 3 + --ExportScript.AF.TmpWeaponPanelActive[204] -- weapon active panel 4 + --ExportScript.AF.TmpWeaponPanelActive[205] -- weapon active panel 5 + --ExportScript.AF.TmpWeaponPanelActive[206] -- weapon active panel 6 + --ExportScript.AF.TmpWeaponPanelActive[207] -- weapon active panel 7 + --ExportScript.AF.TmpWeaponPanelActive[208] -- weapon active panel 8 + --ExportScript.AF.TmpWeaponPanelActive[209] -- weapon active panel 9 + --ExportScript.AF.TmpWeaponPanelActive[210] -- weapon active panel 10 + end + end + + if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then + for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do + ExportScript.Tools.SendData(key, value) + end + for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do + ExportScript.Tools.SendData(key, value) + end + end + + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do + ExportScript.Tools.SendDataDAC(key, value) + end + for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do + ExportScript.Tools.SendDataDAC(key, value) + end + end end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-30MKA.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-30MKA.lua new file mode 100644 index 00000000..e663b89e --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-30MKA.lua @@ -0,0 +1,61 @@ +-- Su-30MKA + +ExportScript.FoundDCSModule = true +ExportScript.Version.Su30MKA = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.4f", + [1] = "%.4f", + [2] = "%.4f", + [3] = "%.4f", + [4] = "%.4f", + [5] = "%.4f", + [6] = "%.4f", + [7] = "%.4f", +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-30MKI.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-30MKI.lua new file mode 100644 index 00000000..192d5c3f --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-30MKI.lua @@ -0,0 +1,60 @@ +-- Su-30MKI + +ExportScript.FoundDCSModule = true +ExportScript.Version.Su30MKI = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.4f", + [1] = "%.4f", + [2] = "%.4f", + [3] = "%.4f", + [4] = "%.4f", + [5] = "%.4f", + [6] = "%.4f", +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-30MKM.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-30MKM.lua new file mode 100644 index 00000000..26aae740 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-30MKM.lua @@ -0,0 +1,59 @@ +-- Su-30MKM + +ExportScript.FoundDCSModule = true +ExportScript.Version.Su30MKM = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.4f", + [1] = "%.4f", + [2] = "%.4f", + [3] = "%.4f", + [4] = "%.4f", + [5] = "%.4f", +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-30SM.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-30SM.lua new file mode 100644 index 00000000..9ed29751 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-30SM.lua @@ -0,0 +1,79 @@ +-- Su-30SM + +ExportScript.FoundDCSModule = true +ExportScript.Version.Su30SM = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + [0] = "%.4f", + [1] = "%.4f", + [2] = "%.4f", + [3] = "%.4f", + [4] = "%.4f", +} + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance + +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) +--[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + ExportScript.Tools.WriteToLog('CMSP: '..ExportScript.Tools.dump(list_indication(7))) + + -- list_indication get tehe value of cockpit displays + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + + + -- getmetatable get function name from devices + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end + +----------------------------- +-- Custom functions -- +----------------------------- \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/Su-33.lua b/Scripts/DCS-ExportScript/ExportsModules/Su-33.lua index 2de1e25a..5b337653 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/Su-33.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/Su-33.lua @@ -1,120 +1,120 @@ --- Su-33 Export +-- Su-33 Export -ExportScript.FoundFCModule = true +ExportScript.FoundFCModule = true ExportScript.Version.Su33 = "1.2.1" -- auxiliary function -dofile(ExportScript.Config.ExportModulePath.."FC_AuxiliaryFuntions.lua") - ------------------------------------------ --- FLAMING CLIFFS AIRCRAFT / Su-33 -- --- FC aircraft don't support GetDevice -- ------------------------------------------ - +dofile(ExportScript.Config.ExportModulePath.."FC_AuxiliaryFuntions.lua") + +----------------------------------------- +-- FLAMING CLIFFS AIRCRAFT / Su-33 -- +-- FC aircraft don't support GetDevice -- +----------------------------------------- + function ExportScript.ProcessIkarusFCHighImportanceConfig() - local lFunctionTyp = "Ikarus" -- function type for shared function - local myData = LoGetSelfData() - - if (myData) then + local lFunctionTyp = "Ikarus" -- function type for shared function + local myData = LoGetSelfData() + + if (myData) then local lLatitude = myData.LatLongAlt.Lat -- LATITUDE local lLongitude = myData.LatLongAlt.Long -- LONGITUDE local lEngineTempLeft = LoGetEngineInfo().Temperature.left -- ENG1 EGT C local lEngineTempRight = LoGetEngineInfo().Temperature.right -- ENG2 EGT C - --[[ - local lBasicAtmospherePressure = LoGetBasicAtmospherePressure() -- BAROMETRIC PRESSURE - local lAltBar = LoGetAltitudeAboveSeaLevel() -- ALTITUDE SEA LEVEL (Meter) - local lAltRad = LoGetAltitudeAboveGroundLevel() -- ALTITUDE GROUND LEVEL (Meter) - local lTrueAirSpeed = LoGetTrueAirSpeed() -- TRUE AIRSPEED (Meter/Second) - local lPitch, lBank, lYaw = LoGetADIPitchBankYaw() -- PITCH, BANK, YAW (Radian) - - local lHeading = myData.Heading -- HEADING (Radian) - local lVVI = LoGetVerticalVelocity() -- VERTICAL SPEED (Meter/Second) - local lIAS = LoGetIndicatedAirSpeed() -- INDICATED AIRSPEED (Meter/Second) - local lMachNumber = LoGetMachNumber() -- MACH - local lAoA = LoGetAngleOfAttack() -- ANGLE OF ATTACK AoA (Radian) - - local lGlide = LoGetGlideDeviation() -- VOR1 HORIZONTAL DEFLECTION (-1 +1) - local lSide = LoGetSideDeviation() -- VOR1 VERTICAL DEFLECTION (-1 +1) - local lSlipBallPosition = LoGetSlipBallPosition() -- SLIP BALL (-1 +1) - local lAccelerationUnits = LoGetAccelerationUnits().y -- G-LOAD - - local lNavInfoPitch = LoGetNavigationInfo().Requirements.pitch -- AP REQUIRED PITCH (Radian) - local lNavInfoRoll = LoGetNavigationInfo().Requirements.roll -- AP REQUIRED BANK (Radian) - local lNavInfoSpeed = LoGetNavigationInfo().Requirements.speed -- AP SPEED (Meter/Second) - local lNavInfoAltitude = LoGetNavigationInfo().Requirements.altitude -- AP ALTITUDE (Meter) - local lNavInfoVerticalSpeed = LoGetNavigationInfo().Requirements.vertical_speed -- AP VERTICAL SPEED (Meter/Second) - - local lControlPanel_HSI = LoGetControlPanel_HSI() -- HSI Data - local lHSI_RMI = LoGetControlPanel_HSI().RMI_raw -- VOR1 OBS (Radian) - local lHSI_ADF = LoGetControlPanel_HSI().ADF_raw -- ADF OBS (Radian) - local lHSI_Heading = LoGetControlPanel_HSI().Heading_raw -- Heading (Radian) - - local lEngineRPMleft = LoGetEngineInfo().RPM.left -- ENG1 RPM % - local lEngineRPMright = LoGetEngineInfo().RPM.right -- ENG2 RPM % - - local lEngineFuelInternal = LoGetEngineInfo().fuel_internal -- TANK1 (INT) (KG) - local lEngineFuelExternal = LoGetEngineInfo().fuel_external -- TANK2 (EXT) (KG) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + --[[ + local lBasicAtmospherePressure = LoGetBasicAtmospherePressure() -- BAROMETRIC PRESSURE + local lAltBar = LoGetAltitudeAboveSeaLevel() -- ALTITUDE SEA LEVEL (Meter) + local lAltRad = LoGetAltitudeAboveGroundLevel() -- ALTITUDE GROUND LEVEL (Meter) + local lTrueAirSpeed = LoGetTrueAirSpeed() -- TRUE AIRSPEED (Meter/Second) + local lPitch, lBank, lYaw = LoGetADIPitchBankYaw() -- PITCH, BANK, YAW (Radian) + + local lHeading = myData.Heading -- HEADING (Radian) + local lVVI = LoGetVerticalVelocity() -- VERTICAL SPEED (Meter/Second) + local lIAS = LoGetIndicatedAirSpeed() -- INDICATED AIRSPEED (Meter/Second) + local lMachNumber = LoGetMachNumber() -- MACH + local lAoA = LoGetAngleOfAttack() -- ANGLE OF ATTACK AoA (Radian) + + local lGlide = LoGetGlideDeviation() -- VOR1 HORIZONTAL DEFLECTION (-1 +1) + local lSide = LoGetSideDeviation() -- VOR1 VERTICAL DEFLECTION (-1 +1) + local lSlipBallPosition = LoGetSlipBallPosition() -- SLIP BALL (-1 +1) + local lAccelerationUnits = LoGetAccelerationUnits().y -- G-LOAD + + local lNavInfoPitch = LoGetNavigationInfo().Requirements.pitch -- AP REQUIRED PITCH (Radian) + local lNavInfoRoll = LoGetNavigationInfo().Requirements.roll -- AP REQUIRED BANK (Radian) + local lNavInfoSpeed = LoGetNavigationInfo().Requirements.speed -- AP SPEED (Meter/Second) + local lNavInfoAltitude = LoGetNavigationInfo().Requirements.altitude -- AP ALTITUDE (Meter) + local lNavInfoVerticalSpeed = LoGetNavigationInfo().Requirements.vertical_speed -- AP VERTICAL SPEED (Meter/Second) + + local lControlPanel_HSI = LoGetControlPanel_HSI() -- HSI Data + local lHSI_RMI = LoGetControlPanel_HSI().RMI_raw -- VOR1 OBS (Radian) + local lHSI_ADF = LoGetControlPanel_HSI().ADF_raw -- ADF OBS (Radian) + local lHSI_Heading = LoGetControlPanel_HSI().Heading_raw -- Heading (Radian) + + local lEngineRPMleft = LoGetEngineInfo().RPM.left -- ENG1 RPM % + local lEngineRPMright = LoGetEngineInfo().RPM.right -- ENG2 RPM % + + local lEngineFuelInternal = LoGetEngineInfo().fuel_internal -- TANK1 (INT) (KG) + local lEngineFuelExternal = LoGetEngineInfo().fuel_external -- TANK2 (EXT) (KG) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... local lPayloadInfo = LoGetPayloadInfo() -- Paylod, e.g. bombs, guns, rockets, fuel tanks,... - ]] - - local lDistanceToWay = 999 - local lRoute = LoGetRoute() - - if (myData and lRoute) then -- if neither are nil - local myLoc = LoGeoCoordinatesToLoCoordinates(lLongitude, lLatitude) - --lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.y - lRoute.goto_point.world_point.y)^2) - lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.z - lRoute.goto_point.world_point.z)^2) - end - - -- IAS-MACH Indicator - ExportScript.AF.FC_Russian_AirSpeed_1600hkm() - - -- AOA Indicator and Accelerometer - ExportScript.AF.FC_Russian_AOA_Su2733() - - -- ADI - ExportScript.AF.FC_Russian_ADI_New() - - -- HSI - ExportScript.AF.FC_Russian_HSI(lDistanceToWay) - - -- Vertical Velocity Indicator (VVI) - ExportScript.AF.FC_Russian_VVI_New() - - -- Radar Altimeter (below 100m is warning light on) - ExportScript.AF.FC_Russian_RadarAltimeter_1500m(100) - - -- Barometric Altimeter - ExportScript.AF.FC_Russian_BarometricAltimeter_late() - - -- Tachometer (RPM) - ExportScript.AF.FC_Russian_EngineRPM() - - -- Left Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) - ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempLeft, 1200, 100, 70, 71) - - -- Right Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) - ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempRight, 1200, 100, 72, 73) - - -- Clock from Ka-50 - ExportScript.AF.FC_Russian_Clock_late() - else - ExportScript.Tools.WriteToLog("Unknown FC Error, no LoGetSelfData.") - end -end - + ]] + + local lDistanceToWay = 999 + local lRoute = LoGetRoute() + + if (myData and lRoute) then -- if neither are nil + local myLoc = LoGeoCoordinatesToLoCoordinates(lLongitude, lLatitude) + --lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.y - lRoute.goto_point.world_point.y)^2) + lDistanceToWay = math.sqrt((myLoc.x - lRoute.goto_point.world_point.x)^2 + (myLoc.z - lRoute.goto_point.world_point.z)^2) + end + + -- IAS-MACH Indicator + ExportScript.AF.FC_Russian_AirSpeed_1600hkm() + + -- AOA Indicator and Accelerometer + ExportScript.AF.FC_Russian_AOA_Su2733() + + -- ADI + ExportScript.AF.FC_Russian_ADI_New() + + -- HSI + ExportScript.AF.FC_Russian_HSI(lDistanceToWay) + + -- Vertical Velocity Indicator (VVI) + ExportScript.AF.FC_Russian_VVI_New() + + -- Radar Altimeter (below 100m is warning light on) + ExportScript.AF.FC_Russian_RadarAltimeter_1500m(100) + + -- Barometric Altimeter + ExportScript.AF.FC_Russian_BarometricAltimeter_late() + + -- Tachometer (RPM) + ExportScript.AF.FC_Russian_EngineRPM() + + -- Left Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) + ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempLeft, 1200, 100, 70, 71) + + -- Right Jet Engine Turbine Temperature Indicator (EngineTemp, main scala, second scala, ExportID) + ExportScript.AF.FC_TwoNeedlesGauge(lEngineTempRight, 1200, 100, 72, 73) + + -- Clock from Ka-50 + ExportScript.AF.FC_Russian_Clock_late() + else + ExportScript.Tools.WriteToLog("Unknown FC Error, no LoGetSelfData.") + end +end + function ExportScript.ProcessDACConfigHighImportance() local lFunctionTyp = "DAC" -- function type for shared function -- your script -end - +end + function ExportScript.ProcessIkarusFCLowImportanceConfig() - local lFunctionTyp = "Ikarus" -- function type for shared function + local lFunctionTyp = "Ikarus" -- function type for shared function ExportScript.AF.FC_WeaponPanel_SU33(lFunctionTyp) @@ -122,40 +122,40 @@ function ExportScript.ProcessIkarusFCLowImportanceConfig() ExportScript.AF.FC_SPO15RWR(lFunctionTyp) -- EKRAN Message - ExportScript.AF.FC_EKRAN() - - -- Fuel Quantity Indicator - ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) - - ExportScript.AF.MechanicalDevicesIndicator(lFunctionTyp) - - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo ~= nil then - --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - -- Hydraulic Pressure Left - ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 300, 85) - - -- Hydraulic Pressure Right - ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 300, 86) + ExportScript.AF.FC_EKRAN() + + -- Fuel Quantity Indicator + ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) + + ExportScript.AF.MechanicalDevicesIndicator(lFunctionTyp) + + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo ~= nil then + --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + -- Hydraulic Pressure Left + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 300, 85) + + -- Hydraulic Pressure Right + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.HydraulicPressure.left, 300, 86) + end + + -- Engine Lamps, Start and Afterburner + ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) + + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + if lMechInfo ~= nil then + -- Wheelbrakes Hydraulic Pressure Left + ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 300, 87) + + -- Wheelbrakes Hydraulic Pressure Right + ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 300, 88) + + --ExportScript.Tools.WriteToLog('lMechInfo.noseflap.value: '..ExportScript.Tools.dump(lMechInfo.noseflap.value)) -- Vorfluegel, Balkenanzeige neben dem Radarhoehenmesser (0=oben bis 30=unten) end - - -- Engine Lamps, Start and Afterburner - ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) - - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - if lMechInfo ~= nil then - -- Wheelbrakes Hydraulic Pressure Left - ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 300, 87) - - -- Wheelbrakes Hydraulic Pressure Right - ExportScript.AF.FC_OneNeedleGauge(lMechInfo.wheelbrakes.value, 300, 88) - - --ExportScript.Tools.WriteToLog('lMechInfo.noseflap.value: '..ExportScript.Tools.dump(lMechInfo.noseflap.value)) -- Vorfluegel, Balkenanzeige neben dem Radarhoehenmesser (0=oben bis 30=unten) - end - - -- Airintake - ExportScript.AF.FC_Russian_AirIntake(20) - + + -- Airintake + ExportScript.AF.FC_Russian_AirIntake(20) + -- (x < 0 and 'negative' or 'non-negative') --[[ local lPayloadInfo = LoGetPayloadInfo() @@ -197,144 +197,144 @@ function ExportScript.ProcessIkarusFCLowImportanceConfig() -- Weapon Control System -- local lNameByType = LoGetNameByType () -- args 4 (number : level1,level2,level3,level4), result string -- values from LoGetTargetInformation().type - -- ExportScript.Tools.WriteToLog('lNameByType: '..ExportScript.Tools.dump(lNameByType)) -end - + -- ExportScript.Tools.WriteToLog('lNameByType: '..ExportScript.Tools.dump(lNameByType)) +end + function ExportScript.ProcessDACConfigLowImportance() local lFunctionTyp = "DAC" -- function type for shared function ExportScript.AF.FC_WeaponPanel_SU33(lFunctionTyp) - ExportScript.AF.FC_SPO15RWR(lFunctionTyp) + ExportScript.AF.FC_SPO15RWR(lFunctionTyp) ExportScript.AF.MechanicalDevicesIndicator(lFunctionTyp) - ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) - ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) - ExportScript.AF.StatusLamp() - ExportScript.AF.SightingSystem() - ExportScript.AF.PPDSPPanel() -end - ------------------------------ --- Custom functions -- ------------------------------ - -function ExportScript.AF.SightingSystem() - local lSightingSystemInfo = LoGetSightingSystemInfo() - if lSightingSystemInfo == nil then - return - end - --ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)9 - --[[ - [PRF] = { - [selection] = string: "ILV" - [current] = string: "MED" - } - [laser_on] = boolean: "false" - [scale] = { - [azimuth] = number: "0.52359873056412" - [distance] = number: "10000" - } - [radar_on] = boolean: "false" - [optical_system_on] = boolean: "false" - [LaunchAuthorized] = boolean: "false" - [ECM_on] = boolean: "false" - [Manufacturer] = string: "RUS" - [TDC] = { - [y] = number: "0" - [x] = number: "0" - } - [ScanZone] = { - [coverage_H] = { - [min] = number: "0" - [max] = number: "20000" - } - [size] = { - [azimuth] = number: "1.0471974611282" - [elevation] = number: "0.17453290522099" - } - [position] = { - [exceeding_manual] = number: "0" - [distance_manual] = number: "0" - [azimuth] = number: "0" - [elevation] = number: "0" - } - } - ]] - ExportScript.Tools.SendDataDAC("600", lSightingSystemInfo.ECM_on == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("601", lSightingSystemInfo.laser_on == true and 1 or 0 ) - --ExportScript.Tools.SendDataDAC("602", lSightingSystemInfo.optical_system_on == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("603", lSightingSystemInfo.LaunchAuthorized == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("604", lSightingSystemInfo.radar_on == true and 1 or 0 ) -end - -function ExportScript.AF.PPDSPPanel() - local lSnares = LoGetSnares() -- Flare and Chaff - if lSnares == nil then - return - end - --ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) - - --[chaff] = number: "48" - --[flare] = number: "48" - - local lChaffLED = ExportScript.Tools.round(lSnares.chaff / 6, 0, "ceil") + 1 - local lFlareLED = ExportScript.Tools.round(lSnares.flare / 6, 0, "ceil") + 1 - - ExportScript.Tools.SendDataDAC("800", (lChaffLED <= 1 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("801", (lChaffLED <= 2 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("802", (lChaffLED <= 3 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("803", (lChaffLED <= 4 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("804", (lChaffLED <= 5 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("805", (lChaffLED <= 6 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("806", (lChaffLED <= 7 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("807", (lChaffLED <= 8 and 0 or 1) ) - - ExportScript.Tools.SendDataDAC("810", (lFlareLED <= 1 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("811", (lFlareLED <= 2 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("812", (lFlareLED <= 3 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("813", (lFlareLED <= 4 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("814", (lFlareLED <= 5 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("815", (lFlareLED <= 6 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("816", (lFlareLED <= 7 and 0 or 1) ) - ExportScript.Tools.SendDataDAC("817", (lFlareLED <= 8 and 0 or 1) ) -end - -function ExportScript.AF.StatusLamp() - local lMCPState = LoGetMCPState() -- Warning Lights - if lMCPState == nil then - return - end - --ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) - --[[ - [RightTailPlaneFailure] = boolean: "false" - [EOSFailure] = boolean: "false" - [ECMFailure] = boolean: "false" - [RightAileronFailure] = boolean: "false" - [MasterWarning] = boolean: "false" - [RightEngineFailure] = boolean: "false" - [CannonFailure] = boolean: "false" - [MLWSFailure] = boolean: "false" - [ACSFailure] = boolean: "false" - [RadarFailure] = boolean: "false" - [HelmetFailure] = boolean: "false" - [HUDFailure] = boolean: "false" - [LeftMainPumpFailure] = boolean: "false" - [RightWingPumpFailure] = boolean: "false" - [LeftWingPumpFailure] = boolean: "false" - [MFDFailure] = boolean: "false" - [RWSFailure] = boolean: "false" - [GearFailure] = boolean: "false" - [HydraulicsFailure] = boolean: "false" - [AutopilotFailure] = boolean: "true" - [FuelTankDamage] = boolean: "false" - [LeftAileronFailure] = boolean: "false" - [CanopyOpen] = boolean: "false" - [RightMainPumpFailure] = boolean: "false" - [StallSignalization] = boolean: "false" - [LeftEngineFailure] = boolean: "false" - [AutopilotOn] = boolean: "false" - [LeftTailPlaneFailure] = boolean: "false" - ]] - + ExportScript.AF.FuelQuantityIndicator(lFunctionTyp) + ExportScript.AF.FC_EngineLamps_SU2733(lFunctionTyp) + ExportScript.AF.StatusLamp() + ExportScript.AF.SightingSystem() + ExportScript.AF.PPDSPPanel() +end + +----------------------------- +-- Custom functions -- +----------------------------- + +function ExportScript.AF.SightingSystem() + local lSightingSystemInfo = LoGetSightingSystemInfo() + if lSightingSystemInfo == nil then + return + end + --ExportScript.Tools.WriteToLog('lSightingSystemInfo: '..ExportScript.Tools.dump(lSightingSystemInfo)9 + --[[ + [PRF] = { + [selection] = string: "ILV" + [current] = string: "MED" + } + [laser_on] = boolean: "false" + [scale] = { + [azimuth] = number: "0.52359873056412" + [distance] = number: "10000" + } + [radar_on] = boolean: "false" + [optical_system_on] = boolean: "false" + [LaunchAuthorized] = boolean: "false" + [ECM_on] = boolean: "false" + [Manufacturer] = string: "RUS" + [TDC] = { + [y] = number: "0" + [x] = number: "0" + } + [ScanZone] = { + [coverage_H] = { + [min] = number: "0" + [max] = number: "20000" + } + [size] = { + [azimuth] = number: "1.0471974611282" + [elevation] = number: "0.17453290522099" + } + [position] = { + [exceeding_manual] = number: "0" + [distance_manual] = number: "0" + [azimuth] = number: "0" + [elevation] = number: "0" + } + } + ]] + ExportScript.Tools.SendDataDAC("600", lSightingSystemInfo.ECM_on == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("601", lSightingSystemInfo.laser_on == true and 1 or 0 ) + --ExportScript.Tools.SendDataDAC("602", lSightingSystemInfo.optical_system_on == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("603", lSightingSystemInfo.LaunchAuthorized == true and 1 or 0 ) + ExportScript.Tools.SendDataDAC("604", lSightingSystemInfo.radar_on == true and 1 or 0 ) +end + +function ExportScript.AF.PPDSPPanel() + local lSnares = LoGetSnares() -- Flare and Chaff + if lSnares == nil then + return + end + --ExportScript.Tools.WriteToLog('lSnares: '..ExportScript.Tools.dump(lSnares)) + + --[chaff] = number: "48" + --[flare] = number: "48" + + local lChaffLED = ExportScript.Tools.round(lSnares.chaff / 6, 0, "ceil") + 1 + local lFlareLED = ExportScript.Tools.round(lSnares.flare / 6, 0, "ceil") + 1 + + ExportScript.Tools.SendDataDAC("800", (lChaffLED <= 1 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("801", (lChaffLED <= 2 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("802", (lChaffLED <= 3 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("803", (lChaffLED <= 4 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("804", (lChaffLED <= 5 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("805", (lChaffLED <= 6 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("806", (lChaffLED <= 7 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("807", (lChaffLED <= 8 and 0 or 1) ) + + ExportScript.Tools.SendDataDAC("810", (lFlareLED <= 1 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("811", (lFlareLED <= 2 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("812", (lFlareLED <= 3 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("813", (lFlareLED <= 4 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("814", (lFlareLED <= 5 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("815", (lFlareLED <= 6 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("816", (lFlareLED <= 7 and 0 or 1) ) + ExportScript.Tools.SendDataDAC("817", (lFlareLED <= 8 and 0 or 1) ) +end + +function ExportScript.AF.StatusLamp() + local lMCPState = LoGetMCPState() -- Warning Lights + if lMCPState == nil then + return + end + --ExportScript.Tools.WriteToLog('lMCPState: '..ExportScript.Tools.dump(lMCPState)) + --[[ + [RightTailPlaneFailure] = boolean: "false" + [EOSFailure] = boolean: "false" + [ECMFailure] = boolean: "false" + [RightAileronFailure] = boolean: "false" + [MasterWarning] = boolean: "false" + [RightEngineFailure] = boolean: "false" + [CannonFailure] = boolean: "false" + [MLWSFailure] = boolean: "false" + [ACSFailure] = boolean: "false" + [RadarFailure] = boolean: "false" + [HelmetFailure] = boolean: "false" + [HUDFailure] = boolean: "false" + [LeftMainPumpFailure] = boolean: "false" + [RightWingPumpFailure] = boolean: "false" + [LeftWingPumpFailure] = boolean: "false" + [MFDFailure] = boolean: "false" + [RWSFailure] = boolean: "false" + [GearFailure] = boolean: "false" + [HydraulicsFailure] = boolean: "false" + [AutopilotFailure] = boolean: "true" + [FuelTankDamage] = boolean: "false" + [LeftAileronFailure] = boolean: "false" + [CanopyOpen] = boolean: "false" + [RightMainPumpFailure] = boolean: "false" + [StallSignalization] = boolean: "false" + [LeftEngineFailure] = boolean: "false" + [AutopilotOn] = boolean: "false" + [LeftTailPlaneFailure] = boolean: "false" + ]] + ExportScript.Tools.SendDataDAC("700", lMCPState.LeftTailPlaneFailure == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("701", lMCPState.RightTailPlaneFailure == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("702", lMCPState.MasterWarning == true and 1 or 0 ) @@ -362,359 +362,359 @@ function ExportScript.AF.StatusLamp() ExportScript.Tools.SendDataDAC("724", lMCPState.FuelTankDamage == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("725", lMCPState.CanopyOpen == true and 1 or 0 ) ExportScript.Tools.SendDataDAC("726", lMCPState.StallSignalization == true and 1 or 0 ) - ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) - - local lAccelerationUnits = LoGetAccelerationUnits() - if lAccelerationUnits ~= nil then - --ExportScript.Tools.WriteToLog('lAccelerationUnits: '..ExportScript.Tools.dump(lAccelerationUnits)) - ExportScript.Tools.SendDataDAC("732", (lAccelerationUnits.y > 8.0 and 1 or 0) ) -- lamp Over-G warning - end -end - + ExportScript.Tools.SendDataDAC("727", lMCPState.AutopilotOn == true and 1 or 0 ) + + local lAccelerationUnits = LoGetAccelerationUnits() + if lAccelerationUnits ~= nil then + --ExportScript.Tools.WriteToLog('lAccelerationUnits: '..ExportScript.Tools.dump(lAccelerationUnits)) + ExportScript.Tools.SendDataDAC("732", (lAccelerationUnits.y > 8.0 and 1 or 0) ) -- lamp Over-G warning + end +end + function ExportScript.AF.FuelQuantityIndicator(FunctionTyp) -- Fuel quantity shows the fuel remaining in all tanks - local lFunctionTyp = FunctionTyp or "Ikarus" - local lEngineInfo = LoGetEngineInfo() - if lEngineInfo == nil then - return - end - --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) - --[[ - [fuel_external] = number: "0" - [Temperature] = { - [left] = number: "626.99444580078" - [right] = number: "626.99444580078" - } - [RPM] = { - [left] = number: "87.453765869141" - [right] = number: "87.453758239746" - } - [FuelConsumption] = { - [left] = number: "0.1500396137767" - [right] = number: "0.1500396137767" - } - [fuel_internal] = number: "3773.2749023438" - [EngineStart] = { - [left] = number: "0" - [right] = number: "0" - } - [HydraulicPressure] = { - [left] = number: "210" - [right] = number: "210" - } - lPayloadInfo.Stations[8].CLSID == E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF -- ext 800l Fuel Tank - ]] + local lFunctionTyp = FunctionTyp or "Ikarus" + local lEngineInfo = LoGetEngineInfo() + if lEngineInfo == nil then + return + end + --ExportScript.Tools.WriteToLog('lEngineInfo: '..ExportScript.Tools.dump(lEngineInfo)) + --[[ + [fuel_external] = number: "0" + [Temperature] = { + [left] = number: "626.99444580078" + [right] = number: "626.99444580078" + } + [RPM] = { + [left] = number: "87.453765869141" + [right] = number: "87.453758239746" + } + [FuelConsumption] = { + [left] = number: "0.1500396137767" + [right] = number: "0.1500396137767" + } + [fuel_internal] = number: "3773.2749023438" + [EngineStart] = { + [left] = number: "0" + [right] = number: "0" + } + [HydraulicPressure] = { + [left] = number: "210" + [right] = number: "210" + } + lPayloadInfo.Stations[8].CLSID == E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF -- ext 800l Fuel Tank + ]] if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - lTotalFuel = lEngineInfo.fuel_internal - --ExportScript.Tools.WriteToLog('lTotalFuel: '..ExportScript.Tools.dump(lTotalFuel)) - --lTotalFuel = string.format("%3d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10) - --lTotalFuel = string.format("%4d", lEngineInfo.fuel_internal) -- total fuel in kg - --lTotalFuel = string.format("%4d", lEngineInfo.fuel_external) -- external fuel in kg - local lTotalFuel_12_0 = 1.0 - - if lTotalFuel < 12000 then - --[[ - y_min = 0.0 -- minimaler Ausgabewert - y_max = 1.0 -- maximaler Ausgabewert - x_min = 0 -- minimaler Eingangswert - x_max = 12000 -- maximaler Eingangswert - x = 8000 -- aktueller Eingangswert - - d_y = 1 -- Delta Ausgabewerte (y_max - y_min) - d_x = 12000 -- Delta Eingangswerte (x_max - x_min) - m = 8.3333333333333333333333333333333e-5 -- Steigung der linearen Funktion (d_y / d_x) - n = 4.e-33 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) - - y = 0.66666666666666666666666666666667 -- Ergebnis (m * x + n) - ]] - lTotalFuel_12_0 = 8.3333333333333333333333333333333e-5 * lTotalFuel + 4.e-33 + lTotalFuel = lEngineInfo.fuel_internal + --ExportScript.Tools.WriteToLog('lTotalFuel: '..ExportScript.Tools.dump(lTotalFuel)) + --lTotalFuel = string.format("%3d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10) + --lTotalFuel = string.format("%4d", lEngineInfo.fuel_internal) -- total fuel in kg + --lTotalFuel = string.format("%4d", lEngineInfo.fuel_external) -- external fuel in kg + local lTotalFuel_12_0 = 1.0 + + if lTotalFuel < 12000 then + --[[ + y_min = 0.0 -- minimaler Ausgabewert + y_max = 1.0 -- maximaler Ausgabewert + x_min = 0 -- minimaler Eingangswert + x_max = 12000 -- maximaler Eingangswert + x = 8000 -- aktueller Eingangswert + + d_y = 1 -- Delta Ausgabewerte (y_max - y_min) + d_x = 12000 -- Delta Eingangswerte (x_max - x_min) + m = 8.3333333333333333333333333333333e-5 -- Steigung der linearen Funktion (d_y / d_x) + n = 4.e-33 -- Schnittpunkt der Funktion mit y-Achse (y_max - m * x_max) + + y = 0.66666666666666666666666666666667 -- Ergebnis (m * x + n) + ]] + lTotalFuel_12_0 = 8.3333333333333333333333333333333e-5 * lTotalFuel + 4.e-33 end ExportScript.Tools.SendData("301", string.format("%.4f", lTotalFuel_12_0) ) - ExportScript.Tools.SendData("304", (lEngineInfo.fuel_internal < 6900.0 and 1 or 0) ) -- Tank warning 1 - ExportScript.Tools.SendData("305", (lEngineInfo.fuel_internal < 5400.0 and 1 or 0) ) -- Tank warning 2 - ExportScript.Tools.SendData("306", (lEngineInfo.fuel_internal < 4700.0 and 1 or 0) ) -- Tank warning 3 - ExportScript.Tools.SendData("307", (lEngineInfo.fuel_internal < 1500.0 and 1 or 0) ) -- Tank warning 4 - ExportScript.Tools.SendData("308", (lEngineInfo.fuel_internal < 600.0 and 1 or 0) ) -- Bingo Fuel - + ExportScript.Tools.SendData("304", (lEngineInfo.fuel_internal < 6900.0 and 1 or 0) ) -- Tank warning 1 + ExportScript.Tools.SendData("305", (lEngineInfo.fuel_internal < 5400.0 and 1 or 0) ) -- Tank warning 2 + ExportScript.Tools.SendData("306", (lEngineInfo.fuel_internal < 4700.0 and 1 or 0) ) -- Tank warning 3 + ExportScript.Tools.SendData("307", (lEngineInfo.fuel_internal < 1500.0 and 1 or 0) ) -- Tank warning 4 + ExportScript.Tools.SendData("308", (lEngineInfo.fuel_internal < 600.0 and 1 or 0) ) -- Bingo Fuel + ExportScript.AF.FC_OneNeedleGauge(lEngineInfo.fuel_internal, 10000, 302) -- Standby Fuel Indicator end - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - ExportScript.Tools.SendDataDAC("300", string.format("%d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10) ) -- total fuel in kg - --ExportScript.Tools.SendDataDAC("301", string.format("%d", lEngineInfo.fuel_internal) ) -- total fuel in kg - --ExportScript.Tools.SendDataDAC("302", string.format("%d", lEngineInfo.fuel_external) ) -- external fuel in kg - - ExportScript.Tools.SendDataDAC("304", (lEngineInfo.fuel_internal < 6900.0 and 1 or 0) ) -- Tank warning 1 - ExportScript.Tools.SendDataDAC("305", (lEngineInfo.fuel_internal < 5400.0 and 1 or 0) ) -- Tank warning 2 - ExportScript.Tools.SendDataDAC("306", (lEngineInfo.fuel_internal < 4700.0 and 1 or 0) ) -- Tank warning 3 - ExportScript.Tools.SendDataDAC("307", (lEngineInfo.fuel_internal < 1500.0 and 1 or 0) ) -- Tank warning 4 - ExportScript.Tools.SendDataDAC("308", (lEngineInfo.fuel_internal < 600.0 and 1 or 0) ) -- Bingo Fuel - end -end + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + ExportScript.Tools.SendDataDAC("300", string.format("%d", ExportScript.Tools.round((lEngineInfo.fuel_internal / 10), 0, "ceil") * 10) ) -- total fuel in kg + --ExportScript.Tools.SendDataDAC("301", string.format("%d", lEngineInfo.fuel_internal) ) -- total fuel in kg + --ExportScript.Tools.SendDataDAC("302", string.format("%d", lEngineInfo.fuel_external) ) -- external fuel in kg + + ExportScript.Tools.SendDataDAC("304", (lEngineInfo.fuel_internal < 6900.0 and 1 or 0) ) -- Tank warning 1 + ExportScript.Tools.SendDataDAC("305", (lEngineInfo.fuel_internal < 5400.0 and 1 or 0) ) -- Tank warning 2 + ExportScript.Tools.SendDataDAC("306", (lEngineInfo.fuel_internal < 4700.0 and 1 or 0) ) -- Tank warning 3 + ExportScript.Tools.SendDataDAC("307", (lEngineInfo.fuel_internal < 1500.0 and 1 or 0) ) -- Tank warning 4 + ExportScript.Tools.SendDataDAC("308", (lEngineInfo.fuel_internal < 600.0 and 1 or 0) ) -- Bingo Fuel + end +end function ExportScript.AF.MechanicalDevicesIndicator(FunctionTyp) - local lFunctionTyp = FunctionTyp or "Ikarus" --- The mechanical devices indicator shows the position of the landing gear, flaps, leading edge flaps and airbrake - local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... - --ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) - if lMechInfo == nil then - return - end - --[[ - [hook] = { - [status] = number: "0" - [value] = number: "0" - } - [parachute] = { - [status] = number: "0" - [value] = number: "0" - } - [controlsurfaces] = { - [eleron] = { - [left] = number: "0" - [right] = number: "-0.21084336936474" - } - [elevator] = { - [left] = number: "-0" - [right] = number: "-0" - } - [rudder] = { - [left] = number: "0" - [right] = number: "0" - } - } - [airintake] = { - [status] = number: "0" - [value] = number: "0" - } - [canopy] = { - [status] = number: "0" - [value] = number: "0" - } - [refuelingboom] = { - [status] = number: "0" - [value] = number: "0" - } - [wing] = { - [status] = number: "0" - [value] = number: "0" - } - [noseflap] = { - [status] = number: "0" - [value] = number: "0" - } - [gear] = { - [value] = number: "0" - [nose] = { - [rod] = number: "0" - } - [main] = { - [left] = { - [rod] = number: "0" - } - [right] = { - [rod] = number: "0" - } - } - [status] = number: "0" - } - [speedbrakes] = { - [status] = number: "0" - [value] = number: "0" - } - [wheelbrakes] = { - [status] = number: "0" - [value] = number: "0" - } - [flaps] = { - [status] = number: "0" - [value] = number: "0" - }]] + local lFunctionTyp = FunctionTyp or "Ikarus" +-- The mechanical devices indicator shows the position of the landing gear, flaps, leading edge flaps and airbrake + local lMechInfo = LoGetMechInfo() -- mechanical components, e.g. Flaps, Wheelbrakes,... + --ExportScript.Tools.WriteToLog('lMechInfo: '..ExportScript.Tools.dump(lMechInfo)) + if lMechInfo == nil then + return + end + --[[ + [hook] = { + [status] = number: "0" + [value] = number: "0" + } + [parachute] = { + [status] = number: "0" + [value] = number: "0" + } + [controlsurfaces] = { + [eleron] = { + [left] = number: "0" + [right] = number: "-0.21084336936474" + } + [elevator] = { + [left] = number: "-0" + [right] = number: "-0" + } + [rudder] = { + [left] = number: "0" + [right] = number: "0" + } + } + [airintake] = { + [status] = number: "0" + [value] = number: "0" + } + [canopy] = { + [status] = number: "0" + [value] = number: "0" + } + [refuelingboom] = { + [status] = number: "0" + [value] = number: "0" + } + [wing] = { + [status] = number: "0" + [value] = number: "0" + } + [noseflap] = { + [status] = number: "0" + [value] = number: "0" + } + [gear] = { + [value] = number: "0" + [nose] = { + [rod] = number: "0" + } + [main] = { + [left] = { + [rod] = number: "0" + } + [right] = { + [rod] = number: "0" + } + } + [status] = number: "0" + } + [speedbrakes] = { + [status] = number: "0" + [value] = number: "0" + } + [wheelbrakes] = { + [status] = number: "0" + [value] = number: "0" + } + [flaps] = { + [status] = number: "0" + [value] = number: "0" + }]] --local lTrueAirSpeed = LoGetTrueAirSpeed() - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - ExportScript.Tools.SendDataDAC("500", (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1 or 0 ) ) -- gear warning light - ExportScript.Tools.SendDataDAC("501", (lMechInfo.gear.value > 0.85 and 1 or 0) ) -- nose gear - ExportScript.Tools.SendDataDAC("502", (lMechInfo.gear.value > 0.95 and 1 or 0) ) -- left gear - ExportScript.Tools.SendDataDAC("503", (lMechInfo.gear.value > 0.97 and 1 or 0) ) -- right gear - - ExportScript.Tools.SendDataDAC("510", (lMechInfo.speedbrakes.value > 0.1 and 1 or 0) ) -- speedbreakes on > 0.1 (0 - 1) - - ExportScript.Tools.SendDataDAC("531", (lMechInfo.flaps.value > 0.93 and 1 or 0) ) -- flap - ExportScript.Tools.SendDataDAC("532", ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0) ) -- Intake FOD shields - ExportScript.Tools.SendDataDAC("533", ((lMechInfo.gear.status == 0 and lMechInfo.flaps.status > 0) and 1 or 0) ) -- Flaps Warning, same light as gear warning light, but blinking light - + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + ExportScript.Tools.SendDataDAC("500", (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1 or 0 ) ) -- gear warning light + ExportScript.Tools.SendDataDAC("501", (lMechInfo.gear.value > 0.85 and 1 or 0) ) -- nose gear + ExportScript.Tools.SendDataDAC("502", (lMechInfo.gear.value > 0.95 and 1 or 0) ) -- left gear + ExportScript.Tools.SendDataDAC("503", (lMechInfo.gear.value > 0.97 and 1 or 0) ) -- right gear + + ExportScript.Tools.SendDataDAC("510", (lMechInfo.speedbrakes.value > 0.1 and 1 or 0) ) -- speedbreakes on > 0.1 (0 - 1) + + ExportScript.Tools.SendDataDAC("531", (lMechInfo.flaps.value > 0.93 and 1 or 0) ) -- flap + ExportScript.Tools.SendDataDAC("532", ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0) ) -- Intake FOD shields + ExportScript.Tools.SendDataDAC("533", ((lMechInfo.gear.status == 0 and lMechInfo.flaps.status > 0) and 1 or 0) ) -- Flaps Warning, same light as gear warning light, but blinking light + ExportScript.Tools.SendDataDAC("541", (lMechInfo.hook.value > 0.8 and 1 or 0) ) -- Hook ExportScript.Tools.SendDataDAC("551", (lMechInfo.noseflap.value > 20.0 and 1 or 0) ) end if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - local lWarningLight = 0.0 - - --lWarningLight = ((lMechInfo.flaps.value > 0.93 and lTrueAirSpeed > 340) and 1.0 or 0.0) -- Speed Warning for Flaps, same light as gear warning light, but blinking light - lWarningLight = ((lMechInfo.gear.status == 0 and lMechInfo.flaps.status > 0) and 1.0 or lWarningLight ) -- Flaps Warning, same light as gear warning light, but blinking light - lWarningLight = (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1.0 or lWarningLight ) -- gear warning light + local lWarningLight = 0.0 + + --lWarningLight = ((lMechInfo.flaps.value > 0.93 and lTrueAirSpeed > 340) and 1.0 or 0.0) -- Speed Warning for Flaps, same light as gear warning light, but blinking light + lWarningLight = ((lMechInfo.gear.status == 0 and lMechInfo.flaps.status > 0) and 1.0 or lWarningLight ) -- Flaps Warning, same light as gear warning light, but blinking light + lWarningLight = (((lMechInfo.gear.status == 1 and lMechInfo.gear.value < 1) or (lMechInfo.gear.status == 0 and lMechInfo.gear.value > 0)) and 1.0 or lWarningLight ) -- gear warning light ExportScript.Tools.SendData(500, string.format("%.1f", lWarningLight)) ExportScript.Tools.SendData(501, (lMechInfo.gear.value > 0.85 and 1 or 0)) -- nose gear ExportScript.Tools.SendData(502, (lMechInfo.gear.value > 0.95 and 1 or 0)) -- left gear ExportScript.Tools.SendData(503, (lMechInfo.gear.value == 1 and 1 or 0)) -- right gear ExportScript.Tools.SendData(510, (lMechInfo.speedbrakes.value > 0.1 and 1 or 0)) -- speedbreakes on > 0.1 (0 - 1) - ExportScript.Tools.SendData(531, (lMechInfo.flaps.value > 0.93 and 1 or 0)) -- flap - ExportScript.Tools.SendData(532, ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0)) -- Intake FOD shields + ExportScript.Tools.SendData(531, (lMechInfo.flaps.value > 0.93 and 1 or 0)) -- flap + ExportScript.Tools.SendData(532, ((lMechInfo.gear.value > 0.5 and lMechInfo.gear.nose.rod > 0.02) and 1 or 0)) -- Intake FOD shields ExportScript.Tools.SendData(541, (lMechInfo.hook.value > 0.8 and 1 or 0)) -- Hook - end -end - -function ExportScript.AF.FC_WeaponPanel_SU33(FunctionTyp) - local lFunctionTyp = FunctionTyp or "Ikarus" - - if ExportScript.AF.TmpWeaponPanelPresend == nil then - ExportScript.AF.TmpWeaponPanelPresend = {[101] = 0, [102] = 0, [103] = 0, [104] = 0, [105] = 0, [106] = 0, [107] = 0, [108] = 0, [109] = 0, [110] = 0} - end - - if ExportScript.AF.TmpWeaponPanelActive == nil then - ExportScript.AF.TmpWeaponPanelActive = {[201] = 0, [202] = 0, [203] = 0, [204] = 0, [205] = 0, [206] = 0, [207] = 0, [208] = 0, [209] = 0, [210] = 0} - end - - if ExportScript.AF.TmpWeaponPanel == nil then - ExportScript.AF.TmpWeaponPanel = {[231] = 0, [232] = 0, [233] = 0, [234] = 0, [235] = 0} - end - - if ExportScript.AF.EventNumberFC_WeaponPanel == nil then - ExportScript.AF.EventNumberFC_WeaponPanel = 0 - end - - if(ExportScript.AF.EventNumberFC_WeaponPanel < ExportScript.AF.EventNumber) then - ExportScript.AF.EventNumberFC_WeaponPanel = ExportScript.AF.EventNumber - - -- defination - ExportScript.AF.PayloadInfo = LoGetPayloadInfo() - if ExportScript.AF.PayloadInfo ~= nil then - if ExportScript.AF.CurrentStationTmp == nil then - ExportScript.AF.CurrentStationTmp = -1 - end - - if ExportScript.AF.PayloadInfo.CurrentStation > 0 and - ExportScript.AF.CurrentStationTmp ~= ExportScript.AF.PayloadInfo.CurrentStation then - ExportScript.AF.CurrentStationTmp = ExportScript.AF.PayloadInfo.CurrentStation - - ExportScript.AF.TmpStationToPanel = {} - --ExportScript.AF.TmpStationToPanel[1] = {Panel = 1, StationID = 101, CurrentID = 201 } -- L - --ExportScript.AF.TmpStationToPanel[2] = {Panel = 10, StationID = 110, CurrentID = 210 } -- L - ExportScript.AF.TmpStationToPanel[3] = {Panel = 10, StationID = 110, CurrentID = 210 } - ExportScript.AF.TmpStationToPanel[4] = {Panel = 1, StationID = 101, CurrentID = 201 } - ExportScript.AF.TmpStationToPanel[5] = {Panel = 2, StationID = 102, CurrentID = 202 } - ExportScript.AF.TmpStationToPanel[6] = {Panel = 9, StationID = 109, CurrentID = 209 } - ExportScript.AF.TmpStationToPanel[7] = {Panel = 3, StationID = 103, CurrentID = 203 } - ExportScript.AF.TmpStationToPanel[8] = {Panel = 8, StationID = 108, CurrentID = 208 } - ExportScript.AF.TmpStationToPanel[9] = {Panel = 4, StationID = 104, CurrentID = 204 } - ExportScript.AF.TmpStationToPanel[10] = {Panel = 7, StationID = 107, CurrentID = 207 } - ExportScript.AF.TmpStationToPanel[11] = {Panel = 6, StationID = 106, CurrentID = 206 } - ExportScript.AF.TmpStationToPanel[12] = {Panel = 5, StationID = 105, CurrentID = 205 } - - -- ExportScript.AF.TmpWeaponPanelActive reset - for i = 201, 210, 1 do - ExportScript.AF.TmpWeaponPanelActive[i] = 0 - end - - if ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation] ~= nil then - ExportScript.AF.TmpWeaponPanelActive[ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation].CurrentID] = 1 -- currrent value - - table.foreach(ExportScript.AF.PayloadInfo.Stations, ExportScript.AF.WeaponStatusPanel_selectCurrentPayloadStation) -- corresponding station - end - end - - local lWeaponType = 0.0 -- transversely striped - if ExportScript.AF.PayloadInfo.CurrentStation > 0 then - if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level1 == 4 then - if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 4 then -- Weapon type Missle - lWeaponType = 0.1 -- MSL - elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 7 then -- Weapon type NURS with Container - if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level3 == 33 then -- Weapon type Rocket - lWeaponType = 0.2 -- RCT - end - elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 5 then -- Weapon type Bomb - lWeaponType = 0.3 -- BB - end - end - end - - --[[ - Weapon Panel (Numper = Station number) - | - ------------------------------------------------------- - | | | | | | | | | | | | - L 1 2 3 4 5 6 7 8 9 10 R -- Panel ID - 1 4 5 7 9 12 11 10 8 6 3 2 -- gES_PayloadInfo.Station.ID - ]] - -- Payload Info - -- weapon stations L and R not on Panel - -- weapon station 1 (left) to 10 (right), 5 and 6 center station - - -- WeaponPresend1 {0, 1} - -- WeaponPresend2 {0, 1} - -- WeaponPresend3 {0, 1} - -- WeaponPresend4 {0, 1} - -- WeaponPresend5 {0, 1} - -- WeaponPresend6 {0, 1} - -- WeaponPresend7 {0, 1} - -- WeaponPresend8 {0, 1} - -- WeaponPresend9 {0, 1} - -- WeaponPresend10 {0, 1} - -- WeaponActive1 {0, 1} - -- WeaponActive2 {0, 1} - -- WeaponActive3 {0, 1} - -- WeaponActive4 {0, 1} - -- WeaponActive5 {0, 1} - -- WeaponActive6 {0, 1} - -- WeaponActive7 {0, 1} - -- WeaponActive8 {0, 1} - -- WeaponActive9 {0, 1} - -- WeaponActive10 {0, 1} - - --ExportScript.AF.TmpWeaponPanelPresend[] = (ExportScript.AF.PayloadInfo.Stations[1].count > 0 and 1 or 0) -- L - --ExportScript.AF.TmpWeaponPanelPresend[] = (ExportScript.AF.PayloadInfo.Stations[2].count > 0 and 1 or 0) -- R - ExportScript.AF.TmpWeaponPanelPresend[110] = (ExportScript.AF.PayloadInfo.Stations[3].count > 0 and 1 or 0) -- weapon presend panel 1 - ExportScript.AF.TmpWeaponPanelPresend[101] = (ExportScript.AF.PayloadInfo.Stations[4].count > 0 and 1 or 0) -- weapon presend panel 10 - ExportScript.AF.TmpWeaponPanelPresend[102] = (ExportScript.AF.PayloadInfo.Stations[5].count > 0 and 1 or 0) -- weapon presend panel 2 - ExportScript.AF.TmpWeaponPanelPresend[109] = (ExportScript.AF.PayloadInfo.Stations[6].count > 0 and 1 or 0) -- weapon presend panel 9 - ExportScript.AF.TmpWeaponPanelPresend[103] = (ExportScript.AF.PayloadInfo.Stations[7].count > 0 and 1 or 0) -- weapon presend panel 3 - ExportScript.AF.TmpWeaponPanelPresend[108] = (ExportScript.AF.PayloadInfo.Stations[8].count > 0 and 1 or 0) -- weapon presend panel 8 - ExportScript.AF.TmpWeaponPanelPresend[104] = (ExportScript.AF.PayloadInfo.Stations[9].count > 0 and 1 or 0) -- weapon presend panel 4 - ExportScript.AF.TmpWeaponPanelPresend[107] = (ExportScript.AF.PayloadInfo.Stations[10].count > 0 and 1 or 0) -- weapon presend panel 7 - ExportScript.AF.TmpWeaponPanelPresend[106] = (ExportScript.AF.PayloadInfo.Stations[11].count > 0 and 1 or 0) -- weapon presend panel 5 - ExportScript.AF.TmpWeaponPanelPresend[105] = (ExportScript.AF.PayloadInfo.Stations[12].count > 0 and 1 or 0) -- weapon presend panel 6 - --ExportScript.AF.TmpWeaponPanelActive[201] -- weapon active panel 1 - --ExportScript.AF.TmpWeaponPanelActive[202] -- weapon active panel 2 - --ExportScript.AF.TmpWeaponPanelActive[203] -- weapon active panel 3 - --ExportScript.AF.TmpWeaponPanelActive[204] -- weapon active panel 4 - --ExportScript.AF.TmpWeaponPanelActive[205] -- weapon active panel 5 - --ExportScript.AF.TmpWeaponPanelActive[206] -- weapon active panel 6 - --ExportScript.AF.TmpWeaponPanelActive[207] -- weapon active panel 7 - --ExportScript.AF.TmpWeaponPanelActive[208] -- weapon active panel 8 - --ExportScript.AF.TmpWeaponPanelActive[209] -- weapon active panel 9 - --ExportScript.AF.TmpWeaponPanelActive[210] -- weapon active panel 10 - end - end - - if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then - for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do - ExportScript.Tools.SendData(key, value) - end - for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do - ExportScript.Tools.SendData(key, value) - end - end - - if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then - for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do - ExportScript.Tools.SendDataDAC(key, value) - end - for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do - ExportScript.Tools.SendDataDAC(key, value) - end - end + end +end + +function ExportScript.AF.FC_WeaponPanel_SU33(FunctionTyp) + local lFunctionTyp = FunctionTyp or "Ikarus" + + if ExportScript.AF.TmpWeaponPanelPresend == nil then + ExportScript.AF.TmpWeaponPanelPresend = {[101] = 0, [102] = 0, [103] = 0, [104] = 0, [105] = 0, [106] = 0, [107] = 0, [108] = 0, [109] = 0, [110] = 0} + end + + if ExportScript.AF.TmpWeaponPanelActive == nil then + ExportScript.AF.TmpWeaponPanelActive = {[201] = 0, [202] = 0, [203] = 0, [204] = 0, [205] = 0, [206] = 0, [207] = 0, [208] = 0, [209] = 0, [210] = 0} + end + + if ExportScript.AF.TmpWeaponPanel == nil then + ExportScript.AF.TmpWeaponPanel = {[231] = 0, [232] = 0, [233] = 0, [234] = 0, [235] = 0} + end + + if ExportScript.AF.EventNumberFC_WeaponPanel == nil then + ExportScript.AF.EventNumberFC_WeaponPanel = 0 + end + + if(ExportScript.AF.EventNumberFC_WeaponPanel < ExportScript.AF.EventNumber) then + ExportScript.AF.EventNumberFC_WeaponPanel = ExportScript.AF.EventNumber + + -- defination + ExportScript.AF.PayloadInfo = LoGetPayloadInfo() + if ExportScript.AF.PayloadInfo ~= nil then + if ExportScript.AF.CurrentStationTmp == nil then + ExportScript.AF.CurrentStationTmp = -1 + end + + if ExportScript.AF.PayloadInfo.CurrentStation > 0 and + ExportScript.AF.CurrentStationTmp ~= ExportScript.AF.PayloadInfo.CurrentStation then + ExportScript.AF.CurrentStationTmp = ExportScript.AF.PayloadInfo.CurrentStation + + ExportScript.AF.TmpStationToPanel = {} + --ExportScript.AF.TmpStationToPanel[1] = {Panel = 1, StationID = 101, CurrentID = 201 } -- L + --ExportScript.AF.TmpStationToPanel[2] = {Panel = 10, StationID = 110, CurrentID = 210 } -- L + ExportScript.AF.TmpStationToPanel[3] = {Panel = 10, StationID = 110, CurrentID = 210 } + ExportScript.AF.TmpStationToPanel[4] = {Panel = 1, StationID = 101, CurrentID = 201 } + ExportScript.AF.TmpStationToPanel[5] = {Panel = 2, StationID = 102, CurrentID = 202 } + ExportScript.AF.TmpStationToPanel[6] = {Panel = 9, StationID = 109, CurrentID = 209 } + ExportScript.AF.TmpStationToPanel[7] = {Panel = 3, StationID = 103, CurrentID = 203 } + ExportScript.AF.TmpStationToPanel[8] = {Panel = 8, StationID = 108, CurrentID = 208 } + ExportScript.AF.TmpStationToPanel[9] = {Panel = 4, StationID = 104, CurrentID = 204 } + ExportScript.AF.TmpStationToPanel[10] = {Panel = 7, StationID = 107, CurrentID = 207 } + ExportScript.AF.TmpStationToPanel[11] = {Panel = 6, StationID = 106, CurrentID = 206 } + ExportScript.AF.TmpStationToPanel[12] = {Panel = 5, StationID = 105, CurrentID = 205 } + + -- ExportScript.AF.TmpWeaponPanelActive reset + for i = 201, 210, 1 do + ExportScript.AF.TmpWeaponPanelActive[i] = 0 + end + + if ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation] ~= nil then + ExportScript.AF.TmpWeaponPanelActive[ExportScript.AF.TmpStationToPanel[ExportScript.AF.PayloadInfo.CurrentStation].CurrentID] = 1 -- currrent value + + table.foreach(ExportScript.AF.PayloadInfo.Stations, ExportScript.AF.WeaponStatusPanel_selectCurrentPayloadStation) -- corresponding station + end + end + + local lWeaponType = 0.0 -- transversely striped + if ExportScript.AF.PayloadInfo.CurrentStation > 0 then + if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level1 == 4 then + if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 4 then -- Weapon type Missle + lWeaponType = 0.1 -- MSL + elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 7 then -- Weapon type NURS with Container + if ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level3 == 33 then -- Weapon type Rocket + lWeaponType = 0.2 -- RCT + end + elseif ExportScript.AF.PayloadInfo.Stations[ExportScript.AF.PayloadInfo.CurrentStation].weapon.level2 == 5 then -- Weapon type Bomb + lWeaponType = 0.3 -- BB + end + end + end + + --[[ + Weapon Panel (Numper = Station number) + | + ------------------------------------------------------- + | | | | | | | | | | | | + L 1 2 3 4 5 6 7 8 9 10 R -- Panel ID + 1 4 5 7 9 12 11 10 8 6 3 2 -- gES_PayloadInfo.Station.ID + ]] + -- Payload Info + -- weapon stations L and R not on Panel + -- weapon station 1 (left) to 10 (right), 5 and 6 center station + + -- WeaponPresend1 {0, 1} + -- WeaponPresend2 {0, 1} + -- WeaponPresend3 {0, 1} + -- WeaponPresend4 {0, 1} + -- WeaponPresend5 {0, 1} + -- WeaponPresend6 {0, 1} + -- WeaponPresend7 {0, 1} + -- WeaponPresend8 {0, 1} + -- WeaponPresend9 {0, 1} + -- WeaponPresend10 {0, 1} + -- WeaponActive1 {0, 1} + -- WeaponActive2 {0, 1} + -- WeaponActive3 {0, 1} + -- WeaponActive4 {0, 1} + -- WeaponActive5 {0, 1} + -- WeaponActive6 {0, 1} + -- WeaponActive7 {0, 1} + -- WeaponActive8 {0, 1} + -- WeaponActive9 {0, 1} + -- WeaponActive10 {0, 1} + + --ExportScript.AF.TmpWeaponPanelPresend[] = (ExportScript.AF.PayloadInfo.Stations[1].count > 0 and 1 or 0) -- L + --ExportScript.AF.TmpWeaponPanelPresend[] = (ExportScript.AF.PayloadInfo.Stations[2].count > 0 and 1 or 0) -- R + ExportScript.AF.TmpWeaponPanelPresend[110] = (ExportScript.AF.PayloadInfo.Stations[3].count > 0 and 1 or 0) -- weapon presend panel 1 + ExportScript.AF.TmpWeaponPanelPresend[101] = (ExportScript.AF.PayloadInfo.Stations[4].count > 0 and 1 or 0) -- weapon presend panel 10 + ExportScript.AF.TmpWeaponPanelPresend[102] = (ExportScript.AF.PayloadInfo.Stations[5].count > 0 and 1 or 0) -- weapon presend panel 2 + ExportScript.AF.TmpWeaponPanelPresend[109] = (ExportScript.AF.PayloadInfo.Stations[6].count > 0 and 1 or 0) -- weapon presend panel 9 + ExportScript.AF.TmpWeaponPanelPresend[103] = (ExportScript.AF.PayloadInfo.Stations[7].count > 0 and 1 or 0) -- weapon presend panel 3 + ExportScript.AF.TmpWeaponPanelPresend[108] = (ExportScript.AF.PayloadInfo.Stations[8].count > 0 and 1 or 0) -- weapon presend panel 8 + ExportScript.AF.TmpWeaponPanelPresend[104] = (ExportScript.AF.PayloadInfo.Stations[9].count > 0 and 1 or 0) -- weapon presend panel 4 + ExportScript.AF.TmpWeaponPanelPresend[107] = (ExportScript.AF.PayloadInfo.Stations[10].count > 0 and 1 or 0) -- weapon presend panel 7 + ExportScript.AF.TmpWeaponPanelPresend[106] = (ExportScript.AF.PayloadInfo.Stations[11].count > 0 and 1 or 0) -- weapon presend panel 5 + ExportScript.AF.TmpWeaponPanelPresend[105] = (ExportScript.AF.PayloadInfo.Stations[12].count > 0 and 1 or 0) -- weapon presend panel 6 + --ExportScript.AF.TmpWeaponPanelActive[201] -- weapon active panel 1 + --ExportScript.AF.TmpWeaponPanelActive[202] -- weapon active panel 2 + --ExportScript.AF.TmpWeaponPanelActive[203] -- weapon active panel 3 + --ExportScript.AF.TmpWeaponPanelActive[204] -- weapon active panel 4 + --ExportScript.AF.TmpWeaponPanelActive[205] -- weapon active panel 5 + --ExportScript.AF.TmpWeaponPanelActive[206] -- weapon active panel 6 + --ExportScript.AF.TmpWeaponPanelActive[207] -- weapon active panel 7 + --ExportScript.AF.TmpWeaponPanelActive[208] -- weapon active panel 8 + --ExportScript.AF.TmpWeaponPanelActive[209] -- weapon active panel 9 + --ExportScript.AF.TmpWeaponPanelActive[210] -- weapon active panel 10 + end + end + + if ExportScript.Config.IkarusExport and lFunctionTyp == "Ikarus" then + for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do + ExportScript.Tools.SendData(key, value) + end + for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do + ExportScript.Tools.SendData(key, value) + end + end + + if ExportScript.Config.DACExport and lFunctionTyp == "DAC" then + for key, value in pairs(ExportScript.AF.TmpWeaponPanelPresend) do + ExportScript.Tools.SendDataDAC(key, value) + end + for key, value in pairs(ExportScript.AF.TmpWeaponPanelActive) do + ExportScript.Tools.SendDataDAC(key, value) + end + end end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/ExportsModules/T-45.lua b/Scripts/DCS-ExportScript/ExportsModules/T-45.lua new file mode 100644 index 00000000..2dc7981f --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/T-45.lua @@ -0,0 +1,242 @@ +-- T-45C Mod +-- ExportScript created by skypickle + +ExportScript.FoundDCSModule = true +ExportScript.Version.T45 = "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 + ]] +} +ExportScript.ConfigArguments = +{ + --[[ + arguments for export in low tick interval + based on "clickabledata.lua" + ]] + --Arg ID] = "%.2f", --Hints +[92] = "%.2f", --Control Aug Switch +[181] = "%.2f", --Hook Bypass +[165] = "%.2f", --Altimeter Setting Knob +[250] = "%.2f", --COMM 1 Frequency Tens +[251] = "%.2f", --COMM 1 Frequency Ones +[252] = "%.2f", --COMM 1 Frequency Tenths +[253] = "%.2f", --COMM 1 Frequency Hundredths +[254] = "%.2f", --COMM 1 AM/FM Mode Switch +[246] = "%.2f", --COMM 1 Volume +[256] = "%.2f", --COMM 1 Mode Control Selector +[255] = "%.2f", --COMM 1 Brightness +[196] = "%.2f", --MIC Switch +[198] = "%.2f", --Intercom Volume +[191] = "%.2f", --COMM 1 Switch +[192] = "%.2f", --COMM 2 Switch +[294] = "%.2f", --Microphone Button +[274] = "%.2f", --COMM 2 Frequency Tens +[275] = "%.2f", --COMM 2 Frequency Ones +[276] = "%.2f", --COMM 2 Frequency Tenths +[277] = "%.2f", --COMM 2 Frequency Hundredths +[278] = "%.2f", --COMM 2 AM/FM Mode Switch +[270] = "%.2f", --COMM 2 Volume +[280] = "%.2f", --COMM 2 Mode Control Selector +[279] = "%.2f", --COMM 2 Brightness +[201] = "%.2f", --1 +[202] = "%.2f", --2 +[203] = "%.2f", --3 +[204] = "%.2f", --4 +[205] = "%.2f", --5 +[206] = "%.2f", --6 +[207] = "%.2f", --7 +[208] = "%.2f", --8 +[209] = "%.2f", --9 +[200] = "%.2f", --0 +[211] = "%.2f", --Enter +[212] = "%.2f", --Clear +[210] = "%.2f", --Declutter +[214] = "%.2f", --Low Altitude Warning Set +[215] = "%.2f", --Course Set +[216] = "%.2f", --Heading Set +[217] = "%.2f", --Bingo Set +[218] = "%.2f", --Master Mode +[223] = "%.2f", --Mil Depression Increase +[224] = "%.2f", --Mil Depression Decrease +[8] = "%.2f", --Tail Hook Lever +[7] = "%.2f", --Flaps Lever +[67] = "%.2f", --Launch Bar Switch +[6] = "%.2f", --Landing Gear Lever +[10] = "%.2f", --Anti-Skid Switch +[183] = "%.2f", --Landing Gear Emergency Release Handle +[11] = "%.2f", --Engine Switch +[300] = "%.2f", --Battery 1 Switch +[301] = "%.2f", --Battery 2 Switch +[303] = "%.2f", --Generator Switch +[35] = "%.2f", --Gas Turbine Starter Button +[0] = "%.2f", --Finger Lift +[66] = "%.2f", --HYD 2 Reset Button +[180] = "%.2f", --Pitot Heat Switch +[184] = "%.2f", --EMER FLAPS Switch +[402] = "%.2f", --Anti-Collision/Strobe Lights +[404] = "%.2f", --Tail Lights +[405] = "%.2f", --Wing Lights +[406] = "%.2f", --Formation Lights +[401] = "%.2f", --Landing/Taxi Light +[403] = "%.2f", --Nav Lights +[452] = "%.2f", --Flood Lights Knob +[451] = "%.2f", --Console Lights Knob +[450] = "%.2f", --MIP Lights Knob +[400] = "%.2f", --Exterior Lights Master Switch +[117] = "%.2f", --Parking Brake Handle +[143] = "%.2f", --Master Alert Button - Push To Reset +[12] = "%.2f", --Rudder Trim Knob +[116] = "%.2f", --Canopy Handle +[455] = "%.2f", --Flood Lights Knob +[454] = "%.2f", --Console Lights Knob +[453] = "%.2f", --MIP Lights Knob +[265] = "%.2f", --Seat Arming Handle +[264] = "%.2f", --Ejection Handle - Pull To Eject +[219] = "%.2f", --HUD Power Knob +[221] = "%.2f", --HUD Brightness Knob +[424] = "%.2f", --MFD On Day +[425] = "%.2f", --MFD On Night +[426] = "%.2f", --MFD Off +[422] = "%.2f", --MFD Brightness Increase +[423] = "%.2f", --MFD Brightness Decrease +[15] = "%.2f", --Push Button 1 +[16] = "%.2f", --Push Button 2 +[17] = "%.2f", --Push Button 3 +[18] = "%.2f", --Push Button 4 +[19] = "%.2f", --Push Button 5 +[20] = "%.2f", --Push Button 6 +[21] = "%.2f", --Push Button 7 +[22] = "%.2f", --Push Button 8 +[23] = "%.2f", --Push Button 9 +[24] = "%.2f", --Push Button 10 +[25] = "%.2f", --Push Button 11 +[26] = "%.2f", --Push Button 12 +[27] = "%.2f", --Push Button 13 +[28] = "%.2f", --Push Button 14 +[29] = "%.2f", --Push Button 15 +[30] = "%.2f", --Push Button 16 +[31] = "%.2f", --Push Button 17 +[32] = "%.2f", --Push Button 18 +[33] = "%.2f", --Push Button 19 +[34] = "%.2f", --Push Button 20 +[434] = "%.2f", --MFD On Day +[435] = "%.2f", --MFD On Night +[436] = "%.2f", --MFD Off +[432] = "%.2f", --MFD Brightness Increase +[433] = "%.2f", --MFD Brightness Decrease +[40] = "%.2f", --Push Button 1 +[41] = "%.2f", --Push Button 2 +[42] = "%.2f", --Push Button 3 +[43] = "%.2f", --Push Button 4 +[44] = "%.2f", --Push Button 5 +[45] = "%.2f", --Push Button 6 +[46] = "%.2f", --Push Button 7 +[47] = "%.2f", --Push Button 8 +[48] = "%.2f", --Push Button 9 +[49] = "%.2f", --Push Button 10 +[50] = "%.2f", --Push Button 11 +[51] = "%.2f", --Push Button 12 +[52] = "%.2f", --Push Button 13 +[53] = "%.2f", --Push Button 14 +[54] = "%.2f", --Push Button 15 +[55] = "%.2f", --Push Button 16 +[56] = "%.2f", --Push Button 17 +[57] = "%.2f", --Push Button 18 +[58] = "%.2f", --Push Button 19 +[59] = "%.2f", --Push Button 20 +[245] = "%.2f", --TACAN Channel Selector Ones +[242] = "%.2f", --TACAN Channel Selector Tens +[241] = "%.2f", --TACAN Power Switch +[230] = "%.2f", --VOR/ILS 1MHz Frequency Knob +[232] = "%.2f", --VOR/ILS 50KHz Frequency Knob +[231] = "%.2f", --VOR/ILS Power Knob +[182] = "%.2f", --Emergency Jettison Button +[114] = "%.2f", --Master Arm +} +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +-- Pointed to by ProcessIkarusDCSHighImportance +----------------------------- + +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + --[[ + every frame export to Ikarus + Example from A-10C + Get Radio Frequencies + get data from device + local lUHFRadio = GetDevice(54) + ExportScript.Tools.SendData("ExportID", "Format") + ExportScript.Tools.SendData(2000, string.format("%7.3f", lUHFRadio:get_frequency()/1000000)) -- <- special function for get frequency data + ExportScript.Tools.SendData(2000, ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + --[[ + every frame export to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(54) + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) +]] +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +----------------------------------------------------- + + --------------- + -- Log Dumps -- + --------------- +--[[ + ExportScript.Tools.WriteToLog('list_cockpit_params(): '..ExportScript.Tools.dump(list_cockpit_params())) + local ltmp1 = 0 + for ltmp2 = 0, 20, 1 do + ltmp1 = list_indication(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + end + local ltmp1 = 0 + for ltmp2 = 1, 70, 1 do + ltmp1 = GetDevice(ltmp2) + ExportScript.Tools.WriteToLog(ltmp2..': '..ExportScript.Tools.dump(ltmp1)) + ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) + end +]] + + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + --[[ + export in low tick interval to DAC + Example from A-10C + Get Radio Frequencies + get data from device + local UHF_RADIO = GetDevice(3) - I dont really know how to set this up + ExportScript.Tools.SendDataDAC("ExportID", "Format") + ExportScript.Tools.SendDataDAC("ExportID", "Format", HardwareConfigID) + ExportScript.Tools.SendDataDAC("2000", string.format("%7.3f", UHF_RADIO:get_frequency()/1000000)) + ExportScript.Tools.SendDataDAC("2000", ExportScript.Tools.RoundFreqeuncy((UHF_RADIO:get_frequency()/1000000))) -- ExportScript.Tools.RoundFreqeuncy(frequency (MHz|KHz), format ("7.3"), PrefixZeros (false), LeastValue (0.025)) + ]] + + + local radio1 = (GetDevice(3):get_frequency())/1000000 --left radio freq unrounded + local radio2 = (GetDevice(4):get_frequency())/1000000 --right radio freq unrounded + + ExportScript.Tools.SendData(2001, radio1) + ExportScript.Tools.SendData(2002, radio2) +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/UH-1H.lua b/Scripts/DCS-ExportScript/ExportsModules/UH-1H.lua index a6644f71..48bcf5da 100644 --- a/Scripts/DCS-ExportScript/ExportsModules/UH-1H.lua +++ b/Scripts/DCS-ExportScript/ExportsModules/UH-1H.lua @@ -1,4 +1,9 @@ -- Uh-1H +-- https://github.com/asherao/DCS-ExportScripts + +local base = _G -- game information +local os = base.os -- time +local Terrain = require('terrain') -- map info ExportScript.FoundDCSModule = true ExportScript.Version.UH1H = "1.2.1" @@ -623,6 +628,22 @@ function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) end ExportScript.Tools.SendData(2007, string.format("%s", lADF_ARN83)) ]] + + ExportScript.UhfRadioPresets(mainPanelDevice) -- AN/ARC-164 UHF Preset List + ExportScript.CrewStatusRepeater(mainPanelDevice) -- Crew Status Window + ExportScript.RadioFreqs(mainPanelDevice) -- Radio Stack + --[[ + if LoIsObjectExportAllowed() then -- returns true if world objects data is available + if LoIsOwnshipExportAllowed() then -- returns true if ownship data is available + ExportScript.LoAircraftInfo(mainPanelDevice) -- Provides a lot of aircraft properties + ExportScript.AirportInfo(mainPanelDevice) -- Provides info on the two closest airports + ExportScript.WindsAloft(mainPanelDevice) -- Gets winds at the aircraft + ExportScript.GroundRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.AirRadar(mainPanelDevice) -- Reports 2 closest friendlies and 2 enemies (Use in Single Player) + ExportScript.IglaHunter(mainPanelDevice) -- Locates closest Igla (Use in Single Player) + end + end +]] end function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) @@ -904,4 +925,849 @@ function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) ExportScript.Tools.WriteToLog(ltmp2..' (metatable): '..ExportScript.Tools.dump(getmetatable(ltmp1))) end ]] -end \ No newline at end of file +end + +---------------------- +-- Custom functions -- +---------------------- +function ExportScript.CrewStatusRepeater(mainPanelDevice) -- Crew Status Window + + local crewStatusInfo = ExportScript.Tools.getListIndicatorValue(6) -- contains table of the status of the crew + + if crewStatusInfo.txt_mem0 ~= null then -- if there is a pilot entry + ExportScript.Tools.SendData(3000,'Pilot\n' .. crewStatusInfo.txt_status0 + .. '\nAmmo ' .. trim(crewStatusInfo.txt_ammo0) + .. '\nBurst ' .. trim(crewStatusInfo.txt_burst0)) + else + ExportScript.Tools.SendData(3000,'Pilot\n' .. '--\n'.. '--\n'.. '--') + end + + if crewStatusInfo.txt_mem1 ~= null then -- if there is a copilot entry + ExportScript.Tools.SendData(3001,'Co-pilot\nROE ' .. crewStatusInfo.txt_status1 + .. '\nAmmo ' .. trim(crewStatusInfo.txt_ammo1) + .. '\nBurst ' .. trim(crewStatusInfo.txt_burst1)) + else + ExportScript.Tools.SendData(3001,'Co-pilot\n' .. '--\n'.. '--\n'.. '--') + end + + if crewStatusInfo.txt_mem2 ~= null then -- if there is a LH Gunner entry + ExportScript.Tools.SendData(3002,'LH Gunner\nROE ' .. crewStatusInfo.txt_status2 + .. '\nAmmo ' .. trim(crewStatusInfo.txt_ammo2) + .. '\nBurst ' .. trim(crewStatusInfo.txt_burst2)) + else + ExportScript.Tools.SendData(3002,'LH Gunner\n' .. '--\n'.. '--\n'.. '--') + end + + if crewStatusInfo.txt_mem3 ~= null then -- if there is a RH Gunner entry + ExportScript.Tools.SendData(3003,'RH Gunner\nROE ' .. crewStatusInfo.txt_status3 + .. '\nAmmo ' .. trim(crewStatusInfo.txt_ammo3) + .. '\nBurst ' .. trim(crewStatusInfo.txt_burst3)) + else + ExportScript.Tools.SendData(3003,'RH Gunner\n' .. '--\n'.. '--\n'.. '--') + end +end + +function ExportScript.UhfRadioPresets(mainPanelDevice) -- AN/ARC-164 UHF Preset List + + local UhfPresetReadout = ExportScript.Tools.getListIndicatorValue(7) -- uhf radio presets + + local UhfCh1 = UhfPresetReadout.SheetTable_Channel1 + local UhfCh2 = UhfPresetReadout.SheetTable_Channel2 + local UhfCh3 = UhfPresetReadout.SheetTable_Channel3 + local UhfCh4 = UhfPresetReadout.SheetTable_Channel4 + local UhfCh5= UhfPresetReadout.SheetTable_Channel5 + local UhfCh6 = UhfPresetReadout.SheetTable_Channel6 + local UhfCh7 = UhfPresetReadout.SheetTable_Channel7 + local UhfCh8 = UhfPresetReadout.SheetTable_Channel8 + local UhfCh9 = UhfPresetReadout.SheetTable_Channel9 + local UhfCh10 = UhfPresetReadout.SheetTable_Channel10 + local UhfCh11 = UhfPresetReadout.SheetTable_Channel11 + local UhfCh12 = UhfPresetReadout.SheetTable_Channel12 + local UhfCh13 = UhfPresetReadout.SheetTable_Channel13 + local UhfCh14 = UhfPresetReadout.SheetTable_Channel14 + local UhfCh15 = UhfPresetReadout.SheetTable_Channel15 + local UhfCh16 = UhfPresetReadout.SheetTable_Channel16 + local UhfCh17 = UhfPresetReadout.SheetTable_Channel17 + local UhfCh18 = UhfPresetReadout.SheetTable_Channel18 + local UhfCh19 = UhfPresetReadout.SheetTable_Channel19 + local UhfCh20 = UhfPresetReadout.SheetTable_Channel20 + + + ExportScript.Tools.SendData(3016, "UHF 1-4" + .. "\n" .. UhfCh1 + .. "\n" .. UhfCh2 + .. "\n" .. UhfCh3 + .. "\n" .. UhfCh4 + ) + + ExportScript.Tools.SendData(3017, "UHF 5-8" + .. "\n" .. UhfCh5 + .. "\n" .. UhfCh6 + .. "\n" .. UhfCh7 + .. "\n" .. UhfCh8 + ) + + + ExportScript.Tools.SendData(3018, "UHF 9-12" + .. "\n" .. UhfCh9 + .. "\n" .. UhfCh10 + .. "\n" .. UhfCh11 + .. "\n" .. UhfCh12 + ) + + ExportScript.Tools.SendData(3019, "UHF 13-16" + .. "\n" .. UhfCh13 + .. "\n" .. UhfCh14 + .. "\n" .. UhfCh15 + .. "\n" .. UhfCh16 + ) + + ExportScript.Tools.SendData(3020, "UHF 16-20" + .. "\n" .. UhfCh17 + .. "\n" .. UhfCh18 + .. "\n" .. UhfCh19 + .. "\n" .. UhfCh20 + ) + +end + +function ExportScript.RadioFreqs(mainPanelDevice) -- TODO: More radios + local radoioVhf = ExportScript.Tools.RoundFreqeuncy(GetDevice(20):get_frequency()/1000000) -- "116.000" + local radioUhf = ExportScript.Tools.RoundFreqeuncy(GetDevice(22):get_frequency()/1000000) -- "251.000" + local radioHf = ExportScript.Tools.RoundFreqeuncy(GetDevice(23):get_frequency()/1000000) -- " 30.000" + + ExportScript.Tools.SendData(3010, "VHF\n" .. radoioVhf .. ' MHz') + ExportScript.Tools.SendData(3011, "UHF\n" .. radioUhf .. ' MHz') + ExportScript.Tools.SendData(3012, "HF\n" .. radioHf .. ' MHz') + ExportScript.Tools.SendData(3013, "Radio Stack\n" .. radoioVhf .. ' MHz\n' + .. radioUhf .. ' MHz\n' .. radioHf .. ' MHz') +end + +function ExportScript.LoAircraftInfo(mainPanelDevice) + + -- General + local aircraftName = LoGetSelfData().Name -- DCS Name of the aircraft eg "F-5E-3" + local pilotName = LoGetPilotName() -- Logbook Pilot name + + -- Times DCS times are default in seconds + local dcsModelTime = LoGetModelTime() -- time since aircraft spawn + local missionStartTime = LoGetMissionStartTime() -- second after midnight that the mission started + local dcsTimeLocal = formatTime(LoGetMissionStartTime() + LoGetModelTime()) -- up-to-date time in dcs + local utcOffset = -1 * Terrain.GetTerrainConfig('SummerTimeDelta') * 3600 -- eg -1 * 4 * 3600 (for seconds to get hours) + local dcsTimeUtc = formatTime(dcsModelTime + LoGetMissionStartTime() + utcOffset) -- dcs zulu time + local realTimeLocal = os.date("%H-%M-%S") -- real life time + local realTimeUtc = os.date("!%H-%M-%S") -- real life zulu time + --local playTime = formatTime(DCS.getRealTime()) -- does not work, export environment no access + + -- Player Aircraft Properties + local altMsl_meters = LoGetAltitudeAboveSeaLevel() + local altMsl_feet = meters2feet(altMsl_meters) + local altAgl_meters = LoGetAltitudeAboveGroundLevel() + local altAgl_feet = meters2feet(altAgl_meters) + + local verticalVelocity_metric = LoGetVerticalVelocity() + local verticalVelocity_imperial = metersPerSecond2feetPerMinute(LoGetVerticalVelocity()) + + local ias_metric = LoGetIndicatedAirSpeed() + local ias_knots = metersPerSecond2knots(LoGetIndicatedAirSpeed()) + local ias_mph = metersPerSecond2milesPerHour(LoGetIndicatedAirSpeed()) + + local tas_metric = LoGetTrueAirSpeed() + local tas_knots = metersPerSecond2knots(LoGetTrueAirSpeed()) + local tas_mph = metersPerSecond2milesPerHour(LoGetTrueAirSpeed()) + + local speed_mach = LoGetMachNumber() + local accel_g = LoGetAccelerationUnits().y + local aoa = LoGetAngleOfAttack() + + --local atmosphericPressure_mmhg = LoGetBasicAtmospherePressure() -- does not seem to work + + local aircraftPitch, aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftPitch = aircraftPitch * 57.3 + aircraftBank = aircraftBank * 57.3 + aircraftYawTrue = aircraftYawTrue * 57.3 -- true heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 -- magnetic heading + local aircraftHeading = aircraftYawMagnetic -- this cound be negative + if aircraftHeading < 0 then aircraftHeading = aircraftHeading + 360 end -- removes the negative + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic -- works for all maps + + local selfData = LoGetSelfData() -- relative the the player + local lLatitude = selfData.LatLongAlt.Lat + local lLongitude = selfData.LatLongAlt.Long + local mgrs = Terrain.GetMGRScoordinates(LoGetSelfData().Position.x, LoGetSelfData().Position.z) + local mgrsTable = mgrsTableize(mgrs) -- format is mgrsTable[1][1], mgrsTable[1][2], mgrsTable[1][3], mgrsTable[1][4] + + local aircraftHeadingTrue = selfData.Heading * 57.3 -- true yeading (same as trueYaw for fixed wing aircraft) + + -- Engine Info + local engineInfo = LoGetEngineInfo() + local lEngineRPMleft = engineInfo.RPM.left -- ENG1 RPM % + local lEngineRPMright = engineInfo.RPM.right -- ENG2 RPM % + local lEngineFuelInternal = engineInfo.fuel_internal -- 1 = full. 0 = empty. Includes external tanks for FF aircraft + local lEngineFuelExternal = engineInfo.fuel_external -- TANK2 (EXT) (KG) -- does not seem to work for FF modules + local lEngineFuelTotal = lEngineFuelInternal + lEngineFuelExternal + local lEngineTempLeft = engineInfo.Temperature.left -- ENG1 EGT ºC. May get odd numbers + local lEngineTempRight = engineInfo.Temperature.right -- ENG2 EGT ºC. May get odd numbers + + local lFuelConsumptionLeft = engineInfo.FuelConsumption.left -- {left ,right},kg per sec + local lFuelConsumptionRight = engineInfo.FuelConsumption.right -- {left ,right},kg per sec + local lFuelConsumptionTotal = lFuelConsumptionLeft + lFuelConsumptionRight -- total,kg per sec + local lHydraulicPressureLeft = engineInfo.HydraulicPressure.left -- {left ,right},kg per square centimeter + local lHydraulicPressureRight = engineInfo.HydraulicPressure.right -- {left ,right},kg per square centimeter + + ExportScript.Tools.SendData(8000, aircraftName) + + ExportScript.Tools.SendData(8001, pilotName) + + ExportScript.Tools.SendData(8002, 'Real Time\n'.. realTimeLocal .. '\nDCS Time\n' .. dcsTimeLocal) -- clocks + + ExportScript.Tools.SendData(8003, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_knots,0) .. ' kts' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western) + + ExportScript.Tools.SendData(8004, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_meters,-1)) .. ' m' + .. '\nIAS ' .. round(ias_metric,0) .. ' km/h' + .. '\nV/S ' .. format_int(round(verticalVelocity_metric,0)) .. ' m/s' + ) -- Aircraft Instrument panel (eastern) + + ExportScript.Tools.SendData(8005, 'HDG ' .. prefixZerosFixedLength(round(aircraftHeading,0),3) .. 'º' + .. '\nALT ' .. format_int(round(altMsl_feet,-1)) .. ' ft' + .. '\nIAS ' .. round(ias_mph,0) .. ' mph' + .. '\nV/S ' .. format_int(round(verticalVelocity_imperial,-2)) .. ' ft/min' + ) -- Aircraft Instrument panel (western ww2) + + ExportScript.Tools.SendData(8006, "Lat-Long-DMS\n" .. formatCoord("DMS",true, lLatitude) + .. "\n" .. formatCoord("DMS",false, lLongitude) + ) -- Player coordinates in DMS + + ExportScript.Tools.SendData(8007, "Lat-Long-DDM\n" .. formatCoord("DDM",true, lLatitude) + .. "\n" .. formatCoord("DDM",false, lLongitude) + ) -- Player coordinates in DDM + + ExportScript.Tools.SendData(8008, 'MGRS\n'.. mgrsTable[1][1] .. ' ' .. mgrsTable[1][2] + .. '\n' .. mgrsTable[1][3] .. ' ' .. mgrsTable[1][4] + ) -- Player coordinates in MGRS on 2 rows + title + + ExportScript.Tools.SendData(8009, 'Mag Var\n' .. format_int(round(magneticVariance, 2))) -- also called magnetic deviation + + -- Example for using the Lo Data. Feel free to make your own! + ExportScript.Tools.SendData(8010, format_int(round(kgPerSecond2poundPerHour(lFuelConsumptionLeft), -1))) -- fuel use in pph + +end +function ExportScript.AirportInfo(mainPanelDevice) + + local airdromes = LoGetWorldObjects("airdromes") -- returns a list of runways and their popperties + local airportInfo = {} -- contains generated table of important properties + -- the table will be sorted by nearest airport first + -- for this table: + -- airportInfo[1] is the first element + -- airportInfo[1][1] is the airport name of the first element/airport + -- airportInfo[1][2] is the distance to the airport of the first element/airport + -- airportInfo[1][3] is the bearing to the airport of the first element/airport + -- airportInfo[1][4] is the extimated time en route + -- airportInfo[1][5] is the direction of the wind + -- airportInfo[1][6] is the windStrength of the wind + -- airportInfo[1][7] is the main runway heading + -- airportInfo[1][8] is the reverse of the main runway + -- airportInfo[1][9] is the prefered runway based on winds + + for key,value in pairs(airdromes) do + + -- remove the woRunWay entries so that only named runways are in the list + if value.Name ~= 'woRunWay' then + + -- get the distance from the player to the runway + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + -- get the direction from the player to the runway + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + -- estimate the runway heading based on the reported values + local runwayHeading = round(value.Heading * 57.3,-1) / 10 + if runwayHeading < 0 then + runwayHeading = 36 + runwayHeading + end + -- Reverse it for the reciprocal runway + local runwayHeadingReciprocal + if runwayHeading > 18 then + runwayHeadingReciprocal = runwayHeading-18 + else + runwayHeadingReciprocal = runwayHeading+18 + end + + local ete = distance / metersPerSecond2knots(LoGetTrueAirSpeed()) * (60 * 60) --based on tas bc dcs is flat... + -- if ete is more than 24hrs, make it 24 hrs, which shows up as 00-00-00 + -- this case is for choppers and aircraft that arent moving + if ete > 86400 then ete = 86400 end + ete = formatTime(ete) + + -- wind at airport calculations. Each airport has slighty different winds + -- https://forum.dcs.world/topic/165136-logetwindatpoint-in-exportlua/#comment-3294428 + -- LoGetWindAtPoint(x,y,z,is_radio_alt), 2 meters off the ground for the "wind sensor" + local vx,_vy,vz,_absolute_height = LoGetWindAtPoint(value.Position.x,2,value.Position.y,true) + local windDirectionInRadians = math.atan2(vz,vx) + local windDirection = windDirectionInRadians * 57.3 + local windStrength = math.sqrt((vx)^2 + (vz)^2) + if windDirection < 0 then + windDirection = 360 + windDirection + end + -- Convert to direction to from direction + if windDirection > 180 then + windDirection = windDirection - 180 + else + windDirection = windDirection + 180 + end + + -- Calculate the prefered runway for landing + -- if the rounded runway is within +- 9 of the rounded wind, then it is prefered + local windRounded = round(windDirection, -1) + if windRounded >= runwayHeading - 9 and windRounded <= runwayHeading + 9 then + runwayHeadingPrefered = runwayHeading + else + runwayHeadingPrefered = runwayHeadingReciprocal + end + + -- Populate the table with the important info for each airport + table.insert(airportInfo, -- the table name + {value.Name, -- airport name [1] + distance, bearing, ete, --[2][3][4] + windDirection,windStrength, --wind direction [5], wind Strength [6] + runwayHeading, runwayHeadingReciprocal,runwayHeadingPrefered}) -- [7][8][9] + + end -- end of woRunWay + end -- end of FOR loop + + -- sort the table based on the second value, which is distance + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + table.sort(airportInfo, function(a,b) return a[2] < b[2] end) + + -- Primary Airport (closest) + ExportScript.Tools.SendData(8101, airportInfo[1][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[1][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[1][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[1][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[1][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[1][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[1][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[1][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[1][9],2) .. ')') -- prefered runway based on wind in parens + + -- Secondary Airport (second closest) + ExportScript.Tools.SendData(8102, airportInfo[2][1] .. '\n' -- name of airport + --[[.. 'BRG ']] .. format_int(addZeros3(round(airportInfo[2][3],0))) .. 'º ' -- bearing + --[[.. 'DIST ']] .. format_int(round(airportInfo[2][2], 0)) .. 'nm\n' -- distance + .. 'ETE ' .. airportInfo[2][4] .. '\n' -- estimated time in route + .. '' .. prefixZerosFixedLength(round(airportInfo[2][5], 0),3) .. 'º ' -- wind bearing + .. round(metersPerSecond2knots(airportInfo[2][6]),0) .. 'kts' -- wing strength + .. '\n' .. prefixZerosFixedLength(airportInfo[2][7],2) -- runway 1 + .. '-' .. prefixZerosFixedLength(airportInfo[2][8],2) -- runway 2 + .. ' (' .. prefixZerosFixedLength(airportInfo[2][9],2) .. ')') -- prefered runway based on wind in parens +end + +function ExportScript.WindsAloft(mainPanelDevice) + + -- Winds relative to the aircraft, aka, winds aloft + local windAloft = LoGetVectorWindVelocity() + local windStrengthAloft = math.sqrt((windAloft.x)^2 + (windAloft.z)^2) + local windDirectionAloft = math.deg(math.atan2(windAloft.z, windAloft.x)) + if windDirectionAloft < 0 then + windDirectionAloft = 360 + windDirectionAloft + end + + -- Convert to direction to from direction + if windDirectionAloft > 180 then + windDirectionAloft = windDirectionAloft - 180 + else + windDirectionAloft = windDirectionAloft + 180 + end + + ExportScript.Tools.SendData(8100, 'Wind Aloft\n' .. addZeros3(round(windDirectionAloft,0)) .. 'º ' + .. round(metersPerSecond2knots(windStrengthAloft,0)) .. 'kts' + ) -- winds at the aircraft +end +function ExportScript.GroundRadar(mainPanelDevice) -- may return some odd things + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfGround = {} + -- relative to the player... + local tableOfGround_friendly = {} + local tableOfGround_friendlyReports = {} + local tableOfGround_enemy = {} + local tableOfGround_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 2 then + table.insert(tableOfGround, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfGround) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfGround_friendly, value) + else + table.insert(tableOfGround_enemy, value) + end + end + + -- TODO: only do enemy reports if there is an awacs unit(?) + for key,value in pairs(tableOfGround_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + end + table.sort(tableOfGround_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfGround_friendly) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfGround_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfGround_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8200 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[1] ~= nill then + string_8200 = 'Enemy Ground\n' .. tableOfGround_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8201 = 'No Ground\nEnemy\nDetected' + if tableOfGround_enemyReports[2] ~= nill then + string_8201 = 'Enemy Ground\n'.. tableOfGround_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8202 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[1] ~= nill then + string_8202 = 'Friend Ground\n' .. tableOfGround_friendlyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[1][2],0) .. 'nm'--distance + end + + local string_8203 = 'No Ground\nFriend\nDetected' + if tableOfGround_friendlyReports[2] ~= nill then + string_8203 = 'Friend Ground\n' .. tableOfGround_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfGround_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfGround_friendlyReports[2][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8200, string_8200) + ExportScript.Tools.SendData(8201, string_8201) + ExportScript.Tools.SendData(8202, string_8202) + ExportScript.Tools.SendData(8203, string_8203) +end + +function ExportScript.AirRadar(mainPanelDevice) + + local tableOfUnits = LoGetWorldObjects('units') + + local tableOfAircraft = {} + -- relative to the player... + local tableOfAircraft_friendly = {} + local tableOfAircraft_friendlyReports = {} + local tableOfAircraft_enemy = {} + local tableOfAircraft_enemyReports = {} + + for key,value in pairs(tableOfUnits) do + if value.Type.level1 == 1 then + table.insert(tableOfAircraft, value) + end + end + + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + for key,value in pairs(tableOfAircraft) do + if value.CoalitionID == selfCoalitionID then + table.insert(tableOfAircraft_friendly, value) + else + table.insert(tableOfAircraft_enemy, value) + end + end + + -- TODO: only do enemy reports if there is a awacs unit + for key,value in pairs(tableOfAircraft_enemy) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_enemyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + -- https://stackoverflow.com/questions/51276613/how-to-sort-table-by-value-and-then-print-index-in-order + -- https://www.tutorialspoint.com/sort-function-in-lua-programming + + end + table.sort(tableOfAircraft_enemyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + + for key,value in pairs(tableOfAircraft_friendly) do -- [1] will always be the player + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfAircraft_friendlyReports, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + + end + table.sort(tableOfAircraft_friendlyReports, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8210 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[1] ~= nill then + string_8210 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[1][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[1][2],0) .. 'nm'--distance + end + + local string_8211 = 'No Air\nEnemy\nDetected' + if tableOfAircraft_enemyReports[2] ~= nill then + string_8211 = 'Enemy Air\n' .. tableOfAircraft_enemyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_enemyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_enemyReports[2][2],0) .. 'nm'--distance + end + + local string_8212 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[2] ~= nill then + string_8212 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[2][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[2][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[2][2],0) .. 'nm'--distance + end + + local string_8213 = 'No Air\nFriend\nDetected' + if tableOfAircraft_friendlyReports[3] ~= nill then + string_8213 = 'Friend Air\n' .. tableOfAircraft_friendlyReports[3][1] + .. '\n ' .. prefixZerosFixedLength(tableOfAircraft_friendlyReports[3][3],3) -- bearing + .. 'º ' .. round(tableOfAircraft_friendlyReports[3][2],0) .. 'nm'--distance + end + + ExportScript.Tools.SendData(8210,string_8210) + ExportScript.Tools.SendData(8211, string_8211) + ExportScript.Tools.SendData(8212, string_8212) + ExportScript.Tools.SendData(8213, string_8213) +end + +function ExportScript.IglaHunter(mainPanelDevice) -- Locates the nearest Igla + + local tableOfUnits = LoGetWorldObjects('units') + local selfData = LoGetSelfData() + local selfCoalitionID = selfData.CoalitionID + + local tableOfIgla = {} + local tableOfIgla_report = {} + + --TODO: Might have to refine this. + for key,value in pairs(tableOfUnits) do + if value.CoalitionID ~= selfCoalitionID then + if value.Type.level3 == 27 then + if value.Type.level2 == 16 then + if value.Type.level1 == 2 then + if value.Type.level4 == 55 or 54 or 53 or 52 or 62 then + table.insert(tableOfIgla, value) + end + end + end + end + end + end + + --if tableOfIgla ~= null then + for key,value in pairs(tableOfIgla) do + local distance = getdistance(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, "nm") + + local bearing = getBearing(LoGetSelfData().LatLongAlt.Lat, + value.LatLongAlt.Lat, + LoGetSelfData().LatLongAlt.Long, + value.LatLongAlt.Long, true) + + table.insert(tableOfIgla_report, -- the table name + {value.Name, distance, bearing}) --[1][2][3] + --end + end + table.sort(tableOfIgla_report, function(a,b) return a[2] < b[2] end) -- sort based on the second value, which is distance + + local string_8666 = 'Igla Hunter\nSearching...' + if tableOfIgla_report[1] ~= nill then + string_8666 = 'Igla Detected\n' .. tableOfIgla_report[1][1] + .. '\n ' .. prefixZerosFixedLength(tableOfIgla_report[1][3],3) -- bearing + .. 'º ' .. round(tableOfIgla_report[1][2],0) .. ' nm'--distance + end + + ExportScript.Tools.SendData(8666, string_8666) + +end + +---------------------- +-- Helper Functions -- +---------------------- +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 trim(s) --http://lua-users.org/wiki/CommonFunctions + -- from PiL2 20.4 + return (s:gsub("^%s*(.-)%s*$", "%1")) +end +function formatTime(time) + local seconds = math.floor(time) % 60 + local minutes = math.floor(time / 60) % 60 + local hours = math.floor(time / (60 * 60)) % 24 + return string.format("%02d", hours) .. "-" .. string.format("%02d", minutes) .. "-" .. string.format("%02d", seconds) +end + +function meters2feet(meters) + local feet = meters * 3.281 + return feet +end + +function feet2meters(feet) + local meters = feet / 3.281 + return feet +end + +function metersPerSecond2milesPerHour(metersPerSecond) + local milesPerHour = metersPerSecond * 2.237 + return milesPerHour +end + +function metersPerSecond2knots(metersPerSecond) + local knots = metersPerSecond * 1.944 + return knots +end + +function kgPerSecond2poundPerHour(kgPerSecond) + poundPerHour = kgPerSecond * 7937 + return poundPerHour +end + +function metersPerSecond2feetPerMinute(metersPerSecond) + local feetPerMinute = metersPerSecond * 197 + return feetPerMinute +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 formatCoord(type, isLat, d) + local h + if isLat then + if d < 0 then + h = 'S' + d = -d + else + h = 'N' + end + else + if d < 0 then + h = 'W' + d = -d + else + h = 'E' + end + end + + local g = math.floor(d) + local m = math.floor(d * 60 - g * 60) + local s = d * 3600 - g * 3600 - m * 60 + + if type == "DMS" then -- Degree Minutes Seconds + s = math.floor(s * 100) / 100 + return string.format('%s %2d°%.2d\'%05.2f"', h, g, m, s) + elseif type == "DDM" then -- Degree Decimal Minutes + s = math.floor(s / 60 * 1000) + return string.format('%s %2d°%02d.%3.3d\'', h, g, m, s) + else -- Decimal Degrees + return string.format('%f',d) + end +end + +function getdistance(lat1,lat2,lon1,lon2,unit) -- https://www.geeksforgeeks.org/program-distance-two-points-earth/ + --Example Locations + --lat1 = 42.1578 -- POTI + --lat2 = 42.3269 -- HONI + --lon1 = 41.6777 + --lon2 = 42.4122 + + local lon1 = toRadians(lon1) + local lon2 = toRadians(lon2) + local lat1 = toRadians(lat1) + local lat2 = toRadians(lat2) + + -- Haversine formula + local dlon = lon2 - lon1 + local dlat = lat2 - lat1 + local a = math.pow(math.sin(dlat / 2), 2) + + math.cos(lat1) * math.cos(lat2) * + math.pow(math.sin(dlon / 2),2) + + local c = 2 * math.asin(math.sqrt(a)) + + local r -- Radius of earth in X. + if unit == 'nm' then + r = 6371 / 1.852 -- times 1.852 because I could not find a good NM source + elseif unit == 'km' then + r = 6371 -- Use 6371 for kilometers + elseif unit == 'miles' then + r = 3956 -- Use 3956 for miles + elseif unit == 'meters' then + r = 6371 * 1000 + end + + -- calculate the result + return (c * r) +end + +function toRadians(angleIn10thofaDegree) + return (angleIn10thofaDegree * math.pi) / 180 +end + + +function getBearing(lat1,lat2,lon1,lon2, magnetic) + local bearing_rad = math.atan2(lon2 - lon1, lat2 - lat1) + if bearing_rad < 0 then + bearing_rad = bearing_rad + (2 * math.pi) + end + + bearing = math.deg(bearing_rad) + + -- start calculation for getting the magnetic bar + local _aircraftPitch, _aircraftBank, aircraftYawTrue = LoGetADIPitchBankYaw() + aircraftYawTrue = aircraftYawTrue * 57.3 -- actually heading + local aircraftYawMagnetic = LoGetMagneticYaw() * 57.3 + local magneticVariance = aircraftYawTrue - aircraftYawMagnetic + + if magnetic == true then + bearing = bearing - magneticVariance + end + + -- correction for bearings less than 0 due to the calculation above + if bearing < 0 then + bearing = bearing + 360 + end + + return bearing +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 + +function prefixZerosFixedLength(number, digitLength) -- prefixZerosFixedLength(99, 3) --> 099 + number = string.format("%.1d" , number) -- make the number a string + local zerosToAdd = digitLength - #number + s = '' + for i = 1, zerosToAdd do + s = s .. 0 + end + return s .. number +end + +function mgrsTableize(mgrsString) + -- Reference: https://upload.wikimedia.org/wikipedia/commons/b/b7/Universal_Transverse_Mercator_zones.svg + -- example: 38 T LM 12345 54321 + -- (\d+\s\w)\s(\w+)\s(.+)\s(.+) --c# version of regex + -- UTMZone = string, + -- MGRSDigraph = string, + -- Easting = number, + -- Northing = number + local UTMZone , MGRSDigraph, Easting, Northing = mgrsString:match('(%d+%s%w)%s(%w+)%s(.+)%s(.+)') + local mgrsTbl = {} + table.insert(mgrsTbl, {UTMZone,MGRSDigraph,Easting,Northing}) + return mgrsTbl +end + +function isNilOrEmpty(value) + if value == "" or value == nil then + return true + else + return false + end +end + +function NilOrEmpty(value) + if value == "" then + return 'empty' + elseif value == nil then + return 'empty' + else + return value + end +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/UH-60L.lua b/Scripts/DCS-ExportScript/ExportsModules/UH-60L.lua new file mode 100644 index 00000000..47b734df --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/UH-60L.lua @@ -0,0 +1,2011 @@ +-- 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 + + diff --git a/Scripts/DCS-ExportScript/ExportsModules/_F-14B_Demo.lua b/Scripts/DCS-ExportScript/ExportsModules/_F-14B_Demo.lua new file mode 100644 index 00000000..bdc2ee64 --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/_F-14B_Demo.lua @@ -0,0 +1,39 @@ +-- F-14B Export +-- Feel free to use, modify and repost in any way you desire. + +ExportScript.FoundDCSModule = true +ExportScript.Version.F14B = "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 + ]] + + [1011] = "%1d", -- HUD LDG Mode + [1012] = "%1d", -- HUD CRUISE Mode + [1013] = "%1d", -- HUD A/A Mode + [1014] = "%1d", -- HUD A/G Mode + [1015] = "%1d", -- HUD Takeoff Mode +} + +ExportScript.ConfigArguments = +{ + +} + +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) +end +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) +end +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) +end +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) +end diff --git a/Scripts/DCS-ExportScript/ExportsModules/_F-14B_nosaMtrevoC.lua b/Scripts/DCS-ExportScript/ExportsModules/_F-14B_nosaMtrevoC.lua new file mode 100644 index 00000000..4b148fef --- /dev/null +++ b/Scripts/DCS-ExportScript/ExportsModules/_F-14B_nosaMtrevoC.lua @@ -0,0 +1,1357 @@ +--[[ + ,d ,d + 88 88 +MM88MMM ,adPPYba, 88,dPYba,,adPYba, ,adPPYba, ,adPPYYba, MM88MMM + 88 a8" "8a 88P' "88" "8a a8" "" "" `Y8 88 + 88 8b d8 88 88 88 8b ,adPPPPP88 88 + 88, "8a, ,a8" 88 88 88 "8a, ,aa 88, ,88 88, + "Y888 `"YbbdP"' 88 88 88 `"Ybbd8"' `"8bbdP"Y8 "Y888 F-14B Tomcat Export Script DCS World +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ version: 0.11 █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Created by: nosaMtrevoC of ED Forums (dt1) + +If you find any errors/ommissions or have any questions in general and for updates, please see this thread on ED Forums: +https://forums.eagle.ru/showthread.php?p=4387597#post4387597 + +For use with DCS-ExportScripts plugin https://github.com/charlestytler/streamdeck-dcs-interface (Awesome work) +Special ID's for ctytler's Stream Deck plugin (requires ExportScripts) at https://github.com/charlestytler/streamdeck-dcs-interface (Also Awesome) + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ ŦЋānk Ȳōū █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Thanks GunSlingerAUS & Phoenix FR of ED Forums for providing me with the F-14 Module to make this possible, it was a nice jester (sic). + +Testers (if you would like to help make this better, please see: https://forums.eagle.ru/showthread.php?p=4387597#post4387597 for more info) + +[TESTER]____________________ [Description]_________________________________________________________________________________________________________ +Arbil Approach Indexer Lights, ACM Panel gauges and lights for full ACM +Chacal IX ACM Panel Testing + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Changelog █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Version 0.11 - Matched most of the missing ID's, fixed error in ACM Panel (Chacal IX) +Version 0.10 - Matched many more ID's (not tested) for panels: A6b/A6c/A7, Created All Graphic Icons for panel A6a ACM Panel, App. Indexer Icons + Custom Station Weap. Flags output for ACM, ACM Switch, Master Arm Switch, Gun Rate Code, code for SW Cool/MSL Prep/MODE stp switch + testing ACM Panel items on Stream deck and creating profiles, Triple Indicator code and icons, Master Caution Button/Light, + L & R Fire Lights, Slip/Ball Indicator Gauge, fill icons for stream deck, testing, A6a ACM Panel completed w/StmDeck Prof. & Icons +Version 0.09 - Created 298 conifg Arguments and documentation for all pilot panels Left: A1a/A1b/A2/A4/A5/A6a/A6b/A6c/A6d/A7/A8/A10/A11a/A11b/12 + Formatting, Matched most DCS ID's (not tested) for panels: A1a/A1b/A2/A6a +Version 0.08 - Formatting, Arresting Hook handle/emerg.Handle/Light, Gun Ammun. Counter knob, gun rounds counter +Version 0.07 - Create tape function for vertical tape displays, created engine RPM Tape and BG Icon, EIG Eng. Temp on A3, EIG Fuel Flow on A3 +Version 0.06 - 2 Hydraulic Press. Gauges on A3 (51023 & 51063), added Engine Nozzle Tape A3, engine oil press. gauge +Version 0.05 - Formatting, Added Bingo Knob, Accelerometer Reset, Clock Wind, Clock Start/Stop/Reset, fixed error in Timer, A9 Panel Complete +Version 0.04 - More formatting, added Aft&L/Fwd&R fuselage fuel info, added Accelerometer gauge, added clock and timer gauge, Added Cockpit Refs. +Version 0.03 - Organization of Cockpit and RIO areas in this file for organizational purposes (ease of use) +Version 0.02 - Added formatted fuel output for location A9 +Version 0.01 - Initial Layout and formatting of .lua file along with organization outside this file of all functions ID's calls etc.. + +[Currently working on]_____________________________________________________________________________________________________________________________ +Pilot Cockpit config arguments + +[To-Do] +Fuel Warning indicators (example low fuel / Bingo fuel) for multi-gauge and fuel gauges +Background images for EIG TIT and FF tapes +Problem with Title string not showing in ExportScript.dualTapeString() +Installation instructions + VS Code + copy .lua to proper directory + load and test script (with special id for testing) + how-to display a stream deck gauge (custom id) background image in folder and font size + how to setup a button or switch for a panel + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Formatted for Stream Deck █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +Extra ID's created for nice formatted output on Stream Deck See ID Guide Below: + +[ID]______ [Ref]__ [Description]__________________________ [Status]_______ [Output e.g.]___________________________________________________________ + +51057 A3 EIG - Engine RPM L & R tape working NOTE: need "F-14B_A3_RPM.png" included as background (shows vert. tape) +51059 A3 EIG - Engine Exhaust Temperature working NOTE: need "F-14B_A3_TIT.png" included as background (shows vert. tape) +51061 A3 EIG - Fuel flow tape working NOTE: need "F-14B_A3_FF.png" included as background (shows vert. tape) +51023 A3 Hydraulic Pressure Gauge and Flags 1 working +51063 A3 Hydraulic Pressure Gauge and Flags 2 working +51065 A3 Engine Oil Pressure Gauges working L 42 psi | Eng. Oil | R 42 psi +51068 A3 Engine Nozzle position gauge (tape) working (shows a graphical vertical tape) +--------------------------------------------------------------------------------------------------------------------------------------------------- + A4 Radar Altimiter w/Bug & Flag & inHg █ In Development █ + A4 Servopneumatic Altimiter █ TODO █ +--------------------------------------------------------------------------------------------------------------------------------------------------- +51047 A6a Master Arm 3 way switch working outputs a graphical 3 way switch to be used with included icons (font9) +56501 A6a Slip/Ball Indicator working outputs slip and ball gauge +59201 A6a ACM seam/coll./hot trig light working outputs masks to show/hide triple warning light in one button +59204 A6a Gun Rate HIGH|LOW Light working outputs 1 or 0 to monitor HIGH|LOW Gun Rate light (usually two IDs) +59206 A6a SW Cool Light ON|OFF working outputs 1 or 0 to monitor light (usually two IDs) +59208 A6a MSL Prep Light ON|OFF working outputs 1 or 0 to monitor light (usually two IDs) +59210 A6a MSL Mode Light NORM|BRSIT working outputs 1 or 0 to monitor light (usually two IDs) +59221 A6a Station Status Flag 1A working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59222 A6a Station Status Flag 1B working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59223 A6a Station Status Flag 3 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59224 A6a Station Status Flag 4 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59225 A6a Station Status Flag 5 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59226 A6a Station Status Flag 6 working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59227 A6a Station Status Flag 8B working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +59228 A6a Station Status Flag 8A working BLACK|WHITE|CHECKBOARD status flag (set font size to 6 on Str.Deck) +--------------------------------------------------------------------------------------------------------------------------------------------------- +50110 A9 Accelerometer Gauge +/- G & current G working 5 G | 1 G | -2G +51096 A9 Clock and Timer Gauge working Clock | 10 15 | Timer | 4 23 21 +51054 A9 Aft & L-left feed & aft fuselage Thanks working AFT & L | 6500 | LBS +51055 A9 Fwd & R-right feed & fwd fuselage tanks working FWD & R | 6500 | LBS +56000 A9 Left Fuel Gauge in lbs working 4000 lbs +56004 A9 Right Fuel Gauge in lbs working 4000 lbs +56010 A9 Total Fuel Gauge in lbs working 15200 lbs +56020 A9 Bingo Fuel Guage in lbs working 04000 lbs +56024 A9 Multi Fuel Guage Custom working Shows all relevant fuel output totals in a single stream deck button +--------------------------------------------------------------------------------------------------------------------------------------------------- +54060 A10 Gun Rounds Ammunition Counter working ROUNDS | 670 +--------------------------------------------------------------------------------------------------------------------------------------------------- +52117 B7 RIO Total Fuel Gauge in lbs working 15000 lbs + + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Stream Deck References █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + +The following references (with a picture) can be found (as of June 15, 2020) in Chapter 2 (Cockpit Overview) first 2 pages (pg10 and pg11) of +the F-14B manual. This manual is located in the C:\Program Files\Eagle Dynamics\DCS World OpenBeta\Mods\aircraft\F14\Docs Directory as a .pdf +Can also be found in the official thread for this script at: https://forums.eagle.ru/showthread.php?p=4387597#post4387597 + +Anywhere the following Descriptors can be found, they refer to this table in that portion of the manual +e.g. [A9] Pilot-Right Knee Panel describes A as Pilot Cockpit (instead of B RIO Cockpit) and 9 in the table on pg 10 (also below) which is the Right +Knee Panel where the fuel and accelerometer and clock are. + + ________________________________________________________________________________________________________ + | | + | [Ref]_ [Position]_ [Description]__________________| [Ref]_ [Position]_ [Description]___________________| + | | | + | A1 Pilot Left Side Console | B1 RIO Left Side Console | + | A2 Pilot Left Vertical Console | B2 RIO Left Vertical Console | + | A3 Pilot Left Knee Panel | B3 RIO Left Instrument Panel | + | A4 Pilot Left Instrument Panel | B4 RIO Center Panel | + | A5 Pilot Left Windshield Frame | B5 RIO Center Console | + | A6 Pilot Center Panel | B6 RIO Left and Right Footwells | + | A7 Pilot Right Windshield Frame | B7 RIO Right Instrument Panel | + | A8 Pilot Right Instrument Panel | B8 RIO Right Knee Panel | + | A9 Pilot Right Knee Panel | B9 RIO Right Vertical Console | + | A10 Pilot Right Vertical Console | B10 RIO Right Side Console | + | A11 Pilot Right Side Console | B11 RIO Canopy Control Handle | + | A12 Pilot Canopy Control Handle | | + |___________________________________________________|____________________________________________________| + + +Description Guide:__________________________________________________________________________________________________________________________________ +[BUTTON ID: 3043 / DEVICE ID: 26] - Clock Timer Start/Stop/Reset Button - {28.1, 31.0}{0.0, 1.0} +Button ID: Used in Stream Deck "Button ID:" +Device ID: Used in Stream Deck "Device ID" Note: this is not DCS ID +- Description of button - +{min gauge value, max gauge value}{stored/variable min value, stored/variable max value} + + +]] +ExportScript.FoundDCSModule = true +ExportScript.Version.F14 = "1.2.1" + +ExportScript.ConfigEveryFrameArguments = +{ + --[[ + [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 + ]] +-- PILOT COCKPIT ------------------------------------------------------------------------------ + + -- [NEEDS TESTING] ------------------------------------------------------------------------ + + + -- [END NEEDS TESTING] -------------------------------------------------------------------- + + + -- [In Development / Testing] ------------------------------------------------------------- + +-- A1a + -- Volume/TACAN Command Panel + [2040] = "%.4f", -- ALR-67 Knob controls audio volume to pilot + [2039] = "%.4f", -- SW knob volume of sidewinder audio tone to pilot + [2038] = "%.4f", -- V/UHF 2 knob audio from AN/ARC-182 to pilot + [0] = "%.4f", -- TACAN CMD switch sets crew member in command of Tacan + + -- ICS Control Panel + [2048] = "%.4f", -- VOL knob from RIO to pilot + [2045] = "%.4f", -- AMP selection knob (B/U|NORM|EMER) + [2044] = "%.4f", -- ICS switch (RADIO OVERRIDE|HOT MIC|COLD MIC) + + -- AFCS Control Panel + [2106] = "%.4f", -- PITCH switch enables stability augmentation + [2107] = "%.4f", -- ROLL switch enables stability augmentation + [2108] = "%.4f", -- YAW switch enables stability augmentation + [2109] = "%.4f", -- VEC/PCD/ACL switch (VEC/PCD|OFF|ACL) + [2110] = "%.4f", -- ALT switch (ON|OFF) + [2111] = "%.4f", -- HDG switch (HDG|OFF|GT) + [2112] = "%.4f", -- ENGAGE switch (ENGAGE|OFF) + + -- ASYM Limiter/Engine Mode Select + [16006] = "%.4f", -- ASYM LIMITER switch (ON|OFF) + [16005] = "%.4f", -- ASYM LIMITER cover + [16007] = "%.4f", -- L ENG MODE SELECT (PRI|SEC) + [16008] = "%.4f", -- R ENG MODE SELECT (PRI|SEC) + + [0] = "%.4f", -- Target Designate swith to designate ground targ. on HUD (up/down/forward designate) + + -- Inlet Ramps/Throttle Control Panel + [2104] = "%.4f", -- THROTTLE MODE (AUTO|BOOST|MAN) + [2103] = "%.4f", -- THROTTLE TEMP (HOT|NORM|COLD) + [2100] = "%.4f", -- L INLET RAMP (STOW|AUTO) + [2101] = "%.4f", -- R INLET RAMP (STOW|AUTO) + [2102] = "%.4f", -- ENG CRANK (L|R) + [0] = "%.4f", -- BACK UP IGNITION (ON|NORM) + [0] = "%.4f", -- RUDDER TRIM (L|R) + + + + +-- A1b + -- Oxygen Vent Airflow Control Panel + [0] = "%.4f", -- VENT AIRFLOW dial + [8114] = "%.4f", -- OXYGEN switch (ON|OFF) + + -- TACAN Control Panel + [8888] = "%.4f", -- Dual rotary switch Outer Dial + [8889] = "%.4f", -- Dual rotary switch Inner Dial + [0] = "%.4f", -- TACAN channel 3 digit + [8050] = "%.4f", -- Status Go + [8051] = "%.4f", -- Status NO-GO + [2115] = "%.4f", -- BIT button initiating TACAN BIT + [2043] = "%.4f", -- NORMAL MODE switche (X|Y) + [2036] = "%.4f", -- VOL knob for TACAN audio to pilot + [2041] = "%.4f", -- MODE konb (OFF|REC|T/R|A/A|BCN) + [2042] = "%.4f", -- MODE (NORMAL|INVERSE) + + -- UHF 1 (AN/ARC-159) Radio + [2031] = "%.4f", -- VOL knob controls radio to pilot vol. + [2035] = "%.4f", -- SQL switch squelch (ON|OFF) + [2030] = "%.4f", -- Freq. Select Switch 1 + [2029] = "%.4f", -- Freq. Select Switch 2 + [2028] = "%.4f", -- Freq. Select Switch 3 + [2026] = "%.4f", -- Freq. Select Switch 4 + [0] = "%.4f", -- FREQ/(CHAN) display ??? (maybe the switch values above???) + [8115] = "%.4f", -- READ button + [2027] = "%.4f", -- BRT knob display brightness + [16009] = "%.4f", -- LOAD button + [2034] = "%.4f", -- Function selector knob (ADF|BOTH|MAIN|OFF) + [2032] = "%.4f", -- CHAN SEL knob selects preset channels + [2033] = "%.4f", -- Mode selector knob (GUARD|MANUAL|PRESET) + [16010] = "%.4f", -- TONE button transmits tone on freq. + + -- Throttle Buttons + [0] = "%.4f", -- Speed Brake switch (EXT|RET) + [0] = "%.4f", -- Wing Sweep switch (AUTO|FWD|AFT|BOMB) + [0] = "%.4f", -- PLM button lockon + [0] = "%.4f", -- CAGE/SEAM button lockon + [0] = "%.4f", -- Exterior Light switch (ON|OFF) + [0] = "%.4f", -- ICS PIT switch (ICS|BOTH|UHF1|UHF2) + + + + +-- A2 + -- Fuel Management Panel + [1076] = "%.4f", -- QTY SEL Switch (FEED|WING|EXT) + [1095] = "%.4f", -- Select Fuel Feed to engines (FWD|NORM|AFT) + [1094] = "%.4f", -- Fuel feed cover + [1001] = "%.4f", -- WING/EXT Transfer (ORIDE|AUTO|OFF) + [15002] = "%.4f", -- Refueling Probe Indicator Light + [1074] = "%.4f", -- Fuel Dump Switch (OFF|DUMP) + [1073] = "%.4f", -- Refuel Probe Switch (ALL EXTD|FUS EXTD|RET) + [1072] = "%.4f", -- Anti skid spoiler bk switch (BOTH|OFF|SPOILER BK) + [1071] = "%.4f", -- MASTER RESET button resets CADC failure + + -- Control surface position indicator + [0] = "%.4f", -- L SPOILER DN-Down/flush | Up-Arrow-Above wing | Down-Arrow-Below Wing 8315-8322 + [0] = "%.4f", -- C SPOILER DN-Down/flush | Up-Arrow-Above wing | Down-Arrow-Below Wing + [0] = "%.4f", -- R SPOILER DN-Down/flush | Up-Arrow-Above wing | Down-Arrow-Below Wing + [1092] = "%.4f", -- RUDDER position indicators Left + [1093] = "%.4f", -- RUDDER position indicators Right + [1090] = "%.4f", -- HORIZ. STAB. Position indicator Left + [1091] = "%.4f", -- HORIZ. STAB. Position indicator Right + + -- Landing Gear Control Panel + [326] = "%.4f", -- Landing Gear Handle (UP|DOWN) + [16015] = "%.4f", -- Landing Gear Emer. Extension + [631] = "%.4f", -- HYD ISOL (FLT|T.O.LDG) + [999] = "%.4f", -- Transition Light + [0] = "%.4f", -- EMERG STORES button (illuminates when pressed) + [0] = "%.4f", -- EMERG STORES light ??? + [1075] = "%.4f", -- NOSE STRUT switch (EXTD|OFF|KNEEL) + [237] = "%.4f", -- Brake Pull Handle + [2049] = "%.4f", -- EJECT CMD Indicator (PILOT|MCO) + + -- Wheels-Flaps Pisition Indicator + [8302] = "%.4f", -- Left Landing Gear Indicator + [8305] = "%.4f", -- Right Landing Gear Indicator + [8301] = "%.4f", -- Nose Landing Gear Indicator + [0] = "%.4f", -- SPD BK Indicator + [8310] = "%.4f", -- Slats Indicator + [8311] = "%.4f", -- Flaps Indicator + + + + + +-- A4 + -- Radar Altimiter + [103] = "%.4f", -- Radar Altimeter needle + [308] = "%.4f", -- Radar Altimeter Control Knob + [2123] = "%.4f", -- Radar Altimeter Bug + [2124] = "%.4f", -- Radar Altimeter OFF Flag + [4154] = "%.4f", -- Radar Altimeter Bug + [16020] = "%.4f", -- Radar Altimeter Knob Push + [19108] = "%.4f", -- Radar Altimeter Test Light + + -- Servopneumatic Altimeter + [0] = "%.4f", -- Altimeter readout 112/262/300-304 + [104] = "%.4f", -- Altimeter Baro readout + [306] = "%.4f", -- Baroset knob sets local press. in in.Hg + [0] = "%.4f", -- Local barometric pressure (Kollsman Window) + [307] = "%.4f", -- Mode switch + + -- Airspeed Mach Indicator + [0] = "%.4f", -- Airspeed dial ??? + [0] = "%.4f", -- Indicated airspeed scale (outer) ??? + [0] = "%.4f", -- Indicated airspeed scale (inner) ??? + [0] = "%.4f", -- Mach number scale ??? + [0] = "%.4f", -- Indicated airspeed index pointer ??? + [0] = "%.4f", -- Mach Number index pointer ??? + [0] = "%.4f", -- Safe Mach number index pointer ??? + [0] = "%.4f", -- Index knob pushed in ??? + [0] = "%.4f", -- Index knob pulled out ??? + + [0] = "%.4f", -- Vertical Velocity Indicator + [0] = "%.4f", -- Left Engine Fuel Shutoff Handle + [0] = "%.4f", -- Angle of Attack Indicator + + + + + +-- A5 + [9356] = "%.4f", -- LEFT Eng. Stall Indicator + + [9350] = "%.4f", -- WHEELS warning + [9351] = "%.4f", -- BRAKES warning - antiskid or brake fail / parking break + [9352] = "%.4f", -- ACLS/AP - ACLS or AP disengaged + [9353] = "%.4f", -- NWS ENGA - nosewheel steering engaged + [9354] = "%.4f", -- AUTO THROT - disengagement of auto throttle + + + + + + +-- 6b + -- Vertical Display Indicator (VDI) + [1037] = "%.4f", -- HUD Brightness Control + [1036] = "%.4f", -- VDI Brightness Control + [1038] = "%.4f", -- VDI Contrast Control + [1033] = "%.4f", -- FILTER Handle when pulled inserts filter for night ops + [1034] = "%.4f", -- HUD Trim control for pitch lines + [1035] = "%.4f", -- VDI Trim adjustment of pitch lines on VDI + + -- VDI Caution Lights (also check 2222 id range if below not working) + [9360] = "%.4f", -- ADJ A/C Advisory light indicating other aircraft close to own traffic pattern. + [9361] = "%.4f", -- LANDING CHK Advisory light indicating carrier has a channel + [9362] = "%.4f", -- ACL READY indicating CATCC has aquired aircraft + [9363] = "%.4f", -- A/P CPLR indicating CATCC is ready to control aircraft. + [9364] = "%.4f", -- CMD CONTROL aircraft is under data link control for landing. + [9365] = "%.4f", -- 10 SECONDS waypoint and carrier motion info + [9366] = "%.4f", -- TILT no data link command received for the last 2 sec + [9367] = "%.4f", -- VOICE - CATCC not ready for ACL + [9368] = "%.4f", -- AUTO Throttle + [9369] = "%.4f", -- A/P REF autopilot selected but not engaged. + [15070] = "%.4f", -- WAVEOFF Warning light indicating waveoff commanded. 2222/15070 + [15071] = "%.4f", -- WING SWEEP failure in both wing-sweep channels + [15072] = "%.4f", -- REDUCE SPEED flap retraction failure + [15073] = "%.4f", -- ALT LOW Non functional, light on radar altimeter is used instead + + + + +-- 6c + -- Horizontal Situation Display Indicator (HSD) + [1043] = "%.4f", -- BRT controls HSD Brightness + [1039] = "%.4f", -- HDG controls heading reference bug in TACAN mode + [1040] = "%.4f", -- CRS controls cour in MAN and TACAN mode + [1041] = "%.4f", -- TEST allows reset of HSD + + [0] = "%.4f", -- BIT indicator failure in HSD (shows flags ???) + [0] = "%.4f", -- Bit Indicator knob ??? + + + + +-- 6d + -- Center Panel at bottom + [0] = "%.4f", -- Cabin Pressure Altimeter in 1,000 foot increments (0-50,000') 935|2210 + [0] = "%.4f", -- Emerg. Brake Press. Indicator Park (2150-3000 psi green / red is 1900-2150 psi) 999|9260 + [0] = "%.4f", -- Emerg. Aux Press. Indicator Park (2150-3000 psi green / red is 1900-2150 psi) 9261 + + + + +-- A7 + [9355] = "%.4f", -- Right Eng. STALL + + -- ECM Warning Lights + [9357] = "%.4f", -- SAM - steady when lock from SAM / Flashes when missle launch + [9358] = "%.4f", -- AAA - steady when lock from AAA / Flashes on missle launch + [9359] = "%.4f", -- AI - steady when lock from airborne radar + + [15097] = "%.4f", -- Standby Compass + + + + +-- A8 + [0] = "%.4f", -- Wing Sweep Indicator 404|405|507|508|2001|2002 flags: 15091-15095 + [0] = "%.4f", -- Right Engine Fuel Shutoff Handle + [0] = "%.4f", -- Standby Attitude Indicator ?? + + -- UHF/VHF Remote Indicators + [0] = "%.4f", -- UHF 1 frequency display + [0] = "%.4f", -- UHF 1 TEST button displays 888.888 if good + [0] = "%.4f", -- UHF 1 DIM controls display brightness + [0] = "%.4f", -- V/UHF 2 frequency display + [0] = "%.4f", -- V/UHF 2 TEST button displays 888.888 if good + [0] = "%.4f", -- V/UHF 2 BRT controls display brightness + + -- Bearing Distance Heading Indicator BDHI + [0] = "%.4f", -- No. 2 Bearing Pointer magnetic course to TACAN station + [0] = "%.4f", -- Compass Rose magnetic heading + [0] = "%.4f", -- No. 1 bearing pointer magnetic course to UHF/ADF station + [0] = "%.4f", -- Distance Counter in nautical miles + + -- ALR-67 Indicator + [0] = "%.4f", -- INT knob intensity brightness + + [224] = "%.4f", -- Canopy Jettison Handle + + + + + +-- A10 + -- Displays Control Panel + -- Steering Commands Selectors + [1002] = "%.4f", -- TACAN - Selects TACAN as steering command source + [1003] = "%.4f", -- DEST - Selects RIO set waypoint as steering command source + [1004] = "%.4f", -- AWL/PCD - All weather landing/prec. course direction + [1005] = "%.4f", -- VEC - Vector, selects data link deviation steering as source + [1006] = "%.4f", -- MAN - Manual, selects manually selected course and heading + + -- Mode Selectors + [1015] = "%.4f", -- T.O. Takeoff mode + [1014] = "%.4f", -- CRUISE mode + [1013] = "%.4f", -- A/A Air-to-Air mode + [1012] = "%.4f", -- A/G Air-to-Ground mode + [1011] = "%.4f", -- LDG Landing Mode + + -- HUD + [1021] = "%.4f", -- DeClutter Mode for HUD (ON|OFF) + [1020] = "%.4f", -- Which AWL to display on HUD Switch (ILS|ACL) + + -- VDI + [1019] = "%.4f", -- TV Displays video from TCS or LANTIRN or NORM (TV|NORM) + [1018] = "%.4f", -- Which AWL to display on VDI (ILS|ACL) + + -- HSD + [1016] = "%.4f", -- HSD Mode (NAV|TID) nav display or TID repeats RIO TID Info + [1017] = "%.4f", -- ECM (ORIDE|OFF) [NOT USED/MODELED] + + -- Power Switches + [1010] = "%.4f", -- VDI (ON|OFF) + [1009] = "%.4f", -- HUD (ON|OFF) + [1008] = "%.4f", -- HSD/ECMD (ON|OFF) + + -- Pitch LAD BRT Knob + [1007] = "%.4f", -- Controls brightness of pitch ladder on HUD + -- END Displays Control Panel + + -- gun elevation lead in mils + [2270] = "%.4f", -- Hundreds Counter in mils for the manual A/A and A/G gun modes. Limits are -263 and +87 mils + [2271] = "%.4f", -- Tens Counter in mils for the manual A/A and A/G gun modes. Limits are -263 and +87 mils + [2272] = "%.4f", -- Ones Counter in mils for the manual A/A and A/G gun modes. Limits are -263 and +87 mils + [2273] = "%.4f", -- Knob adjust counter + + + + +-- 11a + -- Spoiler Failure Override + [902] = "%.4f", -- Inboard spoiler override (ORIDE|NORM) COVER + [903] = "%.4f", -- Outboard spoiler override (ORIDE|NORM) COVER + [908] = "%.4f", -- Inboard spoiler override (ORIDE|NORM) + [907] = "%.4f", -- Outboard spoiler override (ORIDE|NORM) + + -- Caution Advisory Indicator + [15037] = "%.1f", -- PITCH STAB 1 - inoperative pitch channel + [15040] = "%.1f", -- PITCH STAB 2 - inoperative pitch channel + [15039] = "%.1f", -- ROLL STAB 1 - inoperative roll channel + [15056] = "%.1f", -- ROLL STAB 2 - inoperative roll channel + [15025] = "%.1f", -- YAW STAB OP - one inoperative yaw channel + [15026] = "%.1f", -- YAW STAB OUT - two inoperative yaw channels + [15031] = "%.1f", -- EMERG JETT - caution activation of emerg stores jett button + [15050] = "%.1f", -- LADDER - boarding ladder not correctly stowed + [15052] = "%.1f", -- INLET ICE - accumulation of ice on ice detector in L eng. + [15046] = "%.1f", -- FLAP - failure in flap system or flaps down & speed > 225k + [15047] = "%.1f", -- HZ TAIL AUTH - failure of lateral tail auth. actuator + [15053] = "%.1f", -- RUDDER AUTH - failure of rudder auth. actuator + [15057] = "%.1f", -- SPOILERS - spoiler sys failure + [15041] = "%.1f", -- AUTO PILOT - A/P failure + [15054] = "%.1f", -- Left INLET - AICS programmer and/or system failure + [15051] = "%.1f", -- Right INLET - AICS programmer and/or system failure + [15048] = "%.1f", -- OIL PRESS - left or right engine oil press. < 11psi + [15038] = "%.1f", -- BLEED DUCT - high temp air leak in engine comp. + [15049] = "%.1f", -- LEFT RAMPS - ramps not locked in pos. + [15044] = "%.1f", -- RIGHT RAMPS - ramps not locked in pos. + [15063] = "%.1f", -- START VALVE - starter solenoid air valve is open + [15061] = "%.1f", -- LEFT ENG SEC - engin AFTC is in secondary mode + [15064] = "%.1f", -- RIGHT ENG SEC - engin AFTC is in secondary mode + [15016] = "%.1f", -- LEFT GEN - respective engine generator inoperative + [15020] = "%.1f", -- RIGHT GEN - respective engine generator inoperative + [15027] = "%.1f", -- CANOPY - canopy is not own and locked + [15033] = "%.1f", -- BINGO - aircraft fuel qty at or below set bingo + [15017] = "%.1f", -- LEFT OIL HOT - respective eng. oil is too hot + [15022] = "%.1f", -- RIGHT OIL HOT - respective eng. oil is too hot + [15028] = "%.1f", -- CADC - air data computer failure + [15034] = "%.1f", -- HYD PRESS - press. in either engine hyd. < 2,100 psi + [15018] = "%.1f", -- LEFT FUEL PRESS - press. < 9 psi in respective fuel pump + [15021] = "%.1f", -- RIGHT FUEL PRESS - press. < 9 psi in respective fuel pump + [15029] = "%.1f", -- LEFT FUEL LOW - fuel < 1000 lbs in aft and left tank + [15035] = "%.1f", -- RIGHT FUEL LOW - fuel < 1000 lbs in fwd and righ tank + [15023] = "%.1f", -- WING SWEEP - failure of a single channel in wing sweep + [15062] = "%.1f", -- RATS - RATS enabled + [15058] = "%.1f", -- TRANS/RECT - transformer rectifier failure + [15036] = "%.1f", -- MACH TRIM - failure in Mach trim actuator + [15030] = "%.1f", -- WSHLD HOT - central windshield overheat + [15045] = "%.1f", -- LAUNCH BAR - weight on wheels + [15060] = "%.1f", -- INTEG TRIM - trim failure + [15055] = "%.1f", -- AHRS - unreliable attitude or hdg info from AHRS + [15019] = "%.1f", -- ENG FIRE EXT - low press. in fire extenguisher + [15024] = "%.1f", -- AUX FIRE EXT - low press. in Aux. fire ext. + + -- Master Generator Control Panel + [937] = "%.4f", -- LEFT MASTER GEN switch (NORM|OFF/RESET|TEST) + [936] = "%.4f", -- RIGHT MASTER GEN switch (NORM|OFF/RESET|TEST) + [927] = "%.4f", -- EMERG switch (EMERG|NORM|OFF/RESET) COVER + [926] = "%.4f", -- EMERG switch (EMERG|NORM|OFF/RESET) + + -- Air Condition Control Panel + [940] = "%.4f", -- TEMP switch (AUTO|MAN) + [939] = "%.4f", -- CABIN PRESS switch (NORM|DUMP) + [938] = "%.4f", -- RAM AIR switch (INCR|DECR) + [929] = "%.4f", -- AIR SOURCE selection (RAM) + [930] = "%.4f", -- AIR SOURCE selection (L ENG.) + [931] = "%.4f", -- AIR SOURCE selection (R ENG.) + [932] = "%.4f", -- AIR SOURCE selection BOTH ENG.) + [933] = "%.4f", -- AIR SOURCE selection (OFF) + [950] = "%.4f", -- TEMP thumbwheel (1-14 COOL-WARM) + + -- External Environmental Control Panel + [942] = "%.4f", -- WIND SHIELD switch (AIR|OFF) + [941] = "%.4f", -- ANTI-ICE switch (ORIDE|AUTO|OFF) + + -- Hydraulic Transfer Pump Switch + [630] = "%.4f", -- Transfer Pump switch cover + [629] = "%.4f", -- HYD TRANSFER PUMP switch (NORMAL|SHUTOFF) + + + + + +-- 11b + -- Compass Control Panel + [0] = "%.4f", -- SYNC Indicator 2221? + [906] = "%.4f", -- N-S Switch hemisphere (N|S) + [909] = "%.4f", -- Lat Knob (0-90) + [1026] = "%.4f", -- Lat Knob (0-90) + [905] = "%.4f", -- Mode Switch AHRS Hdg Info (COMP|SLAVED|DG) + [904] = "%.4f", -- HDG Knob + [16014] = "%.4f", -- HDG Button + + -- ARA-63 Control Panel + [912] = "%.4f", -- Channel Selector (1 of 20 available ICLS channels) + [911] = "%.4f", -- BIT button + [910] = "%.4f", -- Power Switch (ON|OFF) + [910] = "%.4f", -- Power ON Light for ARA-63 (taken from power on/off switch) + + -- Master Light Control Panel + [923] = "%.4f", -- ANTI COLLISION switch (ON|OFF) + [919] = "%.4f", -- POSITION switch (FLASH|STEADY) + [916] = "%.4f", -- TAIL POSITION switch (DIM|OFF|BRT) + [913] = "%.4f", -- WING POSITION switch (DIM|OFF|BRT) + [15005] = "%.4f", -- ACM thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15006] = "%.4f", -- INDEXER thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15007] = "%.4f", -- INSTRUMENT thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15008] = "%.4f", -- CONSOLE thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [15009] = "%.4f", -- FORMATION thumbwheel Lights Dimmer (0-OFF|1-14 DIM-BRT) + [915] = "%.4f", -- HOOK BYPASS (FIELD|CARRIER) + [918] = "%.4f", -- TAXI lights switch (ON|OFF) + [921] = "%.4f", -- WHITE FLOOD switch (OFF|DIM|BRT) + [924] = "%.4f", -- RED FLOOD switch (DIM|MED|BRT) + + -- Master Test Panel + [934] = "%.4f", -- MASTER TEST SELECTOR (OFF|LTS|FIRE DET/EXT|INST|OBC|EMERG GEN|MACH LEV|WG SWP|FLT GR DN|FLT GR UP|D/L RAD|STICK SW) + [15098] = "%.4f", -- MASTER TEST SELECTOR Knob Push + [15010] = "%.4f", -- GO light - light used in test to indicate go/no-go conditions of that system + [15011] = "%.4f", -- NO-GO light - light used in test to indicate go/no-go conditions of that system + [928] = "%.4f", -- EMERG FLT HYD (HIGH|LOW|AUTO(LOW)) + [615] = "%.4f", -- EMERG FLT HYD switch cover + + -- Canopy Defog/Cabin Air Lever + [0] = "%.4f", -- CABIN AIR + [0] = "%.4f", -- CANOPY DEFOG + + + + +-- 12 + [0] = "%.4f", -- Canopy Control Handle (BOOST|CLOSE|HOLD|OPEN|AUX OPEN) + + + -- [END In Development] ------------------------------------------------------------------- + -- ################################################################################################################################################################### + -- ################################################################################################################################################################### + + + + + + + + + + + + + -- [A1 Pilot - Left Side Console] --------------------------------------------------------- + -- [END A1] ------------------------------------------------------------------------------- + + -- [A2 Pilot - Left Vertical Console] ----------------------------------------------------- + -- [END A2] ------------------------------------------------------------------------------- + + -- [A3 Pilot - Left Knee Panel] ----------------------------------------------------------- + + -- Electronic Instrument Group + [1057] = "%.4f", -- Engine RPM Left [STREAM DECK FORMAT: 51057] + [1058] = "%.4f", -- Engine RPM Right [STREAM DECK FORMAT: 51057] + [1059] = "%.4f", -- Engine TIT (Exhaust Gas Temp) Left [STREAM DECK FORMAT: 51059] + [1060] = "%.4f", -- Engine TIT (Exhaust Gas Temp) Right [STREAM DECK FORMAT: 51059] + [1061] = "%.4f", -- Engine Fuel Flow Left [STREAM DECK FORMAT: 51061] + [1062] = "%.4f", -- Engine Fuel Flow Right [STREAM DECK FORMAT: 51061] + + -- Hydraulic Pressure Indicator + [1063] = "%.4f", -- HYD_FlightHydraulicSystemPressure [STREAM DECK FORMAT: 51023 OR 51063] + [1064] = "%.4f", -- HYD_CombinedHydraulicSystemPressure [STREAM DECK FORMAT: 51023 OR 51063] + + -- Engine Oil Pressure Gauges + [1065] = "%.4f", -- Right Engine Oil Pressure [STREAM DECK FORMAT: 51065] + [1066] = "%.4f", -- Left Engine Oil Pressure [STREAM DECK FORMAT: 51065] + + -- Engine Exhaust Nozzle Position + [1067] = "%.1f", -- Right Nozzle [STREAM DECK FORMAT: 51068] + [1068] = "%.1f", -- Left Nozzle [STREAM DECK FORMAT: 51068] + + -- [END A3] ------------------------------------------------------------------------------- + + -- [A4 Pilot - Left Instrument Panel] ----------------------------------------------------- + + -- [END A4] ------------------------------------------------------------------------------- + + -- [A5 Pilot - Left Windshield Frame] ----------------------------------------------------- + + -- Approach Indexer + [3760] = "%d", -- Approach Indexer AOA Slow green light - {0, 1}{0, 1} + [3761] = "%d", -- Approach Indexer AOA optimum yellow light - {0, 1}{0, 1} + [3762] = "%d", -- Approach Indexer AOA fast red light - {0, 1}{0, 1} + + -- [END A5] ------------------------------------------------------------------------------- + + -- [A6a Pilot - Center Panel] ------------------------------------------------------------- + + -- ACM Switch + [1049] = "%d", -- ACM Switch Cover actives the ACM mode - {0, 1}{0, 1} [BUTTON ID:3133 / DEVICE ID:55 ] + [1048] = "%d", -- ACM JETT button jettison stores - {0, 1}{0, 1} [BUTTON ID:3138 / DEVICE ID:55 ] + + -- Master Arm Switch + [1046] = "%d", -- MASTER ARM cover - {0, 1}{0, 1} [BUTTON ID:3135 / DEVICE ID:55 ] + [1047] = "%d", -- MASTER ARM switch (OFF|ON|TNG) - {-1, 1}{-1, 1} [BUTTON ID:3136 / DEVICE ID:55 ] + + -- Turn and Slip Indicator 6a (Not sure how to do this at the moment) + [6500] = "%.4f", -- Slip Ball + [6501] = "%.4f", -- Turn Indicator + + -- Master Caution light + [9200] = "%d", -- MASTER CAUTION Light - flashes - {0, 1}{0, 1} + + -- [END A6a] ------------------------------------------------------------------------------ + + -- [A6b Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6b] ------------------------------------------------------------------------------ + + -- [A6c Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6c] ------------------------------------------------------------------------------ + + -- [A6d Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6d] ------------------------------------------------------------------------------ + + -- [A7 Pilot - Right Windshield Frame] ---------------------------------------------------- + -- [END A7] ------------------------------------------------------------------------------- + + -- [A8 Pilot - Right Instrument Panel] ---------------------------------------------------- + -- [END A8] ------------------------------------------------------------------------------- + + -- [A9 Pilot - Right Knee Panel] ---------------------------------------------------------- + + -- FUS & FEED tapes Shows fuel qty in fuselage tanks + [1054] = "%.4f", -- Left feed and aft fuselage tanks [STREAM DECK FORMAT: 51054] + [1055] = "%.4f", -- Right feed and forward fuselage tanks [STREAM DECK FORMAT: 51055] + + -- Total Left Fuel Qty (main fuel guage at bottom left) + [6000] = "%.1f", -- FUEL_LFuelDial1k [STREAM DECK FORMAT: 56000] + [6001] = "%.1f", -- FUEL_LFuelDial100 [STREAM DECK FORMAT: 56000] + [6002] = "%.1f", -- FUEL_LFuelDial10 [STREAM DECK FORMAT: 56000] + [6003] = "%.1f", -- FUEL_LFuelDial1 [STREAM DECK FORMAT: 56000] + + -- Total Right Fuel Qty (main fuel guage at bottom right) + [6004] = "%.1f", -- FUEL_RFuelDial1k [STREAM DECK FORMAT: 56004] + [6005] = "%.1f", -- FUEL_RFuelDial100 [STREAM DECK FORMAT: 56004] + [6006] = "%.1f", -- FUEL_RFuelDial10 [STREAM DECK FORMAT: 56004] + [6007] = "%.1f", -- FUEL_RFuelDial1 [STREAM DECK FORMAT: 56004] + + -- Total Fuel Qty in all aircraft tanks (main fuel guage in center shows "Fuel 15000 Qty") + [6010] = "%.1f", -- FUEL_TotalFuel10k [STREAM DECK FORMAT: 56010] + [6011] = "%.1f", -- FUEL_TotalFuel1k [STREAM DECK FORMAT: 56010] + [6012] = "%.1f", -- FUEL_TotalFuel100 [STREAM DECK FORMAT: 56010] + [6013] = "%.1f", -- FUEL_TotalFuel10 [STREAM DECK FORMAT: 56010] + [6014] = "%.1f", -- FUEL_TotalFuel1 [STREAM DECK FORMAT: 56010] + + -- Currently set BINGO fuel quantity (main fuel guage in center at top shows "Bingo 4000") + [6020] = "%.1f", -- FUEL_BingoFuel10k [STREAM DECK FORMAT: 56020] + [6021] = "%.1f", -- FUEL_BingoFuel1k [STREAM DECK FORMAT: 56020] + [6022] = "%.1f", -- FUEL_BingoFuel100 [STREAM DECK FORMAT: 56020] + [6023] = "%.1f", -- FUEL_BingoFuel10 [STREAM DECK FORMAT: 56020] + [6024] = "%.1f", -- FUEL_BingoFuel1 [STREAM DECK FORMAT: 56020] + + -- Accelerometer (3 needles) + [110] = "%.4f", -- Needle - Current G (+10 to -6) [STREAM DECK FORMAT: 50110] + [15076] = "%.4f", -- Needle 2 - Max Postive G pulled (max 10) [STREAM DECK FORMAT: 50110] + [15077] = "%.4f", -- Needle 3 - Max Negative G Pulled (max -6) [STREAM DECK FORMAT: 50110] + + -- [END A9] ------------------------------------------------------------------------------- + + -- [A10 Pilot - Right Vertical Console] --------------------------------------------------- + + -- Gun Ammunition Rounds Counter + [4060] = "%.1f", -- Gun Ammunition Rounds Counter Hundreds [STREAM DECK FORMAT: 54060] + [4061] = "%.1f", -- Gun Ammunition Rounds Counter Tens [STREAM DECK FORMAT: 54060] + [4062] = "%.1f", -- Gun Ammunition Rounds Counter Ones [F-14 DOESN'T DISPLAY] + + -- [END A10] ------------------------------------------------------------------------------ + + -- [A11 Pilot - Right Side Console] ------------------------------------------------------- + -- [END A11] ------------------------------------------------------------------------------ + + -- [A12 Pilot - Canopy Control Handle] ---------------------------------------------------- + -- [END A12] ------------------------------------------------------------------------------ +-- END PILOT COCKPIT -------------------------------------------------------------------------- + + +-- RIO OFFICER COCKPIT ------------------------------------------------------------------------ + -- [B1 RIO - Left Side Console] ----------------------------------------------------------- + -- [END B1] ------------------------------------------------------------------------------- + + -- [B2 RIO - Left Vertical Console] ------------------------------------------------------- + -- [END B2] ------------------------------------------------------------------------------- + + -- [B3 RIO - Left Instrument Panel] ------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B4 RIO - Center Panel] ---------------------------------------------------------------- + -- [END B4] ------------------------------------------------------------------------------- + + -- [B5 RIO - Center Console] -------------------------------------------------------------- + -- [END B5] ------------------------------------------------------------------------------- + + -- [B6 RIO - Left and Right Footwells] ---------------------------------------------------- + -- [END B6] ------------------------------------------------------------------------------- + + -- [B7 RIO - Right Instrument Panel] ------------------------------------------------------ + + -- Total RIO Fuel Qty (Radar Officer Fuel Dial) + [2117] = "%.1f", -- FUEL_TotalFuelRIO10k (10's of thousands in decimal 0.1 = 10,000 lbs) [STREAM DECK FORMAT: 56010] + [2118] = "%.1f", -- FUEL_TotalFuelRIO1k (thousands of lbs in decimal 0.4 = 1,000 lbs) [STREAM DECK FORMAT: 56010] + [2119] = "%.1f", -- FUEL_TotalFuelRIO100 (hundreds of lbs in decimal 0.3 = 300 lbs) [STREAM DECK FORMAT: 56010] + [2120] = "%.1f", -- FUEL_TotalFuelRIO10 (ten lbs of fuel in decimal 0.7 = 70 lbs) [F-14 DOESN'T DISPLAY TENS OF LBS] + [2135] = "%.1f", -- FUEL_TotalFuelRIO1 (lbs of fuel in decimal 0.2 = 2 lbs) [F-14 DOESN'T DISPLAY] + + -- [END B7] ------------------------------------------------------------------------------- + + -- [B8 RIO - Right Knee Panel] ------------------------------------------------------------ + -- [END B1] ------------------------------------------------------------------------------- + + -- [B9 RIO - Right Vertical Console] ------------------------------------------------------ + -- [END B2] ------------------------------------------------------------------------------- + + -- [B10 RIO - Right Side Console] --------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B11 RIO - Canopy Control Handle] ------------------------------------------------------ + -- [END B4] ------------------------------------------------------------------------------- +-- END RIO OFFICER COCKPIT -------------------------------------------------------------------- +} + + +ExportScript.ConfigArguments = +{ + -- arguments for export in low tick interval + +-- PILOT COCKPIT ------------------------------------------------------------------------------ + -- [A1 Pilot - Left Side Console] --------------------------------------------------------- + -- [END A1] ------------------------------------------------------------------------------- + + -- [A2 Pilot - Left Vertical Console] ----------------------------------------------------- + -- [END A2] ------------------------------------------------------------------------------- + + -- [A3 Pilot - Left Knee Panel] ----------------------------------------------------------- + + -- Hydraulic Pressure Indicator Flags + [1023] = "%d", -- Pressure availability to the spoilers flag - {0, 1}{0, 1} [STREAM DECK FORMAT: 51023 OR 51063] + [1024] = "%d", -- Emer. Flight hyd. pump operating on High - {0, 1}{0, 1} [STREAM DECK FORMAT: 51023 OR 51063] + [1025] = "%d", -- Emer. Flight hyd. pump operating on LOW - {0, 1}{0, 1} [STREAM DECK FORMAT: 51023 OR 51063] + + -- [END A3] ------------------------------------------------------------------------------- + + -- [A4 Pilot - Left Instrument Panel] ----------------------------------------------------- + -- [END A4] ------------------------------------------------------------------------------- + + -- [A5 Pilot - Left Windshield Frame] ----------------------------------------------------- + -- [END A5] ------------------------------------------------------------------------------- + + -- [A6a Pilot - Center Panel] ------------------------------------------------------------- + + -- Master Caution Button (light in high tik) + [9199] = "%d", -- MASTER CAUTION Button - press to reset - {0, 1}{0, 1} [BUTTON ID:3056 / DEVICE ID:34 ] + + -- Triple Indicator Lights + [9203] = "%d", -- SEAM LOCK light - sidewinder acquisition in progress.. + [9202] = "%d", -- COLLISION light - collision steering has been selected + [9201] = "%d", -- HOT TRIG light - when lit trigger will release a weapon + + -- Gun Rate Switch and Lights + [9204] = "%d", -- GUN RATE light HIGH (HIGH|LOW) - {0, 1}{0, 1} + [9205] = "%d", -- GUN RATE light LOW (HIGH|LOW) - {0, 1}{0, 1} + [16000] = "%d", -- GUN RATE switch (HIGH|LOW) - {0, 1}{0, 1} [BUTTON ID:3130 / DEVICE ID:55 ] + + -- Sidewinder Cooling + [9206] = "%d", -- SW COOL Switch light On - {0, 1}{0, 1} + [9207] = "%d", -- SW COOL Switch light Off - {0, 1}{0, 1} + [16001] = "%d", -- SW COOL switch (ON|OFF) - {0, 1}{0, 1} [BUTTON ID:3139 / DEVICE ID:55 ] + + -- MSL Preperation Switch + [9208] = "%d", -- MSL PREP switch light On - {0, 1}{0, 1} + [9209] = "%d", -- MSL PREP switch light Off - {0, 1}{0, 1} + [16002] = "%d", -- MSL PREP switch (ON|OFF) - {0, 1}{0, 1} [BUTTON ID:3140 / DEVICE ID:55 ] + + -- MSL Mode Switch + [9210] = "%d", -- MSL Mode switch light Norm - {0, 1}{0, 1} + [9211] = "%d", -- MSL Mode switch light Boresight - {0, 1}{0, 1} + [16003] = "%d", -- MSL Mode switch (NORM|BRSIT) - {0, 1}{0, 1} [BUTTON ID:3141 / DEVICE ID:55 ] + + -- Weapon Station Status Flags + [9221] = "%.2f", -- Station Status Flag 1A (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9222] = "%.2f", -- Station Status Flag 1B (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9223] = "%.2f", -- Station Status Flag 3 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9224] = "%.2f", -- Station Status Flag 4 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9225] = "%.2f", -- Station Status Flag 5 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9226] = "%.2f", -- Station Status Flag 6 (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9227] = "%.2f", -- Station Status Flag 8B (OFF|WHITE|CHECK) - {0, 1}{0, 1} + [9228] = "%.2f", -- Station Status Flag 8A (OFF|WHITE|CHECK) - {0, 1}{0, 1} + + -- Engine Fire Lights + [15014] = "%d", -- Left Engine FIRE Light - {0, 1}{0, 1} + [15015] = "%d", -- Right Engine FIRE Light - {0, 1}{0, 1} + + -- [END A6a] ------------------------------------------------------------------------------ + + -- [A6b Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6b] ------------------------------------------------------------------------------ + + -- [A6c Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6c] ------------------------------------------------------------------------------ + + -- [A6d Pilot - Center Panel] ------------------------------------------------------------- + -- [END A6d] ------------------------------------------------------------------------------ + + -- [A7 Pilot - Right Windshield Frame] ---------------------------------------------------- + -- [END A7] ------------------------------------------------------------------------------- + + -- [A8 Pilot - Right Instrument Panel] ---------------------------------------------------- + -- [END A8] ------------------------------------------------------------------------------- + + -- [A9 Pilot - Right Knee Panel] ---------------------------------------------------------- + + -- Accelerometer + [228] = "%.4f", -- Accelerometer Reset knob - {0, 1}{0, 1} [BUTTON ID: 3488 / DEVICE ID: 24] + + -- Bingo Set Knob + [1050] = "%.4f", -- Knob used to set BINGO fuel Qty - +/- 1 per step is 100 lbs of fuel [BUTTON ID: 3069 / DEVICE ID: 20] + + -- Clock and Timer + [1051] = "%.4f", -- Clock Timer wind - +/- 0.06 per step is 1 Minute [BUTTON ID: 3042 / DEVICE ID: 26] + [1096] = "%.4f", -- Clock Hours - {0, 12}{0.0000, 1.0000} e.g. 0.5000 * 12 = 6pm [STREAM DECK FORMAT: 51096] + [1097] = "%.4f", -- Clock Minutes - {0, 60}{0.0000, 1.0000} e.g. 0.5000 * 60 = 30 Minutes [STREAM DECK FORMAT: 51096] + [1098] = "%.4f", -- Clock Timer Seconds - {0, 60}{0.0000, 1.0000} e.g. 0.5000 * 60 = 30 Seconds [STREAM DECK FORMAT: 51096] + [1099] = "%d", -- Clock Timer Start/Stop/Reset Button - {0, 1}{0, 1} [BUTTON ID: 3043 / DEVICE ID: 26] + [2000] = "%.4f", -- Clock Timer Minutes - {0, 60}{0.0000, 1.0000} e.g. 0.5000 * 60 = 30 Minutes [STREAM DECK FORMAT: 51096] + + -- [END A9] ------------------------------------------------------------------------------- + + -- [A10 Pilot - Right Vertical Console] --------------------------------------------------- + + -- Arresting Hook + [238] = "%d", -- HOOK_Handle Arresting hook handle down/up - {0, 1}{0, 1} [BUTTON ID: 3021 / DEVICE ID: 17] + [15078] = "%d", -- HOOK_EmergencyDown Emergency release - {0, 1}{0, 1} [BUTTON ID: 3022 / DEVICE ID: 17] + [15090] = "%d", -- Hook_Light Arresting Hook Light - {0, 1}{0, 1} [LIGHT/LAMP] + + -- Gun Rounds and Knob + [1022] = "%.4f", -- Gun Ammunition Counter Adj. Knob - {0, 1}{increase or decrease by 0.1 to inc/dec. by 10 rounds} [BUTTON ID: 3132 / DEVICE ID: 55] + + -- [END A10] ------------------------------------------------------------------------------ + + -- [A11a Pilot - Right Side Console] ------------------------------------------------------ + -- [END A11a] ----------------------------------------------------------------------------- + + -- [A11b Pilot - Right Side Console] ------------------------------------------------------ + + -- HUD Video Control Panel (Not Implemented in DCS) + --[0] = "%.4f", -- HUD CAM(E)RA switch (TRG|NORMAL|OFF|RUN) + --[0] = "%.4f", -- VTR Power (ON|OFF) + --[0] = "%.4f", -- VTR (RECORD|STANDBY) + + -- [END A11b] ----------------------------------------------------------------------------- + + + -- [A12 Pilot - Canopy Control Handle] ---------------------------------------------------- + -- [END A12] ------------------------------------------------------------------------------ +-- END PILOT COCKPIT -------------------------------------------------------------------------- + + + + +-- RIO OFFICER COCKPIT ------------------------------------------------------------------------ + -- [B1 RIO - Left Side Console] ----------------------------------------------------------- + -- [END B1] ------------------------------------------------------------------------------- + + -- [B2 RIO - Left Vertical Console] ------------------------------------------------------- + -- [END B2] ------------------------------------------------------------------------------- + + -- [B3 RIO - Left Instrument Panel] ------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B4 RIO - Center Panel] ---------------------------------------------------------------- + -- [END B4] ------------------------------------------------------------------------------- + + -- [B5 RIO - Center Console] -------------------------------------------------------------- + -- [END B5] ------------------------------------------------------------------------------- + + -- [B6 RIO - Left and Right Footwells] ---------------------------------------------------- + -- [END B6] ------------------------------------------------------------------------------- + + -- [B7 RIO - Right Instrument Panel] ------------------------------------------------------ + -- [END B7] ------------------------------------------------------------------------------- + + -- [B8 RIO - Right Knee Panel] ------------------------------------------------------------ + -- [END B1] ------------------------------------------------------------------------------- + + -- [B9 RIO - Right Vertical Console] ------------------------------------------------------ + -- [END B2] ------------------------------------------------------------------------------- + + -- [B10 RIO - Right Side Console] --------------------------------------------------------- + -- [END B3] ------------------------------------------------------------------------------- + + -- [B11 RIO - Canopy Control Handle] ------------------------------------------------------ + -- [END B4] ------------------------------------------------------------------------------- +-- END RIO OFFICER COCKPIT -------------------------------------------------------------------- + +} + + +----------------------------- +-- HIGH IMPORTANCE EXPORTS -- +-- done every export event -- +----------------------------- + +-- Pointed to by ProcessIkarusDCSHighImportance +function ExportScript.ProcessIkarusDCSConfigHighImportance(mainPanelDevice) + -- every frame export to Ikarus + + -- A3 - Pilot Cockpit Left Knee Panel + ExportScript.hydPressGauge(mainPanelDevice) -- Hydraulic Pressure Indicator Gauges and Flags + ExportScript.engNozzle(mainPanelDevice) -- Engine Nozzle position gauge + ExportScript.engOilPressure(mainPanelDevice) -- Engine Oil Pressure gauges + ExportScript.EIG(mainPanelDevice) -- Electronic Instrument Group + -- end A3 + + -- A6a - ACM Panel + ExportScript.stationStatusFlags(mainPanelDevice) -- Air Combat Maneuver Panel + ExportScript.ACMButtons(mainPanelDevice) -- 4 different ACM Buttons + ExportScript.masterArmSwitch(mainPanelDevice) -- Master Arm Switch + ExportScript.ACMTriple(mainPanelDevice) -- ACM Triple Indicator + ExportScript.ACMSlip(mainPanelDevice) -- Slip/Ball Gauge + -- end A6a + + -- A9 - Pilot Cockpit Right Knee Panel + ExportScript.displayFuel(mainPanelDevice) -- Set of 5 different fuel gauges and a nice multi-gauge (ID's 52117 / 56000 / 56004 / 56010 / 56020 / 56024) Cus. Func. + ExportScript.displayAccel(mainPanelDevice) -- Accellerometer Gauge Custom Function + ExportScript.clockAndTimer(mainPanelDevice) -- Clock and Timer in digital format on same gauge Custom Function + -- end A9 + + -- A10 - Pilot Right Vertical Console + ExportScript.gunCounter(mainPanelDevice) -- Gun Ammunition Counter / Rounds left + -- end A10 + +end + +function ExportScript.ProcessDACConfigHighImportance(mainPanelDevice) + -- every frame export to DAC +end + +----------------------------------------------------- +-- LOW IMPORTANCE EXPORTS -- +-- done every gExportLowTickInterval export events -- +----------------------------------------------------- + +-- Pointed to by ExportScript.ProcessIkarusDCSConfigLowImportance +function ExportScript.ProcessIkarusDCSConfigLowImportance(mainPanelDevice) + -- export in low tick interval to Ikarus +end + +function ExportScript.ProcessDACConfigLowImportance(mainPanelDevice) + -- export in low tick interval to DAC +end --[[ + + + + + + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Custom functions █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + █ ExportScript.onff(switch) - Receives a binary and returns string OFF|ON + █ ExportScript.dualTapeString(leftTape, rightTape) - Receives two values (percent of tape) and returns a string tape display (e.g. RPM) + █ ExportScript.rotaryCounter(fp) - receives a fp like 0.1 and returns a string 1 (third charachter), handles negatives and 0 gracefully + █ ExportScript.drawStationStatusFlags(flagValue) - Draws Station Flags for Weapons on ACM A6a]] + +function ExportScript.dualTapeString(title, leftTape, rightTape) -- Creates a dual vertical bar tape for custom gauge + -- Receives title as string + -- Receives a value from 0.00 to 1.00 that represents a percentage from 0% to 100% of the tape, 0.25 is 1/4 up the tape etc.. + -- Returns a string that shows 2 tapes in a "somewhat" graphical format using extended ascii characters. + local a = 5 + local b = 0 + leftTape = tonumber(string.format("%.1f", (leftTape * 10) / 2 )) + rightTape = tonumber(string.format("%.1f", (rightTape * 10) / 2 )) + local buildDisplay = title .. "\n" + repeat + b = a - 0.5 + if leftTape >= a then buildDisplay = buildDisplay .. "█ " elseif leftTape >= b then buildDisplay = buildDisplay .. "▄ " else buildDisplay = buildDisplay .. "_ " end + if rightTape >= a then buildDisplay = buildDisplay .. "█" elseif rightTape >= (a - 0.5) then buildDisplay = buildDisplay .. "▄" else buildDisplay = buildDisplay .. "_" end + buildDisplay = buildDisplay .. "\n" + a = a - 1 + until( a < 1 ) + return buildDisplay +end + + +function ExportScript.onff(switch) -- Takes a binary 1(on) or 0(off) and returns string "ON" or "OFF" + if switch == 1 then returnString = "ON" elseif switch == 0 then returnString = "OFF" end + return returnString +end + + +function ExportScript.rotaryCounter(fp) -- Takes a value as floating point like 0.1324 and returns 1 as a string or 0.4 as 4 as a string (3'rd character including decimal) + local returnString + if fp == 1 or fp <= 0 then returnString = "0" else returnString = string.sub(string.format("%.1f", fp), 3, 3) end + return returnString +end + + +function ExportScript.drawStationStatusFlags(flagValue) -- Takes a 0/1/0.45 and draws nothing/white/checker flag and returns + local returnString + if flagValue > 0.5 then returnString = "█████\n▀▀▀▀▀\n\n." elseif flagValue > 0.4 then returnString = "▀▄▀▄▀\n▀ ▀ ▀\n\n." else returnString = "" end + return returnString +end +--[[ + + + + +___________________________________________________________________________________________________________________________________________________ +▀▀▀█ Custom Gauges functions █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀]] + +function ExportScript.ACMSlip(mainPanelDevice) -- Slip/Ball Gauge + local turn + local turnL + local turnR + local turnIndicator = mainPanelDevice:get_argument_value(6501) + local turnLString = "" + local turnRString = "" + local ball + local ballL + local ballR + local ballIndicator = mainPanelDevice:get_argument_value(6500) + local ballLString = "" + local ballRString = "" + local stringOutput = "" + if turnIndicator < 0 then -- negative 12 on left and right + if turnIndicator < -0.9 then turn = 9 else turn = tonumber(string.sub(turnIndicator, 4, 4)) end + turnL = 12 - turn + turnR = 12 + turn + repeat + turnLString = turnLString .. " " + turnL = turnL - 1 + until( turnL == 1) + repeat + turnRString = turnRString .. " " + turnR = turnR - 1 + until( turnR == 1) + stringOutput = stringOutput .. turnLString + stringOutput = stringOutput .. "█" + stringOutput = stringOutput .. turnRString + elseif turnIndicator > 0 then -- positive + if turnIndicator > 0.9 then turn = 9 else turn = tonumber(string.sub(turnIndicator, 3, 3)) end + turnL = 12 + turn + turnR = 12 - turn + repeat + turnLString = turnLString .. " " + turnL = turnL - 1 + until( turnL == 1) + repeat + turnRString = turnRString .. " " + turnR = turnR - 1 + until( turnR == 1) + stringOutput = stringOutput .. turnLString + stringOutput = stringOutput .. "█" + stringOutput = stringOutput .. turnRString + else + turn = 0 + stringOutput = " █ " + end + + stringOutput = stringOutput .. "\n ■ █ ■ \n" + + if ballIndicator < 0 then -- negative 12 on left and right + if ballIndicator < -0.9 then ball = 9 else ball = tonumber(string.sub(ballIndicator, 4, 4)) end + ballL = 12 - ball + ballR = 12 + ball + repeat + ballLString = ballLString .. " " + ballL = ballL - 1 + until( ballL == 1) + repeat + ballRString = ballRString .. " " + ballR = ballR - 1 + until( ballR == 1) + stringOutput = stringOutput .. ballLString + stringOutput = stringOutput .. "O" + stringOutput = stringOutput .. ballRString + elseif ballIndicator > 0 then -- positive + if ballIndicator > 0.9 then ball = 9 else ball = tonumber(string.sub(ballIndicator, 3, 3)) end + ballL = 12 + ball + ballR = 12 - ball + repeat + ballLString = ballLString .. " " + ballL = ballL - 1 + until( ballL == 1) + repeat + ballRString = ballRString .. " " + ballR = ballR - 1 + until( ballR == 1) + stringOutput = stringOutput .. ballLString + stringOutput = stringOutput .. "O" + stringOutput = stringOutput .. ballRString + else + ball = 0 + stringOutput = " O " + end + ExportScript.Tools.SendData(56501, stringOutput) +end + + +function ExportScript.ACMTriple(mainPanelDevice) -- Triple indicator lights for ACM (Seam/Collision/Hot Trig) + local stringOutput = "" + if mainPanelDevice:get_argument_value(9203) == 1 then stringOutput = stringOutput .. "\n\n" else stringOutput = stringOutput .. "██████████\n\n" end + if mainPanelDevice:get_argument_value(9202) == 1 then stringOutput = stringOutput .. "\n\n\n" else stringOutput = stringOutput .. "▄▄▄▄▄▄▄▄▄▄\n▀▀▀▀▀▀▀▀▀▀\n\n" end + if mainPanelDevice:get_argument_value(9201) == 1 then stringOutput = stringOutput .. "." else stringOutput = stringOutput .. "██████████" end + ExportScript.Tools.SendData(59201, stringOutput) +end + + +function ExportScript.masterArmSwitch(mainPanelDevice) -- Output Master Arm Position + if mainPanelDevice:get_argument_value(1047) == -1 then stringOutput = " ███\n |\n |\n\n ." + elseif mainPanelDevice:get_argument_value(1047) == 0 then stringOutput = " |\n ███\n |\n\n ." + else stringOutput = " |\n |\n ███\n\n ." + end + ExportScript.Tools.SendData(51047, stringOutput) +end + + +function ExportScript.ACMButtons(mainPanelDevice) -- Monitors two lights on diff. id's and outputs 1 or 0 to one id for (gun rate/SW cool/MSL prep/Mode stp) + if mainPanelDevice:get_argument_value(9204) == 1 then ExportScript.Tools.SendData(59204, 1) else ExportScript.Tools.SendData(59204, 0) end -- gun rate light + if mainPanelDevice:get_argument_value(9206) == 1 then ExportScript.Tools.SendData(59206, 1) else ExportScript.Tools.SendData(59206, 0) end -- sw cool light + if mainPanelDevice:get_argument_value(9208) == 1 then ExportScript.Tools.SendData(59208, 1) else ExportScript.Tools.SendData(59208, 0) end -- msl prep light + if mainPanelDevice:get_argument_value(9210) == 1 then ExportScript.Tools.SendData(59210, 1) else ExportScript.Tools.SendData(59210, 0) end -- msl mode stp light +end + + +function ExportScript.stationStatusFlags(mainPanelDevice) -- Display Station status flags 1 to 8 on ACM panel + local b + local a = 9221 + repeat + b = "5" .. a + ExportScript.Tools.SendData(b, ExportScript.drawStationStatusFlags(mainPanelDevice:get_argument_value(a))) + a = a + 1 + until( a > 9228) +end + + +function ExportScript.gunCounter(mainPanelDevice) -- Gun Counter + local gunCounter = ExportScript.rotaryCounter(mainPanelDevice:get_argument_value(4060)) .. ExportScript.rotaryCounter(mainPanelDevice:get_argument_value(4061)) .. ExportScript.rotaryCounter(mainPanelDevice:get_argument_value(4062)) + ExportScript.Tools.SendData(54060, "ROUNDS\n" .. gunCounter) +end + + +function ExportScript.EIG(mainPanelDevice) -- Electronic Instrument Group EIG + local EIGrpm = ExportScript.dualTapeString("RPM % x10", mainPanelDevice:get_argument_value(1057), mainPanelDevice:get_argument_value(1058)) + local EIGegt = ExportScript.dualTapeString("TIT C x100", mainPanelDevice:get_argument_value(1059), mainPanelDevice:get_argument_value(1060)) + local EIGff = ExportScript.dualTapeString("FF PPH x1000", mainPanelDevice:get_argument_value(1061), mainPanelDevice:get_argument_value(1062)) + ExportScript.Tools.SendData(51057, EIGrpm) -- Engine RPM + ExportScript.Tools.SendData(51059, EIGegt) -- Engine TIT (Exhaust Gas Temp) + ExportScript.Tools.SendData(51061, EIGff) -- Engine Fuel Flow +end + + +function ExportScript.engOilPressure(mainPanelDevice) + local rOilPress = mainPanelDevice:get_argument_value(1065) * 90 -- Right Engine Oil Pressure + local lOilPress = mainPanelDevice:get_argument_value(1066) * 90 -- Left Engine Oil Pressure + ExportScript.Tools.SendData(51065, "L " .. string.format("%d", lOilPress) .. " psi\nEng. Oil\n" .. "R " .. string.format("%d", rOilPress) .. " psi") +end + + +function ExportScript.engNozzle(mainPanelDevice) -- Engine Nozzle position gauge (tape) ------------------------------------------------ + local lNoz = tonumber(string.format("%.1f", mainPanelDevice:get_argument_value(1068) * 5)) + local rNoz = tonumber(string.format("%.1f", mainPanelDevice:get_argument_value(1067) * 5)) + local a = 5 + local b = 0 + local buildDisplay = "Exh. Nozz.\n" + repeat + b = a - 0.5 + buildDisplay = buildDisplay .. (a - 1) + if lNoz >= a then buildDisplay = buildDisplay .. " █ " elseif lNoz >= b then buildDisplay = buildDisplay .. " ▄ " else buildDisplay = buildDisplay .. " _ " end + if rNoz >= a then buildDisplay = buildDisplay .. "█" elseif rNoz >= (a - 0.5) then buildDisplay = buildDisplay .. "▄" else buildDisplay = buildDisplay .. "_" end + buildDisplay = buildDisplay .. "\n" + a = a - 1 + until( a < 1 ) + ExportScript.Tools.SendData(51068, buildDisplay) +end + + +function ExportScript.hydPressGauge(mainPanelDevice) -- Hydraulic pressure indicator A3 ------------------------------------------------ + local hydComb = string.format("%d", (mainPanelDevice:get_argument_value(1063) * 4000)) + local hydFlt = string.format("%d", (mainPanelDevice:get_argument_value(1064) * 4000)) + local spoilFlag = ExportScript.onff(mainPanelDevice:get_argument_value(1023)) + local hiFlag = ExportScript.onff(mainPanelDevice:get_argument_value(1024)) + local lowFlag = ExportScript.onff(mainPanelDevice:get_argument_value(1025)) + local hydPressGauge = "HYD PRESS\n" .. "C. " .. hydComb .. " psi\nF. " .. hydFlt .. " psi\n\n" .. spoilFlag .. "|" .. hiFlag .. "|" .. lowFlag + ExportScript.Tools.SendData(51063, hydPressGauge) + local hydPressFlags = "HYD PR. psi\nComb | Flight\n" .. hydComb .. " | " .. hydFlt .. "\n Spo / HI / LW\n" .. spoilFlag .. " | " .. hiFlag .. " | " .. lowFlag + ExportScript.Tools.SendData(51023, hydPressFlags) +end + + +function ExportScript.clockAndTimer(mainPanelDevice) -- Clock and timer on panel A9 ---------------------------------------------------- + local minutes = string.format("%d", mainPanelDevice:get_argument_value(1097) * 60) + if string.len(minutes) < 2 then + minutes = "0" .. minutes + end + local timerMinutes = string.format("%d", mainPanelDevice:get_argument_value(2000) * 60) + local timerSeconds = string.format("%d", mainPanelDevice:get_argument_value(1098) * 60) + local clockNTimer = "Clock\n" .. string.format("%d", mainPanelDevice:get_argument_value(1096) * 12) .. string.char(32) .. minutes .. "\nTimer\n" .. timerMinutes .. "m " .. timerSeconds .. "s" + ExportScript.Tools.SendData(51096, clockNTimer) +end + + +function ExportScript.displayAccel(mainPanelDevice) -- Accelerometer gauge formatted --------------------------------------------------- + -- Accelerometer Gauge A9 + local needle = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(110)) + local needlePos = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(15076)) + local needleNeg = ExportScript.displayAccelCheckValue(mainPanelDevice:get_argument_value(15077)) + accelGauge = "Accel.G\n+" .. string.format("%.1f", needlePos) .. " G\n-| " .. string.format("%.1f", needle) .. " G |-\n" .. string.format("%.1f", needleNeg) .. " G" + ExportScript.Tools.SendData(50110, accelGauge) +end + +function ExportScript.displayAccelCheckValue(accelValue) -- Called from ExportScript.displayAccel() ------------------------------------ + if accelValue >= 0 then + return accelValue * 10 + elseif accelValue < 0 then + return accelValue * 5 + end +end + + +function ExportScript.displayFuel(mainPanelDevice) -- Fuel Gauges and output on A9 and B7 ---------------------------------------------- +--[[FUEL Exports Formatted + + NOTE: In case you are wondering to the weird methodology used below to derive fuel totals, I'll try to explain. + A combination of how the f-14 module is using this fuel data (e.g. 0.9 might mean 900 lbs, 0.0 would mean 000 lbs and 1.0 would mean 000 lbs + also which effects the total if you use math to add them all together, so we can't use a simple method) + Essentially DCS gives you the fuel dial position rather than the actual fuel available. Although this sounds like the same value, it is not. + And also playing into this is the non-existance of certain math functions in lua language like concatenation or rounding. You need to convert + to string and back which is slow + + Because of this (not fully explained) it will create strange output for the total fuel when it rolls between whole values e.g. 15000 to 14900. + So instead we convert them to strings right away and extract the portion of the string (3'rd charachter) that is always correct + (e.g. 1.0 is always 0 and 0.0 is also 0 and 0.4 is 4 etc...) + + we then take the 10k, 1k, 100's etc.. 3'rd charachter and combine them like 15000 + There is still a strange behaviour at first site that is exhibited, that is not so strange once explained: + When rolling over from 15000 to 14900, it will show 15000, then 15900 for a second or two, and then 14900. The reason is that the hundreds dial + on the f-14 rolls quicker than the thousands dial therefore getting updated first instead of at the same time. + the above strange behaviour cannot be corrected unless there is a variable that stores the total fuel value instead of the fuel cockpit dial + value which are two different things. (In my experience most dcs mods only give you access to the latter) + Therefore, we first concatenate the number to 0.X by converting it to a string and formatting it as such, and then extract the 3'rd character + (I get it, nasty work around, If you have a better solution I'd love to hear it.) + +]] + local aftAndL = string.format("%d", mainPanelDevice:get_argument_value(1054) * 7000) + local fwdAndR = string.format("%d", mainPanelDevice:get_argument_value(1055) * 7000) + local RIOFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2117)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2118)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(2119)), 3, 3) .. "00" + local leftFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6000)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6001)), 3, 3) .. "00" + local rightFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6004)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6005)), 3, 3) .. "00" + local totalFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6010)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6011)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6012)), 3, 3) .. "00" + local bingoFuel = string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6020)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6021)), 3, 3) .. string.sub(string.format("%.1f", mainPanelDevice:get_argument_value(6022)), 3, 3) .. "00" + + ExportScript.Tools.SendData(51054, "AFT & L\n" .. aftAndL .. "\nLBS") + ExportScript.Tools.SendData(51055, "FWD & R\n" .. fwdAndR .. "\nLBS") + ExportScript.Tools.SendData(52117, "TOTAL\nFUEL QTY\n" .. RIOFuel .. "\nLBS") -- Return Total RIO Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56000, "L\n" .. leftFuel) -- Return Total Left Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56004, "R\n" .. rightFuel) -- Return Total Right Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56010, "FUEL\n" .. totalFuel .. "\nQTY") -- Return Total Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56020, "BINGO\n" .. bingoFuel) -- Return Total Bingo Fuel Qty Formatted like F-14 Gauge + ExportScript.Tools.SendData(56024, "BINGO " .. bingoFuel .. "\nTOTAL " .. totalFuel .. "\n" .. aftAndL .. " | " .. fwdAndR .. "\n L | R \n" .. leftFuel .. " | " .. rightFuel) -- Nice Multi Gauge +end \ No newline at end of file diff --git a/Scripts/DCS-ExportScript/lib/Maps.lua b/Scripts/DCS-ExportScript/lib/Maps.lua index 9a604985..ec903036 100644 --- a/Scripts/DCS-ExportScript/lib/Maps.lua +++ b/Scripts/DCS-ExportScript/lib/Maps.lua @@ -1,43 +1,43 @@ --- Ikarus and D.A.C. Export Script --- --- Map Config File --- --- Copyright by Michael aka McMicha 2014 --- Contact dcs2arcaze.micha@farbpigmente.org --- --- This file contains the data to identify the loaded map. --- --- The data can be read in the editor. --- Load the corresponding map and read the latitude and longitude values and write specify the decimal degree format (convert from degrees, decimal to decimal degrees). --- Lat1 and Long1 contain the coordinates of the upper left corner. --- Lat2 and Long2 contain the coordinates of the lower right corner. --- - -ExportScript.Version.Maps = "1.2.1" - --- Maps -ExportScript.Maps = {} --- Caucasus Map -ExportScript.Maps.CaucasusBase = {} -ExportScript.Maps.CaucasusBase.Lat1 = 48.384867 -- high left Latitude 48° 23. 92 N -ExportScript.Maps.CaucasusBase.Long1 = 26.779467 -- high left Longitude 26° 46.768 E -ExportScript.Maps.CaucasusBase.Lat2 = 38.865183 -- low right Latitude 38° 51.911 N -ExportScript.Maps.CaucasusBase.Long2 = 47.14225 -- low right Longitude 47° 8.535 E --- Nevada (NTTR) Map -ExportScript.Maps.Nevada = {} -- Nevada Map -ExportScript.Maps.Nevada.Lat1 = 37.578333 -- high left Latitude 37° 34' 42" N -ExportScript.Maps.Nevada.Long1 = -119.964722 -- high left Longitude 119° 57' 53" W -ExportScript.Maps.Nevada.Lat2 = 34.651667 -- low right Latitude 34° 39' 06" N -ExportScript.Maps.Nevada.Long2 = -114.536111 -- low right Longitude 114° 32' 10" W --- Normandy Map -ExportScript.Maps.Normandy = {} -- Normandy Map -ExportScript.Maps.Normandy.Lat1 = 53.85556 -- high left Latitude 53° 51' 20" N -ExportScript.Maps.Normandy.Long1 = -15.02667 -- high left Longitude 15° 01' 36" W -ExportScript.Maps.Normandy.Lat2 = 45.07167 -- low right Latitude 45° 04' 18" N -ExportScript.Maps.Normandy.Long2 = 8.437222 -- low right Longitude 08° 26' 14" E --- Persian Gulf Map -ExportScript.Maps.PersianGulf = {} -ExportScript.Maps.PersianGulf.Lat1 = 30.50833 -- high left Latitude 30° 20.630 N -ExportScript.Maps.PersianGulf.Long1 = 45.15167 -- high left Longitude 44° 54.906 E -ExportScript.Maps.PersianGulf.Lat2 = 22.43528 -- low right Latitude 22° 24.127 N -ExportScript.Maps.PersianGulf.Long2 = 61.67306 -- low right Longitude 61° 36.263 E +-- Ikarus and D.A.C. Export Script +-- +-- Map Config File +-- +-- Copyright by Michael aka McMicha 2014 +-- Contact dcs2arcaze.micha@farbpigmente.org +-- +-- This file contains the data to identify the loaded map. +-- +-- The data can be read in the editor. +-- Load the corresponding map and read the latitude and longitude values and write specify the decimal degree format (convert from degrees, decimal to decimal degrees). +-- Lat1 and Long1 contain the coordinates of the upper left corner. +-- Lat2 and Long2 contain the coordinates of the lower right corner. +-- + +ExportScript.Version.Maps = "1.2.1" + +-- Maps +ExportScript.Maps = {} +-- Caucasus Map +ExportScript.Maps.CaucasusBase = {} +ExportScript.Maps.CaucasusBase.Lat1 = 48.384867 -- high left Latitude 48° 23. 92 N +ExportScript.Maps.CaucasusBase.Long1 = 26.779467 -- high left Longitude 26° 46.768 E +ExportScript.Maps.CaucasusBase.Lat2 = 38.865183 -- low right Latitude 38° 51.911 N +ExportScript.Maps.CaucasusBase.Long2 = 47.14225 -- low right Longitude 47° 8.535 E +-- Nevada (NTTR) Map +ExportScript.Maps.Nevada = {} -- Nevada Map +ExportScript.Maps.Nevada.Lat1 = 37.578333 -- high left Latitude 37° 34' 42" N +ExportScript.Maps.Nevada.Long1 = -119.964722 -- high left Longitude 119° 57' 53" W +ExportScript.Maps.Nevada.Lat2 = 34.651667 -- low right Latitude 34° 39' 06" N +ExportScript.Maps.Nevada.Long2 = -114.536111 -- low right Longitude 114° 32' 10" W +-- Normandy Map +ExportScript.Maps.Normandy = {} -- Normandy Map +ExportScript.Maps.Normandy.Lat1 = 53.85556 -- high left Latitude 53° 51' 20" N +ExportScript.Maps.Normandy.Long1 = -15.02667 -- high left Longitude 15° 01' 36" W +ExportScript.Maps.Normandy.Lat2 = 45.07167 -- low right Latitude 45° 04' 18" N +ExportScript.Maps.Normandy.Long2 = 8.437222 -- low right Longitude 08° 26' 14" E +-- Persian Gulf Map +ExportScript.Maps.PersianGulf = {} +ExportScript.Maps.PersianGulf.Lat1 = 30.50833 -- high left Latitude 30° 20.630 N +ExportScript.Maps.PersianGulf.Long1 = 45.15167 -- high left Longitude 44° 54.906 E +ExportScript.Maps.PersianGulf.Lat2 = 22.43528 -- low right Latitude 22° 24.127 N +ExportScript.Maps.PersianGulf.Long2 = 61.67306 -- low right Longitude 61° 36.263 E diff --git a/Scripts/DCS-ExportScript/lib/Tools.lua b/Scripts/DCS-ExportScript/lib/Tools.lua index 16abee1e..be05970e 100644 --- a/Scripts/DCS-ExportScript/lib/Tools.lua +++ b/Scripts/DCS-ExportScript/lib/Tools.lua @@ -11,51 +11,53 @@ ExportScript.Version.Tools = "1.2.1" function ExportScript.Tools.WriteToLog(message) if ExportScript.logFile then local ltmp, lMiliseconds = math.modf(os.clock()) - if lMiliseconds==0 then - lMiliseconds='000' - else - lMiliseconds=tostring(lMiliseconds):sub(3,5) + if lMiliseconds == 0 then + lMiliseconds = '000' + else + lMiliseconds = tostring(lMiliseconds):sub(3, 5) end - ExportScript.logFile:write(os.date("%X")..":"..lMiliseconds.." : "..message.."\r\n") + ExportScript.logFile:write(os.date("%X") .. ":" .. lMiliseconds .. " : " .. message .. "\r\n") end end function ExportScript.Tools.createUDPSender() - ExportScript.socket = require("socket") - - local lcreateUDPSender = ExportScript.socket.protect(function() - ExportScript.UDPsender = ExportScript.socket.udp() - ExportScript.socket.try(ExportScript.UDPsender:setsockname("*", 0)) - --ExportScript.socket.try(ExportScript.UDPsender:settimeout(.004)) -- set the timeout for reading the socket; 250 fps - end) - - local ln, lerror = lcreateUDPSender() - if lerror ~= nil then - ExportScript.Tools.WriteToLog("createUDPSender protect: "..ExportScript.Tools.dump(ln)..", "..ExportScript.Tools.dump(lerror)) - return - end + ExportScript.socket = require("socket") + + local lcreateUDPSender = ExportScript.socket.protect(function() + ExportScript.UDPsender = ExportScript.socket.udp() + ExportScript.socket.try(ExportScript.UDPsender:setsockname("*", 0)) + --ExportScript.socket.try(ExportScript.UDPsender:settimeout(.004)) -- set the timeout for reading the socket; 250 fps + end) + + local ln, lerror = lcreateUDPSender() + if lerror ~= nil then + ExportScript.Tools.WriteToLog("createUDPSender protect: " .. + ExportScript.Tools.dump(ln) .. ", " .. ExportScript.Tools.dump(lerror)) + return + end - ExportScript.Tools.WriteToLog("Create UDPSender") + ExportScript.Tools.WriteToLog("Create UDPSender") end function ExportScript.Tools.createUDPListner() - if ExportScript.Config.Listener then - ExportScript.socket = require("socket") - - local lcreateUDPListner = ExportScript.socket.protect(function() - ExportScript.UDPListener = ExportScript.socket.udp() - ExportScript.socket.try(ExportScript.UDPListener:setsockname("*", ExportScript.Config.ListenerPort)) - ExportScript.socket.try(ExportScript.UDPListener:settimeout(.001)) -- set the timeout for reading the socket; 250 fps - end) - - local ln, lerror = lcreateUDPListner() - if lerror ~= nil then - ExportScript.Tools.WriteToLog("createUDPListner protect: "..ExportScript.Tools.dump(ln)..", "..ExportScript.Tools.dump(lerror)) - return - end + if ExportScript.Config.Listener then + ExportScript.socket = require("socket") - ExportScript.Tools.WriteToLog("Create UDPListner") - end + local lcreateUDPListner = ExportScript.socket.protect(function() + ExportScript.UDPListener = ExportScript.socket.udp() + ExportScript.socket.try(ExportScript.UDPListener:setsockname("*", ExportScript.Config.ListenerPort)) + ExportScript.socket.try(ExportScript.UDPListener:settimeout(.001)) -- set the timeout for reading the socket; 250 fps + end) + + local ln, lerror = lcreateUDPListner() + if lerror ~= nil then + ExportScript.Tools.WriteToLog("createUDPListner protect: " .. + ExportScript.Tools.dump(ln) .. ", " .. ExportScript.Tools.dump(lerror)) + return + end + + ExportScript.Tools.WriteToLog("Create UDPListner") + end end function ExportScript.Tools.ProcessInput() @@ -67,33 +69,38 @@ function ExportScript.Tools.ProcessInput() -- lCommandArgs[3] = 4 => Value if ExportScript.Config.Listener then --local lInput,from,port = ExportScript.UDPListener:receivefrom() - ExportScript.UDPListenerValues = {} + ExportScript.UDPListenerValues = {} - local lUDPListenerReceivefrom = ExportScript.socket.protect(function() - --[[ + local lUDPListenerReceivefrom = ExportScript.socket.protect(function() + --[[ local try = ExportScript.socket.newtry(function() ExportScript.UDPListener:close() ExportScript.Tools.createUDPListner() end) ExportScript.UDPListenerValues.Input, ExportScript.UDPListenerValues.from, ExportScript.UDPListenerValues.port = try(ExportScript.UDPListener:receivefrom()) ]] -- Bei einer newtry Funktion wird im fehlerfall deren inhalt ausgeführt. - ExportScript.UDPListenerValues.Input, ExportScript.UDPListenerValues.from, ExportScript.UDPListenerValues.port = ExportScript.socket.try(ExportScript.UDPListener:receivefrom()) + ExportScript.UDPListenerValues.Input, ExportScript.UDPListenerValues.from, ExportScript.UDPListenerValues.port = + ExportScript.socket.try(ExportScript.UDPListener:receivefrom()) end) - local ln, lerror = lUDPListenerReceivefrom() - if lerror ~= nil and lerror ~= "timeout" then - ExportScript.Tools.WriteToLog("UDPListenerReceivefrom protect: "..ExportScript.Tools.dump(ln)..", "..ExportScript.Tools.dump(lerror)) - ExportScript.UDPListener:close() - ExportScript.Tools.createUDPListner() - end + local ln, lerror = lUDPListenerReceivefrom() + if lerror ~= nil and lerror ~= "timeout" then + ExportScript.Tools.WriteToLog("UDPListenerReceivefrom protect: " .. + ExportScript.Tools.dump(ln) .. ", " .. ExportScript.Tools.dump(lerror)) + ExportScript.UDPListener:close() + ExportScript.Tools.createUDPListner() + end - local lInput, from, port = ExportScript.UDPListenerValues.Input, ExportScript.UDPListenerValues.from, ExportScript.UDPListenerValues.port + local lInput, from, port = ExportScript.UDPListenerValues.Input, ExportScript.UDPListenerValues.from, + ExportScript.UDPListenerValues.port - if ExportScript.Config.SocketDebug then - ExportScript.Tools.WriteToLog("lInput: "..ExportScript.Tools.dump(lInput)..", from: "..ExportScript.Tools.dump(from)..", port: "..ExportScript.Tools.dump(port)) + if ExportScript.Config.SocketDebug then + ExportScript.Tools.WriteToLog("lInput: " .. + ExportScript.Tools.dump(lInput) .. + ", from: " .. ExportScript.Tools.dump(from) .. ", port: " .. ExportScript.Tools.dump(port)) end if lInput then - lCommand = string.sub(lInput,1,1) + lCommand = string.sub(lInput, 1, 1) if lCommand == "R" then -- R == Reset if ExportScript.Config.IkarusExport then @@ -111,51 +118,61 @@ function ExportScript.Tools.ProcessInput() end if (lCommand == "C") then - lCommandArgs = ExportScript.Tools.StrSplit(string.sub(lInput,2),",") - lDeviceID = tonumber(lCommandArgs[1]) - if lDeviceID < 1000 then - -- DCS Modules - lDevice = GetDevice(lCommandArgs[1]) - if ExportScript.FoundDCSModule and type(lDevice) == "table" then - lDevice:performClickableAction(lCommandArgs[2],lCommandArgs[3]) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("performClickableAction for Device: "..lCommandArgs[1]..", ButtonID: "..lCommandArgs[2]..", Value: "..lCommandArgs[3]) - end - end - elseif lDeviceID == 1000 then - -- ExportScript.genericRadio(key, value) - if ExportScript.FoundDCSModule then - ExportScript.genericRadio(lCommandArgs[2],lCommandArgs[3]) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("genericRadio, ButtonID: "..lCommandArgs[2]..", Value: "..lCommandArgs[3]) - end - end - elseif lDeviceID == 2000 then - -- Flaming Cliffs Module (Buttons) - if ExportScript.FoundFCModule then - -- ComamndID > 3000, because DAC or Ikarus add 300 to CommandID - local lComandID = (tonumber(lCommandArgs[2]) - 3000) - if tonumber(lCommandArgs[3]) == 1.0 then - LoSetCommand(lComandID) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("LoSetCommand, CommandID: "..lComandID) - end - end - end - elseif lDeviceID == 2001 then - -- Flaming Cliffs Module (analog axies) - if ExportScript.FoundFCModule then - -- ComamndID > 3000, because DAC or Ikarus add 3000 to CommandID - local lComandID = (tonumber(lCommandArgs[2]) - 3000) - LoSetCommand(lComandID, lCommandArgs[3]) - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("LoSetCommand, CommandID: "..lComandID..", Value: "..lCommandArgs[3]) - end - end - end - end - end - end + lCommandArgs = ExportScript.Tools.StrSplit(string.sub(lInput, 2), ",") + lDeviceID = tonumber(lCommandArgs[1]) + if lDeviceID == -1 then + -- LoSetCommand + local lComandID = tonumber(lCommandArgs[2]) + LoSetCommand(lComandID) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("LoSetCommand, CommandID: " .. lComandID) + end + elseif lDeviceID < 1000 then + -- DCS Modules + lDevice = GetDevice(lCommandArgs[1]) + if ExportScript.FoundDCSModule and type(lDevice) == "table" then + lDevice:performClickableAction(lCommandArgs[2], lCommandArgs[3]) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("performClickableAction for Device: " .. + lCommandArgs[1] .. ", ButtonID: " .. lCommandArgs[2] .. ", Value: " .. lCommandArgs[3]) + end + end + elseif lDeviceID == 1000 then + -- ExportScript.genericRadio(key, value) + if ExportScript.FoundDCSModule then + ExportScript.genericRadio(lCommandArgs[2], lCommandArgs[3]) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("genericRadio, ButtonID: " .. + lCommandArgs[2] .. ", Value: " .. lCommandArgs[3]) + end + end + elseif lDeviceID == 2000 then + -- Flaming Cliffs Module (Buttons) + if ExportScript.FoundFCModule then + -- ComamndID > 3000, because DAC or Ikarus add 300 to CommandID + local lComandID = (tonumber(lCommandArgs[2]) - 3000) + if tonumber(lCommandArgs[3]) == 1.0 then + LoSetCommand(lComandID) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("LoSetCommand, CommandID: " .. lComandID) + end + end + end + elseif lDeviceID == 2001 then + -- Flaming Cliffs Module (analog axies) + if ExportScript.FoundFCModule then + -- ComamndID > 3000, because DAC or Ikarus add 3000 to CommandID + local lComandID = (tonumber(lCommandArgs[2]) - 3000) + LoSetCommand(lComandID, lCommandArgs[3]) + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("LoSetCommand, CommandID: " .. + lComandID .. ", Value: " .. lCommandArgs[3]) + end + end + end + end + end + end end function ExportScript.Tools.ProcessOutput() @@ -166,71 +183,72 @@ function ExportScript.Tools.ProcessOutput() if lMyInfo ~= nil then if ExportScript.ModuleName ~= lMyInfo.Name then ExportScript.NoLuaExportBeforeNextFrame = false - ExportScript.Tools.SelectModule() -- point globals to Module functions and data. - return + ExportScript.Tools.SelectModule() -- point globals to Module functions and data. + return end lMyInfo = nil end local lDevice = GetDevice(0) if type(lDevice) == "table" and ExportScript.FoundDCSModule then - lDevice:update_arguments() --if currentTime - ExportScript.lastExportTimeHI > ExportScript.Config.ExportInterval then + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("run hight importance export universally") + ExportScript.Tools.ProcessArguments(lDevice, ExportScript.EveryFrameArguments) -- Module arguments as appropriate + else + ExportScript.coProcessArguments_EveryFrame = coroutine.create(ExportScript.Tools.ProcessArguments) + coStatus = coroutine.resume(ExportScript.coProcessArguments_EveryFrame, lDevice, + ExportScript.EveryFrameArguments) + end + + if ExportScript.Config.IkarusExport then if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("run hight importance export universally") - ExportScript.Tools.ProcessArguments(lDevice, ExportScript.EveryFrameArguments) -- Module arguments as appropriate + ExportScript.Tools.WriteToLog("run hight importance export Ikarus") + ExportScript.ProcessIkarusDCSHighImportance(lDevice) -- Module, as appropriate; determined in ExportScript.Tools.SelectModule() else - ExportScript.coProcessArguments_EveryFrame = coroutine.create(ExportScript.Tools.ProcessArguments) - coStatus = coroutine.resume( ExportScript.coProcessArguments_EveryFrame, lDevice, ExportScript.EveryFrameArguments) + ExportScript.coProcessIkarusDCSHighImportance = coroutine.create(ExportScript + .ProcessIkarusDCSHighImportance) + coStatus = coroutine.resume(ExportScript.coProcessIkarusDCSHighImportance, lDevice) end + end - if ExportScript.Config.IkarusExport then - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("run hight importance export Ikarus") - ExportScript.ProcessIkarusDCSHighImportance(lDevice) -- Module, as appropriate; determined in ExportScript.Tools.SelectModule() - else - ExportScript.coProcessIkarusDCSHighImportance = coroutine.create(ExportScript.ProcessIkarusDCSHighImportance) - coStatus = coroutine.resume( ExportScript.coProcessIkarusDCSHighImportance, lDevice) - end + if ExportScript.Config.DACExport then + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("run hight importance export DAC") + ExportScript.ProcessDACHighImportance(lDevice) -- Module, as appropriate; determined in ExportScript.Tools.SelectModule() + else + ExportScript.coProcessDACHighImportance = coroutine.create(ExportScript.ProcessDACHighImportance) + coStatus = coroutine.resume(ExportScript.coProcessDACHighImportance, lDevice) end + end + if ExportScript.FirstNewDataSend and ExportScript.FirstNewDataSendCount == 0 then if ExportScript.Config.DACExport then - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("run hight importance export DAC") - ExportScript.ProcessDACHighImportance(lDevice) -- Module, as appropriate; determined in ExportScript.Tools.SelectModule() - else - ExportScript.coProcessDACHighImportance = coroutine.create(ExportScript.ProcessDACHighImportance) - coStatus = coroutine.resume( ExportScript.coProcessDACHighImportance, lDevice) - end + ExportScript.Tools.ResetChangeValuesDAC() end - - if ExportScript.FirstNewDataSend and ExportScript.FirstNewDataSendCount == 0 then - if ExportScript.Config.DACExport then - ExportScript.Tools.ResetChangeValuesDAC() - end - if ExportScript.Config.IkarusExport then - ExportScript.Tools.WriteToLog("reset dcs ikarus") - ExportScript.Tools.ResetChangeValues() - end - ExportScript.FirstNewDataSend = false - else - ExportScript.FirstNewDataSendCount = ExportScript.FirstNewDataSendCount - 1 + if ExportScript.Config.IkarusExport then + ExportScript.Tools.WriteToLog("reset dcs ikarus") + ExportScript.Tools.ResetChangeValues() end - - --ExportScript.lastExportTimeHI = currentTime - ExportScript.lastExportTimeHI = ExportScript.lastExportTimeHI + ExportScript.Config.ExportInterval + ExportScript.FirstNewDataSend = false + else + ExportScript.FirstNewDataSendCount = ExportScript.FirstNewDataSendCount - 1 + end + + --ExportScript.lastExportTimeHI = currentTime + ExportScript.lastExportTimeHI = ExportScript.lastExportTimeHI + ExportScript.Config.ExportInterval --end --if currentTime - ExportScript.lastExportTimeLI > ExportScript.Config.ExportLowTickInterval then - if ExportScript.lastExportTimeHI > ExportScript.Config.ExportLowTickInterval then + if ExportScript.lastExportTimeHI > ExportScript.Config.ExportLowTickInterval then if ExportScript.Config.Debug then ExportScript.Tools.WriteToLog("run low importance export universally") ExportScript.Tools.ProcessArguments(lDevice, ExportScript.Arguments) -- Module arguments as appropriate else ExportScript.coProcessArguments_Arguments = coroutine.create(ExportScript.Tools.ProcessArguments) - coStatus = coroutine.resume( ExportScript.coProcessArguments_Arguments, lDevice, ExportScript.Arguments) + coStatus = coroutine.resume(ExportScript.coProcessArguments_Arguments, lDevice, ExportScript.Arguments) end if ExportScript.Config.IkarusExport then @@ -238,8 +256,9 @@ function ExportScript.Tools.ProcessOutput() ExportScript.Tools.WriteToLog("run low importance export Ikarus") ExportScript.ProcessIkarusDCSLowImportance(lDevice) -- Module as appropriate; determined in ExportScript.Tools.SelectModule() else - ExportScript.coProcessIkarusDCSLowImportance = coroutine.create(ExportScript.ProcessIkarusDCSLowImportance) - coStatus = coroutine.resume( ExportScript.coProcessIkarusDCSLowImportance, lDevice) + ExportScript.coProcessIkarusDCSLowImportance = coroutine.create(ExportScript + .ProcessIkarusDCSLowImportance) + coStatus = coroutine.resume(ExportScript.coProcessIkarusDCSLowImportance, lDevice) end end @@ -249,12 +268,12 @@ function ExportScript.Tools.ProcessOutput() ExportScript.ProcessDACLowImportance(lDevice) -- Module, as appropriate; determined in ExportScript.Tools.SelectModule() else ExportScript.coProcessDACLowImportance = coroutine.create(ExportScript.ProcessDACLowImportance) - coStatus = coroutine.resume( ExportScript.coProcessDACLowImportance, lDevice) + coStatus = coroutine.resume(ExportScript.coProcessDACLowImportance, lDevice) end end --ExportScript.lastExportTimeLI = currentTime - ExportScript.lastExportTimeHI = 0 + ExportScript.lastExportTimeHI = 0 end if ExportScript.Config.IkarusExport then @@ -262,61 +281,62 @@ function ExportScript.Tools.ProcessOutput() end if ExportScript.Config.DACExport then - for i=1, #ExportScript.Config.DAC, 1 do + for i = 1, #ExportScript.Config.DAC, 1 do ExportScript.Tools.FlushDataDAC(i) end end - elseif ExportScript.FoundFCModule then -- Assume FC Aircraft - + elseif ExportScript.FoundFCModule then -- Assume FC Aircraft ExportScript.AF.EventNumber = os.clock() --tonumber(tostring(os.clock()):gsub(".", "")) --if currentTime - ExportScript.lastExportTimeHI > ExportScript.Config.ExportInterval then - if ExportScript.Config.IkarusExport then - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("run hight importance export Ikarus") - ExportScript.ProcessIkarusFCHighImportance() - else - ExportScript.coProcessGlassCockpitFCHighImportance = coroutine.create(ExportScript.ProcessIkarusFCHighImportance) - coStatus = coroutine.resume( ExportScript.coProcessGlassCockpitFCHighImportance) - end + if ExportScript.Config.IkarusExport then + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("run hight importance export Ikarus") + ExportScript.ProcessIkarusFCHighImportance() + else + ExportScript.coProcessGlassCockpitFCHighImportance = coroutine.create(ExportScript + .ProcessIkarusFCHighImportance) + coStatus = coroutine.resume(ExportScript.coProcessGlassCockpitFCHighImportance) end - if ExportScript.Config.DACExport then - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("run hight importance export DAC") - ExportScript.ProcessDACHighImportance(lDevice) - else - ExportScript.coProcessDACHighImportance = coroutine.create(ExportScript.ProcessDACHighImportance) - coStatus = coroutine.resume( ExportScript.coProcessDACHighImportance, lDevice) - end + end + if ExportScript.Config.DACExport then + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog("run hight importance export DAC") + ExportScript.ProcessDACHighImportance(lDevice) + else + ExportScript.coProcessDACHighImportance = coroutine.create(ExportScript.ProcessDACHighImportance) + coStatus = coroutine.resume(ExportScript.coProcessDACHighImportance, lDevice) end + end - if ExportScript.FirstNewDataSend and ExportScript.FirstNewDataSendCount == 0 then - if ExportScript.Config.DACExport then - ExportScript.Tools.ResetChangeValuesDAC() - end - if ExportScript.Config.IkarusExport then - ExportScript.Tools.WriteToLog("reset fc ikarus") - ExportScript.Tools.ResetChangeValues() - end - ExportScript.FirstNewDataSend = false - else - ExportScript.FirstNewDataSendCount = ExportScript.FirstNewDataSendCount - 1 + if ExportScript.FirstNewDataSend and ExportScript.FirstNewDataSendCount == 0 then + if ExportScript.Config.DACExport then + ExportScript.Tools.ResetChangeValuesDAC() end + if ExportScript.Config.IkarusExport then + ExportScript.Tools.WriteToLog("reset fc ikarus") + ExportScript.Tools.ResetChangeValues() + end + ExportScript.FirstNewDataSend = false + else + ExportScript.FirstNewDataSendCount = ExportScript.FirstNewDataSendCount - 1 + end - --ExportScript.lastExportTimeHI = currentTime - ExportScript.lastExportTimeHI = ExportScript.lastExportTimeHI + ExportScript.Config.ExportInterval + --ExportScript.lastExportTimeHI = currentTime + ExportScript.lastExportTimeHI = ExportScript.lastExportTimeHI + ExportScript.Config.ExportInterval --end --if currentTime - ExportScript.lastExportTimeLI > ExportScript.Config.ExportLowTickInterval then - if ExportScript.lastExportTimeHI > ExportScript.Config.ExportLowTickInterval then + if ExportScript.lastExportTimeHI > ExportScript.Config.ExportLowTickInterval then if ExportScript.Config.IkarusExport then if ExportScript.Config.Debug then ExportScript.Tools.WriteToLog("run low importance export Ikarus") ExportScript.ProcessIkarusFCLowImportance() else - ExportScript.coProcessIkarusFCLowImportance = coroutine.create(ExportScript.ProcessIkarusFCLowImportance) - coStatus = coroutine.resume( ExportScript.coProcessIkarusFCLowImportance) + ExportScript.coProcessIkarusFCLowImportance = coroutine.create(ExportScript + .ProcessIkarusFCLowImportance) + coStatus = coroutine.resume(ExportScript.coProcessIkarusFCLowImportance) end end @@ -326,27 +346,27 @@ function ExportScript.Tools.ProcessOutput() ExportScript.ProcessDACLowImportance(lDevice) else ExportScript.coProcessDACLowImportance = coroutine.create(ExportScript.ProcessDACLowImportance) - coStatus = coroutine.resume( ExportScript.coProcessDACLowImportance, lDevice) + coStatus = coroutine.resume(ExportScript.coProcessDACLowImportance, lDevice) end end --ExportScript.lastExportTimeLI = currentTime - ExportScript.lastExportTimeHI = 0 + ExportScript.lastExportTimeHI = 0 end if ExportScript.Config.IkarusExport then ExportScript.Tools.FlushData() end - + if ExportScript.Config.DACExport then - for i=1, #ExportScript.Config.DAC, 1 do + for i = 1, #ExportScript.Config.DAC, 1 do ExportScript.Tools.FlushDataDAC(i) end end else -- No Module found if ExportScript.FoundNoModul then ExportScript.Tools.WriteToLog("No Module Found.") - ExportScript.Tools.SelectModule() -- point globals to Module functions and data. + ExportScript.Tools.SelectModule() -- point globals to Module functions and data. end end end @@ -357,14 +377,14 @@ function ExportScript.Tools.StrSplit(str, delim, maxNb) return { str } end if maxNb == nil or maxNb < 1 then - maxNb = 0 -- No limit + maxNb = 0 -- No limit end local lResult = {} - local lPat = "(.-)" .. delim .. "()" - local lNb = 0 + local lPat = "(.-)" .. delim .. "()" + local lNb = 0 local lLastPos for part, pos in string.gfind(str, lPat) do - -- for part, pos in string.gmatch(str, lPat) do -- Lua Version > 5.1 + -- for part, pos in string.gmatch(str, lPat) do -- Lua Version > 5.1 lNb = lNb + 1 lResult[lNb] = part lLastPos = pos @@ -393,20 +413,21 @@ function ExportScript.Tools.rtrim(s) while n > 0 and s:find("^%s", n) do n = n - 1 end return s:sub(1, n) end + -- The following more obvious implementation is generally not -- as efficient, particularly for long strings since Lua pattern matching -- starts at the left (though in special cases it is more efficient). -- Related discussion on p.197 of book "Beginning Lua Programming". --[[ -function ExportScript.Tools.rtrim(s) - return (s:gsub("%s*$", "")) +function ExportScript.Tools.rtrim(s) + return (s:gsub("%s*$", "")) end ]] -- substitute variables into string. -- Example: subst("a=$(a),b=$(b)", {a=1, b=2}) --> "a=1,b=2". function ExportScript.Tools.subst(s, t) - -- note: handle {a=false} substitution + -- note: handle {a=false} substitution s = s:gsub("%$%(([%w_]+)%)", function(name) local val = t[name] return val ~= nil and tostring(val) @@ -432,7 +453,7 @@ end -- Status Gathering Functions function ExportScript.Tools.ProcessArguments(device, arguments) - local lArgument , lFormat , lArgumentValue + local lArgument, lFormat, lArgumentValue local lCounter = 0 if ExportScript.Config.Debug then @@ -440,10 +461,11 @@ function ExportScript.Tools.ProcessArguments(device, arguments) end for lArgument, lFormat in pairs(arguments) do - lArgumentValue = string.format(lFormat,device:get_argument_value(lArgument)) + lArgumentValue = string.format(lFormat, device:get_argument_value(lArgument)) if ExportScript.Config.Debug then lCounter = lCounter + 1 - ExportScript.Tools.WriteToLog(lCounter..". ID: "..lArgument..", Fromat: "..lFormat..", Value: "..lArgumentValue) + ExportScript.Tools.WriteToLog(lCounter .. + ". ID: " .. lArgument .. ", Fromat: " .. lFormat .. ", Value: " .. lArgumentValue) end if ExportScript.Config.IkarusExport then ExportScript.Tools.SendData(lArgument, lArgumentValue) @@ -465,16 +487,16 @@ function ExportScript.Tools.SendData(id, value) return end if value == nil then - ExportScript.Tools.WriteToLog("Value for id "..id.." is nil") + ExportScript.Tools.WriteToLog("Value for id " .. id .. " is nil") return end - if string.len(value) > 3 and value == string.sub("-0.00000000",1, string.len(value)) then + if string.len(value) > 3 and value == string.sub("-0.00000000", 1, string.len(value)) then value = value:sub(2) end if ExportScript.LastData[id] == nil or ExportScript.LastData[id] ~= value then - local ldata = id .. "=" .. value + local ldata = id .. "=" .. value local ldataLen = string.len(ldata) if ldataLen + ExportScript.PacketSize > 576 then @@ -489,26 +511,27 @@ end -- Network Functions for DAC function ExportScript.Tools.SendDataDAC(id, value) - for hardware=1, #ExportScript.Config.DAC, 1 do + for hardware = 1, #ExportScript.Config.DAC, 1 do if id == nil then ExportScript.Tools.WriteToLog("Export id is nil") return end if value == nil then - ExportScript.Tools.WriteToLog("Value for id "..id.." is nil") + ExportScript.Tools.WriteToLog("Value for id " .. id .. " is nil") return - end + end if ExportScript.Config.DAC[hardware] == nil then - ExportScript.Tools.WriteToLog("unknown hardware ID '"..hardware.."' for value: '"..id.."="..value.."'") + ExportScript.Tools.WriteToLog("unknown hardware ID '" .. hardware .. "' for value: '" .. id .. + "=" .. value .. "'") return end - if string.len(value) > 3 and value == string.sub("-0.00000000",1, string.len(value)) then + if string.len(value) > 3 and value == string.sub("-0.00000000", 1, string.len(value)) then value = value:sub(2) end if ExportScript.LastDataDAC[hardware][id] == nil or ExportScript.LastDataDAC[hardware][id] ~= value then - local ldata = id .. "=" .. value + local ldata = id .. "=" .. value local ldataLen = string.len(ldata) if ldataLen + ExportScript.PacketSizeDAC[hardware] > 576 then @@ -549,73 +572,91 @@ end ]] function ExportScript.Tools.FlushData() - local lFlushData = ExportScript.socket.protect(function() - if #ExportScript.SendStrings > 0 then - local lES_SimID = "" - - lES_SimID = ExportScript.SimID - - local lPacket = lES_SimID .. table.concat(ExportScript.SendStrings, ExportScript.Config.IkarusSeparator) .. "\n" - --ExportScript.socket.try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.IkarusHost, ExportScript.Config.IkarusPort)) - local try = ExportScript.socket.newtry(function() ExportScript.UDPsender:close() ExportScript.Tools.createUDPSender() ExportScript.Tools.ResetChangeValues() end) - try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.IkarusHost, ExportScript.Config.IkarusPort)) - - if ExportScript.Config.SocketDebug then - ExportScript.Tools.WriteToLog("FlushData: send to host: "..ExportScript.Config.IkarusHost..", Port: "..ExportScript.Config.IkarusPort..", Data: "..lPacket) - end - - ExportScript.SendStrings = {} - ExportScript.PacketSize = 0 - else - if ExportScript.Config.SocketDebug then - ExportScript.Tools.WriteToLog("FlushData: nothing sent") - end - end - end) + local lFlushData = ExportScript.socket.protect(function() + if #ExportScript.SendStrings > 0 then + local lES_SimID = "" + + lES_SimID = ExportScript.SimID + + local lPacket = lES_SimID .. + table.concat(ExportScript.SendStrings, ExportScript.Config.IkarusSeparator) .. "\n" + --ExportScript.socket.try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.IkarusHost, ExportScript.Config.IkarusPort)) + local try = ExportScript.socket.newtry(function() + ExportScript.UDPsender:close() + ExportScript.Tools.createUDPSender() + ExportScript.Tools.ResetChangeValues() + end) + try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.IkarusHost, ExportScript.Config.IkarusPort)) + + if ExportScript.Config.SocketDebug then + ExportScript.Tools.WriteToLog("FlushData: send to host: " .. + ExportScript.Config.IkarusHost .. + ", Port: " .. ExportScript.Config.IkarusPort .. ", Data: " .. lPacket) + end - local ln, lerror = lFlushData() - if lerror ~= nil then - ExportScript.Tools.WriteToLog("FlushData protect: "..ExportScript.Tools.dump(ln)..", "..ExportScript.Tools.dump(lerror)) - end -end + ExportScript.SendStrings = {} + ExportScript.PacketSize = 0 + else + if ExportScript.Config.SocketDebug then + ExportScript.Tools.WriteToLog("FlushData: nothing sent") + end + end + end) + local ln, lerror = lFlushData() + if lerror ~= nil then + ExportScript.Tools.WriteToLog("FlushData protect: " .. + ExportScript.Tools.dump(ln) .. ", " .. ExportScript.Tools.dump(lerror)) + end +end function ExportScript.Tools.FlushDataDAC(hardware) hardware = hardware or 1 if ExportScript.Config.DAC[hardware] == nil then - ExportScript.Tools.WriteToLog("FlushDataDAC: unknown hardware ID '"..hardware.."'") + ExportScript.Tools.WriteToLog("FlushDataDAC: unknown hardware ID '" .. hardware .. "'") return end - local lFlushDataDAC = ExportScript.socket.protect(function() - if #ExportScript.SendStringsDAC[hardware] > 0 then - local lPacket = ExportScript.SimID .. table.concat(ExportScript.SendStringsDAC[hardware], ExportScript.Config.DAC[hardware].Separator) .. "\n" - --ExportScript.socket.try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.DAC[hardware].Host, ExportScript.Config.DAC[hardware].SendPort)) - local try = ExportScript.socket.newtry(function() ExportScript.UDPsender:close() ExportScript.Tools.createUDPSender() ExportScript.Tools.ResetChangeValuesDAC() end) - try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.DAC[hardware].Host, ExportScript.Config.DAC[hardware].SendPort)) - - if ExportScript.Config.SocketDebug then - ExportScript.Tools.WriteToLog("FlushDataDAC["..hardware.."]: send to host: "..ExportScript.Config.DAC[hardware].Host..", Port: "..ExportScript.Config.DAC[hardware].SendPort..", Data: "..lPacket) - end - - ExportScript.SendStringsDAC[hardware] = {} - ExportScript.PacketSizeDAC[hardware] = 0 - else - if ExportScript.Config.SocketDebug then - ExportScript.Tools.WriteToLog("FlushDataDAC["..hardware.."]: nothing sent") - end - end - end) + local lFlushDataDAC = ExportScript.socket.protect(function() + if #ExportScript.SendStringsDAC[hardware] > 0 then + local lPacket = ExportScript.SimID .. + table.concat(ExportScript.SendStringsDAC[hardware], ExportScript.Config.DAC[hardware].Separator) .. "\n" + --ExportScript.socket.try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.DAC[hardware].Host, ExportScript.Config.DAC[hardware].SendPort)) + local try = ExportScript.socket.newtry(function() + ExportScript.UDPsender:close() + ExportScript.Tools.createUDPSender() + ExportScript.Tools.ResetChangeValuesDAC() + end) + try(ExportScript.UDPsender:sendto(lPacket, ExportScript.Config.DAC[hardware].Host, + ExportScript.Config.DAC[hardware].SendPort)) + + if ExportScript.Config.SocketDebug then + ExportScript.Tools.WriteToLog("FlushDataDAC[" .. + hardware .. + "]: send to host: " .. + ExportScript.Config.DAC[hardware].Host .. + ", Port: " .. ExportScript.Config.DAC[hardware].SendPort .. ", Data: " .. lPacket) + end - local ln, lerror = lFlushDataDAC() - if lerror ~= nil then - ExportScript.Tools.WriteToLog("FlushDataDAC protect: "..ExportScript.Tools.dump(ln)..", "..ExportScript.Tools.dump(lerror)) - end + ExportScript.SendStringsDAC[hardware] = {} + ExportScript.PacketSizeDAC[hardware] = 0 + else + if ExportScript.Config.SocketDebug then + ExportScript.Tools.WriteToLog("FlushDataDAC[" .. hardware .. "]: nothing sent") + end + end + end) + + local ln, lerror = lFlushDataDAC() + if lerror ~= nil then + ExportScript.Tools.WriteToLog("FlushDataDAC protect: " .. + ExportScript.Tools.dump(ln) .. ", " .. ExportScript.Tools.dump(lerror)) + end end function ExportScript.Tools.ResetChangeValues() - ExportScript.LastData = {} + ExportScript.LastData = {} end function ExportScript.Tools.ResetChangeValuesDAC() @@ -625,35 +666,35 @@ function ExportScript.Tools.ResetChangeValuesDAC() end function ExportScript.Tools.SelectModule() - -- Select Module... + -- Select Module... ExportScript.FoundDCSModule = false ExportScript.FoundFCModule = false ExportScript.FoundNoModul = true - local lMyInfo = LoGetSelfData() - if lMyInfo == nil then -- End SelectModule, if don't selected a aircraft + local lMyInfo = LoGetSelfData() + if lMyInfo == nil then -- End SelectModule, if don't selected a aircraft return end if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("MyInfo: "..ExportScript.Tools.dump(lMyInfo)) + ExportScript.Tools.WriteToLog("MyInfo: " .. ExportScript.Tools.dump(lMyInfo)) end ExportScript.ModuleName = lMyInfo.Name - local lModuleName = ExportScript.ModuleName..".lua" + local lModuleName = ExportScript.ModuleName .. ".lua" local lModuleFile = "" ExportScript.FoundNoModul = false for file in lfs.dir(ExportScript.Config.ExportModulePath) do - if lfs.attributes(ExportScript.Config.ExportModulePath..file,"mode") == "file" then + if lfs.attributes(ExportScript.Config.ExportModulePath .. file, "mode") == "file" then if file == lModuleName then - lModuleFile = ExportScript.Config.ExportModulePath..file + lModuleFile = ExportScript.Config.ExportModulePath .. file end end end - ExportScript.Tools.WriteToLog("File Path: "..lModuleFile) + ExportScript.Tools.WriteToLog("File Path: " .. lModuleFile) if string.len(lModuleFile) > 1 then ExportScript.Tools.ResetChangeValuesDAC() @@ -662,7 +703,7 @@ function ExportScript.Tools.SelectModule() dofile(lModuleFile) if ExportScript.Config.DACExport then ExportScript.Tools.SendDataDAC("File", lMyInfo.Name) - for i=1, #ExportScript.Config.DAC, 1 do + for i = 1, #ExportScript.Config.DAC, 1 do ExportScript.Tools.FlushDataDAC(i) end end @@ -671,14 +712,14 @@ function ExportScript.Tools.SelectModule() ExportScript.Tools.SendData("File", lMyInfo.Name) end - ExportScript.Tools.WriteToLog("File '"..lModuleFile.."' loaded") - - ExportScript.Tools.WriteToLog("Version:") - for k,v in pairs(ExportScript.Version) do - ExportScript.Tools.WriteToLog(k..": "..v) - end + ExportScript.Tools.WriteToLog("File '" .. lModuleFile .. "' loaded") + + ExportScript.Tools.WriteToLog("Version:") + for k, v in pairs(ExportScript.Version) do + ExportScript.Tools.WriteToLog(k .. ": " .. v) + end - ExportScript.FirstNewDataSend = ExportScript.Config.FirstNewDataSend + ExportScript.FirstNewDataSend = ExportScript.Config.FirstNewDataSend ExportScript.FirstNewDataSendCount = ExportScript.Config.FirstNewDataSendCount if ExportScript.FoundDCSModule then @@ -687,7 +728,7 @@ function ExportScript.Tools.SelectModule() lCounter = lCounter + 1 end if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("ExportScript.ConfigEveryFrameArguments Count: "..lCounter) + ExportScript.Tools.WriteToLog("ExportScript.ConfigEveryFrameArguments Count: " .. lCounter) end if lCounter > 0 then ExportScript.EveryFrameArguments = ExportScript.ConfigEveryFrameArguments @@ -700,7 +741,7 @@ function ExportScript.Tools.SelectModule() lCounter = lCounter + 1 end if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog("ExportScript.ConfigArguments Count: "..lCounter) + ExportScript.Tools.WriteToLog("ExportScript.ConfigArguments Count: " .. lCounter) end if lCounter > 0 then ExportScript.Arguments = ExportScript.ConfigArguments @@ -713,21 +754,20 @@ function ExportScript.Tools.SelectModule() ExportScript.ProcessIkarusDCSLowImportance = ExportScript.ProcessIkarusDCSConfigLowImportance ExportScript.ProcessDACHighImportance = ExportScript.ProcessDACConfigHighImportance ExportScript.ProcessDACLowImportance = ExportScript.ProcessDACConfigLowImportance - elseif ExportScript.FoundFCModule then - ExportScript.ProcessIkarusFCHighImportance = ExportScript.ProcessIkarusFCHighImportanceConfig - ExportScript.ProcessIkarusFCLowImportance = ExportScript.ProcessIkarusFCLowImportanceConfig - ExportScript.ProcessDACHighImportance = ExportScript.ProcessDACConfigHighImportance - ExportScript.ProcessDACLowImportance = ExportScript.ProcessDACConfigLowImportance + ExportScript.ProcessIkarusFCHighImportance = ExportScript.ProcessIkarusFCHighImportanceConfig + ExportScript.ProcessIkarusFCLowImportance = ExportScript.ProcessIkarusFCLowImportanceConfig + ExportScript.ProcessDACHighImportance = ExportScript.ProcessDACConfigHighImportance + ExportScript.ProcessDACLowImportance = ExportScript.ProcessDACConfigLowImportance else - ExportScript.Tools.WriteToLog("Unknown Module Type: "..lMyInfo.Name) + ExportScript.Tools.WriteToLog("Unknown Module Type: " .. lMyInfo.Name) end if ExportScript.Config.IkarusExport then for Map, LatLong in pairs(ExportScript.Maps) do if lMyInfo.LatLongAlt.Lat > LatLong.Lat2 and lMyInfo.LatLongAlt.Lat < LatLong.Lat1 then if lMyInfo.LatLongAlt.Long > LatLong.Long1 and lMyInfo.LatLongAlt.Long < LatLong.Long2 then - ExportScript.Tools.WriteToLog("Detected Map: "..Map) + ExportScript.Tools.WriteToLog("Detected Map: " .. Map) ExportScript.Tools.SendData("Map", Map) break end @@ -736,7 +776,6 @@ function ExportScript.Tools.SelectModule() ExportScript.Tools.FlushData() end - else -- Unknown Module ExportScript.ProcessIkarusDCSHighImportance = ExportScript.ProcessIkarusDCSHighImportanceNoConfig ExportScript.ProcessIkarusDCSLowImportance = ExportScript.ProcessIkarusDCSLowImportanceNoConfig @@ -746,12 +785,12 @@ function ExportScript.Tools.SelectModule() ExportScript.ProcessDACLowImportance = ExportScript.ProcessDACLowImportanceNoConfig ExportScript.EveryFrameArguments = {} ExportScript.Arguments = {} - - ExportScript.Tools.WriteToLog("Version:") - for k,v in pairs(ExportScript.Version) do - ExportScript.Tools.WriteToLog(k..": "..v) - end - ExportScript.Tools.WriteToLog("Unknown Module Name: "..lMyInfo.Name) + + ExportScript.Tools.WriteToLog("Version:") + for k, v in pairs(ExportScript.Version) do + ExportScript.Tools.WriteToLog(k .. ": " .. v) + end + ExportScript.Tools.WriteToLog("Unknown Module Name: " .. lMyInfo.Name) end end @@ -759,45 +798,49 @@ end -- ExportScript.Tools.dump is similar to PHP function dump and show variables from type -- "nil, "number", "string", "boolean, "table", "function", "thread" and "userdata" function ExportScript.Tools.dump(var, depth) - depth = depth or 0 - if type(var) == "string" then - return 'string: "' .. var .. '"\n' - elseif type(var) == "nil" then - return 'nil\n' - elseif type(var) == "number" then - return 'number: "' .. var .. '"\n' - elseif type(var) == "boolean" then - return 'boolean: "' .. tostring(var) .. '"\n' - elseif type(var) == "function" then - if debug and debug.getinfo then - fcnname = tostring(var) - local info = debug.getinfo(var, "S") - if info.what == "C" then - return string.format('%q', fcnname .. ', C function') .. '\n' - else - if (string.sub(info.source, 1, 2) == [[./]]) then - return string.format('%q', fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')' .. info.source) ..'\n' - else - return string.format('%q', fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')') ..'\n' - end - end + depth = depth or 0 + if type(var) == "string" then + return 'string: "' .. var .. '"\n' + elseif type(var) == "nil" then + return 'nil\n' + elseif type(var) == "number" then + return 'number: "' .. var .. '"\n' + elseif type(var) == "boolean" then + return 'boolean: "' .. tostring(var) .. '"\n' + elseif type(var) == "function" then + if debug and debug.getinfo then + fcnname = tostring(var) + local info = debug.getinfo(var, "S") + if info.what == "C" then + return string.format('%q', fcnname .. ', C function') .. '\n' else - return 'a function\n' - end - elseif type(var) == "thread" then - return 'thread\n' - elseif type(var) == "userdata" then - return tostring(var)..'\n' - elseif type(var) == "table" then - depth = depth + 1 - out = "{\n" - for k,v in pairs(var) do - out = out .. (" "):rep(depth*4).. "["..k.."] = " .. ExportScript.Tools.dump(v, depth) + if (string.sub(info.source, 1, 2) == [[./]]) then + return string.format('%q', + fcnname .. + ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')' .. info.source) .. + '\n' + else + return string.format('%q', + fcnname .. ', defined in (' .. info.linedefined .. '-' .. info.lastlinedefined .. ')') .. '\n' end - return out .. (" "):rep((depth-1)*4) .. "}\n" + end else - return tostring(var) .. "\n" + return 'a function\n' + end + elseif type(var) == "thread" then + return 'thread\n' + elseif type(var) == "userdata" then + return tostring(var) .. '\n' + elseif type(var) == "table" then + depth = depth + 1 + out = "{\n" + for k, v in pairs(var) do + out = out .. (" "):rep(depth * 4) .. "[" .. k .. "] = " .. ExportScript.Tools.dump(v, depth) end + return out .. (" "):rep((depth - 1) * 4) .. "}\n" + else + return tostring(var) .. "\n" + end end -- round function for math libraray @@ -806,7 +849,7 @@ end -- method : ceil: Returns the smallest integer larger than or equal to number -- floor: Returns the smallest integer smaller than or equal to number function ExportScript.Tools.round(number, decimals, method) - if string.find(number, "%p" ) ~= nil then + if string.find(number, "%p") ~= nil then decimals = decimals or 0 local lFactor = 10 ^ decimals if (method == "ceil" or method == "floor") then @@ -814,7 +857,7 @@ function ExportScript.Tools.round(number, decimals, method) -- floor: Returns the smallest integer smaller than or equal to number return math[method](number * lFactor) / lFactor else - return tonumber(("%."..decimals.."f"):format(number)) + return tonumber(("%." .. decimals .. "f"):format(number)) end else return number @@ -827,24 +870,34 @@ end -- for example, see http://www.lua.org/manual/5.1/manual.html#5.4.1 function ExportScript.Tools.split(stringvalue, delimiter) result = {}; - for match in (stringvalue..delimiter):gmatch("(.-)"..delimiter) do + for match in (stringvalue .. delimiter):gmatch("(.-)" .. delimiter) do table.insert(result, match); end return result; end +-- This function turns a 'nil' value into an empty string. +-- Courtesy of https://github.com/pet333r/pw-dev_script +function ExportScript.Tools.coerce_nil_to_string(value) + if value == nil then + return "" + else + return value + end +end + -- the function checks whether the cockpit light should be activated in ikarus on the basis of the parameters -- functional parameters, a single ID, or a table with IDs function ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, ExportIDs) local TmpExportIDs = ExportIDs or 0 local TmpLight = false - + if type(mainPanelDevice) ~= "table" then return - end - + end + if type(TmpExportIDs) == "table" then - for key,value in pairs(TmpExportIDs) do + for key, value in pairs(TmpExportIDs) do if type(value) == "number" then if mainPanelDevice:get_argument_value(value) > 0.4 then TmpLight = true @@ -858,123 +911,125 @@ function ExportScript.Tools.IkarusCockpitLights(mainPanelDevice, ExportIDs) end if TmpLight then - ExportScript.Tools.SendData(2222, "1.0") -- Ikarus Cockpit Light on + ExportScript.Tools.SendData(2222, "1.0") -- Ikarus Cockpit Light on else - ExportScript.Tools.SendData(2222, "0.0") -- Ikarus Cockpit Light off + ExportScript.Tools.SendData(2222, "0.0") -- Ikarus Cockpit Light off end end -- The function returns a correctly formatted string with the given radio frequency. -- Frequency: MHz/KHz, format: e.g. "7.3" or "5.2", fill with leading zeros (default false), least value of frequency (default 0.025 (MHz)) function ExportScript.Tools.RoundFreqeuncy(Freqeuncy, Format, PrefixZeros, LeastValue) - local freqeuncy = Freqeuncy or 0.0 - local format = Format or "7.3" - local prefixzeros = PrefixZeros or false - local leastvalue = LeastValue or 0.025 - local tmpstring = "" - local tmp1, tmp2, tmp3, tmp4 = 0, 0, 0, 0 - - local from ,to = string.find(format, "%.") - tmp1 = string.sub(format, 0, to) - tmp2 = string.sub(format, to) - tmp1 = tonumber(string.sub(tmp1, string.find(tmp1, "%d+"))) - tmp2 = tonumber(string.sub(tmp2, string.find(tmp2, "%d+"))) - - local tmp3, tmp4 = math.modf(freqeuncy) - local bla3, bla4 = math.modf(tmp4 / leastvalue) - - tmpstring = (tmp3 + (bla3 * leastvalue )) - - tmpstring = string.format("%."..tmp2.."f", tmpstring) - --- while string.len(tmpstring) < tmp1 do --- tmpstring = " "..tmpstring --- end - - tmpstring = string.rep(" ", tmp1 - string.len(tmpstring))..tmpstring - - if prefixzeros then - tmpstring = string.gsub(tmpstring, " ", "0") - end + local freqeuncy = Freqeuncy or 0.0 + local format = Format or "7.3" + local prefixzeros = PrefixZeros or false + local leastvalue = LeastValue or 0.025 + local tmpstring = "" + local tmp1, tmp2, tmp3, tmp4 = 0, 0, 0, 0 + + local from, to = string.find(format, "%.") + tmp1 = string.sub(format, 0, to) + tmp2 = string.sub(format, to) + tmp1 = tonumber(string.sub(tmp1, string.find(tmp1, "%d+"))) + tmp2 = tonumber(string.sub(tmp2, string.find(tmp2, "%d+"))) + + local tmp3, tmp4 = math.modf(freqeuncy) + local bla3, bla4 = math.modf(tmp4 / leastvalue) + + tmpstring = (tmp3 + (bla3 * leastvalue)) + + tmpstring = string.format("%." .. tmp2 .. "f", tmpstring) + + -- while string.len(tmpstring) < tmp1 do + -- tmpstring = " "..tmpstring + -- end + + tmpstring = string.rep(" ", tmp1 - string.len(tmpstring)) .. tmpstring - return tmpstring + if prefixzeros then + tmpstring = string.gsub(tmpstring, " ", "0") + end + + return tmpstring end -- The function return a table with values of given indicator -- The value is retrievable via a named index. e.g. TmpReturn.txt_digits function ExportScript.Tools.getListIndicatorValue(IndicatorID) - local ListIindicator = list_indication(IndicatorID) - local TmpReturn = {} + local ListIindicator = list_indication(IndicatorID) + local TmpReturn = {} - if ExportScript.Config.Debug then - ExportScript.Tools.WriteToLog('list_indication('..IndicatorID..'): '..ExportScript.Tools.dump(ListIindicator)) - end - - if ListIindicator == "" then - return nil - end + if ExportScript.Config.Debug then + ExportScript.Tools.WriteToLog('list_indication(' .. IndicatorID .. '): ' .. + ExportScript.Tools.dump(ListIindicator)) + end - local ListindicatorMatch = ListIindicator:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n") - while true do - local Key, Value = ListindicatorMatch() - if not Key then - break - end - TmpReturn[Key] = Value - end + if ListIindicator == "" then + return nil + end - return TmpReturn + local ListindicatorMatch = ListIindicator:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n") + while true do + local Key, Value = ListindicatorMatch() + if not Key then + break + end + TmpReturn[Key] = Value + end + + return TmpReturn end -- The function format a given string for a display -- String: value for show in display, maxChars: Display size (default 5), LEFTorRIGHT: flush with left "l" or right "r" site (default "r") function ExportScript.Tools.DisplayFormat(String, maxChars, LEFTorRight, DAC) - local lString = String or "" - local lmaxChars = maxChars or 5 - local lLEFTorRight = LEFTorRight or "r" - local lDAC = DAC or false - local lTmpLen = 0 - local lRep = " " - - if lDAC then - lRep = "-" - end - - lString = ExportScript.utf8.sub(lString, 0, lmaxChars) - lTmpLen = ExportScript.utf8.len(lString) - - if lTmpLen < lmaxChars then - if string.lower(lLEFTorRight) == "l" then - lString = lString..string.rep(" ", lmaxChars - lTmpLen) - else - lString = string.rep(" ", lmaxChars - lTmpLen)..lString - end - end - - return lString + local lString = String or "" + local lmaxChars = maxChars or 5 + local lLEFTorRight = LEFTorRight or "r" + local lDAC = DAC or false + local lTmpLen = 0 + local lRep = " " + + if lDAC then + lRep = "-" + end + + lString = ExportScript.utf8.sub(lString, 0, lmaxChars) + lTmpLen = ExportScript.utf8.len(lString) + + if lTmpLen < lmaxChars then + if string.lower(lLEFTorRight) == "l" then + lString = lString .. string.rep(" ", lmaxChars - lTmpLen) + else + lString = string.rep(" ", lmaxChars - lTmpLen) .. lString + end + end + + return lString end function ExportScript.Tools.KeyInTable(Table, Key) - for key, value in pairs(Table) do - if key == Key then - return true - end - end - return false + for key, value in pairs(Table) do + if key == Key then + return true + end + end + return false end function ExportScript.Tools.ValueInTable(Table, Value) - for key, value in pairs(Table) do - if value == Value then - return true - end - end - return false + for key, value in pairs(Table) do + if value == Value then + return true + end + end + return false end -- Pointed to by ExportScript.ProcessIkarusDCSHighImportance, if the player aircraft is something else function ExportScript.ProcessIkarusDCSHighImportanceNoConfig(mainPanelDevice) end + -- Pointed to by ExportScript.ProcessIkarusDCSLowImportance, if the player aircraft is something else function ExportScript.ProcessIkarusDCSLowImportanceNoConfig(mainPanelDevice) end @@ -982,11 +1037,13 @@ end -- the player aircraft is a Flaming Cliffs or similar aircraft function ExportScript.ProcessIkarusFCHighImportanceNoConfig() end + function ExportScript.ProcessIkarusFCLowImportanceNoConfig() end -- Hardware exports function ExportScript.ProcessDACHighImportanceNoConfig(mainPanelDevice) end + function ExportScript.ProcessDACLowImportanceNoConfig(mainPanelDevice) end diff --git a/docu/Calculations/Mi-24P.csv b/docu/Calculations/Mi-24P.csv new file mode 100644 index 00000000..52f12374 --- /dev/null +++ b/docu/Calculations/Mi-24P.csv @@ -0,0 +1,844 @@ +Device (ID),Command ID,Element ID,Class Type,Arg ID,Value,Limit Min,Limit Max,Hints,, +ANTI_ICE_INTERFACE(60),3001,ROTOR-DEICER-AUTO-MAN-PTR,TUMB,109,-1,0,1,AntiIce AUTO/MANUAL,, +ANTI_ICE_INTERFACE(60),3001,ROTOR-DEICER-AUTO-MAN-PTR,TUMB,109,1,0,1,AntiIce AUTO/MANUAL,, +ANTI_ICE_INTERFACE(60),3002,ROTOR-DEICER-OFF-PTR,BTN,110,1,0,1,AntiIce OFF,, +ANTI_ICE_INTERFACE(60),3003,LEFT-ENG-HEATING-PTR,TUMB,113,-1,0,1,Left Engine AntiIce ON/OFF,, +ANTI_ICE_INTERFACE(60),3003,LEFT-ENG-HEATING-PTR,TUMB,113,1,0,1,Left Engine AntiIce ON/OFF,, +ANTI_ICE_INTERFACE(60),3004,RIGHT-ENG-HEATING-PTR,TUMB,112,-1,0,1,Right Engine AntiIce ON/OFF,, +ANTI_ICE_INTERFACE(60),3004,RIGHT-ENG-HEATING-PTR,TUMB,112,1,0,1,Right Engine AntiIce ON/OFF,, +ANTI_ICE_INTERFACE(60),3005,WINDSHIELD-DEICER-PTR,TUMB,111,-1,-1,1,Windshield Antiice LOW/OFF/HIGH,, +ANTI_ICE_INTERFACE(60),3005,WINDSHIELD-DEICER-PTR,TUMB,111,1,-1,1,Windshield Antiice LOW/OFF/HIGH,, +ANTI_ICE_INTERFACE(60),3006,WINDSHIELD-DEICER-OP-PTR,TUMB,675,-1,-1,1,Windshield Antiice LOW/OFF/HIGH,, +ANTI_ICE_INTERFACE(60),3006,WINDSHIELD-DEICER-OP-PTR,TUMB,675,1,-1,1,Windshield Antiice LOW/OFF/HIGH,, +ANTI_ICE_INTERFACE(60),3007,DEICER-KNOB-PTR,TUMB,114,-0.1,0,1,AC Voltmeter knob,, +ANTI_ICE_INTERFACE(60),3007,DEICER-KNOB-PTR,TUMB,114,0.1,0,1,AC Voltmeter knob,, +ARC_15_PANEL_O(48),3001,ARC-OP-VOLUME-PTR,LEV,634,0,0,1,ARC-15 Volume,, +ARC_15_PANEL_O(48),3002,ARC-OP-MODULATED-PTR,TUMB,635,-1,0,1,ARC-15 TLF/TLG,, +ARC_15_PANEL_O(48),3002,ARC-OP-MODULATED-PTR,TUMB,635,1,0,1,ARC-15 TLF/TLG,, +ARC_15_PANEL_O(48),3003,ARC-OP-MODE-PTR,TUMB,638,-0.115,0,0.345,ARC-15 mode OFF/COMPASS/ANT/FRAME,, +ARC_15_PANEL_O(48),3003,ARC-OP-MODE-PTR,TUMB,638,0.115,0,0.345,ARC-15 mode OFF/COMPASS/ANT/FRAME,, +ARC_15_PANEL_O(48),3004,ARC-OP-CH2-OUT-KNOB,TUMB,639,-0.058823529,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_O(48),3004,ARC-OP-CH2-OUT-KNOB,TUMB,639,0.058823529,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_O(48),3005,ARC-OP-CH2-CENTER-PTR,TUMB,640,-0.111111111,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_O(48),3005,ARC-OP-CH2-CENTER-PTR,TUMB,640,0.111111111,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_O(48),3006,ARC-OP-CH2-IN-PTR,TUMB,641,-0.05,0,0.95,ARC-15 Left Frequency,, +ARC_15_PANEL_O(48),3006,ARC-OP-CH2-IN-PTR,TUMB,641,0.05,0,0.95,ARC-15 Left Frequency,, +ARC_15_PANEL_O(48),3007,ARC-OP-CH1-OUT-KNOB,TUMB,642,-0.058823529,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_O(48),3007,ARC-OP-CH1-OUT-KNOB,TUMB,642,0.058823529,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_O(48),3008,ARC-OP-CH1-CENTER-PTR,TUMB,643,-0.111111111,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_O(48),3008,ARC-OP-CH1-CENTER-PTR,TUMB,643,0.111111111,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_O(48),3009,ARC-OP-CH1-IN-PTR,TUMB,644,-0.05,0,0.95,ARC-15 Right Frequency,, +ARC_15_PANEL_O(48),3009,ARC-OP-CH1-IN-PTR,TUMB,644,0.05,0,0.95,ARC-15 Right Frequency,, +ARC_15_PANEL_O(48),3010,ARC-OP-FRAME-PTR,BTN,633,1,0,1,ARC-15 Loop Button,, +ARC_15_PANEL_O(48),3011,ARC-OP-CHANNEL-PTR,TUMB,637,-1,0,1,ARC-15 1/2,, +ARC_15_PANEL_O(48),3011,ARC-OP-CHANNEL-PTR,TUMB,637,1,0,1,ARC-15 1/2,, +ARC_15_PANEL_O(48),3012,ARC-OP-AUTH-PTR,BTN,636,1,0,1,ARC-15 Control Button,, +ARC_15_PANEL_P(47),3001,ARC-VOLUME-PTR,LEV,459,0,0,1,ARC-15 Volume,, +ARC_15_PANEL_P(47),3002,ARC-MODULATED-PTR,TUMB,460,-1,0,1,ARC-15 TLF/TLG,, +ARC_15_PANEL_P(47),3002,ARC-MODULATED-PTR,TUMB,460,1,0,1,ARC-15 TLF/TLG,, +ARC_15_PANEL_P(47),3003,ARC-MODE-PTR,TUMB,463,-0.115,0,0.345,ARC-15 mode OFF/COMPASS/ANT/FRAME,, +ARC_15_PANEL_P(47),3003,ARC-MODE-PTR,TUMB,463,0.115,0,0.345,ARC-15 mode OFF/COMPASS/ANT/FRAME,, +ARC_15_PANEL_P(47),3004,ARC-CH2-OUT-KNOB,TUMB,464,-0.058823529,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_P(47),3004,ARC-CH2-OUT-KNOB,TUMB,464,0.058823529,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_P(47),3005,ARC-CH2-CENTER-PTR,TUMB,465,-0.111111111,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_P(47),3005,ARC-CH2-CENTER-PTR,TUMB,465,0.111111111,0,1,ARC-15 Left Frequency,, +ARC_15_PANEL_P(47),3006,ARC-CH2-IN-PTR,TUMB,466,-0.05,0,0.95,ARC-15 Left Frequency,, +ARC_15_PANEL_P(47),3006,ARC-CH2-IN-PTR,TUMB,466,0.05,0,0.95,ARC-15 Left Frequency,, +ARC_15_PANEL_P(47),3007,ARC-CH1-OUT-KNOB,TUMB,467,-0.058823529,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_P(47),3007,ARC-CH1-OUT-KNOB,TUMB,467,0.058823529,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_P(47),3008,ARC-CH1-CENTER-PTR,TUMB,468,-0.111111111,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_P(47),3008,ARC-CH1-CENTER-PTR,TUMB,468,0.111111111,0,1,ARC-15 Right Frequency,, +ARC_15_PANEL_P(47),3009,ARC-CH1-IN-PTR,TUMB,469,-0.05,0,0.95,ARC-15 Right Frequency,, +ARC_15_PANEL_P(47),3009,ARC-CH1-IN-PTR,TUMB,469,0.05,0,0.95,ARC-15 Right Frequency,, +ARC_15_PANEL_P(47),3010,ARC-FRAME-PTR,BTN,458,1,0,1,ARC-15 Loop Button,, +ARC_15_PANEL_P(47),3011,ARC-CHANNEL-PTR,TUMB,462,-1,0,1,ARC-15 1/2,, +ARC_15_PANEL_P(47),3011,ARC-CHANNEL-PTR,TUMB,462,1,0,1,ARC-15 1/2,, +ARC_15_PANEL_P(47),3012,ARC-AUTH-PTR,BTN,461,1,0,1,ARC-15 Control Button,, +ARC_U2(54),3001,ARC-U2-ON-OFF-PTR,TUMB,324,-1,0,1,ARC-U2 switcher On/Off,, +ARC_U2(54),3001,ARC-U2-ON-OFF-PTR,TUMB,324,1,0,1,ARC-U2 switcher On/Off,, +ARC_U2(54),3002,ARC-U2-FRAME-PTR,BTN,325,-1,-1,0,ARC-U2 switcher L–RAMKA-P,, +ARC_U2(54),3003,ARC-U2-FRAME-PTR,BTN,325,1,0,1,ARC-U2 switcher L–RAMKA-P,, +ARC_U2(54),3004,ARC-U2-SENS-PTR,TUMB,326,-1,0,1,ARC-U2 switcher sensitivity B-M,, +ARC_U2(54),3004,ARC-U2-SENS-PTR,TUMB,326,1,0,1,ARC-U2 switcher sensitivity B-M,, +ARC_U2(54),3005,ARC-U2-COMPASS-CONNECT-PTR,TUMB,327,-1,-1,1,ARC-U2 switcher COMPASS R-852–RADIOLINK–COMPASS R-828,, +ARC_U2(54),3005,ARC-U2-COMPASS-CONNECT-PTR,TUMB,327,1,-1,1,ARC-U2 switcher COMPASS R-852–RADIOLINK–COMPASS R-828,, +ASO_2V(9),3001,ASO2V-INTERV-PTR,TUMB,1008,-1,0,1,Interval,, +ASO_2V(9),3001,ASO2V-INTERV-PTR,TUMB,1008,1,0,1,Interval,, +ASO_2V(9),3002,ASO2V-SERIES-PTR,TUMB,965,-1,0,1,Serie,, +ASO_2V(9),3002,ASO2V-SERIES-PTR,TUMB,965,1,0,1,Serie,, +ASO_2V(9),3003,ASO2V-RESET-PTR,BTN,968,1,0,1,Launch Snars,, +ASO_2V(9),3004,ASO2V-LEFT-PTR,TUMB,969,-1,0,1,Left Side,, +ASO_2V(9),3004,ASO2V-LEFT-PTR,TUMB,969,1,0,1,Left Side,, +ASO_2V(9),3005,ASO2V-RIGHT-PTR,TUMB,970,-1,0,1,Right Side,, +ASO_2V(9),3005,ASO2V-RIGHT-PTR,TUMB,970,1,0,1,Right Side,, +ASO_2V(9),3006,ASO2V-SETS-PTR,TUMB,971,-0.1,0,0.3,Set I/II/III,, +ASO_2V(9),3006,ASO2V-SETS-PTR,TUMB,971,0.1,0,0.3,Set I/II/III,, +ASO_2V(9),3007,ASO-ON-PTR,BTN,847,1,0,1,Pilot Launch Snars,, +ASP_17V(16),3001,SIGHT-MAN-AUTO-PTR,TUMB,553,-0.5,0,0.5,Sight mode MANUAL/AUTO,, +ASP_17V(16),3001,SIGHT-MAN-AUTO-PTR,TUMB,553,0.5,0,0.5,Sight mode MANUAL/AUTO,, +ASP_17V(16),3002,SIGHT-SYNC-UNSYNC-PTR,TUMB,554,-0.5,0,0.5,Sight mode SYNC/ASYNC,, +ASP_17V(16),3002,SIGHT-SYNC-UNSYNC-PTR,TUMB,554,0.5,0,0.5,Sight mode SYNC/ASYNC,, +ASP_17V(16),3003,WEAP-DIST-MAN-AUTO-PTR,TUMB,515,-1,0,1,Sight distance MANUAL/AUTO,, +ASP_17V(16),3003,WEAP-DIST-MAN-AUTO-PTR,TUMB,515,1,0,1,Sight distance MANUAL/AUTO,, +ASP_17V(16),3004,WEAP-SIGHT-DIST-PTR,LEV,552,0,0,1,Sight Range Adjustment,, +ASP_17V(16),3005,SIGHT-VERT-KNOB-PTR,LEV,556,0,0,1,Sight Crosshair Vertical Adjustment,, +ASP_17V(16),3006,SIGHT-HOR-KNOB-PTR,LEV,566,0,0,1,Sight Crosshair Horizontal Adjustment,, +ASP_17V(16),3007,WEAP-SIGHT-RESET-PTR,BTN,528,1,0,1,Sight Resrt Crosshair,, +ASP_17V(16),3008,SIGHT-BASE-KNOB-PTR,LEV,557,0,0,1,Sight Base and Range Adjustment,, +ASP_17V(16),3009,SIGHT-CONTROL-PTR,BTN,570,1,0,1,Sight Control,, +ASP_17V(16),3010,SIGHT-GRID-BRIGHNTNESS-KNOB-PTR,LEV,567,0,0,1,Sight Grid Brightness Adjustment,, +ASP_17V(16),3011,SIGHT-CROSSHAIR-BRIGHNTNESS-KNOB-PTR,LEV,564,0,0,1,Sight Crosshair Brightness Adjustment,, +ASP_17V(16),3012,SIGHT-GRID-BACKUP-PTR,TUMB,569,-1,0,1,Sight Grid Lamp MAIN/BACKUP,, +ASP_17V(16),3012,SIGHT-GRID-BACKUP-PTR,TUMB,569,1,0,1,Sight Grid Lamp MAIN/BACKUP,, +ASP_17V(16),3013,SIGHT-CROSSHAIR-BACKUP-PTR,TUMB,568,-1,0,1,Sight Crosshair Lamp MAIN/BACKUP,, +ASP_17V(16),3013,SIGHT-CROSSHAIR-BACKUP-PTR,TUMB,568,1,0,1,Sight Crosshair Lamp MAIN/BACKUP,, +ASP_17V(16),3014,WEAP-SIGHT-ON-PFF-PTR,TUMB,529,-1,0,1,Sight Power ON/OFF,, +ASP_17V(16),3014,WEAP-SIGHT-ON-PFF-PTR,TUMB,529,1,0,1,Sight Power ON/OFF,, +ASP_17V(16),3015,WEAP-DISTR-POWER-OP-PTR,TUMB,761,-1,0,1,USR power,, +ASP_17V(16),3015,WEAP-DISTR-POWER-OP-PTR,TUMB,761,1,0,1,USR power,, +ASP_17V(16),3016,WEAP-DISTR-CONTROL-OP-PTR,TUMB,762,-1,-1,1,USR check,, +ASP_17V(16),3016,WEAP-DISTR-CONTROL-OP-PTR,TUMB,762,1,-1,1,USR check,, +ASP_17V(16),3045,ILS-ADJUST-HANDLE-PTR,TUMB,1005,0,0,1,Sight reflector control,, +ASP_17V(16),3046,ILS-ADJUST-HANDLE-PTR,LEV,1006,0,0,1,Sight reflector control,, +AUTOPILOT(10),3001,SAU-K-ON-PTR,BTN,243,1,0,1,Autopilot K Channel ON,, +AUTOPILOT(10),3003,SAU-K-OFF-PTR,BTN,242,1,0,1,Autopilot K Channel OFF,, +AUTOPILOT(10),3005,SAU-H-ON-PTR,BTN,237,1,0,1,Autopilot H Channel ON,, +AUTOPILOT(10),3007,SAU-H-OFF-PTR,BTN,236,1,0,1,Autopilot H Channel OFF,, +AUTOPILOT(10),3009,SAU-T-ON-PTR,BTN,249,1,0,1,Autopilot T Channel ON,, +AUTOPILOT(10),3011,SAU-T-OFF-PTR,BTN,248,1,0,1,Autopilot T Channel OFF,, +AUTOPILOT(10),3013,SAU-B-ON-PTR,BTN,255,1,0,1,Autopilot B Channel ON,, +AUTOPILOT(10),3015,SAU-B-OFF-PTR,BTN,254,1,0,1,Autopilot B Channel OFF,, +AUTOPILOT(10),3017,SAU-B-SWITCH-PTR,BTN,253,1,0,1,Autopilot Altitude Control,, +AUTOPILOT(10),3019,SAU-B-SWITCH-PTR,BTN,253,-1,-1,0,Autopilot Altitude Control,, +AUTOPILOT(10),3021,SAU-K-KNOB-PTR,LEV,240,0,0,1,Autopilot K Channel Delta Correction,, +AUTOPILOT(10),3023,SAU-H-KNOB-PTR,LEV,234,0,0,1,Autopilot H Channel Delta Correction,, +AUTOPILOT(10),3025,SAU-T-KNOB-PTR,LEV,246,0,0,1,Autopilot T Channel Delta Correction,, +AUTOPILOT(10),3027,STICK-TRIMMER-PTR,BTN,742,1,0,1,Autopilot Trimmer Button,, +AUTOPILOT(10),3028,OP-STICK-TRIMMER-PTR,BTN,855,1,0,1,Autopilot Trimmer Button,, +AUTOPILOT(10),3030,SAU-AZ-PTR,LEV,262,1,0,1,Autopilot Route Azimuth,, +AUTOPILOT(10),3032,SAU-HEIGHT-ON-PTR,BTN,258,1,0,1,Autopilot Altitude Mode ON,, +AUTOPILOT(10),3034,SAU-HEIGHT-OFF-PTR,BTN,257,1,0,1,Autopilot Altitude Mode OFF,, +AUTOPILOT(10),3036,SAU-HOVER-ON-PTR,BTN,259,1,0,1,Autopilot Hover Mode ON,, +AUTOPILOT(10),3038,SAU-ROUTE-ON-PTR,BTN,261,1,0,1,Autopilot Route Mode ON,, +AUTOPILOT(10),3040,SAU-HOVER-ROUTE-OFF-PTR,BTN,260,1,0,1,Autopilot Route and Hover Modes OFF,, +AUTOPILOT(10),3042,SAU-SPEED-ON-PTR,BTN,268,1,0,1,Autopilot Speed Stabilization ON,, +AUTOPILOT(10),3044,SAU-SPEED-OFF-PTR,BTN,269,1,0,1,Autopilot Speed Stabilization OFF,, +AUTOPILOT(10),3070,SAU-BRIGHT-DIM-PTR,TUMB,267,-1,0,1,Buttons Lighting BRIGHT/DIM,, +AUTOPILOT(10),3070,SAU-BRIGHT-DIM-PTR,TUMB,267,1,0,1,Buttons Lighting BRIGHT/DIM,, +BAROALT_O(42),3001,ALTIMETER-KNOB-OP-PTR,LEV,788,1,0,1,Operator Baro Pressure Knob,, +BAROALT_P(41),3001,ALTIMETER-KNOB-PTR,LEV,18,1,0,1,Baro Pressure Knob,, +CLOCK_O(36),3001,CLOCK-LEFT-OP-PTR,BTN,687,1,0,1,Mech clock left lever,, +CLOCK_O(36),3002,CLOCK-LEFT-OP-PTR,BTN,687,-1,-1,0,Mech clock left lever,, +CLOCK_O(36),3003,CLOCK-LEFT-OP-PTR,LEV,688,1,0,1,Mech clock left lever,, +CLOCK_O(36),3004,CLOCK-RIGHT-OP-PTR,BTN,693,1,0,1,Mech clock right lever,, +CLOCK_O(36),3005,CLOCK-RIGHT-OP-PTR,LEV,694,0.05,-0.15,0.15,Mech clock right lever,, +CLOCK_P(35),3001,CLOCK-LEFT-PTR,BTN,57,1,0,1,Mech clock left lever,, +CLOCK_P(35),3002,CLOCK-LEFT-PTR,BTN,57,-1,-1,0,Mech clock left lever,, +CLOCK_P(35),3003,CLOCK-LEFT-PTR,LEV,58,1,0,1,Mech clock left lever,, +CLOCK_P(35),3004,CLOCK-RIGHT-PTR,BTN,59,1,0,1,Mech clock right lever,, +CLOCK_P(35),3005,CLOCK-RIGHT-PTR,LEV,60,0.05,-0.15,0.15,Mech clock right lever,, +CPT_MECH(11),3001,LANDING-GEAR-PTR,TUMB,232,0,0,1,Gear Lever, UP/DOWN, +CPT_MECH(11),3001,LANDING-GEAR-PTR,TUMB,232,1,0,1,Gear Lever, UP/DOWN, +CPT_MECH(11),3002,LANDING-GEAR-LOCK-PTR,TUMB,228,0,0,1,Gear Lever Lock, UP/DOWN, +CPT_MECH(11),3002,LANDING-GEAR-LOCK-PTR,TUMB,228,1,0,1,Gear Lever Lock, UP/DOWN, +CPT_MECH(11),3003,LANDING-GEAR-LIGHTS-PTR,TUMB,224,-1,0,1,Gear Indication Lights ON/OFF,, +CPT_MECH(11),3003,LANDING-GEAR-LIGHTS-PTR,TUMB,224,1,0,1,Gear Indication Lights ON/OFF,, +CPT_MECH(11),3004,LANDING-GEAR-LIGHTS-COVER-PTR,TUMB,223,-1,0,1,Gear Indication Lights Cover UP/DOWN,, +CPT_MECH(11),3004,LANDING-GEAR-LIGHTS-COVER-PTR,TUMB,223,1,0,1,Gear Indication Lights Cover UP/DOWN,, +CPT_MECH(11),3005,LANDING-GEAR-OP-PTR,TUMB,677,-1,0,1,Operator Gear Switch, UP/DOWN, +CPT_MECH(11),3005,LANDING-GEAR-OP-PTR,TUMB,677,1,0,1,Operator Gear Switch, UP/DOWN, +CPT_MECH(11),3006,LANDING-GEAR-OP-COVER-PTR,TUMB,676,-1,0,1,Operator Gear Switch Cover, UP/DOWN, +CPT_MECH(11),3006,LANDING-GEAR-OP-COVER-PTR,TUMB,676,1,0,1,Operator Gear Switch Cover, UP/DOWN, +CPT_MECH(11),3007,LANDING-GEAR-EMER-PTR,TUMB,827,0,0,1,Emeregency Gear Lever,, +CPT_MECH(11),3007,LANDING-GEAR-EMER-PTR,TUMB,827,1,0,1,Emeregency Gear Lever,, +CPT_MECH(11),3012,DUAS-V-HEATING-OP-PTR,TUMB,763,-1,0,1,Heating DUAS, ON/OFF, +CPT_MECH(11),3012,DUAS-V-HEATING-OP-PTR,TUMB,763,1,0,1,Heating DUAS, ON/OFF, +CPT_MECH(11),3013,CLOCK-HEATING-OP-PTR,TUMB,672,-1,0,1,Clock Heating Switch, ON/OFF, +CPT_MECH(11),3013,CLOCK-HEATING-OP-PTR,TUMB,672,1,0,1,Clock Heating Switch, ON/OFF, +CPT_MECH(11),3015,WIPER-SPRINKLER-PTR,BTN,384,1,0,1,Window Sprayer Button,, +CPT_MECH(11),3016,WIPER-SPRINKLER-OP-PTR,BTN,680,1,0,1,Operator Window Sprayer Button,, +CPT_MECH(11),3017,CANOPY-HANDLE-PTR,TUMB,8,0,0,1,Pilot Door Safety Lock, OPEN/CLOSE, +CPT_MECH(11),3017,CANOPY-HANDLE-PTR,TUMB,8,1,0,1,Pilot Door Safety Lock, OPEN/CLOSE, +CPT_MECH(11),3018,CANOPY-HANDLE-SAFETY-PTR,BTN,189,1,0,1,Pilot Door Safety Lock Button,, +CPT_MECH(11),3019,CANOPY-HANDLE-OP-PTR,TUMB,848,0,0,1,Operator Lock Canopy, OPEN/CLOSE, +CPT_MECH(11),3019,CANOPY-HANDLE-OP-PTR,TUMB,848,1,0,1,Operator Lock Canopy, OPEN/CLOSE, +CPT_MECH(11),3020,WIPER-MODE-PTR-HISPEED,TUMB,418,0.25,0.25,0.25,Windscreen Wiper Control Switch, SPEED 2, +CPT_MECH(11),3020,WIPER-MODE-PTR-LOWSPEED,TUMB,418,0.15,0.15,0.15,Windscreen Wiper Control Switch, SPEED 1, +CPT_MECH(11),3020,WIPER-MODE-PTR-OFF,TUMB,418,0,0,0,Windscreen Wiper Control Switch, OFF, +CPT_MECH(11),3020,WIPER-MODE-PTR-RESET,BTN,418,0.35,0,0.35,Windscreen Wiper Control Switch, RESET, +CPT_MECH(11),3020,WIPER-MODE-PTR-START,TUMB,418,0.05,0.05,0.05,Windscreen Wiper Control Switch, START, +CPT_MECH(11),3021,WIPER-MODE-OP-PTR-HISPEED,TUMB,674,0.25,0.25,0.25,Windscreen Wiper Control Switch, SPEED 2, +CPT_MECH(11),3021,WIPER-MODE-OP-PTR-LOWSPEED,TUMB,674,0.15,0.15,0.15,Windscreen Wiper Control Switch, SPEED 1, +CPT_MECH(11),3021,WIPER-MODE-OP-PTR-OFF,TUMB,674,0,0,0,Windscreen Wiper Control Switch, OFF, +CPT_MECH(11),3021,WIPER-MODE-OP-PTR-RESET,BTN,674,0.35,0,0.35,Windscreen Wiper Control Switch, RESET, +CPT_MECH(11),3021,WIPER-MODE-OP-PTR-START,TUMB,674,0.05,0.05,0.05,Windscreen Wiper Control Switch, START, +CPT_MECH(11),3024,FAN-PTR,TUMB,420,-1,0,1,Pilot Fan, ON/OFF, +CPT_MECH(11),3024,FAN-PTR,TUMB,420,1,0,1,Pilot Fan, ON/OFF, +CPT_MECH(11),3025,FAN-OP-PTR,TUMB,665,-1,0,1,Operator Fan, ON/OFF, +CPT_MECH(11),3025,FAN-OP-PTR,TUMB,665,1,0,1,Operator Fan, ON/OFF, +CPT_MECH(11),3026,STICK-BRAKE-PTR,BTN,737,1,0,1,Wheel Brakes Handle,, +CPT_MECH(11),3027,STICK-BRAKE-FIX-PTR,TUMB,736,-1,0,1,Parking Brake Handle,, +CPT_MECH(11),3027,STICK-BRAKE-FIX-PTR,TUMB,736,1,0,1,Parking Brake Handle,, +CPT_MECH(11),3028,COLLECTIVE-FRICT-PTR,BTN,753,1,0,1,friction clutch of the collective,, +CPT_MECH(11),3029,EASTER_PILOT,BTN,0,1,0,1,Cockpit Fan - Touch,, +CPT_MECH(11),3030,EASTER_OP,BTN,0,1,0,1,Cockpit Fan - Touch,, +CPT_MECH(11),3031,PTR-STICK-HIDE-974,TUMB,974,-1,0,1,Hide Stick toggle,, +CPT_MECH(11),3031,PTR-STICK-HIDE-974,TUMB,974,1,0,1,Hide Stick toggle,, +CPT_MECH(11),3040,CONTROL-TRIMMER-OP-PTR,TUMB,671,-1,0,1,Autopilot Trimmer for yourself ,, +CPT_MECH(11),3040,CONTROL-TRIMMER-OP-PTR,TUMB,671,1,0,1,Autopilot Trimmer for yourself ,, +CPT_MECH(11),3041,CONTROL-TRIMMER-OP-COVER-PTR,TUMB,670,-1,0,1,Autopilot Trimmer for yourself Switch Cover, UP/DOWN, +CPT_MECH(11),3041,CONTROL-TRIMMER-OP-COVER-PTR,TUMB,670,1,0,1,Autopilot Trimmer for yourself Switch Cover, UP/DOWN, +DISS_15(8),3001,DISS-ON-OFF-PTR,TUMB,371,-1,0,1,DISS-15D ON/OFF,, +DISS_15(8),3001,DISS-ON-OFF-PTR,TUMB,371,1,0,1,DISS-15D ON/OFF,, +DISS_15(8),3002,DVS-DISS-PTR,TUMB,370,-1,0,1,Airspeed to DISS ON/OFF,, +DISS_15(8),3002,DVS-DISS-PTR,TUMB,370,1,0,1,Airspeed to DISS ON/OFF,, +DISS_15(8),3003,PTR-DISS-BTN-OFF,BTN,818,1,0,1,DISS coordinates OFF,, +DISS_15(8),3004,PTR-DISS-BTN-ON,BTN,819,1,0,1,DISS coordinates ON,, +DISS_15(8),3005,PTR-DISS-BTN-MINUS,BTN,815,1,0,1,DISS decrease map angle,, +DISS_15(8),3006,PTR-DISS-BTN-PLUS,BTN,816,1,0,1,DISS increase map angle,, +DISS_15(8),3007,PTR-DISS-BTN-N,BTN,809,1,0,1,DISS decrease path,, +DISS_15(8),3008,PTR-DISS-BTN-V,BTN,810,1,0,1,DISS increase path,, +DISS_15(8),3009,PTR-DISS-BTN-TOLE,BTN,803,1,0,1,DISS decrease deviation,, +DISS_15(8),3010,PTR-DISS-BTN-TORI,BTN,804,1,0,1,DISS increase deviation,, +DISS_15(8),3011,DRIFT-R-K-PTR,TUMB,797,-1,0,1,DISS Mode WORK/CHECK,, +DISS_15(8),3011,DRIFT-R-K-PTR,TUMB,797,1,0,1,DISS Mode WORK/CHECK,, +DISS_15(8),3012,DRIFT-S-M-PTR,TUMB,798,-1,0,1,DISS Mode LAND/SEA,, +DISS_15(8),3012,DRIFT-S-M-PTR,TUMB,798,1,0,1,DISS Mode LAND/SEA,, +DISS_15(8),3013,DISS-SELECTOR-KNOB-PTR,TUMB,826,-0.1,0,0.4,DISS select mode IDK/IDK/IDK/MEM/OPER,, +DISS_15(8),3013,DISS-SELECTOR-KNOB-PTR,TUMB,826,0.1,0,0.4,DISS select mode IDK/IDK/IDK/MEM/OPER,, +ECS_INTERFACE(29),3001,CABIN-DEPRESS-PTR,TUMB,133,-1,0,1,Cabin Unseal Switch, ON/OFF, +ECS_INTERFACE(29),3001,CABIN-DEPRESS-PTR,TUMB,133,1,0,1,Cabin Unseal Switch, ON/OFF, +ECS_INTERFACE(29),3002,AC-MODE-PTR,TUMB,134,-1,-1,1,Blowdown Conditioning Switch, CONDITIONING/OFF/BLOWDOWN, +ECS_INTERFACE(29),3002,AC-MODE-PTR,TUMB,134,1,-1,1,Blowdown Conditioning Switch, CONDITIONING/OFF/BLOWDOWN, +ECS_INTERFACE(29),3003,AC-FILTER-PTR,TUMB,143,-1,0,1,Filter Switch, ON/OFF, +ECS_INTERFACE(29),3003,AC-FILTER-PTR,TUMB,143,1,0,1,Filter Switch, ON/OFF, +ECS_INTERFACE(29),3004,AC-HEATER1-MODE-PTR,TUMB,144,-1,0,1,Heating Switch, HOT/NORMAL, +ECS_INTERFACE(29),3004,AC-HEATER1-MODE-PTR,TUMB,144,1,0,1,Heating Switch, HOT/NORMAL, +ECS_INTERFACE(29),3005,AC-HEATER2-MODE-PTR,TUMB,145,-0.1,0,0.3,Automatic Hot Cold Switch, OFF/COLD/HOT/AUTO, +ECS_INTERFACE(29),3005,AC-HEATER2-MODE-PTR,TUMB,145,0.1,0,0.3,Automatic Hot Cold Switch, OFF/COLD/HOT/AUTO, +ECS_INTERFACE(29),3006,AC-TEMP-KNOB-PTR,TUMB,146,-0.111111111,0,1.111111111,Temperature Selector, 5/10/15/18/20/22/24/30/35/40/50, +ECS_INTERFACE(29),3006,AC-TEMP-KNOB-PTR,TUMB,146,0.111111111,0,1.111111111,Temperature Selector, 5/10/15/18/20/22/24/30/35/40/50, +ECS_INTERFACE(29),3007,WEAP-MISSILES-SIGHT-FAN-OP-PTR,TUMB,774,-1,0,1,Sight Fan, ON/OFF, +ECS_INTERFACE(29),3007,WEAP-MISSILES-SIGHT-FAN-OP-PTR,TUMB,774,1,0,1,Sight Fan, ON/OFF, +ECS_INTERFACE(29),3008,CABIN-PRESS-VALVE-PTR,LEV,516,0,0,1,Sealing, OPEN/CLOSE, +ELEC_INTERFACE(1),3001,GROUND-AC-PTR,TUMB,87,-1,0,1,AC Ground Power, ON/OFF, +ELEC_INTERFACE(1),3001,GROUND-AC-PTR,TUMB,87,1,0,1,AC Ground Power, ON/OFF, +ELEC_INTERFACE(1),3004,GEN-LEFT-PTR,TUMB,101,-1,0,1,Left Generator switch, ON/OFF, +ELEC_INTERFACE(1),3004,GEN-LEFT-PTR,TUMB,101,1,0,1,Left Generator switch, ON/OFF, +ELEC_INTERFACE(1),3007,GEN-RIGHT-PTR,TUMB,80,-1,0,1,Right Generator switch, ON/OFF, +ELEC_INTERFACE(1),3007,GEN-RIGHT-PTR,TUMB,80,1,0,1,Right Generator switch, ON/OFF, +ELEC_INTERFACE(1),3010,TRANS115-PTR,TUMB,83,-1,-1,1,AC Transformer 115v, MAIN/AUTO/BACKUP, +ELEC_INTERFACE(1),3010,TRANS115-PTR,TUMB,83,1,-1,1,AC Transformer 115v, MAIN/AUTO/BACKUP, +ELEC_INTERFACE(1),3013,TRANS36-PTR,TUMB,85,-1,-1,1,AC Transformer 36v, MAIN/AUTO/BACKUP, +ELEC_INTERFACE(1),3013,TRANS36-PTR,TUMB,85,1,-1,1,AC Transformer 36v, MAIN/AUTO/BACKUP, +ELEC_INTERFACE(1),3016,GROUND-RECT-PTR,TUMB,89,-1,0,1,AC Ground Check, ON/OFF, +ELEC_INTERFACE(1),3016,GROUND-RECT-PTR,TUMB,89,1,0,1,AC Ground Check, ON/OFF, +ELEC_INTERFACE(1),3019,INV115-PTR,TUMB,98,-1,0,1,Inverter PO-750A, ON/OFF, +ELEC_INTERFACE(1),3019,INV115-PTR,TUMB,98,1,0,1,Inverter PO-750A, ON/OFF, +ELEC_INTERFACE(1),3022,INV36-PTR,TUMB,100,-1,0,1,Inverter PT-125Ts, ON/OFF, +ELEC_INTERFACE(1),3022,INV36-PTR,TUMB,100,1,0,1,Inverter PT-125Ts, ON/OFF, +ELEC_INTERFACE(1),3025,VOLT-AC-KNOB-PTR,TUMB,91,-0.1,0,1,AC Voltmeter knob,, +ELEC_INTERFACE(1),3025,VOLT-AC-KNOB-PTR,TUMB,91,0.1,0,1,AC Voltmeter knob,, +ELEC_INTERFACE(1),3028,TRANS-DIM-PTR,TUMB,196,-1,0,1,DIM Transformer switch, MAIN/BACKUP, +ELEC_INTERFACE(1),3028,TRANS-DIM-PTR,TUMB,196,1,0,1,DIM Transformer switch, MAIN/BACKUP, +ELEC_INTERFACE(1),3031,GROUND-DC-PTR,TUMB,73,-1,0,1,DC Ground Power, ON/OFF, +ELEC_INTERFACE(1),3031,GROUND-DC-PTR,TUMB,73,1,0,1,DC Ground Power, ON/OFF, +ELEC_INTERFACE(1),3034,BATT-LEFT-PTR,TUMB,75,-1,0,1,Left Battery switch, ON/OFF, +ELEC_INTERFACE(1),3034,BATT-LEFT-PTR,TUMB,75,1,0,1,Left Battery switch, ON/OFF, +ELEC_INTERFACE(1),3037,BATT-RIGHT-PTR,TUMB,61,-1,0,1,Right Battery switch, ON/OFF, +ELEC_INTERFACE(1),3037,BATT-RIGHT-PTR,TUMB,61,1,0,1,Right Battery switch, ON/OFF, +ELEC_INTERFACE(1),3040,RECT-LEFT-PTR,TUMB,62,-1,0,1,Left Rectifier switch, ON/OFF, +ELEC_INTERFACE(1),3040,RECT-LEFT-PTR,TUMB,62,1,0,1,Left Rectifier switch, ON/OFF, +ELEC_INTERFACE(1),3043,RECT-RIGHT-PTR,TUMB,65,-1,0,1,Right Rectifier switch, ON/OFF, +ELEC_INTERFACE(1),3043,RECT-RIGHT-PTR,TUMB,65,1,0,1,Right Rectifier switch, ON/OFF, +ELEC_INTERFACE(1),3046,STARTER-GEN-PTR,TUMB,66,-1,0,1,APU Generator switch, ON/OFF, +ELEC_INTERFACE(1),3046,STARTER-GEN-PTR,TUMB,66,1,0,1,APU Generator switch, ON/OFF, +ELEC_INTERFACE(1),3049,BATT-HEATING-PTR,TUMB,74,-1,0,1,Battery Heating, ON/OFF, +ELEC_INTERFACE(1),3049,BATT-HEATING-PTR,TUMB,74,1,0,1,Battery Heating, ON/OFF, +ELEC_INTERFACE(1),3052,NET-TO-BATT-PTR,TUMB,71,-1,0,1,Network to Batteries, ON/OFF, +ELEC_INTERFACE(1),3052,NET-TO-BATT-PTR,TUMB,71,1,0,1,Network to Batteries, ON/OFF, +ELEC_INTERFACE(1),3055,VOLT-DC-KNOB-PTR,TUMB,69,-0.111111111,0,1,DC Voltmeter knob,, +ELEC_INTERFACE(1),3055,VOLT-DC-KNOB-PTR,TUMB,69,0.111111111,0,1,DC Voltmeter knob,, +ELEC_INTERFACE(1),3058,GROUND-RECT-COVER-PTR,TUMB,88,-1,0,1,AC Ground Check Cover, UP/DOWN, +ELEC_INTERFACE(1),3058,GROUND-RECT-COVER-PTR,TUMB,88,1,0,1,AC Ground Check Cover, UP/DOWN, +ELEC_INTERFACE(1),3061,INV115-COVER-PTR,TUMB,97,-1,0,1,Inverter PO-750A Cover, UP/DOWN, +ELEC_INTERFACE(1),3061,INV115-COVER-PTR,TUMB,97,1,0,1,Inverter PO-750A Cover, UP/DOWN, +ELEC_INTERFACE(1),3064,INV36-COVER-PTR,TUMB,99,-1,0,1,Inverter PT-125Ts Cover, UP/DOWN, +ELEC_INTERFACE(1),3064,INV36-COVER-PTR,TUMB,99,1,0,1,Inverter PT-125Ts Cover, UP/DOWN, +ELEC_INTERFACE(1),3067,NET-TO-BATT-COVER-PTR,TUMB,70,-1,0,1,Network to Batteries cover, UP/DOWN, +ELEC_INTERFACE(1),3067,NET-TO-BATT-COVER-PTR,TUMB,70,1,0,1,Network to Batteries cover, UP/DOWN, +ELEC_INTERFACE(1),3070,CB-FRAME-LEFT-1-PTR,BTN,601,1,0,1,All Left CBs ON,, +ELEC_INTERFACE(1),3072,CB-FRAME-RIGHT-1-PTR,BTN,632,1,0,1,All Right CBs ON,, +ELEC_INTERFACE(1),3074,CB-RIGHT-CONTROL-FORCE-MECHANISM-PTR,TUMB,602,-1,0,1,CB Control Force Grad, ON/OFF, +ELEC_INTERFACE(1),3074,CB-RIGHT-CONTROL-FORCE-MECHANISM-PTR,TUMB,602,1,0,1,CB Control Force Grad, ON/OFF, +ELEC_INTERFACE(1),3075,CB-RIGHT-CONTROL-CLUTCH-PTR,TUMB,603,-1,0,1,CB Collective Lever Lock, ON/OFF, +ELEC_INTERFACE(1),3075,CB-RIGHT-CONTROL-CLUTCH-PTR,TUMB,603,1,0,1,CB Collective Lever Lock, ON/OFF, +ELEC_INTERFACE(1),3076,CB-RIGHT-ENGINE-TEMP-ADJUST-LEFT-PTR,TUMB,604,-1,0,1,CB Temperature Control Left Governor RPM, ON/OFF, +ELEC_INTERFACE(1),3076,CB-RIGHT-ENGINE-TEMP-ADJUST-LEFT-PTR,TUMB,604,1,0,1,CB Temperature Control Left Governor RPM, ON/OFF, +ELEC_INTERFACE(1),3077,CB-RIGHT-ENGINE-TEMP-ADJUST-RIGHT-PTR,TUMB,605,-1,0,1,CB Temperature Control Right Governor RPM, ON/OFF, +ELEC_INTERFACE(1),3077,CB-RIGHT-ENGINE-TEMP-ADJUST-RIGHT-PTR,TUMB,605,1,0,1,CB Temperature Control Right Governor RPM, ON/OFF, +ELEC_INTERFACE(1),3078,CB-RIGHT-ROTOR-RPM-ADJUST-PTR,TUMB,606,-1,0,1,CB Rotor RPM Adjust, ON/OFF, +ELEC_INTERFACE(1),3078,CB-RIGHT-ROTOR-RPM-ADJUST-PTR,TUMB,606,1,0,1,CB Rotor RPM Adjust, ON/OFF, +ELEC_INTERFACE(1),3079,CB-RIGHT-ARMAMENT-SIGNAL-PTR,TUMB,607,-1,0,1,CB Signal, ON/OFF, +ELEC_INTERFACE(1),3079,CB-RIGHT-ARMAMENT-SIGNAL-PTR,TUMB,607,1,0,1,CB Signal, ON/OFF, +ELEC_INTERFACE(1),3080,CB-RIGHT-ARMAMENT-CAMERA-SHUTTER-PTR,TUMB,608,-1,0,1,CB Camera, ON/OFF, +ELEC_INTERFACE(1),3080,CB-RIGHT-ARMAMENT-CAMERA-SHUTTER-PTR,TUMB,608,1,0,1,CB Camera, ON/OFF, +ELEC_INTERFACE(1),3081,CB-RIGHT-ARMAMENT-CONTROL-PTR,TUMB,609,-1,0,1,CB Armament Control, ON/OFF, +ELEC_INTERFACE(1),3081,CB-RIGHT-ARMAMENT-CONTROL-PTR,TUMB,609,1,0,1,CB Armament Control, ON/OFF, +ELEC_INTERFACE(1),3082,CB-RIGHT-ARMAMENT-CANNON-PTR,TUMB,610,-1,0,1,CB Cannon, ON/OFF, +ELEC_INTERFACE(1),3082,CB-RIGHT-ARMAMENT-CANNON-PTR,TUMB,610,1,0,1,CB Cannon, ON/OFF, +ELEC_INTERFACE(1),3083,CB-RIGHT-FIRE-2-AUTO-PTR,TUMB,611,-1,0,1,CB Squib-2 Auto Fire Protection, ON/OFF, +ELEC_INTERFACE(1),3083,CB-RIGHT-FIRE-2-AUTO-PTR,TUMB,611,1,0,1,CB Squib-2 Auto Fire Protection, ON/OFF, +ELEC_INTERFACE(1),3084,CB-RIGHT-FIRE-2-MANUAL-PTR,TUMB,612,-1,0,1,CB Squib-2 Manual Fire Protection, ON/OFF, +ELEC_INTERFACE(1),3084,CB-RIGHT-FIRE-2-MANUAL-PTR,TUMB,612,1,0,1,CB Squib-2 Manual Fire Protection, ON/OFF, +ELEC_INTERFACE(1),3085,CB-RIGHT-EXT-STORES-TACTICAL-DROP-PTR,TUMB,613,-1,0,1,CB External Stores Tactical Release, ON/OFF, +ELEC_INTERFACE(1),3085,CB-RIGHT-EXT-STORES-TACTICAL-DROP-PTR,TUMB,613,1,0,1,CB External Stores Tactical Release, ON/OFF, +ELEC_INTERFACE(1),3086,CB-RIGHT-EXT-STORES-LOCK-RELEASE-PTR,TUMB,614,-1,0,1,CB External Stores Release Lock, ON/OFF, +ELEC_INTERFACE(1),3086,CB-RIGHT-EXT-STORES-LOCK-RELEASE-PTR,TUMB,614,1,0,1,CB External Stores Release Lock, ON/OFF, +ELEC_INTERFACE(1),3087,CB-RIGHT-GEAR-EXTENT-HANDLE-BACKUP-PTR,TUMB,615,-1,0,1,CB Landing Gear Valve, ON/OFF, +ELEC_INTERFACE(1),3087,CB-RIGHT-GEAR-EXTENT-HANDLE-BACKUP-PTR,TUMB,615,1,0,1,CB Landing Gear Valve, ON/OFF, +ELEC_INTERFACE(1),3088,CB-RIGHT-LAUNCHER-DETACH-PTR,TUMB,616,-1,0,1,CB Jettison Missile Rails, ON/OFF, +ELEC_INTERFACE(1),3088,CB-RIGHT-LAUNCHER-DETACH-PTR,TUMB,616,1,0,1,CB Jettison Missile Rails, ON/OFF, +ELEC_INTERFACE(1),3089,CB-RIGHT-BOMB-COMBAT-DROP-PTR,TUMB,617,-1,0,1,CB Bombs Release, ON/OFF, +ELEC_INTERFACE(1),3089,CB-RIGHT-BOMB-COMBAT-DROP-PTR,TUMB,617,1,0,1,CB Bombs Release, ON/OFF, +ELEC_INTERFACE(1),3090,CB-RIGHT-CONNECTION-DISTRIBUTION-DEVICE-PTR,TUMB,618,-1,0,1,CB Connection Distribution Device, ON/OFF, +ELEC_INTERFACE(1),3090,CB-RIGHT-CONNECTION-DISTRIBUTION-DEVICE-PTR,TUMB,618,1,0,1,CB Connection Distribution Device, ON/OFF, +ELEC_INTERFACE(1),3091,CB-RIGHT-PILOT-AIM-PTR,TUMB,619,-1,0,1,PILOT SIGHT CB, ON/OFF, +ELEC_INTERFACE(1),3091,CB-RIGHT-PILOT-AIM-PTR,TUMB,619,1,0,1,PILOT SIGHT CB, ON/OFF, +ELEC_INTERFACE(1),3092,CB-RIGHT-DUAS-V-HEATING-PTR,TUMB,620,-1,0,1,CB Air Data Computer Heating, ON/OFF, +ELEC_INTERFACE(1),3092,CB-RIGHT-DUAS-V-HEATING-PTR,TUMB,620,1,0,1,CB Air Data Computer Heating, ON/OFF, +ELEC_INTERFACE(1),3093,CB-RIGHT-EMERGENCY-DOOR-DETACH-PILOT-PTR,TUMB,621,-1,0,1,CB Jettison Pilot´s Door, ON/OFF, +ELEC_INTERFACE(1),3093,CB-RIGHT-EMERGENCY-DOOR-DETACH-PILOT-PTR,TUMB,621,1,0,1,CB Jettison Pilot´s Door, ON/OFF, +ELEC_INTERFACE(1),3094,CB-RIGHT-EMERGENCY-DOOR-DETACH-OP-PTR,TUMB,622,-1,0,1,CB Jettision Gunners Door, ON/OFF, +ELEC_INTERFACE(1),3094,CB-RIGHT-EMERGENCY-DOOR-DETACH-OP-PTR,TUMB,622,1,0,1,CB Jettision Gunners Door, ON/OFF, +ELEC_INTERFACE(1),3095,CB-RIGHT-CONDITIONER-CONTROL-PTR,TUMB,623,-1,0,1,CB Air Conditioning, ON/OFF, +ELEC_INTERFACE(1),3095,CB-RIGHT-CONDITIONER-CONTROL-PTR,TUMB,623,1,0,1,CB Air Conditioning, ON/OFF, +ELEC_INTERFACE(1),3096,CB-RIGHT-FUEL-METER-PTR,TUMB,624,-1,0,1,CB Fuel Quantity Indication, ON/OFF, +ELEC_INTERFACE(1),3096,CB-RIGHT-FUEL-METER-PTR,TUMB,624,1,0,1,CB Fuel Quantity Indication, ON/OFF, +ELEC_INTERFACE(1),3097,CB-RIGHT-VALVE-TANK-2-PTR,TUMB,625,-1,0,1,CB Fuel Tank 2 Valve, ON/OFF, +ELEC_INTERFACE(1),3097,CB-RIGHT-VALVE-TANK-2-PTR,TUMB,625,1,0,1,CB Fuel Tank 2 Valve, ON/OFF, +ELEC_INTERFACE(1),3098,CB-RIGHT-VALVE-FIRE-RIGHT-PTR,TUMB,626,-1,0,1,CB Fuel Tank 2 Shutoff Valve, ON/OFF, +ELEC_INTERFACE(1),3098,CB-RIGHT-VALVE-FIRE-RIGHT-PTR,TUMB,626,1,0,1,CB Fuel Tank 2 Shutoff Valve, ON/OFF, +ELEC_INTERFACE(1),3099,CB-RIGHT-PUMP-TANK-2-PTR,TUMB,627,-1,0,1,CB Fuel Pump 2, ON/OFF, +ELEC_INTERFACE(1),3099,CB-RIGHT-PUMP-TANK-2-PTR,TUMB,627,1,0,1,CB Fuel Pump 2, ON/OFF, +ELEC_INTERFACE(1),3100,CB-RIGHT-PUMP-TANK-4-PTR,TUMB,628,-1,0,1,CB Fuel Pump 4, ON/OFF, +ELEC_INTERFACE(1),3100,CB-RIGHT-PUMP-TANK-4-PTR,TUMB,628,1,0,1,CB Fuel Pump 4, ON/OFF, +ELEC_INTERFACE(1),3101,CB-RIGHT-PILOT-SEAT-MECHANISM-PTR,TUMB,629,-1,0,1,CB Pilot Seat Adjustment, ON/OFF, +ELEC_INTERFACE(1),3101,CB-RIGHT-PILOT-SEAT-MECHANISM-PTR,TUMB,629,1,0,1,CB Pilot Seat Adjustment, ON/OFF, +ELEC_INTERFACE(1),3102,CB-RIGHT-ANTIICE-ALARM-PTR,TUMB,630,-1,0,1,CB Anti-Ice System - Warning, ON/OFF, +ELEC_INTERFACE(1),3102,CB-RIGHT-ANTIICE-ALARM-PTR,TUMB,630,1,0,1,CB Anti-Ice System - Warning, ON/OFF, +ELEC_INTERFACE(1),3103,CB-RIGHT-ANTIICE-CONTROL-PTR,TUMB,631,-1,0,1,CB Anti-Ice System - Control, ON/OFF, +ELEC_INTERFACE(1),3103,CB-RIGHT-ANTIICE-CONTROL-PTR,TUMB,631,1,0,1,CB Anti-Ice System - Control, ON/OFF, +ELEC_INTERFACE(1),3104,CB-LEFT-MISSILE-POWER-PTR,TUMB,572,-1,0,1,CB Missile Power, ON/OFF, +ELEC_INTERFACE(1),3104,CB-LEFT-MISSILE-POWER-PTR,TUMB,572,1,0,1,CB Missile Power, ON/OFF, +ELEC_INTERFACE(1),3105,CB-LEFT-BOMB-EMERGENCY-DETACH-PTR,TUMB,573,-1,0,1,CB Emergency Jettison, ON/OFF, +ELEC_INTERFACE(1),3105,CB-LEFT-BOMB-EMERGENCY-DETACH-PTR,TUMB,573,1,0,1,CB Emergency Jettison, ON/OFF, +ELEC_INTERFACE(1),3106,CB-LEFT-BOMB-EXPLOSION-PTR,TUMB,574,-1,0,1,CB Bombs, ON/OFF, +ELEC_INTERFACE(1),3106,CB-LEFT-BOMB-EXPLOSION-PTR,TUMB,574,1,0,1,CB Bombs, ON/OFF, +ELEC_INTERFACE(1),3107,CB-LEFT-ROCKETS-PTR,TUMB,575,-1,0,1,CB Rockets, ON/OFF, +ELEC_INTERFACE(1),3107,CB-LEFT-ROCKETS-PTR,TUMB,575,1,0,1,CB Rockets, ON/OFF, +ELEC_INTERFACE(1),3108,CB-LEFT-RADIOCOMPASS-HF-PTR,TUMB,576,-1,0,1,CB ADF, ON/OFF, +ELEC_INTERFACE(1),3108,CB-LEFT-RADIOCOMPASS-HF-PTR,TUMB,576,1,0,1,CB ADF, ON/OFF, +ELEC_INTERFACE(1),3109,CB-LEFT-PUMP-TANK-1-PTR,TUMB,577,-1,0,1,CB Fuel Shutoff Valve, ON/OFF, +ELEC_INTERFACE(1),3109,CB-LEFT-PUMP-TANK-1-PTR,TUMB,577,1,0,1,CB Fuel Shutoff Valve, ON/OFF, +ELEC_INTERFACE(1),3110,CB-LEFT-PUMP-TANK-5-PTR,TUMB,578,-1,0,1,CB Cross Feed Valve, ON/OFF, +ELEC_INTERFACE(1),3110,CB-LEFT-PUMP-TANK-5-PTR,TUMB,578,1,0,1,CB Cross Feed Valve, ON/OFF, +ELEC_INTERFACE(1),3111,CB-LEFT-VALVE-TANK-1-PTR,TUMB,579,-1,0,1,CB Tank 1 Valve, ON/OFF, +ELEC_INTERFACE(1),3111,CB-LEFT-VALVE-TANK-1-PTR,TUMB,579,1,0,1,CB Tank 1 Valve, ON/OFF, +ELEC_INTERFACE(1),3112,CB-LEFT-VALVE-FIRE-LEFT-PTR,TUMB,580,-1,0,1,CB Left Tank Fire Warning, ON/OFF, +ELEC_INTERFACE(1),3112,CB-LEFT-VALVE-FIRE-LEFT-PTR,TUMB,580,1,0,1,CB Left Tank Fire Warning, ON/OFF, +ELEC_INTERFACE(1),3113,CB-LEFT-VALVE-SEPARATION-PTR,TUMB,581,-1,0,1,CB Left Valve Separation, ON/OFF, +ELEC_INTERFACE(1),3113,CB-LEFT-VALVE-SEPARATION-PTR,TUMB,581,1,0,1,CB Left Valve Separation, ON/OFF, +ELEC_INTERFACE(1),3114,CB-LEFT-GLASS-SPRINKLER-PTR,TUMB,582,-1,0,1,CB Windshield Spray, ON/OFF, +ELEC_INTERFACE(1),3114,CB-LEFT-GLASS-SPRINKLER-PTR,TUMB,582,1,0,1,CB Windshield Spray, ON/OFF, +ELEC_INTERFACE(1),3115,CB-LEFT-GLASS-WIPER-OP-PTR,TUMB,583,-1,0,1,CB Windshield Wiper Gunner, ON/OFF, +ELEC_INTERFACE(1),3115,CB-LEFT-GLASS-WIPER-OP-PTR,TUMB,583,1,0,1,CB Windshield Wiper Gunner, ON/OFF, +ELEC_INTERFACE(1),3116,CB-LEFT-GLASS-WIPER-PILOT-PTR,TUMB,584,-1,0,1,CB Windshield Wiper Pilot, ON/OFF, +ELEC_INTERFACE(1),3116,CB-LEFT-GLASS-WIPER-PILOT-PTR,TUMB,584,1,0,1,CB Windshield Wiper Pilot, ON/OFF, +ELEC_INTERFACE(1),3117,CB-LEFT-SPEECH-INFORMER-PTR,TUMB,585,-1,0,1,CB Audio Warning System, ON/OFF, +ELEC_INTERFACE(1),3117,CB-LEFT-SPEECH-INFORMER-PTR,TUMB,585,1,0,1,CB Audio Warning System, ON/OFF, +ELEC_INTERFACE(1),3118,CB-LEFT-RECORDER-PARAMS-PTR,TUMB,586,-1,0,1,CB Flight Recorder, ON/OFF, +ELEC_INTERFACE(1),3118,CB-LEFT-RECORDER-PARAMS-PTR,TUMB,586,1,0,1,CB Flight Recorder, ON/OFF, +ELEC_INTERFACE(1),3119,CB-LEFT-FIRE-1-AUTO-PTR,TUMB,587,-1,0,1,CB Fire Protection System - Auto, ON/OFF, +ELEC_INTERFACE(1),3119,CB-LEFT-FIRE-1-AUTO-PTR,TUMB,587,1,0,1,CB Fire Protection System - Auto, ON/OFF, +ELEC_INTERFACE(1),3120,CB-LEFT-FIRE-1-MANUAL-PTR,TUMB,588,-1,0,1,CB Fire Protection System - Manual, ON/OFF, +ELEC_INTERFACE(1),3120,CB-LEFT-FIRE-1-MANUAL-PTR,TUMB,588,1,0,1,CB Fire Protection System - Manual, ON/OFF, +ELEC_INTERFACE(1),3121,CB-LEFT-FIRE-ALARM-PTR,TUMB,589,-1,0,1,CB Fire Protection System Warning, ON/OFF, +ELEC_INTERFACE(1),3121,CB-LEFT-FIRE-ALARM-PTR,TUMB,589,1,0,1,CB Fire Protection System Warning, ON/OFF, +ELEC_INTERFACE(1),3122,CB-LEFT-EXT-CARGO-EMERGENCY-DROP-PTR,TUMB,590,-1,0,1,CB External Cargo Emergency Jettison, ON/OFF, +ELEC_INTERFACE(1),3122,CB-LEFT-EXT-CARGO-EMERGENCY-DROP-PTR,TUMB,590,1,0,1,CB External Cargo Emergency Jettison, ON/OFF, +ELEC_INTERFACE(1),3123,CB-LEFT-GEAR-EXTENT-HANDLE-PTR,TUMB,591,-1,0,1,CB Landing Gear Extend / Retract, ON/OFF, +ELEC_INTERFACE(1),3123,CB-LEFT-GEAR-EXTENT-HANDLE-PTR,TUMB,591,1,0,1,CB Landing Gear Extend / Retract, ON/OFF, +ELEC_INTERFACE(1),3124,CB-LEFT-GEAR-ALARM-PTR,TUMB,592,-1,0,1,CB Landing Gear Warning, ON/OFF, +ELEC_INTERFACE(1),3124,CB-LEFT-GEAR-ALARM-PTR,TUMB,592,1,0,1,CB Landing Gear Warning, ON/OFF, +ELEC_INTERFACE(1),3125,CB-LEFT-PT125TS-PTR,TUMB,593,-1,0,1,CB Inverter, ON/OFF, +ELEC_INTERFACE(1),3125,CB-LEFT-PT125TS-PTR,TUMB,593,1,0,1,CB Inverter, ON/OFF, +ELEC_INTERFACE(1),3126,CB-LEFT-AIRSPEED-SENSOR-PTR,TUMB,594,-1,0,1,CB Air Speed Sensor, ON/OFF, +ELEC_INTERFACE(1),3126,CB-LEFT-AIRSPEED-SENSOR-PTR,TUMB,594,1,0,1,CB Air Speed Sensor, ON/OFF, +ELEC_INTERFACE(1),3127,CB-LEFT-AUTOPILOT-ALARM-PTR,TUMB,595,-1,0,1,CB AFCS Warn, ON/OFF, +ELEC_INTERFACE(1),3127,CB-LEFT-AUTOPILOT-ALARM-PTR,TUMB,595,1,0,1,CB AFCS Warn, ON/OFF, +ELEC_INTERFACE(1),3128,CB-LEFT-STARTUP-BLOCK-PTR,TUMB,596,-1,0,1,CB Auto Start System, ON/OFF, +ELEC_INTERFACE(1),3128,CB-LEFT-STARTUP-BLOCK-PTR,TUMB,596,1,0,1,CB Auto Start System, ON/OFF, +ELEC_INTERFACE(1),3129,CB-LEFT-STARTUP-IGNITION-PTR,TUMB,597,-1,0,1,CB Igniter, ON/OFF, +ELEC_INTERFACE(1),3129,CB-LEFT-STARTUP-IGNITION-PTR,TUMB,597,1,0,1,CB Igniter, ON/OFF, +ELEC_INTERFACE(1),3130,CB-LEFT-BEACON-PTR,TUMB,598,-1,0,1,CB Beacon Light, ON/OFF, +ELEC_INTERFACE(1),3130,CB-LEFT-BEACON-PTR,TUMB,598,1,0,1,CB Beacon Light, ON/OFF, +ELEC_INTERFACE(1),3131,CB-LEFT-HEADLIGHT-CONTROL-PTR,TUMB,599,-1,0,1,CB Landing Light Control, ON/OFF, +ELEC_INTERFACE(1),3131,CB-LEFT-HEADLIGHT-CONTROL-PTR,TUMB,599,1,0,1,CB Landing Light Control, ON/OFF, +ELEC_INTERFACE(1),3132,CB-LEFT-PILOTING-DEVICE-PTR,TUMB,600,-1,0,1,CB Main Attitude Indicator, ON/OFF, +ELEC_INTERFACE(1),3132,CB-LEFT-PILOTING-DEVICE-PTR,TUMB,600,1,0,1,CB Main Attitude Indicator, ON/OFF, +ENGINE_INTERFACE(3),3003,COLLECTIVE-CORR-PTR,LEV,0,0,-1,1,Collective (LMB press, hold and move) / Throttle (RMB press, hold and move) +ENGINE_INTERFACE(3),3004,COLLECTIVE-CORR-PTR,LEV,0,0,-1,1,Collective (LMB press, hold and move) / Throttle (RMB press, hold and move) +ENGINE_INTERFACE(3),3006,RRUD-LEFT-PTR,LEV,5,0,0,1,Left Engine Throttle,, +ENGINE_INTERFACE(3),3008,RRUD-RIGHT-PTR,LEV,4,0,0,1,Right Engine Throttle,, +ENGINE_INTERFACE(3),3009,ENG-BRAKE-LEFT-PTR,TUMB,6,0,0,1,Left Engine Stop,, +ENGINE_INTERFACE(3),3009,ENG-BRAKE-LEFT-PTR,TUMB,6,1,0,1,Left Engine Stop,, +ENGINE_INTERFACE(3),3010,ENG-BRAKE-RIGHT-PTR,TUMB,7,0,0,1,Right Engine Stop,, +ENGINE_INTERFACE(3),3010,ENG-BRAKE-RIGHT-PTR,TUMB,7,1,0,1,Right Engine Stop,, +ENGINE_INTERFACE(3),3011,ROTOR-BRAKE-PTR,TUMB,745,0,0,1,Rotor Brake,, +ENGINE_INTERFACE(3),3011,ROTOR-BRAKE-PTR,TUMB,745,1,0,1,Rotor Brake,, +ENGINE_INTERFACE(3),3012,APU-START-PTR,BTN,307,1,0,1,APU Start,, +ENGINE_INTERFACE(3),3013,APU-STOP-PTR,BTN,311,1,0,1,APU Stop,, +ENGINE_INTERFACE(3),3014,APU-FALSE-CRANK-START-PTR,TUMB,313,-1,-1,1,APU Launch Method START/CRANK/FALSE,, +ENGINE_INTERFACE(3),3014,APU-FALSE-CRANK-START-PTR,TUMB,313,1,-1,1,APU Launch Method START/CRANK/FALSE,, +ENGINE_INTERFACE(3),3015,ENG-START-PTR,BTN,314,1,0,1,Engine Start,, +ENGINE_INTERFACE(3),3016,ENG-LEFT-RIGHT-PTR,TUMB,320,-1,0,1,Engine Select RIGHT/LEFT,, +ENGINE_INTERFACE(3),3016,ENG-LEFT-RIGHT-PTR,TUMB,320,1,0,1,Engine Select RIGHT/LEFT,, +ENGINE_INTERFACE(3),3017,ENG-ABORT-PTR,BTN,318,1,0,1,Engine Interrupt Start,, +ENGINE_INTERFACE(3),3018,ENG-CRANK-START-PTR,TUMB,321,-1,0,1,Engine Launch Method START/CRANK,, +ENGINE_INTERFACE(3),3018,ENG-CRANK-START-PTR,TUMB,321,1,0,1,Engine Launch Method START/CRANK,, +ENGINE_INTERFACE(3),3019,COLLECTIVE-GOV-PTR,BTN,747,1,0,1,Readjust Free Turbine RPM, RIGHT/NEUTRAL/LEFT, +ENGINE_INTERFACE(3),3020,COLLECTIVE-GOV-PTR,BTN,747,-1,-1,0,Readjust Free Turbine RPM, RIGHT/NEUTRAL/LEFT, +ENGINE_INTERFACE(3),3021,DEDUST-OFF-PTR,TUMB,796,-1,0,1,Antidust ON/OFF,, +ENGINE_INTERFACE(3),3021,DEDUST-OFF-PTR,TUMB,796,1,0,1,Antidust ON/OFF,, +ENGINE_INTERFACE(3),3022,DEDUST-OFF-COVER-PTR,TUMB,514,-1,0,1,Antidust ON Cover, UP/DOWN, +ENGINE_INTERFACE(3),3022,DEDUST-OFF-COVER-PTR,TUMB,514,1,0,1,Antidust ON Cover, UP/DOWN, +ENGINE_INTERFACE(3),3023,ENG-TEMP-SENSOR-CONTROL-COLD-PTR,BTN,194,1,0,1,Engine Termometer control COLD,, +ENGINE_INTERFACE(3),3024,ENG-TEMP-SENSOR-CONTROL-HOT-PTR,BTN,195,1,0,1,Engine Termometer control HOT,, +ENGINE_INTERFACE(3),3090,OP-COLL-THROTTLE-PTR,LEV,0,0,-1,1,Collective (LMB press, hold and move) / Throttle (RMB press, hold and move) +ENGINE_INTERFACE(3),3091,OP-COLL-THROTTLE-PTR,LEV,0,0,-1,1,Collective (LMB press, hold and move) / Throttle (RMB press, hold and move) +EUCALYPT_M24(51),3001,EUCAL-CHANNEL-PTR,TUMB,337,-0.1,0,0.9,Eucalypt-M24 Channel Select,, +EUCALYPT_M24(51),3001,EUCAL-CHANNEL-PTR,TUMB,337,0.1,0,0.9,Eucalypt-M24 Channel Select,, +EUCALYPT_M24(51),3002,EUCAL-VOLUME-PTR,LEV,339,0,0,1,Eucalypt-M24 Volume,, +EUCALYPT_M24(51),3003,EUCAL-ASY-PTR,BTN,340,1,0,1,Eucalypt-M24 ASU,, +EUCALYPT_M24(51),3004,EUCAL-PSH-PTR,TUMB,341,-1,0,1,Eucalypt-M24 Squelch ON/OFF,, +EUCALYPT_M24(51),3004,EUCAL-PSH-PTR,TUMB,341,1,0,1,Eucalypt-M24 Squelch ON/OFF,, +EUCALYPT_M24(51),3005,R828-ON-OFF-PTR,TUMB,373,-1,0,1,Eucalypt-M24 ON/OFF,, +EUCALYPT_M24(51),3005,R828-ON-OFF-PTR,TUMB,373,1,0,1,Eucalypt-M24 ON/OFF,, +EXT_CARGO_EQUIPMENT(61),3001,COLLECTIVE-CARGO-TACT-PTR,BTN,752,1,0,1,Tactical Cargo Release Button - Push to release,, +EXT_CARGO_EQUIPMENT(61),3002,COLLECTIVE-CARGO-TACT-COVER-PTR,TUMB,751,-1,0,1,Tactical Cargo Release Button Cover, OPEN/CLOSE, +EXT_CARGO_EQUIPMENT(61),3002,COLLECTIVE-CARGO-TACT-COVER-PTR,TUMB,751,1,0,1,Tactical Cargo Release Button Cover, OPEN/CLOSE, +EXT_CARGO_EQUIPMENT(61),3004,COLLECTIVE-CARGO-EMER-COVER-PTR,TUMB,748,-1,0,1,Emergency Cargo Release Button Cover, OPEN/CLOSE, +EXT_CARGO_EQUIPMENT(61),3004,COLLECTIVE-CARGO-EMER-COVER-PTR,TUMB,748,1,0,1,Emergency Cargo Release Button Cover, OPEN/CLOSE, +EXT_CARGO_EQUIPMENT(61),3005,OP-COLL-CARGO-DROP-PTR,BTN,863,1,0,1,Emergency Cargo Release Button - Push to release,, +EXT_CARGO_EQUIPMENT(61),3006,OP-COLL-CARGO-DROP-COVER-PTR,TUMB,862,-1,0,1,Emergency Cargo Release Button Cover, OPEN/CLOSE, +EXT_CARGO_EQUIPMENT(61),3006,OP-COLL-CARGO-DROP-COVER-PTR,TUMB,862,1,0,1,Emergency Cargo Release Button Cover, OPEN/CLOSE, +EXT_CARGO_EQUIPMENT(61),3007,EXTCARGO-AUTOLOCK-PTR,TUMB,199,-1,0,1,External Cargo Automatic Dropping, ON/OFF, +EXT_CARGO_EQUIPMENT(61),3007,EXTCARGO-AUTOLOCK-PTR,TUMB,199,1,0,1,External Cargo Automatic Dropping, ON/OFF, +EXT_CARGO_EQUIPMENT(61),3008,EXTCARGO-EXT-RETR-PTR,TUMB,198,-1,0,1,External Cargo Remove Release, ON/OFF, +EXT_CARGO_EQUIPMENT(61),3008,EXTCARGO-EXT-RETR-PTR,TUMB,198,1,0,1,External Cargo Remove Release, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3001,TAXILIGHT-PTR,TUMB,34,-1,0,1,Taxi LT Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3001,TAXILIGHT-PTR,TUMB,34,1,0,1,Taxi LT Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3002,TAXILIGHT-OP-PTR,TUMB,686,-1,0,1,Operator Taxi LT Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3002,TAXILIGHT-OP-PTR,TUMB,686,1,0,1,Operator Taxi LT Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3003,NAVLIGHT-BRIGHT-DIM-OFF-PTR,TUMB,207,-1,-1,1,Navigation Lights Switch, BRIGHT/OFF/DIM, +EXT_LIGHTS_SYSTEM(15),3003,NAVLIGHT-BRIGHT-DIM-OFF-PTR,TUMB,207,1,-1,1,Navigation Lights Switch, BRIGHT/OFF/DIM, +EXT_LIGHTS_SYSTEM(15),3004,CODE-NAVLIGHT-PTR,BTN,35,1,0,1,Navigation Lights Code Button,, +EXT_LIGHTS_SYSTEM(15),3005,FORMATION-LIGHTS-PTR,TUMB,414,-1,-1,1,Formation Lights Switch, BRIGHT/OFF/DIM, +EXT_LIGHTS_SYSTEM(15),3005,FORMATION-LIGHTS-PTR,TUMB,414,1,-1,1,Formation Lights Switch, BRIGHT/OFF/DIM, +EXT_LIGHTS_SYSTEM(15),3006,ROTOR-LIGHTS-PTR,TUMB,415,-1,0,1,Tip Lights Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3006,ROTOR-LIGHTS-PTR,TUMB,415,1,0,1,Tip Lights Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3007,STROBE-TAIL-PTR,TUMB,417,-1,0,1,Strobe Light Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3007,STROBE-TAIL-PTR,TUMB,417,1,0,1,Strobe Light Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3008,TAXILIGHT-RETR-PTR,TUMB,208,-1,-1,1,LND LT Control-Off-Retract switch,, +EXT_LIGHTS_SYSTEM(15),3008,TAXILIGHT-RETR-PTR,TUMB,208,1,-1,1,LND LT Control-Off-Retract switch,, +EXT_LIGHTS_SYSTEM(15),3011,CONTROL-HEADLIGHT-OP-PTR,TUMB,669,-1,0,1,LND Light Assumed Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3011,CONTROL-HEADLIGHT-OP-PTR,TUMB,669,1,0,1,LND Light Assumed Switch, ON/OFF, +EXT_LIGHTS_SYSTEM(15),3012,CONTROL-HEADLIGHT-OP-COVER-PTR,TUMB,668,-1,0,1,LND Light Assumed Switch Cover, OPEN/CLOSE, +EXT_LIGHTS_SYSTEM(15),3012,CONTROL-HEADLIGHT-OP-COVER-PTR,TUMB,668,1,0,1,LND Light Assumed Switch Cover, OPEN/CLOSE, +FIRE_EXTING_INTERFACE(13),3001,FIRE-1-L-ENG-PTR,BTN,502,1,0,1,Extinguish Left Engine 1,, +FIRE_EXTING_INTERFACE(13),3002,FIRE-2-L-ENG-PTR,BTN,504,1,0,1,Extinguish Left Engine 2,, +FIRE_EXTING_INTERFACE(13),3003,FIRE-1-R-ENG-PTR,BTN,498,1,0,1,Extinguish Right Engine 1,, +FIRE_EXTING_INTERFACE(13),3004,FIRE-2-R-ENG-PTR,BTN,500,1,0,1,Extinguish Right Engine 2,, +FIRE_EXTING_INTERFACE(13),3005,FIRE-1-APU-PTR,BTN,494,1,0,1,Extinguish APU 1,, +FIRE_EXTING_INTERFACE(13),3006,FIRE-2-APU-PTR,BTN,496,1,0,1,Extinguish APU 2,, +FIRE_EXTING_INTERFACE(13),3007,FIRE-1-REDUCER-PTR,BTN,490,1,0,1,Extinguish Gearbox 1,, +FIRE_EXTING_INTERFACE(13),3008,FIRE-2-REDUCER-PTR,BTN,492,1,0,1,Extinguish Gearbox 2,, +FIRE_EXTING_INTERFACE(13),3009,FIRE-ALARM-OFF-PTR,BTN,488,1,0,1,Turn Off Fire Signal Button,, +FIRE_EXTING_INTERFACE(13),3010,EXTINGUISH-CONTROL-PTR,TUMB,482,-1,0,1,Extinguisher Control Switch EXING/CNTRL,, +FIRE_EXTING_INTERFACE(13),3010,EXTINGUISH-CONTROL-PTR,TUMB,482,1,0,1,Extinguisher Control Switch EXING/CNTRL,, +FIRE_EXTING_INTERFACE(13),3011,FIRE-PYRO-CHANNEL-PTR,BTN,486,-1,-1,0,Fire Extinguisher Squib Control,, +FIRE_EXTING_INTERFACE(13),3012,FIRE-PYRO-CHANNEL-PTR,BTN,486,1,0,1,Fire Extinguisher Squib Control,, +FIRE_EXTING_INTERFACE(13),3013,FIRE-SENSOR-CHANNEL-PTR1,TUMB,484,-0.1,0,0.3,Fire Extinguisher Sensor Cnannel OFF/1/2/3,, +FIRE_EXTING_INTERFACE(13),3013,FIRE-SENSOR-CHANNEL-PTR1,TUMB,484,0.1,0,0.3,Fire Extinguisher Sensor Cnannel OFF/1/2/3,, +FIRE_EXTING_INTERFACE(13),3014,FIRE-POWER-PTR,TUMB,487,-1,0,1,Fire Extinguisher Power ON/OFF,, +FIRE_EXTING_INTERFACE(13),3014,FIRE-POWER-PTR,TUMB,487,1,0,1,Fire Extinguisher Power ON/OFF,, +FM_PROXY(37),3001,STATIC-VALVE-PTR,TUMB,520,-1,-1,1,Static valve sensor select LEFT/BOTH/RIGHT,, +FM_PROXY(37),3001,STATIC-VALVE-PTR,TUMB,520,1,-1,1,Static valve sensor select LEFT/BOTH/RIGHT,, +FUELSYS_INTERFACE(2),3001,TANK-1-PTR,TUMB,408,-1,0,1,Tank 1 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3001,TANK-1-PTR,TUMB,408,1,0,1,Tank 1 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3004,TANK-2-PTR,TUMB,410,-1,0,1,Tank 2 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3004,TANK-2-PTR,TUMB,410,1,0,1,Tank 2 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3007,TANK-4-PTR,TUMB,404,-1,0,1,Tank 4 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3007,TANK-4-PTR,TUMB,404,1,0,1,Tank 4 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3010,TANK-5-PTR,TUMB,406,-1,0,1,Tank 5 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3010,TANK-5-PTR,TUMB,406,1,0,1,Tank 5 Pump, ON/OFF, +FUELSYS_INTERFACE(2),3013,EXT-TANKS-PTR,TUMB,411,-1,0,1,External Tanks, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3013,EXT-TANKS-PTR,TUMB,411,1,0,1,External Tanks, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3016,FIRE-VALVE-LEFT-PTR,TUMB,397,-1,0,1,Left Engine Fire Valve, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3016,FIRE-VALVE-LEFT-PTR,TUMB,397,1,0,1,Left Engine Fire Valve, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3019,FIRE-VALVE-LEFT-COVER-PTR,TUMB,396,-1,0,1,Left Engine Fire Valve Cover, UP/DOWN, +FUELSYS_INTERFACE(2),3019,FIRE-VALVE-LEFT-COVER-PTR,TUMB,396,1,0,1,Left Engine Fire Valve Cover, UP/DOWN, +FUELSYS_INTERFACE(2),3022,FIRE-VALVE-RIGHT-PTR,TUMB,400,-1,0,1,Right Engine Fire Valve, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3022,FIRE-VALVE-RIGHT-PTR,TUMB,400,1,0,1,Right Engine Fire Valve, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3025,FIRE-VALVE-RIGHT-COVER-PTR,TUMB,399,-1,0,1,Right Engine Fire Valve Cover, UP/DOWN, +FUELSYS_INTERFACE(2),3025,FIRE-VALVE-RIGHT-COVER-PTR,TUMB,399,1,0,1,Right Engine Fire Valve Cover, UP/DOWN, +FUELSYS_INTERFACE(2),3028,FUEL-DELIM-PTR,TUMB,402,-1,0,1,Fuel Delimiter Valve, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3028,FUEL-DELIM-PTR,TUMB,402,1,0,1,Fuel Delimiter Valve, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3031,FEED-TANK-1-PTR,TUMB,392,-1,0,1,Feed Tank 1 Valve Switch, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3031,FEED-TANK-1-PTR,TUMB,392,1,0,1,Feed Tank 1 Valve Switch, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3034,FEED-TANK-2-PTR,TUMB,394,-1,0,1,Feed Tank 2 Valve Switch, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3034,FEED-TANK-2-PTR,TUMB,394,1,0,1,Feed Tank 2 Valve Switch, OPEN/CLOSE, +FUELSYS_INTERFACE(2),3037,FUEL-METER-KNOB-PTR,TUMB,191,-0.166666667,0,1,Select tank for fuel meter,, +FUELSYS_INTERFACE(2),3037,FUEL-METER-KNOB-PTR,TUMB,191,0.166666667,0,1,Select tank for fuel meter,, +FUELSYS_INTERFACE(2),3040,FUEL-METER-H-BUTTON-PTR,BTN,524,1,0,1,Fuel meter test low,, +FUELSYS_INTERFACE(2),3042,FUEL-METER-P-BUTTON-PTR,BTN,526,1,0,1,Fuel meter test high,, +GREBEN(27),3001,GREBEN-ON-PFF-PTR,TUMB,367,-1,0,1,Greben' ON/OFF,, +GREBEN(27),3001,GREBEN-ON-PFF-PTR,TUMB,367,1,0,1,Greben' ON/OFF,, +GREBEN(27),3004,GREBEN-LATITUDE-PTR,LEV,448,0,0,1,Greben Set Latitude,, +GREBEN(27),3007,GREBEN-MATCH-PTR,BTN,450,1,0,1,Greben Match,, +GREBEN(27),3009,GREBEN-MODE-PTR,TUMB,449,-1,-1,1,Greben' mode ZK/GPK/MK,, +GREBEN(27),3009,GREBEN-MODE-PTR,TUMB,449,1,-1,1,Greben' mode ZK/GPK/MK,, +GREBEN(27),3012,GREBEN-SETUP-PTR,TUMB,451,-1,0,1,Greben' mode SETUP/OPER,, +GREBEN(27),3012,GREBEN-SETUP-PTR,TUMB,451,1,0,1,Greben' mode SETUP/OPER,, +GREBEN(27),3015,RMI-COURSE-KNOB-PTR,LEV,858,0,0,1,Course setter,, +G_Meter(53),3001,GFORCE-RESET-PTR,BTN,947,1,0,1,Accelerometer Reset Button - Push to reset,, +HELPER_AI(30),3011,OP-COLL-ENGAGE-PTR,BTN,865,1,0,1,Engage Stick,, +HELPER_AI(30),3012,OP-STICK-DISENGAGE-PTR,BTN,859,1,0,1,Disengage Stick,, +HELPER_AI(30),3013,OP-STICK-DISENGAGE-COVER-PTR,TUMB,857,-1,0,1,Disengage Stick Cover,, +HELPER_AI(30),3013,OP-STICK-DISENGAGE-COVER-PTR,TUMB,857,1,0,1,Disengage Stick Cover,, +HYDRO_SYS_INTERFACE(4),3001,HYDRO-MAIN-SECOND-PTR,TUMB,217,-1,0,1,Main/Auxiliary Hydraulic Switch, MAIN/AUXILIARY, +HYDRO_SYS_INTERFACE(4),3001,HYDRO-MAIN-SECOND-PTR,TUMB,217,1,0,1,Main/Auxiliary Hydraulic Switch, MAIN/AUXILIARY, +HYDRO_SYS_INTERFACE(4),3002,HYDRO-MAIN-SECOND-COVER-PTR,TUMB,216,-1,0,1,Main/Auxiliary Hydraulic Switch Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3002,HYDRO-MAIN-SECOND-COVER-PTR,TUMB,216,1,0,1,Main/Auxiliary Hydraulic Switch Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3003,LANDING-GEAR-MAIN-BACKUP-PTR,TUMB,219,-1,0,1,Main/Reserve Gear Hydraulic Switch, MAIN/RESERVE, +HYDRO_SYS_INTERFACE(4),3003,LANDING-GEAR-MAIN-BACKUP-PTR,TUMB,219,1,0,1,Main/Reserve Gear Hydraulic Switch, MAIN/RESERVE, +HYDRO_SYS_INTERFACE(4),3004,LANDING-GEAR-MAIN-BACKUP-COVER-PTR,TUMB,218,-1,0,1,Main/Reserve Gear Hydraulic Switch Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3004,LANDING-GEAR-MAIN-BACKUP-COVER-PTR,TUMB,218,1,0,1,Main/Reserve Gear Hydraulic Switch Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3005,HYDRO-BACKUP-OFF-PTR,BTN,213,1,0,1,Auxiliary Disable Button,, +HYDRO_SYS_INTERFACE(4),3006,HYDRO-BACKUP-OFF-COVER-PTR,TUMB,215,-1,0,1,Auxiliary Disable Button Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3006,HYDRO-BACKUP-OFF-COVER-PTR,TUMB,215,1,0,1,Auxiliary Disable Button Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3007,PEDAL-DAMPER-COVER-PTR,TUMB,290,-1,0,1,Pedal Damper, ON/OFF, +HYDRO_SYS_INTERFACE(4),3007,PEDAL-DAMPER-COVER-PTR,TUMB,290,1,0,1,Pedal Damper, ON/OFF, +HYDRO_SYS_INTERFACE(4),3008,PEDAL-DAMPER-COVER-PTR-PTR,TUMB,289,-1,0,1,Pedal Damper Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3008,PEDAL-DAMPER-COVER-PTR-PTR,TUMB,289,1,0,1,Pedal Damper Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3009,PEDAL-DAMPER-OP-PTR,TUMB,667,-1,0,1,Pedal Damper, ON/OFF, +HYDRO_SYS_INTERFACE(4),3009,PEDAL-DAMPER-OP-PTR,TUMB,667,1,0,1,Pedal Damper, ON/OFF, +HYDRO_SYS_INTERFACE(4),3010,PEDAL-DAMPER-OP-COVER-PTR,TUMB,666,-1,0,1,Pedal Damper Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3010,PEDAL-DAMPER-OP-COVER-PTR,TUMB,666,1,0,1,Pedal Damper Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3011,CONTROL-PRIORITY-PTR,TUMB,48,-1,0,1,Control Assumed Switch Cover, ON/OFF, +HYDRO_SYS_INTERFACE(4),3011,CONTROL-PRIORITY-PTR,TUMB,48,1,0,1,Control Assumed Switch Cover, ON/OFF, +HYDRO_SYS_INTERFACE(4),3012, CONTROL-COVER-PRIORITY-PTR,TUMB,47,-1,0,1,Control Assumed Switch Cover, UP/DOWN, +HYDRO_SYS_INTERFACE(4),3012, CONTROL-COVER-PRIORITY-PTR,TUMB,47,1,0,1,Control Assumed Switch Cover, UP/DOWN, +I9K113(7),3001,PK-PN-POWER-PTR,TUMB,885,-1,0,1,Sight Power Switch,, +I9K113(7),3001,PK-PN-POWER-PTR,TUMB,885,1,0,1,Sight Power Switch,, +I9K113(7),3002,PK-OBSERVE-PTR,TUMB,886,-1,0,1,OBSERVE,, +I9K113(7),3002,PK-OBSERVE-PTR,TUMB,886,1,0,1,OBSERVE,, +I9K113(7),3003,PK-DIAPH-PTR,TUMB,887,-1,0,1,DIAFR Open,, +I9K113(7),3003,PK-DIAPH-PTR,TUMB,887,1,0,1,DIAFR Open,, +I9K113(7),3004,PK-LOCK-PTR,TUMB,912,-1,0,1,LOCK ARU,, +I9K113(7),3004,PK-LOCK-PTR,TUMB,912,1,0,1,LOCK ARU,, +I9K113(7),3005,PK-SSP-PTR,TUMB,913,-1,0,1,SSP On,, +I9K113(7),3005,PK-SSP-PTR,TUMB,913,1,0,1,SSP On,, +I9K113(7),3006,PK-IMIT-GENER-PTR,TUMB,910,-1,0,1,GENERATOR-IMIT,, +I9K113(7),3006,PK-IMIT-GENER-PTR,TUMB,910,1,0,1,GENERATOR-IMIT,, +I9K113(7),3007,PK-CHECK-PTR,TUMB,905,-1,-1,1,CHECK2-NEUTR-CHECK1,, +I9K113(7),3007,PK-CHECK-PTR,TUMB,905,1,-1,1,CHECK2-NEUTR-CHECK1,, +I9K113(7),3008,WEAP-JETTISON-SPECIAL-OP-COVER-PTR002,TUMB,903,-1,0,1,WORK-CHECK,, +I9K113(7),3008,WEAP-JETTISON-SPECIAL-OP-COVER-PTR002,TUMB,903,1,0,1,WORK-CHECK,, +I9K113(7),3009,PK-WORK-CHECK-PTR,TUMB,899,-0.1,0,0.4,BVK Set,, +I9K113(7),3009,PK-WORK-CHECK-PTR,TUMB,899,0.1,0,0.4,BVK Set,, +I9K113(7),3010,PK-LAUNCH-PTR,BTN,911,1,0,1,Start PM,, +I9K113(7),3011,L166V-SWITCH-PTR,TUMB,870,-1,-1,1,Lamps Check,, +I9K113(7),3011,L166V-SWITCH-PTR,TUMB,870,1,-1,1,Lamps Check,, +I9K113(7),3012,SHTV-IN-OUT-PTR,TUMB,934,-1,0,1,Switcher IN-OUT,, +I9K113(7),3012,SHTV-IN-OUT-PTR,TUMB,934,1,0,1,Switcher IN-OUT,, +I9K113(7),3013,SHTV-CODE-PTR,TUMB,935,-1,0,1,Switcher CODE1-CODE2,, +I9K113(7),3013,SHTV-CODE-PTR,TUMB,935,1,0,1,Switcher CODE1-CODE2,, +I9K113(7),3014,SHTV-CHECK-VALUE-PTR,TUMB,933,-1,0,1,Switcher 0 - 0.4,, +I9K113(7),3014,SHTV-CHECK-VALUE-PTR,TUMB,933,1,0,1,Switcher 0 - 0.4,, +I9K113(7),3015,SHTV-CHECK-PTR,BTN,931,1,0,1,Checking,, +I9K113(7),3016,SHTV-HIGH-K-PTR,BTN,875,1,0,1,High K,, +I9K113(7),3017,SHTV-LAMP-CHECK-PTR,BTN,932,1,0,1,Lamps Check,, +I9K113(7),3018,WEAP-MISSILES-SIGHT-HEATING-OP-PTR,TUMB,775,-1,0,1,Sight Doors,, +I9K113(7),3018,WEAP-MISSILES-SIGHT-HEATING-OP-PTR,TUMB,775,1,0,1,Sight Doors,, +I9K113(7),3021,OP-SIGHT-SCOPE-PTR,TUMB,871,-1,0,1,Zoom In-Out,, +I9K113(7),3021,OP-SIGHT-SCOPE-PTR,TUMB,871,1,0,1,Zoom In-Out,, +I9K113(7),3022,OP-SIGHT-ORANGE-PTR,TUMB,872,-1,0,1,Orange Filter,, +I9K113(7),3022,OP-SIGHT-ORANGE-PTR,TUMB,872,1,0,1,Orange Filter,, +I9K113(7),3023,OP-SIGHT-ANTILASER-PTR,TUMB,873,-1,0,1,Laser Filter,, +I9K113(7),3023,OP-SIGHT-ANTILASER-PTR,TUMB,873,1,0,1,Laser Filter,, +I9K113(7),3062,PK-LIGHT-PTR,TUMB,884,-1,0,1,Backlight,, +I9K113(7),3062,PK-LIGHT-PTR,TUMB,884,1,0,1,Backlight,, +I9K113(7),3064,PK-HEATING-PTR,TUMB,890,-1,0,1,Sight Heating,, +I9K113(7),3064,PK-HEATING-PTR,TUMB,890,1,0,1,Sight Heating,, +I9K113(7),3067,PTR-STICK-STOW-1026,TUMB,0,-1,0,1,Push to Park/Unpark Operators Stick,, +I9K113(7),3067,PTR-STICK-STOW-1026,TUMB,0,1,0,1,Push to Park/Unpark Operators Stick,, +IFF(57),3001,DEV6201-CODE-PTR,TUMB,334,-0.333333333,0,1,IFF Transponder Mode Selector Switch, AUTO/KD/+-15/KP, +IFF(57),3001,DEV6201-CODE-PTR,TUMB,334,0.333333333,0,1,IFF Transponder Mode Selector Switch, AUTO/KD/+-15/KP, +IFF(57),3002,DEV6201-MAIN-BACKUP-PTR,TUMB,336,-1,0,1,IFF Transponder Device Selector Switch, WORK/RESERVE, +IFF(57),3002,DEV6201-MAIN-BACKUP-PTR,TUMB,336,1,0,1,IFF Transponder Device Selector Switch, WORK/RESERVE, +IFF(57),3003,DEV6201-NOT-USED-PTR,TUMB,332,-1,0,1,IFF Transponder Device Mode Switch, 1/2, +IFF(57),3003,DEV6201-NOT-USED-PTR,TUMB,332,1,0,1,IFF Transponder Device Mode Switch, 1/2, +IFF(57),3004,DEV6201-ERASE-COVER-PTR,TUMB,328,-1,0,1,IFF Transponder Erase Button Cover, OPEN/CLOSE, +IFF(57),3004,DEV6201-ERASE-COVER-PTR,TUMB,328,1,0,1,IFF Transponder Erase Button Cover, OPEN/CLOSE, +IFF(57),3005,DEV6201-ERASE-PTR,BTN,329,1,0,1,IFF Transponder Erase Button - Push to erase,, +IFF(57),3006,DEV6201-SOS-COVER-PTR,TUMB,330,-1,0,1,IFF Transponder Disaster Switch Cover, OPEN/CLOSE, +IFF(57),3006,DEV6201-SOS-COVER-PTR,TUMB,330,1,0,1,IFF Transponder Disaster Switch Cover, OPEN/CLOSE, +IFF(57),3007,DEV6201-SOS-PTR,TUMB,331,-1,0,1,IFF Transponder Disaster Switch, ON/OFF, +IFF(57),3007,DEV6201-SOS-PTR,TUMB,331,1,0,1,IFF Transponder Disaster Switch, ON/OFF, +IFF(57),3008,DEV6201-POWER-PTR,TUMB,383,-1,0,1,IFF Transponder Power Switch, ON/OFF, +IFF(57),3008,DEV6201-POWER-PTR,TUMB,383,1,0,1,IFF Transponder Power Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3001,LTG-COCKPIT-OP-PTR,TUMB,682,-1,-1,1,Operator Cabin Lighting Switch, WHITE/OFF/RED, +INT_LIGHTS_SYSTEM(23),3001,LTG-COCKPIT-OP-PTR,TUMB,682,1,-1,1,Operator Cabin Lighting Switch, WHITE/OFF/RED, +INT_LIGHTS_SYSTEM(23),3002,LTG-COCKPIT-PTR,TUMB,356,-1,-1,1,Pilot Cabin Lighting Switch, WHITE/OFF/RED, +INT_LIGHTS_SYSTEM(23),3002,LTG-COCKPIT-PTR,TUMB,356,1,-1,1,Pilot Cabin Lighting Switch, WHITE/OFF/RED, +INT_LIGHTS_SYSTEM(23),3003,LTG-WHITE-PTR,TUMB,354,-1,0,1,Cargo Lighting Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3003,LTG-WHITE-PTR,TUMB,354,1,0,1,Cargo Lighting Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3004,LTG-WHITE-COVER-PTR,TUMB,353,-1,0,1,Cargo Lighting Switch Cover, UP/DOWN, +INT_LIGHTS_SYSTEM(23),3004,LTG-WHITE-COVER-PTR,TUMB,353,1,0,1,Cargo Lighting Switch Cover, UP/DOWN, +INT_LIGHTS_SYSTEM(23),3005,LTG-CARGO-PTR,TUMB,355,-1,-1,1,Cargo Lighting Switch, WHITE/OFF/BLUE, +INT_LIGHTS_SYSTEM(23),3005,LTG-CARGO-PTR,TUMB,355,1,-1,1,Cargo Lighting Switch, WHITE/OFF/BLUE, +INT_LIGHTS_SYSTEM(23),3008,LAMP-CONTROL-PTR,BTN,363,1,0,1,Test Warning Lights Button,, +INT_LIGHTS_SYSTEM(23),3009,LAMP-CONTROL-OP-PTR,BTN,681,1,0,1,Test Warning Lights Button,, +INT_LIGHTS_SYSTEM(23),3010,DAY-NIGHT-PTR,TUMB,362,-1,0,1,Day-Night Switch, DAY/NIGHT, +INT_LIGHTS_SYSTEM(23),3010,DAY-NIGHT-PTR,TUMB,362,1,0,1,Day-Night Switch, DAY/NIGHT, +INT_LIGHTS_SYSTEM(23),3011,FLASHER-PTR,TUMB,364,-1,0,1,Blinker Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3011,FLASHER-PTR,TUMB,364,1,0,1,Blinker Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3012,RED-LTG1-PTR,TUMB,148,-0.1,0,1,Transformer 1 Group Of Red Lights Right And Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3012,RED-LTG1-PTR,TUMB,148,0.1,0,1,Transformer 1 Group Of Red Lights Right And Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3013,RED-LTG2-PTR,TUMB,147,-0.1,0,1,Transformer 2 Group Of Red Lights Right And Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3013,RED-LTG2-PTR,TUMB,147,0.1,0,1,Transformer 2 Group Of Red Lights Right And Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3014,AUX-LTG-PTR,TUMB,822,-1,0,1,Armament Panel Red Lights Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3014,AUX-LTG-PTR,TUMB,822,1,0,1,Armament Panel Red Lights Switch, ON/OFF, +INT_LIGHTS_SYSTEM(23),3015,RED-LTG4-PTR,TUMB,820,-0.1,0,1,Transformer 1 Group Of Red Lights Left Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3015,RED-LTG4-PTR,TUMB,820,0.1,0,1,Transformer 1 Group Of Red Lights Left Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3016,RED-LTG5-PTR,TUMB,503,-0.1,0,1,Transformer 2 Group Of Red Lights Left Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3016,RED-LTG5-PTR,TUMB,503,0.1,0,1,Transformer 2 Group Of Red Lights Left Pilot Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3017,RED-LTG1-OP-PTR,TUMB,1013,-0.1,0,1,Transformer 1 Group Of Red Lights Left And Operator Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3017,RED-LTG1-OP-PTR,TUMB,1013,0.1,0,1,Transformer 1 Group Of Red Lights Left And Operator Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3018,RED-LTG2-OP-PTR,TUMB,1014,-0.1,0,1,Transformer 2 Group Of Red Lights Left And Operator Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3018,RED-LTG2-OP-PTR,TUMB,1014,0.1,0,1,Transformer 2 Group Of Red Lights Left And Operator Panel, OFF/8V/9V/10V/11V/12V/13V/14V/16V/18V/20V, +INT_LIGHTS_SYSTEM(23),3020,RED-LTG3-PTR,TUMB,149,-0.1,0,1,Builtin Red Lights Transformer, OFF/0.6V/1.2V/1.8V/2.4V/3V/3.6V/4.2V/4.8V/5.4V/6V, +INT_LIGHTS_SYSTEM(23),3020,RED-LTG3-PTR,TUMB,149,0.1,0,1,Builtin Red Lights Transformer, OFF/0.6V/1.2V/1.8V/2.4V/3V/3.6V/4.2V/4.8V/5.4V/6V, +JADRO_1I(50),3001,JADRO-MODULATION-PTR,TUMB,438,-0.1,0,0.2,Jadro-1I Mode OFF/AM/OM,, +JADRO_1I(50),3001,JADRO-MODULATION-PTR,TUMB,438,0.1,0,0.2,Jadro-1I Mode OFF/AM/OM,, +JADRO_1I(50),3004,JADRO-001-PTR,TUMB,437,-0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3004,JADRO-001-PTR,TUMB,437,0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3007,JADRO-01-PTR,TUMB,436,-0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3007,JADRO-01-PTR,TUMB,436,0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3010,JADRO-1-PTR,TUMB,429,-0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3010,JADRO-1-PTR,TUMB,429,0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3013,JADRO-10-PTR,TUMB,428,-0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3013,JADRO-10-PTR,TUMB,428,0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3016,JADRO-100-PTR,TUMB,427,-0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3016,JADRO-100-PTR,TUMB,427,0.1,0,1,Jadro-1I Frequency,, +JADRO_1I(50),3019,JADRO-VOLUME-PTR,LEV,426,0,0,1,Jadro-1I Volume,, +JADRO_1I(50),3022,JADRO-PSH-PTR,LEV,421,0,0,1,Jadro-1I Squelch,, +JADRO_1I(50),3025,JADRO-CONTROL-PTR,BTN,423,1,0,1,Jadro-1I Test,, +JADRO_1I(50),3027,JADRO-ON-OFF-PTR,TUMB,374,-1,0,1,Jadro-1I ON/OFF,, +JADRO_1I(50),3027,JADRO-ON-OFF-PTR,TUMB,374,1,0,1,Jadro-1I ON/OFF,, +KM_2(68),3001,KM2-KNOB-PTR,LEV,647,0,0,1,KM-2 set magnetic declination ,, +KM_2(68),3002,KM2-CONTR-BUTTON-PTR,BTN,645,1,0,1,KM-2 Test button,, +MAP_DISPLAY(45),3001,MAPDISPLAY-SCALE-PTR,TUMB,985,-1,0,1,Map Scale Selector,, +MAP_DISPLAY(45),3001,MAPDISPLAY-SCALE-PTR,TUMB,985,1,0,1,Map Scale Selector,, +MAP_DISPLAY(45),3004,MAPDISPLAY-VERT-PTR,LEV,291,0,0,1,Set the vertical position of the helicopter on the Map ,, +MAP_DISPLAY(45),3006,MAPDISPLAY-HOR-PTR,LEV,983,0,0,1,Set the horizontall position of the helicopter on the Map ,, +MAP_DISPLAY(45),3008,MAPDISPLAY-POWER-PTR,TUMB,984,-1,0,1,Map Power ON/OFF,, +MAP_DISPLAY(45),3008,MAPDISPLAY-POWER-PTR,TUMB,984,1,0,1,Map Power ON/OFF,, +MAP_DISPLAY(45),3011,MAP-LIGHT-PTR,TUMB,192,-1,-1,1,Map Highlight BRIGHT/OFF/DIM,, +MAP_DISPLAY(45),3011,MAP-LIGHT-PTR,TUMB,192,1,-1,1,Map Highlight BRIGHT/OFF/DIM,, +MGV1SU_1(25),3001,GYRO1-CAGE-PTR,BTN,10,1,0,1,Cage Gyro 1,, +MGV1SU_1(25),3004,MGV1-POWER-PTR,TUMB,369,-1,0,1,Gyro 1 Power, ON/OFF, +MGV1SU_1(25),3004,MGV1-POWER-PTR,TUMB,369,1,0,1,Gyro 1 Power, ON/OFF, +MGV1SU_2(26),3001,GYRO2-CAGE-PTR,BTN,14,1,0,1,Cage Gyro 2,, +MGV1SU_2(26),3003,GYRO-CAGE-OP-PTR,BTN,701,1,0,1,Cage Gyro 2,, +MGV1SU_2(26),3004,MGV2-POWER-PTR,TUMB,368,-1,0,1,Gyro 2 Power, ON/OFF, +MGV1SU_2(26),3004,MGV2-POWER-PTR,TUMB,368,1,0,1,Gyro 2 Power, ON/OFF, +PKP72M_INTERFACE(34),3001,GYRO-SEL-PTR,TUMB,12,-1,0,1,Gyrovertical Switch, 1/2, +PKP72M_INTERFACE(34),3001,GYRO-SEL-PTR,TUMB,12,1,0,1,Gyrovertical Switch, 1/2, +PKP72M_INTERFACE(34),3002,PKP-POWER-OP-PTR,TUMB,759,-1,0,1,ADI Switch, ON/OFF, +PKP72M_INTERFACE(34),3002,PKP-POWER-OP-PTR,TUMB,759,1,0,1,ADI Switch, ON/OFF, +PKP72M_O(33),3001,PKP-INIT-PITCH-KNOB-OP-PTR,LEV,782,0,0,1,Pitch Trim Knob,, +PKP72M_O(33),3002,PKP-TEST-OP-PTR,BTN,787,1,0,1,Test ADI Button,, +PKP72M_P(32),3001,PKP-INIT-PITCH-KNOB-PTR,LEV,941,0,0,1,Pitch Trim Knob,, +PKP72M_P(32),3002,PKP-TEST-PTR,BTN,946,1,0,1,Test ADI Button,, +RADAR_ALTIMETER(12),3001,RADAR-ALTIMETER-KNOB-PTR,LEV,30,0.05,0,1,Radar altimeter adjust and test,, +RADAR_ALTIMETER(12),3002,RADAR-ALTIMETER-KNOB-PTR,BTN,31,1,0,1,Radar altimeter adjust and test,, +RADAR_ALTIMETER(12),3003,RAD-ALT-ON-OFF-PTR,TUMB,372,-1,0,1,RV-5 ON/OFF,, +RADAR_ALTIMETER(12),3003,RAD-ALT-ON-OFF-PTR,TUMB,372,1,0,1,RV-5 ON/OFF,, +RMI2_O(44),3002,RMI-KUR-2-OP-PTR,TUMB,843,-1,0,1,Mode Switch, ZK/ARKU2, +RMI2_O(44),3002,RMI-KUR-2-OP-PTR,TUMB,843,1,0,1,Mode Switch, ZK/ARKU2, +RMI2_P(43),3002,RMI-KUR-2-PTR,TUMB,26,-1,0,1,Mode Switch, ZK/ARKU2, +RMI2_P(43),3002,RMI-KUR-2-PTR,TUMB,26,1,0,1,Mode Switch, ZK/ARKU2, +R_852(52),3001,R852-CHANNEL-PTR,TUMB,518,-0.1,0,0.3,R-852 Channel Select,, +R_852(52),3001,R852-CHANNEL-PTR,TUMB,518,0.1,0,0.3,R-852 Channel Select,, +R_852(52),3004,R852-VOLUME-KNOB-PTR,LEV,517,0,0,1,R-852 Volume,, +R_863(49),3001,R863-ON-OFF-PTR,TUMB,375,-1,0,1,R-863 ON/OFF,, +R_863(49),3001,R863-ON-OFF-PTR,TUMB,375,1,0,1,R-863 ON/OFF,, +R_863(49),3004,R863-MODULATION-PTR,TUMB,506,-1,0,1,R-863 FM/AM,, +R_863(49),3004,R863-MODULATION-PTR,TUMB,506,1,0,1,R-863 FM/AM,, +R_863(49),3007,R863-CHANNEL-PTR,TUMB,513,-0.05,0,0.95,R-863 Channel Select,, +R_863(49),3007,R863-CHANNEL-PTR,TUMB,513,0.05,0,0.95,R-863 Channel Select,, +R_863(49),3009,R863-PSH-PTR,TUMB,510,-1,0,1,R-863 Squelch ON/OFF,, +R_863(49),3009,R863-PSH-PTR,TUMB,510,1,0,1,R-863 Squelch ON/OFF,, +R_863(49),3012,R863-VOLUME-KNOB-PTR,LEV,511,0,0,1,R-863 Volume,, +R_863(49),3015,R863-AP-PTR,TUMB,507,-1,0,1,R-863 Emergency Receiver ON/OFF,, +R_863(49),3015,R863-AP-PTR,TUMB,507,1,0,1,R-863 Emergency Receiver ON/OFF,, +R_863(49),3018,R863-RK-PTR,TUMB,509,-1,0,1,R-863 ARC-UD ON/OFF,, +R_863(49),3018,R863-RK-PTR,TUMB,509,1,0,1,R-863 ARC-UD ON/OFF,, +Recorder_MC61(58),3001,RECORDER-POWER-PTR,TUMB,378,-1,0,1,Recorder MC 61 Power Switch, ON/OFF, +Recorder_MC61(58),3001,RECORDER-POWER-PTR,TUMB,378,1,0,1,Recorder MC 61 Power Switch, ON/OFF, +Recorder_MC61(58),3002,RECORDER-MODE-PTR,TUMB,1007,-1,0,1,Recorder MC 61 AUTO/WORK,, +Recorder_MC61(58),3002,RECORDER-MODE-PTR,TUMB,1007,1,0,1,Recorder MC 61 AUTO/WORK,, +Recorder_MC61(58),3003,RECORDER-LTG-KNOB-PTR,LEV,381,0,0,1,Recorder MC 61 Brightness Knob,, +Recorder_MC61(58),3004,RECORDER-SOURCE-PTR,TUMB,1012,-1,0,1,Laryngophone Switch, ON/OFF, +Recorder_MC61(58),3004,RECORDER-SOURCE-PTR,TUMB,1012,1,0,1,Laryngophone Switch, ON/OFF, +SARPP12I1(62),3001,SARPP-MAN-AUTO-OFF-PTR,TUMB,357,-1,-1,1,SARPP-12 Mode Switch, MANUAL/AUTO, +SARPP12I1(62),3001,SARPP-MAN-AUTO-OFF-PTR,TUMB,357,1,-1,1,SARPP-12 Mode Switch, MANUAL/AUTO, +SIGNAL_FLARES(64),3001,FLARE-TOP-POWER-PTR,TUMB,343,-1,0,1,Signal Flares Cassette 1 Power Switch, ON/OFF, +SIGNAL_FLARES(64),3001,FLARE-TOP-POWER-PTR,TUMB,343,1,0,1,Signal Flares Cassette 1 Power Switch, ON/OFF, +SIGNAL_FLARES(64),3002,FLARE-TOP-GREEN-PTR,TUMB,345,-1,0,1,Signal Flares Cassette 1 Launch Green Button,, +SIGNAL_FLARES(64),3002,FLARE-TOP-GREEN-PTR,TUMB,345,1,0,1,Signal Flares Cassette 1 Launch Green Button,, +SIGNAL_FLARES(64),3003,FLARE-TOP-RED-PTR,TUMB,344,-1,0,1,Signal Flares Cassette 1 Launch Red Button,, +SIGNAL_FLARES(64),3003,FLARE-TOP-RED-PTR,TUMB,344,1,0,1,Signal Flares Cassette 1 Launch Red Button,, +SIGNAL_FLARES(64),3004,FLARE-TOP-WHITE-PTR,TUMB,347,-1,0,1,Signal Flares Cassette 1 Launch White Button,, +SIGNAL_FLARES(64),3004,FLARE-TOP-WHITE-PTR,TUMB,347,1,0,1,Signal Flares Cassette 1 Launch White Button,, +SIGNAL_FLARES(64),3005,FLARE-TOP-YELLOW-PTR,TUMB,346,-1,0,1,Signal Flares Cassette 1 Launch Yellow Button,, +SIGNAL_FLARES(64),3005,FLARE-TOP-YELLOW-PTR,TUMB,346,1,0,1,Signal Flares Cassette 1 Launch Yellow Button,, +SIGNAL_FLARES(64),3006,FLARE-BOTTOM-POWER-PTR,TUMB,352,-1,0,1,Signal Flares Cassette 2 Power Switch, ON/OFF, +SIGNAL_FLARES(64),3006,FLARE-BOTTOM-POWER-PTR,TUMB,352,1,0,1,Signal Flares Cassette 2 Power Switch, ON/OFF, +SIGNAL_FLARES(64),3007,FLARE-BOTTOM-GREEN-PTR,TUMB,349,-1,0,1,Signal Flares Cassette 2 Launch Green Button,, +SIGNAL_FLARES(64),3007,FLARE-BOTTOM-GREEN-PTR,TUMB,349,1,0,1,Signal Flares Cassette 2 Launch Green Button,, +SIGNAL_FLARES(64),3008,FLARE-BOTTOM-RED-PTR,TUMB,348,-1,0,1,Signal Flares Cassette 2 Launch Red Button,, +SIGNAL_FLARES(64),3008,FLARE-BOTTOM-RED-PTR,TUMB,348,1,0,1,Signal Flares Cassette 2 Launch Red Button,, +SIGNAL_FLARES(64),3009,FLARE-BOTTOM-WHITE-PTR,TUMB,351,-1,0,1,Signal Flares Cassette 2 Launch White Button,, +SIGNAL_FLARES(64),3009,FLARE-BOTTOM-WHITE-PTR,TUMB,351,1,0,1,Signal Flares Cassette 2 Launch White Button,, +SIGNAL_FLARES(64),3010,FLARE-BOTTOM-YELLOW-PTR,TUMB,350,-1,0,1,Signal Flares Cassette 2 Launch Yellow Button,, +SIGNAL_FLARES(64),3010,FLARE-BOTTOM-YELLOW-PTR,TUMB,350,1,0,1,Signal Flares Cassette 2 Launch Yellow Button,, +SPO_10(67),3001,SIRENA-POWER-PTR,TUMB,366,-1,0,1,RWR Power,, +SPO_10(67),3001,SIRENA-POWER-PTR,TUMB,366,1,0,1,RWR Power,, +SPO_10(67),3002,SIRENA-SIGNAL-PTR,TUMB,365,-1,0,1,RWR Signal,, +SPO_10(67),3002,SIRENA-SIGNAL-PTR,TUMB,365,1,0,1,RWR Signal,, +SPO_10(67),3003,MAPDISPLAY-VERT-PTR001,TUMB,989,-1,0,1,RWR DAY/NIGHT,, +SPO_10(67),3003,MAPDISPLAY-VERT-PTR001,TUMB,989,1,0,1,RWR DAY/NIGHT,, +SPO_10(67),3004,GFORCE-RESET-PTR001,BTN,990,1,0,1,Check RWR,, +SPUU_52(19),3001,SPUU-OFF-PTR,TUMB,275,-1,0,1,SPUU OFF (that's a button but acts like a switch),, +SPUU_52(19),3001,SPUU-OFF-PTR,TUMB,275,1,0,1,SPUU OFF (that's a button but acts like a switch),, +SPUU_52(19),3003,SPUU-KNOB-PTR,LEV,276,1,0,1,Autopilot Route Azimuth,, +SPUU_52(19),3006,SPUU-CONTROL-PTR,BTN,277,1,0,1,SPUU Control Switch P/NONE/T,, +SPUU_52(19),3007,SPUU-CONTROL-PTR,BTN,277,-1,-1,0,SPUU Control Switch P/NONE/T,, +SPUU_52(19),3010,SPUU-ON-OFF-PTR,TUMB,270,-1,0,1,SPUU Power ON/OFF,, +SPUU_52(19),3010,SPUU-ON-OFF-PTR,TUMB,270,1,0,1,SPUU Power ON/OFF,, +SPU_8(55),3001,SPU8-VOLUME-PTR,LEV,457,0,0,1,SPU-8 Volume Knob,, +SPU_8(55),3002,SPU8-RADIO-VOL-KNOB-PTR,LEV,453,0,0,1,SPU-8 Radio Volume Knob,, +SPU_8(55),3003,SPU8-MODE-PTR,TUMB,455,-0.2,0,1,Radio Source Selector Switch, R-863/NF/JADRO-1A/R-828(Eucalypt)/ARC-15/ARC-U2, +SPU_8(55),3003,SPU8-MODE-PTR,TUMB,455,0.2,0,1,Radio Source Selector Switch, R-863/NF/JADRO-1A/R-828(Eucalypt)/ARC-15/ARC-U2, +SPU_8(55),3004,SPU8-EXT-PTR,TUMB,456,-1,0,1,Radio/ICS Switch,, +SPU_8(55),3004,SPU8-EXT-PTR,TUMB,456,1,0,1,Radio/ICS Switch,, +SPU_8(55),3007,SPU8-NET-PTR,TUMB,452,-1,0,1,Network 1/2 Switch (N/F),, +SPU_8(55),3007,SPU8-NET-PTR,TUMB,452,1,0,1,Network 1/2 Switch (N/F),, +SPU_8(55),3008,SPU8-CV-PTR,BTN,454,1,0,1,Circular Call Button (N/F),, +SPU_8(55),3009,SPU8-OP-VOLUME-PTR,LEV,661,0,0,1,SPU-8 Volume Knob,, +SPU_8(55),3010,SPU8-OP-RADIO-VOL-KNOB-PTR,LEV,657,0,0,1,SPU-8 Radio Volume Knob,, +SPU_8(55),3011,SPU8-OP-MODE-PTR,TUMB,659,-0.2,0,1,Radio Source Selector Switch, R-863/NF/JADRO-1A/R-828(Eucalypt)/ARC-15/ARC-U2, +SPU_8(55),3011,SPU8-OP-MODE-PTR,TUMB,659,0.2,0,1,Radio Source Selector Switch, R-863/NF/JADRO-1A/R-828(Eucalypt)/ARC-15/ARC-U2, +SPU_8(55),3012,SPU8-OP-EXT-PTR,TUMB,660,-1,0,1,Radio/ICS Switch,, +SPU_8(55),3012,SPU8-OP-EXT-PTR,TUMB,660,1,0,1,Radio/ICS Switch,, +SPU_8(55),3013,SPU8-OP-NET-PTR,TUMB,656,-1,0,1,Network 1/2 Switch (N/F),, +SPU_8(55),3013,SPU8-OP-NET-PTR,TUMB,656,1,0,1,Network 1/2 Switch (N/F),, +SPU_8(55),3014,SPU8-OP-CV-PTR,BTN,658,1,0,1,Circular Call Button (N/F),, +SPU_8(55),3015,SPU8-OP-PTR,TUMB,664,-1,0,1,SPUU Power ON/OFF,, +SPU_8(55),3015,SPU8-OP-PTR,TUMB,664,1,0,1,SPUU Power ON/OFF,, +SPU_8(55),3017,SPU8-1-ON-OFF-PTR,TUMB,376,-1,0,1,Switch SPU-8 NET-1 ON/OFF,, +SPU_8(55),3017,SPU8-1-ON-OFF-PTR,TUMB,376,1,0,1,Switch SPU-8 NET-1 ON/OFF,, +SPU_8(55),3018,SPU8-2-ON-OFF-PTR,TUMB,377,-1,0,1,Switch SPU-8 NET-2 ON/OFF,, +SPU_8(55),3018,SPU8-2-ON-OFF-PTR,TUMB,377,1,0,1,Switch SPU-8 NET-2 ON/OFF,, +UKT_2(18),3001,UKT-KNOB-PTR,LEV,951,0,0,1,Pitch Trim Knob,, +VMS(59),3001,SPEECH-OFF-PTR,BTN,359,1,0,1,RI-65 OFF Button,, +VMS(59),3002,SPEECH-CHECK-PTR,BTN,360,1,0,1,RI-65 Check Button,, +VMS(59),3003,SPEECH-REPEAT-PTR,BTN,361,1,0,1,RI-65 Repeat Button,, +WEAP_SYS(6),3001,STICK-RS-PTR,BTN,741,1,0,1,Fire Weapons,, +WEAP_SYS(6),3002,STICK-RS-COVER-PTR,TUMB,740,-1,0,1,Fire Weapons Cover,, +WEAP_SYS(6),3002,STICK-RS-COVER-PTR,TUMB,740,1,0,1,Fire Weapons Cover,, +WEAP_SYS(6),3003,WEAP-BURST-LENGTH-PTR,TUMB,521,-1,-1,1,Burst Length SHORT/MED/LONG,, +WEAP_SYS(6),3003,WEAP-BURST-LENGTH-PTR,TUMB,521,1,-1,1,Burst Length SHORT/MED/LONG,, +WEAP_SYS(6),3004,WEAP-127-LEFT-RELOAD-PTR,TUMB,522,-0.1,0,0.3,Reload Left Gondola,, +WEAP_SYS(6),3004,WEAP-127-LEFT-RELOAD-PTR,TUMB,522,0.1,0,0.3,Reload Left Gondola,, +WEAP_SYS(6),3005,WEAP-127-RIGHT-RELOAD-PTR,TUMB,527,-0.1,0,0.3,Reload Right Gondola,, +WEAP_SYS(6),3005,WEAP-127-RIGHT-RELOAD-PTR,TUMB,527,0.1,0,0.3,Reload Right Gondola,, +WEAP_SYS(6),3006,WEAP-SIGHT-CONTROL-ON-OFF-PTR,TUMB,530,-1,0,1,Weapon Camera ON/OFF,, +WEAP_SYS(6),3006,WEAP-SIGHT-CONTROL-ON-OFF-PTR,TUMB,530,1,0,1,Weapon Camera ON/OFF,, +WEAP_SYS(6),3007,WEAP-SELECT-KNOB-PTR,TUMB,523,-0.1,0,0.8,Select Weapon,, +WEAP_SYS(6),3007,WEAP-SELECT-KNOB-PTR,TUMB,523,0.1,0,0.8,Select Weapon,, +WEAP_SYS(6),3008,WEAP-ROCKET-SELECT-PTR,TUMB,531,-1,-1,1,Select Rockets LEFT/BOTH/RIGHT,, +WEAP_SYS(6),3008,WEAP-ROCKET-SELECT-PTR,TUMB,531,1,-1,1,Select Rockets LEFT/BOTH/RIGHT,, +WEAP_SYS(6),3009,WEAP-ON-OFF-PTR,TUMB,551,-1,0,1,Weapon Control ON/OFF,, +WEAP_SYS(6),3009,WEAP-ON-OFF-PTR,TUMB,551,1,0,1,Weapon Control ON/OFF,, +WEAP_SYS(6),3010,WEAP-CANNON-PACE-PTR,TUMB,550,-1,0,1,Cannon Fire Rate SLOW/FAST,, +WEAP_SYS(6),3010,WEAP-CANNON-PACE-PTR,TUMB,550,1,0,1,Cannon Fire Rate SLOW/FAST,, +WEAP_SYS(6),3011,WEAP-NPU-RELOAD-PTR,BTN,549,1,0,1,Reload Cannon,, +WEAP_SYS(6),3012,WEAP-KMG-INTERRUPT-PTR,BTN,547,1,0,1,Stop container,, +WEAP_SYS(6),3013,WEAP-JETTISON-EXPLOSION-PTR,TUMB,546,-1,0,1,Explosion on Jettison ON/OFF,, +WEAP_SYS(6),3013,WEAP-JETTISON-EXPLOSION-PTR,TUMB,546,1,0,1,Explosion on Jettison ON/OFF,, +WEAP_SYS(6),3014,WEAP-JETTISON-EXPLOSION-COVER-PTR,TUMB,545,-1,0,1,Explosion on Jettison Cover, UP/DOWN, +WEAP_SYS(6),3014,WEAP-JETTISON-EXPLOSION-COVER-PTR,TUMB,545,1,0,1,Explosion on Jettison Cover, UP/DOWN, +WEAP_SYS(6),3015,WEAP-JETTISON-SPECIAL-PTR,BTN,542,1,0,1,Jettison Pylons ON/OFF,, +WEAP_SYS(6),3016,WEAP-JETTISON-SPECIAL-COVER-PTR,TUMB,541,-1,0,1,Jettison Pylons Cover, UP/DOWN, +WEAP_SYS(6),3016,WEAP-JETTISON-SPECIAL-COVER-PTR,TUMB,541,1,0,1,Jettison Pylons Cover, UP/DOWN, +WEAP_SYS(6),3017,WEAP-JETTISON-LAUNCHER-PTR,BTN,538,1,0,1,Jettison Launcher ON/OFF,, +WEAP_SYS(6),3018,WEAP-JETTISON-LAUNCHER-COVER-PTR,TUMB,537,-1,0,1,Jettison Launcher Cover, UP/DOWN, +WEAP_SYS(6),3018,WEAP-JETTISON-LAUNCHER-COVER-PTR,TUMB,537,1,0,1,Jettison Launcher Cover, UP/DOWN, +WEAP_SYS(6),3019,WEAP-PUS-ENGAGEMENT-PTR,BTN,536,1,0,1,Arm Rockets,, +WEAP_SYS(6),3020,ARMAMENT-POWER-OP-PTR,TUMB,673,-1,0,1,Main Weapon Safe Switch,, +WEAP_SYS(6),3020,ARMAMENT-POWER-OP-PTR,TUMB,673,1,0,1,Main Weapon Safe Switch,, +WEAP_SYS(6),3021,OP-STICK-RS-PTR,BTN,187,1,0,1,Fire Weapons,, +WEAP_SYS(6),3022,OP-STICK-RS-COVER-PTR,TUMB,853,-1,0,1,Fire Weapons Cover,, +WEAP_SYS(6),3022,OP-STICK-RS-COVER-PTR,TUMB,853,1,0,1,Fire Weapons Cover,, +WEAP_SYS(6),3023,WEAP-PRIORITY-OP-PTR,TUMB,713,-1,0,1,Weapon Control,, +WEAP_SYS(6),3023,WEAP-PRIORITY-OP-PTR,TUMB,713,1,0,1,Weapon Control,, +WEAP_SYS(6),3024,WEAP-JETTISON-EXPLOSION-OP-PTR,TUMB,715,-1,0,1,Explosion on Jettison,, +WEAP_SYS(6),3024,WEAP-JETTISON-EXPLOSION-OP-PTR,TUMB,715,1,0,1,Explosion on Jettison,, +WEAP_SYS(6),3025,WEAP-JETTISON-OP-PTR,BTN,142,1,0,1,Emergency Jettison,, +WEAP_SYS(6),3026,WEAP-BURST-LENGTH-OP-PTR,TUMB,770,-1,-1,1,Burst Length SHORT/MED/LONG,, +WEAP_SYS(6),3026,WEAP-BURST-LENGTH-OP-PTR,TUMB,770,1,-1,1,Burst Length SHORT/MED/LONG,, +WEAP_SYS(6),3027,WEAP-SELECT-KNOB-OP-PTR,TUMB,709,-0.1,0,0.4,Select Weapon,, +WEAP_SYS(6),3027,WEAP-SELECT-KNOB-OP-PTR,TUMB,709,0.1,0,0.4,Select Weapon,, +WEAP_SYS(6),3028,WEAP-MISSILES-POWER-OP-PTR,TUMB,773,-1,0,1,Missiles Power,, +WEAP_SYS(6),3028,WEAP-MISSILES-POWER-OP-PTR,TUMB,773,1,0,1,Missiles Power,, +WEAP_SYS(6),3030,SHSCHO-POWER-PTR,TUMB,955,-1,0,1,SCHO Power,, +WEAP_SYS(6),3030,SHSCHO-POWER-PTR,TUMB,955,1,0,1,SCHO Power,, +WEAP_SYS(6),3031,WEAP-JETTISON-TEST-OP-PTR,BTN,768,1,0,1,Release Check PU,, +WEAP_SYS(6),3032,WEAP-JETTISON-SPECIAL-OP-PTR,TUMB,765,-1,0,1,Jettison Launcher ON/OFF,, +WEAP_SYS(6),3032,WEAP-JETTISON-SPECIAL-OP-PTR,TUMB,765,1,0,1,Jettison Launcher ON/OFF,, +WEAP_SYS(6),3033,WEAP-BOMBS-BLOCKS-OP-PTR,TUMB,700,-1,-1,1,Bombs/Blocks Mode,, +WEAP_SYS(6),3033,WEAP-BOMBS-BLOCKS-OP-PTR,TUMB,700,1,-1,1,Bombs/Blocks Mode,, +WEAP_SYS(6),3034,OP-AIM-RESET-RAD-PTR,BTN,882,1,0,1,Radiation Reset,, +WEAP_SYS(6),3035,SHSCHO-CHECK-PTR,BTN,956,1,0,1,SCHO Lamps Check,, +WEAP_SYS(6),3037,WEAP-CANNON-PACE-OP-PTR,TUMB,772,-1,0,1,Cannon Fire Rate SLOW/FAST,, +WEAP_SYS(6),3037,WEAP-CANNON-PACE-OP-PTR,TUMB,772,1,0,1,Cannon Fire Rate SLOW/FAST,, +WEAP_SYS(6),3038,SHSCHO-KNOB-PTR,TUMB,963,-0.1,0,0.8,Select Station,, +WEAP_SYS(6),3038,SHSCHO-KNOB-PTR,TUMB,963,0.1,0,0.8,Select Station,, +WEAP_SYS(6),3039,WEAP-NPU-RELOAD-OP-PTR,BTN,769,1,0,1,Reload Cannon,, +WEAP_SYS(6),3040,WEAP-PRIORITY-OP-COVER-PTR,TUMB,712,-1,0,1,Weapon Control Cover, UP/DOWN, +WEAP_SYS(6),3040,WEAP-PRIORITY-OP-COVER-PTR,TUMB,712,1,0,1,Weapon Control Cover, UP/DOWN, +WEAP_SYS(6),3041,WEAP-JETTISON-EXPLOSION-OP-COVER-PTR,TUMB,714,-1,0,1,Explosion on Jettison Cover, UP/DOWN, +WEAP_SYS(6),3041,WEAP-JETTISON-EXPLOSION-OP-COVER-PTR,TUMB,714,1,0,1,Explosion on Jettison Cover, UP/DOWN, +WEAP_SYS(6),3042,WEAP-JETTISON-OP-COVER-PTR,TUMB,141,-1,0,1,Emergency Jettison Cover, UP/DOWN, +WEAP_SYS(6),3042,WEAP-JETTISON-OP-COVER-PTR,TUMB,141,1,0,1,Emergency Jettison Cover, UP/DOWN, +WEAP_SYS(6),3043,WEAP-BOMBS-BLOCKS-OP-COVER-PTR,TUMB,699,-1,0,1,Bombs/Blocks Mode Cover, UP/DOWN, +WEAP_SYS(6),3043,WEAP-BOMBS-BLOCKS-OP-COVER-PTR,TUMB,699,1,0,1,Bombs/Blocks Mode Cover, UP/DOWN, +WEAP_SYS(6),3044,WEAP-JETTISON-SPECIAL-OP-COVER-PTR,TUMB,764,-1,0,1,Jettison Launcher Cover, UP/DOWN, +WEAP_SYS(6),3044,WEAP-JETTISON-SPECIAL-OP-COVER-PTR,TUMB,764,1,0,1,Jettison Launcher Cover, UP/DOWN, +WEAP_SYS(6),3045,WEAP-KMG-COMMENCE-OP-PTR,BTN,711,1,0,1,Start container,, +WEAP_SYS(6),3046,WEAP-KMG-INTERRUPT-OP-PTR,BTN,710,1,0,1,Stop container,, diff --git a/docu/Calculations/MosquitoFBMkVI calculations.xlsx b/docu/Calculations/MosquitoFBMkVI calculations.xlsx new file mode 100644 index 00000000..32d554df Binary files /dev/null and b/docu/Calculations/MosquitoFBMkVI calculations.xlsx differ diff --git a/docu/Calculations/hind calculations.xlsx b/docu/Calculations/hind calculations.xlsx new file mode 100644 index 00000000..05db5ac0 Binary files /dev/null and b/docu/Calculations/hind calculations.xlsx differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu off closed.png b/docu/Pics/AH-64D Apache/Cockpit/apu off closed.png new file mode 100644 index 00000000..5964f0ee Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu off closed.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu off open.png b/docu/Pics/AH-64D Apache/Cockpit/apu off open.png new file mode 100644 index 00000000..b4073cfe Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu off open.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu off.png b/docu/Pics/AH-64D Apache/Cockpit/apu off.png new file mode 100644 index 00000000..b89d7e77 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu on closed.png b/docu/Pics/AH-64D Apache/Cockpit/apu on closed.png new file mode 100644 index 00000000..68c72bd3 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu on closed.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu on open.png b/docu/Pics/AH-64D Apache/Cockpit/apu on open.png new file mode 100644 index 00000000..6e132ab2 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu on open.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu on.png b/docu/Pics/AH-64D Apache/Cockpit/apu on.png new file mode 100644 index 00000000..54b15d19 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu.psd b/docu/Pics/AH-64D Apache/Cockpit/apu.psd new file mode 100644 index 00000000..f1d54bed Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/apu2.psd b/docu/Pics/AH-64D Apache/Cockpit/apu2.psd new file mode 100644 index 00000000..32832626 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/apu2.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/ehyd off.png b/docu/Pics/AH-64D Apache/Cockpit/ehyd off.png new file mode 100644 index 00000000..17837c8f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/ehyd off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/ehyd on.png b/docu/Pics/AH-64D Apache/Cockpit/ehyd on.png new file mode 100644 index 00000000..27fcb49f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/ehyd on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/eng fly.png b/docu/Pics/AH-64D Apache/Cockpit/eng fly.png new file mode 100644 index 00000000..cb9cbc63 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/eng fly.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/eng srt.png b/docu/Pics/AH-64D Apache/Cockpit/eng srt.png new file mode 100644 index 00000000..f01c6770 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/eng srt.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/ground override off.png b/docu/Pics/AH-64D Apache/Cockpit/ground override off.png new file mode 100644 index 00000000..5e05c9a4 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/ground override off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/ground override on.png b/docu/Pics/AH-64D Apache/Cockpit/ground override on.png new file mode 100644 index 00000000..448d308f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/ground override on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/ground override.psd b/docu/Pics/AH-64D Apache/Cockpit/ground override.psd new file mode 100644 index 00000000..0823449d Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/ground override.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/guard off.png b/docu/Pics/AH-64D Apache/Cockpit/guard off.png new file mode 100644 index 00000000..cf690d0e Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/guard off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/guard on.png b/docu/Pics/AH-64D Apache/Cockpit/guard on.png new file mode 100644 index 00000000..7a6dae58 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/guard on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/left panel top.psd b/docu/Pics/AH-64D Apache/Cockpit/left panel top.psd new file mode 100644 index 00000000..a2fe902c Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/left panel top.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master arm arm.png b/docu/Pics/AH-64D Apache/Cockpit/master arm arm.png new file mode 100644 index 00000000..d29379b7 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master arm arm.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master arm safe.png b/docu/Pics/AH-64D Apache/Cockpit/master arm safe.png new file mode 100644 index 00000000..2db159f8 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master arm safe.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master arm.psd b/docu/Pics/AH-64D Apache/Cockpit/master arm.psd new file mode 100644 index 00000000..19be7f8f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master arm.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master caut off.png b/docu/Pics/AH-64D Apache/Cockpit/master caut off.png new file mode 100644 index 00000000..e550e4c4 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master caut off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master caut on.png b/docu/Pics/AH-64D Apache/Cockpit/master caut on.png new file mode 100644 index 00000000..fbf2d26f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master caut on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master ign batt.png b/docu/Pics/AH-64D Apache/Cockpit/master ign batt.png new file mode 100644 index 00000000..f6360d21 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master ign batt.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master ign off.png b/docu/Pics/AH-64D Apache/Cockpit/master ign off.png new file mode 100644 index 00000000..c08b49ae Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master ign off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master ign.psd b/docu/Pics/AH-64D Apache/Cockpit/master ign.psd new file mode 100644 index 00000000..0f4ddf90 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master ign.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master lights.psd b/docu/Pics/AH-64D Apache/Cockpit/master lights.psd new file mode 100644 index 00000000..dc1a7d7c Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master lights.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master warn off.png b/docu/Pics/AH-64D Apache/Cockpit/master warn off.png new file mode 100644 index 00000000..381e961c Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master warn off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/master warn on.png b/docu/Pics/AH-64D Apache/Cockpit/master warn on.png new file mode 100644 index 00000000..98091772 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/master warn on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/park brk off.png b/docu/Pics/AH-64D Apache/Cockpit/park brk off.png new file mode 100644 index 00000000..e9a1e810 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/park brk off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/park brk off2.png b/docu/Pics/AH-64D Apache/Cockpit/park brk off2.png new file mode 100644 index 00000000..4413dd7e Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/park brk off2.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/park brk on.png b/docu/Pics/AH-64D Apache/Cockpit/park brk on.png new file mode 100644 index 00000000..aee15003 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/park brk on.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/pwr det.png b/docu/Pics/AH-64D Apache/Cockpit/pwr det.png new file mode 100644 index 00000000..f1c8fe1f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/pwr det.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/pwr fly.png b/docu/Pics/AH-64D Apache/Cockpit/pwr fly.png new file mode 100644 index 00000000..7c8c6689 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/pwr fly.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel.png b/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel.png new file mode 100644 index 00000000..607d8a55 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel.psd b/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel.psd new file mode 100644 index 00000000..3ab4afc6 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel.psd differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel2.png b/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel2.png new file mode 100644 index 00000000..02a189b9 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/rearm and refuel2.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/tailwheel lock.png b/docu/Pics/AH-64D Apache/Cockpit/tailwheel lock.png new file mode 100644 index 00000000..16f1afa8 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/tailwheel lock.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/tailwheel unlock.png b/docu/Pics/AH-64D Apache/Cockpit/tailwheel unlock.png new file mode 100644 index 00000000..ecf36a28 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/tailwheel unlock.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/tailwheel unlock2.png b/docu/Pics/AH-64D Apache/Cockpit/tailwheel unlock2.png new file mode 100644 index 00000000..ef1c1b49 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/tailwheel unlock2.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/xpndr off.png b/docu/Pics/AH-64D Apache/Cockpit/xpndr off.png new file mode 100644 index 00000000..64a8c833 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/xpndr off.png differ diff --git a/docu/Pics/AH-64D Apache/Cockpit/xpndr on.png b/docu/Pics/AH-64D Apache/Cockpit/xpndr on.png new file mode 100644 index 00000000..b42060c9 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Cockpit/xpndr on.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_AV8B_ODU.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_AV8B_ODU.png new file mode 100644 index 00000000..2431849d Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_AV8B_ODU.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_UFC_Blank.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_UFC_Blank.png new file mode 100644 index 00000000..9b4fc398 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_UFC_Blank.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_UFC_Blank@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_UFC_Blank@2x.png new file mode 100644 index 00000000..572e4c25 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Button_UFC_Blank@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_High.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_High.png new file mode 100644 index 00000000..d0a56ae8 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_High.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_High@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_High@2x.png new file mode 100644 index 00000000..d9c50997 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_High@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_HighMod@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_HighMod@2x.png new file mode 100644 index 00000000..525ba660 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_HighMod@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_Low.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_Low.png new file mode 100644 index 00000000..03df7763 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_Low.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_Low@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_Low@2x.png new file mode 100644 index 00000000..d2380e98 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_Low@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_LowMod@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_LowMod@2x.png new file mode 100644 index 00000000..329ba265 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Chrome_Switch_LowMod@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0.png new file mode 100644 index 00000000..e5595da7 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x Low Hi.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x Low Hi.png new file mode 100644 index 00000000..01e5b7b3 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x Low Hi.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x Low.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x Low.png new file mode 100644 index 00000000..e7edcc82 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x Low.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x.png new file mode 100644 index 00000000..2076f764 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_0@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1.png new file mode 100644 index 00000000..ffb14537 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x Low Hi.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x Low Hi.png new file mode 100644 index 00000000..e3442c5b Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x Low Hi.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x Low.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x Low.png new file mode 100644 index 00000000..d5a6223e Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x Low.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x.png new file mode 100644 index 00000000..a42f2dbe Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Dial_1@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_0.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_0.png new file mode 100644 index 00000000..a88c18d4 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_0.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_0@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_0@2x.png new file mode 100644 index 00000000..ba6a028f Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_0@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_1.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_1.png new file mode 100644 index 00000000..fd65f9a5 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_1.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_1@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_1@2x.png new file mode 100644 index 00000000..e52ef188 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/Rotary_Switch_Half_1@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_off.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_off.png new file mode 100644 index 00000000..99ac37fe Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_off.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_off@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_off@2x.png new file mode 100644 index 00000000..61045d88 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_off@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_on.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_on.png new file mode 100644 index 00000000..865ebc0b Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_on.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_on@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_on@2x.png new file mode 100644 index 00000000..bd3569a1 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/button_light_on@2x.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/display_wide.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/display_wide.png new file mode 100644 index 00000000..1dcb15c0 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/display_wide.png differ diff --git a/docu/Pics/AH-64D Apache/DCS-Interface Images/display_wide@2x.png b/docu/Pics/AH-64D Apache/DCS-Interface Images/display_wide@2x.png new file mode 100644 index 00000000..db90a196 Binary files /dev/null and b/docu/Pics/AH-64D Apache/DCS-Interface Images/display_wide@2x.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_idm down.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_idm down.png new file mode 100644 index 00000000..e79a0a44 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_idm down.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_idm up.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_idm up.png new file mode 100644 index 00000000..ece5b97d Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_idm up.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_preset.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_preset.png new file mode 100644 index 00000000..61c4e318 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_preset.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_rts down.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_rts down.png new file mode 100644 index 00000000..7832f149 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_rts down.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_rts up.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_rts up.png new file mode 100644 index 00000000..cb01c0b4 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_rts up.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_stopwatch.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_stopwatch.png new file mode 100644 index 00000000..d95457d7 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_stopwatch.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_swap.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_swap.png new file mode 100644 index 00000000..5e345cef Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_swap.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_ufd enter.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_ufd enter.png new file mode 100644 index 00000000..20da270a Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_ufd enter.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_wca down.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_wca down.png new file mode 100644 index 00000000..386e7fb2 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_wca down.png differ diff --git a/docu/Pics/AH-64D Apache/EUFD/EUFD_wca up.png b/docu/Pics/AH-64D Apache/EUFD/EUFD_wca up.png new file mode 100644 index 00000000..3da84829 Binary files /dev/null and b/docu/Pics/AH-64D Apache/EUFD/EUFD_wca up.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU Buttons.psd b/docu/Pics/AH-64D Apache/Ku/KU Buttons.psd new file mode 100644 index 00000000..a4b12436 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU Buttons.psd differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_0.png b/docu/Pics/AH-64D Apache/Ku/KU_0.png new file mode 100644 index 00000000..9ccb66b6 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_0.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_1.png b/docu/Pics/AH-64D Apache/Ku/KU_1.png new file mode 100644 index 00000000..c31118f0 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_1.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_2.png b/docu/Pics/AH-64D Apache/Ku/KU_2.png new file mode 100644 index 00000000..74abebb5 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_2.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_3.png b/docu/Pics/AH-64D Apache/Ku/KU_3.png new file mode 100644 index 00000000..802a0c31 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_3.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_4.png b/docu/Pics/AH-64D Apache/Ku/KU_4.png new file mode 100644 index 00000000..0c8d6a05 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_4.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_5.png b/docu/Pics/AH-64D Apache/Ku/KU_5.png new file mode 100644 index 00000000..0c6c453c Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_5.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_6.png b/docu/Pics/AH-64D Apache/Ku/KU_6.png new file mode 100644 index 00000000..bb6161d1 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_6.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_7.png b/docu/Pics/AH-64D Apache/Ku/KU_7.png new file mode 100644 index 00000000..105ffcbc Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_7.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_8.png b/docu/Pics/AH-64D Apache/Ku/KU_8.png new file mode 100644 index 00000000..5575b7d8 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_8.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_9.png b/docu/Pics/AH-64D Apache/Ku/KU_9.png new file mode 100644 index 00000000..cd5126fc Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_9.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_Dot.png b/docu/Pics/AH-64D Apache/Ku/KU_Dot.png new file mode 100644 index 00000000..addd99cc Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_Dot.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_KU Buttons.png b/docu/Pics/AH-64D Apache/Ku/KU_KU Buttons.png new file mode 100644 index 00000000..5a8d9a80 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_KU Buttons.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_backspace.png b/docu/Pics/AH-64D Apache/Ku/KU_backspace.png new file mode 100644 index 00000000..db3bc97f Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_backspace.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_clear.png b/docu/Pics/AH-64D Apache/Ku/KU_clear.png new file mode 100644 index 00000000..c7d4e412 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_clear.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_divide.png b/docu/Pics/AH-64D Apache/Ku/KU_divide.png new file mode 100644 index 00000000..fe0869ab Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_divide.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_e.png b/docu/Pics/AH-64D Apache/Ku/KU_e.png new file mode 100644 index 00000000..b8a0b744 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_e.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_enter.png b/docu/Pics/AH-64D Apache/Ku/KU_enter.png new file mode 100644 index 00000000..0afd512a Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_enter.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_left.png b/docu/Pics/AH-64D Apache/Ku/KU_left.png new file mode 100644 index 00000000..3acf21dd Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_left.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_minus.png b/docu/Pics/AH-64D Apache/Ku/KU_minus.png new file mode 100644 index 00000000..3a5bab37 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_minus.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_n.png b/docu/Pics/AH-64D Apache/Ku/KU_n.png new file mode 100644 index 00000000..0c60db95 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_n.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_num.png b/docu/Pics/AH-64D Apache/Ku/KU_num.png new file mode 100644 index 00000000..09fd6aab Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_num.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_num2.png b/docu/Pics/AH-64D Apache/Ku/KU_num2.png new file mode 100644 index 00000000..32f0da4b Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_num2.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_plus.png b/docu/Pics/AH-64D Apache/Ku/KU_plus.png new file mode 100644 index 00000000..74712f6c Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_plus.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_plusMinus.png b/docu/Pics/AH-64D Apache/Ku/KU_plusMinus.png new file mode 100644 index 00000000..7345f9eb Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_plusMinus.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_right.png b/docu/Pics/AH-64D Apache/Ku/KU_right.png new file mode 100644 index 00000000..8afa13b9 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_right.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_s.png b/docu/Pics/AH-64D Apache/Ku/KU_s.png new file mode 100644 index 00000000..de680192 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_s.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_space.png b/docu/Pics/AH-64D Apache/Ku/KU_space.png new file mode 100644 index 00000000..0851fde8 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_space.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_times.png b/docu/Pics/AH-64D Apache/Ku/KU_times.png new file mode 100644 index 00000000..5f6a4880 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_times.png differ diff --git a/docu/Pics/AH-64D Apache/Ku/KU_w.png b/docu/Pics/AH-64D Apache/Ku/KU_w.png new file mode 100644 index 00000000..9702f481 Binary files /dev/null and b/docu/Pics/AH-64D Apache/Ku/KU_w.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_ac.png b/docu/Pics/AH-64D Apache/MPDs/MPD_ac.png new file mode 100644 index 00000000..3e97db5a Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_ac.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_blue button.png b/docu/Pics/AH-64D Apache/MPDs/MPD_blue button.png new file mode 100644 index 00000000..7e388cb0 Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_blue button.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_com.png b/docu/Pics/AH-64D Apache/MPDs/MPD_com.png new file mode 100644 index 00000000..5c711ae4 Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_com.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_fcr.png b/docu/Pics/AH-64D Apache/MPDs/MPD_fcr.png new file mode 100644 index 00000000..0cc8bc52 Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_fcr.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_m.png b/docu/Pics/AH-64D Apache/MPDs/MPD_m.png new file mode 100644 index 00000000..310c38c3 Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_m.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_tads left.png b/docu/Pics/AH-64D Apache/MPDs/MPD_tads left.png new file mode 100644 index 00000000..b0448568 Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_tads left.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_tads right.png b/docu/Pics/AH-64D Apache/MPDs/MPD_tads right.png new file mode 100644 index 00000000..4beef378 Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_tads right.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_tads.png b/docu/Pics/AH-64D Apache/MPDs/MPD_tads.png new file mode 100644 index 00000000..453c7c5f Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_tads.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_tsd.png b/docu/Pics/AH-64D Apache/MPDs/MPD_tsd.png new file mode 100644 index 00000000..804c037d Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_tsd.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_vid.png b/docu/Pics/AH-64D Apache/MPDs/MPD_vid.png new file mode 100644 index 00000000..ee90077b Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_vid.png differ diff --git a/docu/Pics/AH-64D Apache/MPDs/MPD_wpn.png b/docu/Pics/AH-64D Apache/MPDs/MPD_wpn.png new file mode 100644 index 00000000..38175d3e Binary files /dev/null and b/docu/Pics/AH-64D Apache/MPDs/MPD_wpn.png differ diff --git a/docu/Pics/AH-64D Apache/apacheKu.gif b/docu/Pics/AH-64D Apache/apacheKu.gif new file mode 100644 index 00000000..d24dd8ce Binary files /dev/null and b/docu/Pics/AH-64D Apache/apacheKu.gif differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights.psd b/docu/Pics/AJS-37 Viggen/AfterburnerLights.psd new file mode 100644 index 00000000..3cf78835 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights.psd differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights_0000_Layer-7.png b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0000_Layer-7.png new file mode 100644 index 00000000..9c54da98 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0000_Layer-7.png differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights_0001_Layer-8.png b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0001_Layer-8.png new file mode 100644 index 00000000..65892a1e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0001_Layer-8.png differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights_0002_Layer-9.png b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0002_Layer-9.png new file mode 100644 index 00000000..218c2aa2 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0002_Layer-9.png differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights_0004_Layer-1.png b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0004_Layer-1.png new file mode 100644 index 00000000..35042e92 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0004_Layer-1.png differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights_0005_Layer-2.png b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0005_Layer-2.png new file mode 100644 index 00000000..d5ee0d47 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0005_Layer-2.png differ diff --git a/docu/Pics/AJS-37 Viggen/AfterburnerLights_0006_Layer-3.png b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0006_Layer-3.png new file mode 100644 index 00000000..2e8e1459 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/AfterburnerLights_0006_Layer-3.png differ diff --git a/docu/Pics/AJS-37 Viggen/LNS_VIG_CPT_Radiobuttons.png b/docu/Pics/AJS-37 Viggen/LNS_VIG_CPT_Radiobuttons.png new file mode 100644 index 00000000..4477257e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/LNS_VIG_CPT_Radiobuttons.png differ diff --git a/docu/Pics/AJS-37 Viggen/LNS_VIG_CPT_Radiobuttons.psd b/docu/Pics/AJS-37 Viggen/LNS_VIG_CPT_Radiobuttons.psd new file mode 100644 index 00000000..68053940 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/LNS_VIG_CPT_Radiobuttons.psd differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0000_RadioButtons_0019_Layer-20.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0000_RadioButtons_0019_Layer-20.png new file mode 100644 index 00000000..3edde386 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0000_RadioButtons_0019_Layer-20.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0001_RadioButtons_0018_Layer-19.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0001_RadioButtons_0018_Layer-19.png new file mode 100644 index 00000000..abe41688 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0001_RadioButtons_0018_Layer-19.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0002_RadioButtons_0017_Layer-18.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0002_RadioButtons_0017_Layer-18.png new file mode 100644 index 00000000..c1f9bcea Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0002_RadioButtons_0017_Layer-18.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0003_RadioButtons_0016_Layer-17.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0003_RadioButtons_0016_Layer-17.png new file mode 100644 index 00000000..cdfbf37f Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0003_RadioButtons_0016_Layer-17.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0004_RadioButtons_0015_Layer-16.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0004_RadioButtons_0015_Layer-16.png new file mode 100644 index 00000000..80495df2 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0004_RadioButtons_0015_Layer-16.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0005_RadioButtons_0014_Layer-15.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0005_RadioButtons_0014_Layer-15.png new file mode 100644 index 00000000..e32bc121 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0005_RadioButtons_0014_Layer-15.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0006_RadioButtons_0013_Layer-14.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0006_RadioButtons_0013_Layer-14.png new file mode 100644 index 00000000..f5717d1c Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0006_RadioButtons_0013_Layer-14.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0007_RadioButtons_0012_Layer-13.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0007_RadioButtons_0012_Layer-13.png new file mode 100644 index 00000000..4a80d59a Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0007_RadioButtons_0012_Layer-13.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0008_RadioButtons_0011_Layer-12.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0008_RadioButtons_0011_Layer-12.png new file mode 100644 index 00000000..30006a76 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0008_RadioButtons_0011_Layer-12.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0009_RadioButtons_0010_Layer-11.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0009_RadioButtons_0010_Layer-11.png new file mode 100644 index 00000000..29e75305 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0009_RadioButtons_0010_Layer-11.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0010_RadioButtons_0009_Layer-10.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0010_RadioButtons_0009_Layer-10.png new file mode 100644 index 00000000..77a04742 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0010_RadioButtons_0009_Layer-10.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0011_RadioButtons_0008_Layer-9.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0011_RadioButtons_0008_Layer-9.png new file mode 100644 index 00000000..7a7a13c2 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0011_RadioButtons_0008_Layer-9.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0012_RadioButtons_0007_Layer-8.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0012_RadioButtons_0007_Layer-8.png new file mode 100644 index 00000000..4ed16062 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0012_RadioButtons_0007_Layer-8.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0013_RadioButtons_0006_Layer-7.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0013_RadioButtons_0006_Layer-7.png new file mode 100644 index 00000000..c1cfcb5f Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0013_RadioButtons_0006_Layer-7.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0014_RadioButtons_0005_Layer-6.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0014_RadioButtons_0005_Layer-6.png new file mode 100644 index 00000000..ec568b2a Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0014_RadioButtons_0005_Layer-6.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0015_RadioButtons_0004_Layer-5.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0015_RadioButtons_0004_Layer-5.png new file mode 100644 index 00000000..3b25e08e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0015_RadioButtons_0004_Layer-5.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0016_RadioButtons_0003_Layer-4.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0016_RadioButtons_0003_Layer-4.png new file mode 100644 index 00000000..f9eae7cd Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0016_RadioButtons_0003_Layer-4.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0017_RadioButtons_0002_Layer-3.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0017_RadioButtons_0002_Layer-3.png new file mode 100644 index 00000000..a8a08b91 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0017_RadioButtons_0002_Layer-3.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0018_RadioButtons_0001_Layer-2.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0018_RadioButtons_0001_Layer-2.png new file mode 100644 index 00000000..9229d9be Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0018_RadioButtons_0001_Layer-2.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0019_RadioButtons_0000_Layer-1.png b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0019_RadioButtons_0000_Layer-1.png new file mode 100644 index 00000000..754026b0 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButton_0000s_0019_RadioButtons_0000_Layer-1.png differ diff --git a/docu/Pics/AJS-37 Viggen/RadioButtons.psd b/docu/Pics/AJS-37 Viggen/RadioButtons.psd new file mode 100644 index 00000000..92346814 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/RadioButtons.psd differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0000_Layer-1.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0000_Layer-1.png new file mode 100644 index 00000000..e1da790b Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0000_Layer-1.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0001_Layer-2.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0001_Layer-2.png new file mode 100644 index 00000000..8a7f330b Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0001_Layer-2.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0002_Layer-3.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0002_Layer-3.png new file mode 100644 index 00000000..85264976 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0002_Layer-3.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0003_Layer-4.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0003_Layer-4.png new file mode 100644 index 00000000..0e3ce6fc Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0003_Layer-4.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0004_Layer-5.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0004_Layer-5.png new file mode 100644 index 00000000..75436e6b Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0004_Layer-5.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0005_Layer-6.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0005_Layer-6.png new file mode 100644 index 00000000..d6d5c4d9 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0005_Layer-6.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0006_Layer-7.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0006_Layer-7.png new file mode 100644 index 00000000..bf7549b4 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0006_Layer-7.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0007_Layer-8.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0007_Layer-8.png new file mode 100644 index 00000000..2a3a3350 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0007_Layer-8.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0008_Layer-9.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0008_Layer-9.png new file mode 100644 index 00000000..1b1628de Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0008_Layer-9.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0009_Layer-10.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0009_Layer-10.png new file mode 100644 index 00000000..4afd1217 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0009_Layer-10.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0010_Layer-11.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0010_Layer-11.png new file mode 100644 index 00000000..2b350a01 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0010_Layer-11.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0011_Layer-12.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0011_Layer-12.png new file mode 100644 index 00000000..cb00278e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0011_Layer-12.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0012_Layer-13.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0012_Layer-13.png new file mode 100644 index 00000000..3ac4255d Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0012_Layer-13.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0013_Layer-14.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0013_Layer-14.png new file mode 100644 index 00000000..12f60e70 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0013_Layer-14.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0014_Layer-15.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0014_Layer-15.png new file mode 100644 index 00000000..14d7385f Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0014_Layer-15.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0015_Layer-16.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0015_Layer-16.png new file mode 100644 index 00000000..9d490aca Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0015_Layer-16.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0016_Layer-17.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0016_Layer-17.png new file mode 100644 index 00000000..32cf228a Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0016_Layer-17.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0017_Layer-18.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0017_Layer-18.png new file mode 100644 index 00000000..4c24149e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0017_Layer-18.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0018_Layer-19.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0018_Layer-19.png new file mode 100644 index 00000000..3289bc1e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0018_Layer-19.png differ diff --git a/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0019_Layer-20.png b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0019_Layer-20.png new file mode 100644 index 00000000..c1fc72cf Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Small Radio Buttons/RadioButtons_0019_Layer-20.png differ diff --git a/docu/Pics/AJS-37 Viggen/Viggen Custom Icons.psd b/docu/Pics/AJS-37 Viggen/Viggen Custom Icons.psd new file mode 100644 index 00000000..a664516d Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/Viggen Custom Icons.psd differ diff --git a/docu/Pics/AJS-37 Viggen/afk1.png b/docu/Pics/AJS-37 Viggen/afk1.png new file mode 100644 index 00000000..404cb699 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/afk1.png differ diff --git a/docu/Pics/AJS-37 Viggen/afk2.png b/docu/Pics/AJS-37 Viggen/afk2.png new file mode 100644 index 00000000..7b939e7b Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/afk2.png differ diff --git a/docu/Pics/AJS-37 Viggen/aoa1.png b/docu/Pics/AJS-37 Viggen/aoa1.png new file mode 100644 index 00000000..cb256631 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/aoa1.png differ diff --git a/docu/Pics/AJS-37 Viggen/aoa2.png b/docu/Pics/AJS-37 Viggen/aoa2.png new file mode 100644 index 00000000..2fc251fd Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/aoa2.png differ diff --git a/docu/Pics/AJS-37 Viggen/att1.png b/docu/Pics/AJS-37 Viggen/att1.png new file mode 100644 index 00000000..79c92081 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/att1.png differ diff --git a/docu/Pics/AJS-37 Viggen/att2.png b/docu/Pics/AJS-37 Viggen/att2.png new file mode 100644 index 00000000..3b508a3b Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/att2.png differ diff --git a/docu/Pics/AJS-37 Viggen/autopilots.psd b/docu/Pics/AJS-37 Viggen/autopilots.psd new file mode 100644 index 00000000..772c54c5 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/autopilots.psd differ diff --git a/docu/Pics/AJS-37 Viggen/button 00.png b/docu/Pics/AJS-37 Viggen/button 00.png new file mode 100644 index 00000000..14d578f0 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 00.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 01.png b/docu/Pics/AJS-37 Viggen/button 01.png new file mode 100644 index 00000000..94e3014e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 01.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 02.png b/docu/Pics/AJS-37 Viggen/button 02.png new file mode 100644 index 00000000..875e7635 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 02.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 03.png b/docu/Pics/AJS-37 Viggen/button 03.png new file mode 100644 index 00000000..58bb5779 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 03.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 04.png b/docu/Pics/AJS-37 Viggen/button 04.png new file mode 100644 index 00000000..b12bdb9c Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 04.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 05.png b/docu/Pics/AJS-37 Viggen/button 05.png new file mode 100644 index 00000000..8b352450 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 05.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 06.png b/docu/Pics/AJS-37 Viggen/button 06.png new file mode 100644 index 00000000..8f786c14 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 06.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 07.png b/docu/Pics/AJS-37 Viggen/button 07.png new file mode 100644 index 00000000..f21f6a10 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 07.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 08.png b/docu/Pics/AJS-37 Viggen/button 08.png new file mode 100644 index 00000000..fb59296f Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 08.png differ diff --git a/docu/Pics/AJS-37 Viggen/button 09.png b/docu/Pics/AJS-37 Viggen/button 09.png new file mode 100644 index 00000000..2729f073 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/button 09.png differ diff --git a/docu/Pics/AJS-37 Viggen/hojd1.png b/docu/Pics/AJS-37 Viggen/hojd1.png new file mode 100644 index 00000000..666d29ea Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/hojd1.png differ diff --git a/docu/Pics/AJS-37 Viggen/hojd2.png b/docu/Pics/AJS-37 Viggen/hojd2.png new file mode 100644 index 00000000..79312a3b Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/hojd2.png differ diff --git a/docu/Pics/AJS-37 Viggen/spak1.png b/docu/Pics/AJS-37 Viggen/spak1.png new file mode 100644 index 00000000..a006b38e Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/spak1.png differ diff --git a/docu/Pics/AJS-37 Viggen/spak2.png b/docu/Pics/AJS-37 Viggen/spak2.png new file mode 100644 index 00000000..0dbb1666 Binary files /dev/null and b/docu/Pics/AJS-37 Viggen/spak2.png differ diff --git a/docu/Pics/Bronco OV-10A/pic01.jpg b/docu/Pics/Bronco OV-10A/pic01.jpg new file mode 100644 index 00000000..e695c711 Binary files /dev/null and b/docu/Pics/Bronco OV-10A/pic01.jpg differ diff --git a/docu/Pics/F-16C/F16Media01.jpg b/docu/Pics/F-16C/F16Media01.jpg new file mode 100644 index 00000000..669024bc Binary files /dev/null and b/docu/Pics/F-16C/F16Media01.jpg differ diff --git a/docu/Pics/F-16C/F16Media02.jpg b/docu/Pics/F-16C/F16Media02.jpg new file mode 100644 index 00000000..1df02e11 Binary files /dev/null and b/docu/Pics/F-16C/F16Media02.jpg differ diff --git a/docu/Pics/F-16C/f16CMSandFuel.jpg b/docu/Pics/F-16C/f16CMSandFuel.jpg new file mode 100644 index 00000000..6e2e9152 Binary files /dev/null and b/docu/Pics/F-16C/f16CMSandFuel.jpg differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/2-way switch.psd b/docu/Pics/F-4E/Exo's F-4E icons/2-way switch.psd new file mode 100644 index 00000000..b969015a Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/2-way switch.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/3 lamps.psd b/docu/Pics/F-4E/Exo's F-4E icons/3 lamps.psd new file mode 100644 index 00000000..4e98ef78 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/3 lamps.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/3-way switch.psd b/docu/Pics/F-4E/Exo's F-4E icons/3-way switch.psd new file mode 100644 index 00000000..f693f923 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/3-way switch.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/AFCS ENGAGE.png b/docu/Pics/F-4E/Exo's F-4E icons/AFCS ENGAGE.png new file mode 100644 index 00000000..5e7396ea Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/AFCS ENGAGE.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/AFCS OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/AFCS OFF.png new file mode 100644 index 00000000..50f07097 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/AFCS OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/ALT ENGAGE.png b/docu/Pics/F-4E/Exo's F-4E icons/ALT ENGAGE.png new file mode 100644 index 00000000..62903733 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/ALT ENGAGE.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/ALT OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/ALT OFF.png new file mode 100644 index 00000000..a39f9200 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/ALT OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/AVTR time indicator.png b/docu/Pics/F-4E/Exo's F-4E icons/AVTR time indicator.png new file mode 100644 index 00000000..9da8baf4 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/AVTR time indicator.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/AVTR time indicator.psd b/docu/Pics/F-4E/Exo's F-4E icons/AVTR time indicator.psd new file mode 100644 index 00000000..663b6507 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/AVTR time indicator.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/F-4E round digit indicator.psd b/docu/Pics/F-4E/Exo's F-4E icons/F-4E round digit indicator.psd new file mode 100644 index 00000000..fdc61ada Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/F-4E round digit indicator.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Fishbowl RADAR.png b/docu/Pics/F-4E/Exo's F-4E icons/Fishbowl RADAR.png new file mode 100644 index 00000000..3eb720ce Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Fishbowl RADAR.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Fishbowl TV.png b/docu/Pics/F-4E/Exo's F-4E icons/Fishbowl TV.png new file mode 100644 index 00000000..b1bb48f1 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Fishbowl TV.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Gun rounds.png b/docu/Pics/F-4E/Exo's F-4E icons/Gun rounds.png new file mode 100644 index 00000000..2e44cf9d Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Gun rounds.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Gun rounds.psd b/docu/Pics/F-4E/Exo's F-4E icons/Gun rounds.psd new file mode 100644 index 00000000..a3842752 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Gun rounds.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage BRT.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage BRT.png new file mode 100644 index 00000000..259c2cd7 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage BRT.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage DIM.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage DIM.png new file mode 100644 index 00000000..6009c899 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage DIM.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage OFF.png new file mode 100644 index 00000000..95df306a Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Fuselage OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights FLASH.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights FLASH.png new file mode 100644 index 00000000..fa3dce94 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights FLASH.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights OFF.png new file mode 100644 index 00000000..17f1fa52 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights STEADY.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights STEADY.png new file mode 100644 index 00000000..7a58de6e Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Lights STEADY.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail BRT.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail BRT.png new file mode 100644 index 00000000..5803af98 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail BRT.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail DIM.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail DIM.png new file mode 100644 index 00000000..8265a3ae Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail DIM.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail OFF.png new file mode 100644 index 00000000..679c7b82 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Tail OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing BRT.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing BRT.png new file mode 100644 index 00000000..f3681507 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing BRT.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing DIM.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing DIM.png new file mode 100644 index 00000000..bb3b1eba Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing DIM.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing OFF.png new file mode 100644 index 00000000..798a24e4 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Lights/Wing OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RADAR HEAT GUNS.png b/docu/Pics/F-4E/Exo's F-4E icons/RADAR HEAT GUNS.png new file mode 100644 index 00000000..2d6577ce Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RADAR HEAT GUNS.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR icon.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR icon.png new file mode 100644 index 00000000..e6535785 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR icon.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR ACT_PWR.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR ACT_PWR.png new file mode 100644 index 00000000..0af8114a Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR ACT_PWR.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR T.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR T.png new file mode 100644 index 00000000..912d39e0 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR T.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR altitude.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR altitude.png new file mode 100644 index 00000000..3efe794f Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR altitude.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR button.psd b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR button.psd new file mode 100644 index 00000000..fc67f931 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR button.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR handoff.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR handoff.png new file mode 100644 index 00000000..cba22a6b Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR handoff.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR launch.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR launch.png new file mode 100644 index 00000000..4ace4d5c Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR launch.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR mode.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR mode.png new file mode 100644 index 00000000..ef9f7cd6 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR mode.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR power.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR power.png new file mode 100644 index 00000000..5d279f29 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR power.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR search.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR search.png new file mode 100644 index 00000000..dac56edf Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR search.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR ship.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR ship.png new file mode 100644 index 00000000..52f9c283 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR ship.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR sys test.png b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR sys test.png new file mode 100644 index 00000000..648ec589 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/RWR/F-5E RWR sys test.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/True airspeed.png b/docu/Pics/F-4E/Exo's F-4E icons/True airspeed.png new file mode 100644 index 00000000..9e651b14 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/True airspeed.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/UHF repeater.png b/docu/Pics/F-4E/Exo's F-4E icons/UHF repeater.png new file mode 100644 index 00000000..b6c8e877 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/UHF repeater.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/UHF repeater.psd b/docu/Pics/F-4E/Exo's F-4E icons/UHF repeater.psd new file mode 100644 index 00000000..24758ee3 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/UHF repeater.psd differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/CTR OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/CTR OFF.png new file mode 100644 index 00000000..8091146d Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/CTR OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/CTR ON.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/CTR ON.png new file mode 100644 index 00000000..9c72fab2 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/CTR ON.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/GUN OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/GUN OFF.png new file mode 100644 index 00000000..f7739512 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/GUN OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/GUN ON.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/GUN ON.png new file mode 100644 index 00000000..20636520 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/GUN ON.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LI OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LI OFF.png new file mode 100644 index 00000000..0bee2f5b Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LI OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LI ON.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LI ON.png new file mode 100644 index 00000000..01c0b721 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LI ON.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LO OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LO OFF.png new file mode 100644 index 00000000..38edc338 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LO OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LO ON.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LO ON.png new file mode 100644 index 00000000..764acfab Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/LO ON.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RI OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RI OFF.png new file mode 100644 index 00000000..47f09d52 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RI OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RI ON.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RI ON.png new file mode 100644 index 00000000..0a65ca87 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RI ON.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RO OFF.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RO OFF.png new file mode 100644 index 00000000..201830cb Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RO OFF.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RO ON.png b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RO ON.png new file mode 100644 index 00000000..b2605512 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/RO ON.png differ diff --git a/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/Station select buttons.psd b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/Station select buttons.psd new file mode 100644 index 00000000..480dbd93 Binary files /dev/null and b/docu/Pics/F-4E/Exo's F-4E icons/Weapons select/Station select buttons.psd differ diff --git a/docu/Pics/F-5E/Exo's profile/F-5E profile demo.png b/docu/Pics/F-5E/Exo's profile/F-5E profile demo.png new file mode 100644 index 00000000..0e881953 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/F-5E profile demo.png differ diff --git a/docu/Pics/F-5E/Exo's profile/README.txt b/docu/Pics/F-5E/Exo's profile/README.txt new file mode 100644 index 00000000..6f318eb9 --- /dev/null +++ b/docu/Pics/F-5E/Exo's profile/README.txt @@ -0,0 +1 @@ +To get this profile, install Exo's F-5E StreamDeck profile located in "docu\StreamDeck Examples". \ No newline at end of file diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR ACT_PWR.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR ACT_PWR.png new file mode 100644 index 00000000..0af8114a Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR ACT_PWR.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR T.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR T.png new file mode 100644 index 00000000..912d39e0 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR T.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR altitude.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR altitude.png new file mode 100644 index 00000000..3efe794f Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR altitude.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR button.psd b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR button.psd new file mode 100644 index 00000000..fc67f931 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR button.psd differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR handoff.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR handoff.png new file mode 100644 index 00000000..cba22a6b Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR handoff.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR launch.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR launch.png new file mode 100644 index 00000000..4ace4d5c Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR launch.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR mode.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR mode.png new file mode 100644 index 00000000..ef9f7cd6 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR mode.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR power.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR power.png new file mode 100644 index 00000000..5d279f29 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR power.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR search.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR search.png new file mode 100644 index 00000000..dac56edf Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR search.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR ship.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR ship.png new file mode 100644 index 00000000..52f9c283 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR ship.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR sys test.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR sys test.png new file mode 100644 index 00000000..648ec589 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E RWR sys test.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E Weapon Selectors.psd b/docu/Pics/F-5E/Exo's profile/icons/F-5E Weapon Selectors.psd new file mode 100644 index 00000000..e0d21179 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E Weapon Selectors.psd differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute CLOSE.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute CLOSE.png new file mode 100644 index 00000000..a0a6dd6f Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute CLOSE.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute OPEN.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute OPEN.png new file mode 100644 index 00000000..ddbc8a75 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute OPEN.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute.psd b/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute.psd new file mode 100644 index 00000000..977260da Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E drag chute.psd differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps blank.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps blank.png new file mode 100644 index 00000000..62f3c7ef Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps blank.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps indicator.psd b/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps indicator.psd new file mode 100644 index 00000000..8ff84f52 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps indicator.psd differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps transition.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps transition.png new file mode 100644 index 00000000..434f5aa0 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E flaps transition.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E gear silence.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E gear silence.png new file mode 100644 index 00000000..04527325 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E gear silence.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 1 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 1 OFF.png new file mode 100644 index 00000000..1bd5cf3d Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 1 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 1 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 1 ON.png new file mode 100644 index 00000000..c032e641 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 1 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 2 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 2 OFF.png new file mode 100644 index 00000000..f2bd73e4 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 2 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 2 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 2 ON.png new file mode 100644 index 00000000..e131f2d4 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 2 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 3 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 3 OFF.png new file mode 100644 index 00000000..d4dec693 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 3 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 3 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 3 ON.png new file mode 100644 index 00000000..e3649812 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 3 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 4 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 4 OFF.png new file mode 100644 index 00000000..522fddf1 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 4 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 4 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 4 ON.png new file mode 100644 index 00000000..a3ef251d Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 4 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 5 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 5 OFF.png new file mode 100644 index 00000000..9e2aa5a3 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 5 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 5 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 5 ON.png new file mode 100644 index 00000000..27f59b42 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 5 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 6 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 6 OFF.png new file mode 100644 index 00000000..e828c911 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 6 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 6 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 6 ON.png new file mode 100644 index 00000000..88933b37 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 6 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 7 OFF.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 7 OFF.png new file mode 100644 index 00000000..1bbabc88 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 7 OFF.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E station 7 ON.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 7 ON.png new file mode 100644 index 00000000..3896a8ab Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E station 7 ON.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E trim indicator.png b/docu/Pics/F-5E/Exo's profile/icons/F-5E trim indicator.png new file mode 100644 index 00000000..692e6629 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E trim indicator.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/F-5E trim indicator.psd b/docu/Pics/F-5E/Exo's profile/icons/F-5E trim indicator.psd new file mode 100644 index 00000000..491f4d4a Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/F-5E trim indicator.psd differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/RWR icon.png b/docu/Pics/F-5E/Exo's profile/icons/RWR icon.png new file mode 100644 index 00000000..e6535785 Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/RWR icon.png differ diff --git a/docu/Pics/F-5E/Exo's profile/icons/RWR icon.psd b/docu/Pics/F-5E/Exo's profile/icons/RWR icon.psd new file mode 100644 index 00000000..063ab76d Binary files /dev/null and b/docu/Pics/F-5E/Exo's profile/icons/RWR icon.psd differ diff --git a/docu/Pics/F-5E/F5Media02.jpg b/docu/Pics/F-5E/F5Media02.jpg new file mode 100644 index 00000000..b998a0b5 Binary files /dev/null and b/docu/Pics/F-5E/F5Media02.jpg differ diff --git a/docu/Pics/Gazelle/1.jpg b/docu/Pics/Gazelle/1.jpg new file mode 100644 index 00000000..f1947662 Binary files /dev/null and b/docu/Pics/Gazelle/1.jpg differ diff --git a/docu/Pics/Gazelle/2.jpg b/docu/Pics/Gazelle/2.jpg new file mode 100644 index 00000000..f74cb0e1 Binary files /dev/null and b/docu/Pics/Gazelle/2.jpg differ diff --git a/docu/Pics/Gazelle/ADF Radio Arrow Left.png b/docu/Pics/Gazelle/ADF Radio Arrow Left.png new file mode 100644 index 00000000..0b0443d6 Binary files /dev/null and b/docu/Pics/Gazelle/ADF Radio Arrow Left.png differ diff --git a/docu/Pics/Gazelle/ADF Radio Arrow Right.png b/docu/Pics/Gazelle/ADF Radio Arrow Right.png new file mode 100644 index 00000000..894fc06f Binary files /dev/null and b/docu/Pics/Gazelle/ADF Radio Arrow Right.png differ diff --git a/docu/Pics/Gazelle/ADF Radio Arrow.psd b/docu/Pics/Gazelle/ADF Radio Arrow.psd new file mode 100644 index 00000000..fd12bf6d Binary files /dev/null and b/docu/Pics/Gazelle/ADF Radio Arrow.psd differ diff --git a/docu/Pics/Gazelle/IconsRadio_0001_Layer 2.jpg b/docu/Pics/Gazelle/IconsRadio_0001_Layer 2.jpg new file mode 100644 index 00000000..7f8210d3 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0001_Layer 2.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0002_Layer 3.jpg b/docu/Pics/Gazelle/IconsRadio_0002_Layer 3.jpg new file mode 100644 index 00000000..8fde8cf0 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0002_Layer 3.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0003_Layer 4.jpg b/docu/Pics/Gazelle/IconsRadio_0003_Layer 4.jpg new file mode 100644 index 00000000..7d176a1b Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0003_Layer 4.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0004_Layer 5.jpg b/docu/Pics/Gazelle/IconsRadio_0004_Layer 5.jpg new file mode 100644 index 00000000..fc5fc61c Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0004_Layer 5.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0005_Layer 6.jpg b/docu/Pics/Gazelle/IconsRadio_0005_Layer 6.jpg new file mode 100644 index 00000000..59d07626 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0005_Layer 6.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0006_Layer 7.jpg b/docu/Pics/Gazelle/IconsRadio_0006_Layer 7.jpg new file mode 100644 index 00000000..291ba722 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0006_Layer 7.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0007_Layer 8.jpg b/docu/Pics/Gazelle/IconsRadio_0007_Layer 8.jpg new file mode 100644 index 00000000..566ca60a Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0007_Layer 8.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0008_Layer 9.jpg b/docu/Pics/Gazelle/IconsRadio_0008_Layer 9.jpg new file mode 100644 index 00000000..b6128647 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0008_Layer 9.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0009_Layer 10.jpg b/docu/Pics/Gazelle/IconsRadio_0009_Layer 10.jpg new file mode 100644 index 00000000..dd28d61b Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0009_Layer 10.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0010_Layer 11.jpg b/docu/Pics/Gazelle/IconsRadio_0010_Layer 11.jpg new file mode 100644 index 00000000..bbe4e0a0 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0010_Layer 11.jpg differ diff --git a/docu/Pics/Gazelle/IconsRadio_0011_Layer 12.jpg b/docu/Pics/Gazelle/IconsRadio_0011_Layer 12.jpg new file mode 100644 index 00000000..3c4ac8b3 Binary files /dev/null and b/docu/Pics/Gazelle/IconsRadio_0011_Layer 12.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0000_Layer 1.jpg b/docu/Pics/Gazelle/Icons_0000_Layer 1.jpg new file mode 100644 index 00000000..39b787f1 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0000_Layer 1.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0001_Layer 2.jpg b/docu/Pics/Gazelle/Icons_0001_Layer 2.jpg new file mode 100644 index 00000000..a99e5ff4 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0001_Layer 2.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0002_Layer 3.jpg b/docu/Pics/Gazelle/Icons_0002_Layer 3.jpg new file mode 100644 index 00000000..22831141 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0002_Layer 3.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0003_Layer 4.jpg b/docu/Pics/Gazelle/Icons_0003_Layer 4.jpg new file mode 100644 index 00000000..788c4b7b Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0003_Layer 4.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0004_Layer 5.jpg b/docu/Pics/Gazelle/Icons_0004_Layer 5.jpg new file mode 100644 index 00000000..eb01a42d Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0004_Layer 5.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0005_Layer 6.jpg b/docu/Pics/Gazelle/Icons_0005_Layer 6.jpg new file mode 100644 index 00000000..c14bfd5f Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0005_Layer 6.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0006_Layer 7.jpg b/docu/Pics/Gazelle/Icons_0006_Layer 7.jpg new file mode 100644 index 00000000..e5aca2c8 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0006_Layer 7.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0007_Layer 8.jpg b/docu/Pics/Gazelle/Icons_0007_Layer 8.jpg new file mode 100644 index 00000000..494c7335 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0007_Layer 8.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0008_Layer 9.jpg b/docu/Pics/Gazelle/Icons_0008_Layer 9.jpg new file mode 100644 index 00000000..8900599a Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0008_Layer 9.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0009_Layer 10.jpg b/docu/Pics/Gazelle/Icons_0009_Layer 10.jpg new file mode 100644 index 00000000..54a1a37c Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0009_Layer 10.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0010_Layer 11.jpg b/docu/Pics/Gazelle/Icons_0010_Layer 11.jpg new file mode 100644 index 00000000..4c64eece Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0010_Layer 11.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0011_Layer 12.jpg b/docu/Pics/Gazelle/Icons_0011_Layer 12.jpg new file mode 100644 index 00000000..2b19ae95 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0011_Layer 12.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0012_Layer 13.jpg b/docu/Pics/Gazelle/Icons_0012_Layer 13.jpg new file mode 100644 index 00000000..df657dc8 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0012_Layer 13.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0013_Layer 14.jpg b/docu/Pics/Gazelle/Icons_0013_Layer 14.jpg new file mode 100644 index 00000000..2e8cd2c1 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0013_Layer 14.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0014_Layer 15.jpg b/docu/Pics/Gazelle/Icons_0014_Layer 15.jpg new file mode 100644 index 00000000..5bf4d41f Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0014_Layer 15.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0015_Layer 16.jpg b/docu/Pics/Gazelle/Icons_0015_Layer 16.jpg new file mode 100644 index 00000000..a5b7f30d Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0015_Layer 16.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0016_Layer 17.jpg b/docu/Pics/Gazelle/Icons_0016_Layer 17.jpg new file mode 100644 index 00000000..58a69d7d Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0016_Layer 17.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0017_Layer 18.jpg b/docu/Pics/Gazelle/Icons_0017_Layer 18.jpg new file mode 100644 index 00000000..71dccc35 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0017_Layer 18.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0018_Layer 19.jpg b/docu/Pics/Gazelle/Icons_0018_Layer 19.jpg new file mode 100644 index 00000000..4a26baf0 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0018_Layer 19.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0019_Layer 20.jpg b/docu/Pics/Gazelle/Icons_0019_Layer 20.jpg new file mode 100644 index 00000000..cd3be96c Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0019_Layer 20.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0020_Layer 21.jpg b/docu/Pics/Gazelle/Icons_0020_Layer 21.jpg new file mode 100644 index 00000000..723316d6 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0020_Layer 21.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0021_Layer 22.jpg b/docu/Pics/Gazelle/Icons_0021_Layer 22.jpg new file mode 100644 index 00000000..3129fa80 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0021_Layer 22.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0022_Layer 23.jpg b/docu/Pics/Gazelle/Icons_0022_Layer 23.jpg new file mode 100644 index 00000000..bb25672a Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0022_Layer 23.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0023_Layer 24.jpg b/docu/Pics/Gazelle/Icons_0023_Layer 24.jpg new file mode 100644 index 00000000..e8c8b707 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0023_Layer 24.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0024_Layer 25.jpg b/docu/Pics/Gazelle/Icons_0024_Layer 25.jpg new file mode 100644 index 00000000..93fbbcd8 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0024_Layer 25.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0025_Layer 26.jpg b/docu/Pics/Gazelle/Icons_0025_Layer 26.jpg new file mode 100644 index 00000000..9242f591 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0025_Layer 26.jpg differ diff --git a/docu/Pics/Gazelle/Icons_0026_Layer 27.jpg b/docu/Pics/Gazelle/Icons_0026_Layer 27.jpg new file mode 100644 index 00000000..18cb0e06 Binary files /dev/null and b/docu/Pics/Gazelle/Icons_0026_Layer 27.jpg differ diff --git a/docu/Pics/Gazelle/SA342_switches_knobs_2.psd b/docu/Pics/Gazelle/SA342_switches_knobs_2.psd new file mode 100644 index 00000000..3823d784 Binary files /dev/null and b/docu/Pics/Gazelle/SA342_switches_knobs_2.psd differ diff --git a/docu/Pics/Gazelle/Voyants_Normaux.psd b/docu/Pics/Gazelle/Voyants_Normaux.psd new file mode 100644 index 00000000..239aa241 Binary files /dev/null and b/docu/Pics/Gazelle/Voyants_Normaux.psd differ diff --git a/docu/Pics/Gazelle/Voyants_Normaux2.psd b/docu/Pics/Gazelle/Voyants_Normaux2.psd new file mode 100644 index 00000000..615ce9ca Binary files /dev/null and b/docu/Pics/Gazelle/Voyants_Normaux2.psd differ diff --git a/docu/Pics/M-2000C/Overview.png b/docu/Pics/M-2000C/Overview.png new file mode 100644 index 00000000..6362f13b Binary files /dev/null and b/docu/Pics/M-2000C/Overview.png differ diff --git a/docu/Pics/M-2000C/icons/0.png b/docu/Pics/M-2000C/icons/0.png new file mode 100644 index 00000000..7ada0df3 Binary files /dev/null and b/docu/Pics/M-2000C/icons/0.png differ diff --git a/docu/Pics/M-2000C/icons/1.png b/docu/Pics/M-2000C/icons/1.png new file mode 100644 index 00000000..b1fcca4a Binary files /dev/null and b/docu/Pics/M-2000C/icons/1.png differ diff --git a/docu/Pics/M-2000C/icons/2.png b/docu/Pics/M-2000C/icons/2.png new file mode 100644 index 00000000..ffc8ab02 Binary files /dev/null and b/docu/Pics/M-2000C/icons/2.png differ diff --git a/docu/Pics/M-2000C/icons/20.png b/docu/Pics/M-2000C/icons/20.png new file mode 100644 index 00000000..cfd342d5 Binary files /dev/null and b/docu/Pics/M-2000C/icons/20.png differ diff --git a/docu/Pics/M-2000C/icons/3.png b/docu/Pics/M-2000C/icons/3.png new file mode 100644 index 00000000..a7148249 Binary files /dev/null and b/docu/Pics/M-2000C/icons/3.png differ diff --git a/docu/Pics/M-2000C/icons/4.png b/docu/Pics/M-2000C/icons/4.png new file mode 100644 index 00000000..88ed7ae0 Binary files /dev/null and b/docu/Pics/M-2000C/icons/4.png differ diff --git a/docu/Pics/M-2000C/icons/5-20.png b/docu/Pics/M-2000C/icons/5-20.png new file mode 100644 index 00000000..73fdafeb Binary files /dev/null and b/docu/Pics/M-2000C/icons/5-20.png differ diff --git a/docu/Pics/M-2000C/icons/5.png b/docu/Pics/M-2000C/icons/5.png new file mode 100644 index 00000000..7d1fb68c Binary files /dev/null and b/docu/Pics/M-2000C/icons/5.png differ diff --git a/docu/Pics/M-2000C/icons/6.png b/docu/Pics/M-2000C/icons/6.png new file mode 100644 index 00000000..9642db14 Binary files /dev/null and b/docu/Pics/M-2000C/icons/6.png differ diff --git a/docu/Pics/M-2000C/icons/7.png b/docu/Pics/M-2000C/icons/7.png new file mode 100644 index 00000000..da937fba Binary files /dev/null and b/docu/Pics/M-2000C/icons/7.png differ diff --git a/docu/Pics/M-2000C/icons/8.png b/docu/Pics/M-2000C/icons/8.png new file mode 100644 index 00000000..252b099f Binary files /dev/null and b/docu/Pics/M-2000C/icons/8.png differ diff --git a/docu/Pics/M-2000C/icons/9.png b/docu/Pics/M-2000C/icons/9.png new file mode 100644 index 00000000..9254e7b1 Binary files /dev/null and b/docu/Pics/M-2000C/icons/9.png differ diff --git a/docu/Pics/M-2000C/icons/A off.png b/docu/Pics/M-2000C/icons/A off.png new file mode 100644 index 00000000..3f7a62dc Binary files /dev/null and b/docu/Pics/M-2000C/icons/A off.png differ diff --git a/docu/Pics/M-2000C/icons/A on.png b/docu/Pics/M-2000C/icons/A on.png new file mode 100644 index 00000000..c22892f5 Binary files /dev/null and b/docu/Pics/M-2000C/icons/A on.png differ diff --git a/docu/Pics/M-2000C/icons/Boutons radar.psd b/docu/Pics/M-2000C/icons/Boutons radar.psd new file mode 100644 index 00000000..12c030c0 Binary files /dev/null and b/docu/Pics/M-2000C/icons/Boutons radar.psd differ diff --git a/docu/Pics/M-2000C/icons/CLR.png b/docu/Pics/M-2000C/icons/CLR.png new file mode 100644 index 00000000..873f8daa Binary files /dev/null and b/docu/Pics/M-2000C/icons/CLR.png differ diff --git a/docu/Pics/M-2000C/icons/CONF.png b/docu/Pics/M-2000C/icons/CONF.png new file mode 100644 index 00000000..0e13eea5 Binary files /dev/null and b/docu/Pics/M-2000C/icons/CONF.png differ diff --git a/docu/Pics/M-2000C/icons/DEC off.png b/docu/Pics/M-2000C/icons/DEC off.png new file mode 100644 index 00000000..17262ac4 Binary files /dev/null and b/docu/Pics/M-2000C/icons/DEC off.png differ diff --git a/docu/Pics/M-2000C/icons/DEC on.png b/docu/Pics/M-2000C/icons/DEC on.png new file mode 100644 index 00000000..bd4c78c4 Binary files /dev/null and b/docu/Pics/M-2000C/icons/DEC on.png differ diff --git a/docu/Pics/M-2000C/icons/GR.png b/docu/Pics/M-2000C/icons/GR.png new file mode 100644 index 00000000..12d2a97b Binary files /dev/null and b/docu/Pics/M-2000C/icons/GR.png differ diff --git a/docu/Pics/M-2000C/icons/MEM.png b/docu/Pics/M-2000C/icons/MEM.png new file mode 100644 index 00000000..5c7a5368 Binary files /dev/null and b/docu/Pics/M-2000C/icons/MEM.png differ diff --git a/docu/Pics/M-2000C/icons/PCA.psd b/docu/Pics/M-2000C/icons/PCA.psd new file mode 100644 index 00000000..a9093b3b Binary files /dev/null and b/docu/Pics/M-2000C/icons/PCA.psd differ diff --git a/docu/Pics/M-2000C/icons/PCA_off.png b/docu/Pics/M-2000C/icons/PCA_off.png new file mode 100644 index 00000000..e45c0d81 Binary files /dev/null and b/docu/Pics/M-2000C/icons/PCA_off.png differ diff --git a/docu/Pics/M-2000C/icons/PCA_on.png b/docu/Pics/M-2000C/icons/PCA_on.png new file mode 100644 index 00000000..c56fff1c Binary files /dev/null and b/docu/Pics/M-2000C/icons/PCA_on.png differ diff --git a/docu/Pics/M-2000C/icons/PSIC off.png b/docu/Pics/M-2000C/icons/PSIC off.png new file mode 100644 index 00000000..271dc6f0 Binary files /dev/null and b/docu/Pics/M-2000C/icons/PSIC off.png differ diff --git a/docu/Pics/M-2000C/icons/PSIC on.png b/docu/Pics/M-2000C/icons/PSIC on.png new file mode 100644 index 00000000..d68282ca Binary files /dev/null and b/docu/Pics/M-2000C/icons/PSIC on.png differ diff --git a/docu/Pics/M-2000C/icons/READ.png b/docu/Pics/M-2000C/icons/READ.png new file mode 100644 index 00000000..4c439507 Binary files /dev/null and b/docu/Pics/M-2000C/icons/READ.png differ diff --git a/docu/Pics/M-2000C/icons/SQL.png b/docu/Pics/M-2000C/icons/SQL.png new file mode 100644 index 00000000..91566010 Binary files /dev/null and b/docu/Pics/M-2000C/icons/SQL.png differ diff --git a/docu/Pics/M-2000C/icons/Switch VTB.psd b/docu/Pics/M-2000C/icons/Switch VTB.psd new file mode 100644 index 00000000..72fbafd8 Binary files /dev/null and b/docu/Pics/M-2000C/icons/Switch VTB.psd differ diff --git a/docu/Pics/M-2000C/icons/TOD.png b/docu/Pics/M-2000C/icons/TOD.png new file mode 100644 index 00000000..1222a412 Binary files /dev/null and b/docu/Pics/M-2000C/icons/TOD.png differ diff --git a/docu/Pics/M-2000C/icons/TONE.png b/docu/Pics/M-2000C/icons/TONE.png new file mode 100644 index 00000000..dca5a04e Binary files /dev/null and b/docu/Pics/M-2000C/icons/TONE.png differ diff --git a/docu/Pics/M-2000C/icons/VERTE.psd b/docu/Pics/M-2000C/icons/VERTE.psd new file mode 100644 index 00000000..b93ee76e Binary files /dev/null and b/docu/Pics/M-2000C/icons/VERTE.psd differ diff --git a/docu/Pics/M-2000C/icons/VISU_off.png b/docu/Pics/M-2000C/icons/VISU_off.png new file mode 100644 index 00000000..481bc7b1 Binary files /dev/null and b/docu/Pics/M-2000C/icons/VISU_off.png differ diff --git a/docu/Pics/M-2000C/icons/VISU_on.png b/docu/Pics/M-2000C/icons/VISU_on.png new file mode 100644 index 00000000..1a6edccc Binary files /dev/null and b/docu/Pics/M-2000C/icons/VISU_on.png differ diff --git a/docu/Pics/M-2000C/icons/VLD.png b/docu/Pics/M-2000C/icons/VLD.png new file mode 100644 index 00000000..f564b957 Binary files /dev/null and b/docu/Pics/M-2000C/icons/VLD.png differ diff --git a/docu/Pics/M-2000C/icons/VTB Theta neutral.png b/docu/Pics/M-2000C/icons/VTB Theta neutral.png new file mode 100644 index 00000000..8b0d7660 Binary files /dev/null and b/docu/Pics/M-2000C/icons/VTB Theta neutral.png differ diff --git a/docu/Pics/M-2000C/icons/VTB theta down.png b/docu/Pics/M-2000C/icons/VTB theta down.png new file mode 100644 index 00000000..42e9b97d Binary files /dev/null and b/docu/Pics/M-2000C/icons/VTB theta down.png differ diff --git a/docu/Pics/M-2000C/icons/Voyant PA.png b/docu/Pics/M-2000C/icons/Voyant PA.png new file mode 100644 index 00000000..70300b80 Binary files /dev/null and b/docu/Pics/M-2000C/icons/Voyant PA.png differ diff --git a/docu/Pics/M-2000C/icons/Voyant PA.psd b/docu/Pics/M-2000C/icons/Voyant PA.psd new file mode 100644 index 00000000..a2d09614 Binary files /dev/null and b/docu/Pics/M-2000C/icons/Voyant PA.psd differ diff --git a/docu/Pics/M-2000C/icons/Voyant Panne.png b/docu/Pics/M-2000C/icons/Voyant Panne.png new file mode 100644 index 00000000..440dbef9 Binary files /dev/null and b/docu/Pics/M-2000C/icons/Voyant Panne.png differ diff --git a/docu/Pics/M-2000C/icons/XFR.png b/docu/Pics/M-2000C/icons/XFR.png new file mode 100644 index 00000000..2ce0116f Binary files /dev/null and b/docu/Pics/M-2000C/icons/XFR.png differ diff --git a/docu/Pics/M-2000C/icons/empty.png b/docu/Pics/M-2000C/icons/empty.png new file mode 100644 index 00000000..42857916 Binary files /dev/null and b/docu/Pics/M-2000C/icons/empty.png differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_43_49-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_43_49-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..17a79fb0 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_43_49-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_44_02-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_44_02-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..8897ca64 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_44_02-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_45_47-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_45_47-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..4f8a03d5 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_45_47-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_45_58-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_45_58-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..bce1de5d Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_45_58-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_02-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_02-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..77d291fc Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_02-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_19-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_19-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..43b96d26 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_19-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_34-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_34-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg new file mode 100644 index 00000000..f21b81f5 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/2022-01-17 22_46_34-ModelViewer2_0 c__users_bailey_saved games_dcs.openbeta_mods_aircraft_uh-60l_sha.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/alt blank.jpg b/docu/Pics/MH-60L/Autopilot/alt blank.jpg new file mode 100644 index 00000000..dbb98247 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/alt blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/alt on.jpg b/docu/Pics/MH-60L/Autopilot/alt on.jpg new file mode 100644 index 00000000..5356c8f5 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/alt on.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/alt.jpg b/docu/Pics/MH-60L/Autopilot/alt.jpg new file mode 100644 index 00000000..676e41cf Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/alt.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/altr.jpg b/docu/Pics/MH-60L/Autopilot/altr.jpg new file mode 100644 index 00000000..42d7b2aa Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/altr.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/backcrs off.jpg b/docu/Pics/MH-60L/Autopilot/backcrs off.jpg new file mode 100644 index 00000000..396dfa2c Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/backcrs off.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/backcrs.jpg b/docu/Pics/MH-60L/Autopilot/backcrs.jpg new file mode 100644 index 00000000..1fb0dd42 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/backcrs.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/brg2 adf vor.jpg b/docu/Pics/MH-60L/Autopilot/brg2 adf vor.jpg new file mode 100644 index 00000000..04e1ec80 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/brg2 adf vor.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/brg2 adf.jpg b/docu/Pics/MH-60L/Autopilot/brg2 adf.jpg new file mode 100644 index 00000000..0f83f614 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/brg2 adf.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/brg2 blank.jpg b/docu/Pics/MH-60L/Autopilot/brg2 blank.jpg new file mode 100644 index 00000000..59210b79 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/brg2 blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/brg2 vor.jpg b/docu/Pics/MH-60L/Autopilot/brg2 vor.jpg new file mode 100644 index 00000000..3924f461 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/brg2 vor.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/cplt.jpg b/docu/Pics/MH-60L/Autopilot/cplt.jpg new file mode 100644 index 00000000..bda521fb Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/cplt.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/dlpr blank.jpg b/docu/Pics/MH-60L/Autopilot/dlpr blank.jpg new file mode 100644 index 00000000..a17072f4 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/dlpr blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/dlpr on.jpg b/docu/Pics/MH-60L/Autopilot/dlpr on.jpg new file mode 100644 index 00000000..0207617e Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/dlpr on.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/fmhome off.jpg b/docu/Pics/MH-60L/Autopilot/fmhome off.jpg new file mode 100644 index 00000000..bb0edb77 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/fmhome off.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/fmhome.jpg b/docu/Pics/MH-60L/Autopilot/fmhome.jpg new file mode 100644 index 00000000..fc7c7ea1 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/fmhome.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/gyro altr.jpg b/docu/Pics/MH-60L/Autopilot/gyro altr.jpg new file mode 100644 index 00000000..d395cb23 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/gyro altr.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/gyro blank.jpg b/docu/Pics/MH-60L/Autopilot/gyro blank.jpg new file mode 100644 index 00000000..1c4b91d0 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/gyro blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/gyro norm altr.jpg b/docu/Pics/MH-60L/Autopilot/gyro norm altr.jpg new file mode 100644 index 00000000..614c2335 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/gyro norm altr.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/gyro norm.jpg b/docu/Pics/MH-60L/Autopilot/gyro norm.jpg new file mode 100644 index 00000000..2e5febec Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/gyro norm.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/hdg blank.jpg b/docu/Pics/MH-60L/Autopilot/hdg blank.jpg new file mode 100644 index 00000000..5d090276 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/hdg blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/hdg on.jpg b/docu/Pics/MH-60L/Autopilot/hdg on.jpg new file mode 100644 index 00000000..103bf564 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/hdg on.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/hdg.jpg b/docu/Pics/MH-60L/Autopilot/hdg.jpg new file mode 100644 index 00000000..37312877 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/hdg.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/ils.jpg b/docu/Pics/MH-60L/Autopilot/ils.jpg new file mode 100644 index 00000000..e50f33a0 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/ils.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/nav blank.jpg b/docu/Pics/MH-60L/Autopilot/nav blank.jpg new file mode 100644 index 00000000..6de651c5 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/nav blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/nav on.jpg b/docu/Pics/MH-60L/Autopilot/nav on.jpg new file mode 100644 index 00000000..78b57937 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/nav on.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/nav.jpg b/docu/Pics/MH-60L/Autopilot/nav.jpg new file mode 100644 index 00000000..cac19cf3 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/nav.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/navigation modes.jpg b/docu/Pics/MH-60L/Autopilot/navigation modes.jpg new file mode 100644 index 00000000..bcfbea82 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/navigation modes.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/navigation modes.psd b/docu/Pics/MH-60L/Autopilot/navigation modes.psd new file mode 100644 index 00000000..8d951969 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/navigation modes.psd differ diff --git a/docu/Pics/MH-60L/Autopilot/normaltr blank.jpg b/docu/Pics/MH-60L/Autopilot/normaltr blank.jpg new file mode 100644 index 00000000..545c7a7b Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/normaltr blank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/plt cplt bkank.jpg b/docu/Pics/MH-60L/Autopilot/plt cplt bkank.jpg new file mode 100644 index 00000000..80a5d567 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/plt cplt bkank.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/plt cplt.jpg b/docu/Pics/MH-60L/Autopilot/plt cplt.jpg new file mode 100644 index 00000000..20ce662c Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/plt cplt.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/plt.jpg b/docu/Pics/MH-60L/Autopilot/plt.jpg new file mode 100644 index 00000000..8375cb54 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/plt.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/turn rate norm.jpg b/docu/Pics/MH-60L/Autopilot/turn rate norm.jpg new file mode 100644 index 00000000..851b18f4 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/turn rate norm.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/turn rate normaltr.jpg b/docu/Pics/MH-60L/Autopilot/turn rate normaltr.jpg new file mode 100644 index 00000000..ad4cf779 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/turn rate normaltr.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/vor.jpg b/docu/Pics/MH-60L/Autopilot/vor.jpg new file mode 100644 index 00000000..bfd88e60 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/vor.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/vorils.jpg b/docu/Pics/MH-60L/Autopilot/vorils.jpg new file mode 100644 index 00000000..ed14a27d Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/vorils.jpg differ diff --git a/docu/Pics/MH-60L/Autopilot/vorilsblank.jpg b/docu/Pics/MH-60L/Autopilot/vorilsblank.jpg new file mode 100644 index 00000000..d2cb6651 Binary files /dev/null and b/docu/Pics/MH-60L/Autopilot/vorilsblank.jpg differ diff --git a/docu/Pics/MH-60L/Icon/icon_active.psd b/docu/Pics/MH-60L/Icon/icon_active.psd new file mode 100644 index 00000000..ac54ff8f Binary files /dev/null and b/docu/Pics/MH-60L/Icon/icon_active.psd differ diff --git a/docu/Pics/MH-60L/Icon/icon_activeMod5.png b/docu/Pics/MH-60L/Icon/icon_activeMod5.png new file mode 100644 index 00000000..d44974c1 Binary files /dev/null and b/docu/Pics/MH-60L/Icon/icon_activeMod5.png differ diff --git a/docu/Pics/MH-60L/Keyboards/0.jpg b/docu/Pics/MH-60L/Keyboards/0.jpg new file mode 100644 index 00000000..1f5f10e2 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/0.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/02.jpg b/docu/Pics/MH-60L/Keyboards/02.jpg new file mode 100644 index 00000000..ee83c721 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/02.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/a.jpg b/docu/Pics/MH-60L/Keyboards/a.jpg new file mode 100644 index 00000000..2e505e78 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/a.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/a2.jpg b/docu/Pics/MH-60L/Keyboards/a2.jpg new file mode 100644 index 00000000..f8daf605 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/a2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/clr.jpg b/docu/Pics/MH-60L/Keyboards/clr.jpg new file mode 100644 index 00000000..8a6bb763 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/clr.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/clr2.jpg b/docu/Pics/MH-60L/Keyboards/clr2.jpg new file mode 100644 index 00000000..73a6adf3 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/clr2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/d.jpg b/docu/Pics/MH-60L/Keyboards/d.jpg new file mode 100644 index 00000000..12da1da1 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/d.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/d2.jpg b/docu/Pics/MH-60L/Keyboards/d2.jpg new file mode 100644 index 00000000..ac3b15df Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/d2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/dec.jpg b/docu/Pics/MH-60L/Keyboards/dec.jpg new file mode 100644 index 00000000..5efa7713 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/dec.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/dec2.jpg b/docu/Pics/MH-60L/Keyboards/dec2.jpg new file mode 100644 index 00000000..3dd23c64 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/dec2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ent.jpg b/docu/Pics/MH-60L/Keyboards/ent.jpg new file mode 100644 index 00000000..323c268d Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ent.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ent2.jpg b/docu/Pics/MH-60L/Keyboards/ent2.jpg new file mode 100644 index 00000000..8f168c10 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ent2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/f1.jpg b/docu/Pics/MH-60L/Keyboards/f1.jpg new file mode 100644 index 00000000..44656946 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/f1.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/f12.jpg b/docu/Pics/MH-60L/Keyboards/f12.jpg new file mode 100644 index 00000000..89ecd0e9 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/f12.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/g.jpg b/docu/Pics/MH-60L/Keyboards/g.jpg new file mode 100644 index 00000000..d76737c1 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/g.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/g2.jpg b/docu/Pics/MH-60L/Keyboards/g2.jpg new file mode 100644 index 00000000..3baaafc7 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/g2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/h60_mcp.dds b/docu/Pics/MH-60L/Keyboards/h60_mcp.dds new file mode 100644 index 00000000..068adfa9 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/h60_mcp.dds differ diff --git a/docu/Pics/MH-60L/Keyboards/inc.jpg b/docu/Pics/MH-60L/Keyboards/inc.jpg new file mode 100644 index 00000000..69feb2f7 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/inc.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/inc2.jpg b/docu/Pics/MH-60L/Keyboards/inc2.jpg new file mode 100644 index 00000000..c117e5de Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/inc2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/j.jpg b/docu/Pics/MH-60L/Keyboards/j.jpg new file mode 100644 index 00000000..2d96183b Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/j.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/j2.jpg b/docu/Pics/MH-60L/Keyboards/j2.jpg new file mode 100644 index 00000000..48b3c43a Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/j2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/kybd.jpg b/docu/Pics/MH-60L/Keyboards/kybd.jpg new file mode 100644 index 00000000..bfbc86af Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/kybd.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/kybd2.jpg b/docu/Pics/MH-60L/Keyboards/kybd2.jpg new file mode 100644 index 00000000..48680f0d Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/kybd2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ltrleft.jpg b/docu/Pics/MH-60L/Keyboards/ltrleft.jpg new file mode 100644 index 00000000..3ada0601 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ltrleft.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ltrleft2.jpg b/docu/Pics/MH-60L/Keyboards/ltrleft2.jpg new file mode 100644 index 00000000..690e4c86 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ltrleft2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ltrmid.jpg b/docu/Pics/MH-60L/Keyboards/ltrmid.jpg new file mode 100644 index 00000000..92cd71ca Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ltrmid.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ltrmid2.jpg b/docu/Pics/MH-60L/Keyboards/ltrmid2.jpg new file mode 100644 index 00000000..f1b06390 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ltrmid2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ltrright.jpg b/docu/Pics/MH-60L/Keyboards/ltrright.jpg new file mode 100644 index 00000000..5f5bb64f Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ltrright.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/ltrright2.jpg b/docu/Pics/MH-60L/Keyboards/ltrright2.jpg new file mode 100644 index 00000000..d5d68936 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/ltrright2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/m.jpg b/docu/Pics/MH-60L/Keyboards/m.jpg new file mode 100644 index 00000000..308af0ca Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/m.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/m2.jpg b/docu/Pics/MH-60L/Keyboards/m2.jpg new file mode 100644 index 00000000..523525be Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/m2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/p.jpg b/docu/Pics/MH-60L/Keyboards/p.jpg new file mode 100644 index 00000000..68518d4f Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/p.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/p2.jpg b/docu/Pics/MH-60L/Keyboards/p2.jpg new file mode 100644 index 00000000..699e6187 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/p2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/s.jpg b/docu/Pics/MH-60L/Keyboards/s.jpg new file mode 100644 index 00000000..225e8ebd Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/s.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/s2.jpg b/docu/Pics/MH-60L/Keyboards/s2.jpg new file mode 100644 index 00000000..9d5c1243 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/s2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/tgt.jpg b/docu/Pics/MH-60L/Keyboards/tgt.jpg new file mode 100644 index 00000000..34a9bc64 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/tgt.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/tgt2.jpg b/docu/Pics/MH-60L/Keyboards/tgt2.jpg new file mode 100644 index 00000000..5303282b Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/tgt2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/v.jpg b/docu/Pics/MH-60L/Keyboards/v.jpg new file mode 100644 index 00000000..96c12724 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/v.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/v2.jpg b/docu/Pics/MH-60L/Keyboards/v2.jpg new file mode 100644 index 00000000..3987d6af Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/v2.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/xxx - Copy (2).jpg b/docu/Pics/MH-60L/Keyboards/xxx - Copy (2).jpg new file mode 100644 index 00000000..bb295276 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/xxx - Copy (2).jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/xxx - Copy (21) - Copy.jpg b/docu/Pics/MH-60L/Keyboards/xxx - Copy (21) - Copy.jpg new file mode 100644 index 00000000..bb295276 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/xxx - Copy (21) - Copy.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/xxx - Copy.jpg b/docu/Pics/MH-60L/Keyboards/xxx - Copy.jpg new file mode 100644 index 00000000..bb295276 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/xxx - Copy.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/xxx.jpg b/docu/Pics/MH-60L/Keyboards/xxx.jpg new file mode 100644 index 00000000..bb295276 Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/xxx.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/y.jpg b/docu/Pics/MH-60L/Keyboards/y.jpg new file mode 100644 index 00000000..c16945da Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/y.jpg differ diff --git a/docu/Pics/MH-60L/Keyboards/y2.jpg b/docu/Pics/MH-60L/Keyboards/y2.jpg new file mode 100644 index 00000000..c1faf26c Binary files /dev/null and b/docu/Pics/MH-60L/Keyboards/y2.jpg differ diff --git a/docu/Pics/MH-60L/Random/Chrome_Switch_HighLow@2x.png b/docu/Pics/MH-60L/Random/Chrome_Switch_HighLow@2x.png new file mode 100644 index 00000000..68e2e123 Binary files /dev/null and b/docu/Pics/MH-60L/Random/Chrome_Switch_HighLow@2x.png differ diff --git a/docu/Pics/MH-60L/Random/Chrome_Switch_HighLow@2x.psd b/docu/Pics/MH-60L/Random/Chrome_Switch_HighLow@2x.psd new file mode 100644 index 00000000..fbdafca1 Binary files /dev/null and b/docu/Pics/MH-60L/Random/Chrome_Switch_HighLow@2x.psd differ diff --git a/docu/Pics/MH-60L/Random/Chrome_Switch_HighMod@2x.png b/docu/Pics/MH-60L/Random/Chrome_Switch_HighMod@2x.png new file mode 100644 index 00000000..525ba660 Binary files /dev/null and b/docu/Pics/MH-60L/Random/Chrome_Switch_HighMod@2x.png differ diff --git a/docu/Pics/MH-60L/Random/Chrome_Switch_LowMod@2x.png b/docu/Pics/MH-60L/Random/Chrome_Switch_LowMod@2x.png new file mode 100644 index 00000000..329ba265 Binary files /dev/null and b/docu/Pics/MH-60L/Random/Chrome_Switch_LowMod@2x.png differ diff --git a/docu/Pics/MH-60L/Random/ReleaseImage.png b/docu/Pics/MH-60L/Random/ReleaseImage.png new file mode 100644 index 00000000..9cb7aaaf Binary files /dev/null and b/docu/Pics/MH-60L/Random/ReleaseImage.png differ diff --git a/docu/Pics/MH-60L/Random/changeSeats - Copy.jpg b/docu/Pics/MH-60L/Random/changeSeats - Copy.jpg new file mode 100644 index 00000000..fa54d31e Binary files /dev/null and b/docu/Pics/MH-60L/Random/changeSeats - Copy.jpg differ diff --git a/docu/Pics/MH-60L/Random/changeSeats.jpg b/docu/Pics/MH-60L/Random/changeSeats.jpg new file mode 100644 index 00000000..d72f8667 Binary files /dev/null and b/docu/Pics/MH-60L/Random/changeSeats.jpg differ diff --git a/docu/Pics/MH-60L/Random/changeSeats.psd b/docu/Pics/MH-60L/Random/changeSeats.psd new file mode 100644 index 00000000..260cfbed Binary files /dev/null and b/docu/Pics/MH-60L/Random/changeSeats.psd differ diff --git a/docu/Pics/MH-60L/Random/changeSeats2 - Copy.jpg b/docu/Pics/MH-60L/Random/changeSeats2 - Copy.jpg new file mode 100644 index 00000000..be7f6117 Binary files /dev/null and b/docu/Pics/MH-60L/Random/changeSeats2 - Copy.jpg differ diff --git a/docu/Pics/MH-60L/Random/changeSeats2.jpg b/docu/Pics/MH-60L/Random/changeSeats2.jpg new file mode 100644 index 00000000..f9219249 Binary files /dev/null and b/docu/Pics/MH-60L/Random/changeSeats2.jpg differ diff --git a/docu/Pics/MH-60L/Random/over parameters.jpg b/docu/Pics/MH-60L/Random/over parameters.jpg new file mode 100644 index 00000000..9f0099c0 Binary files /dev/null and b/docu/Pics/MH-60L/Random/over parameters.jpg differ diff --git a/docu/Pics/MH-60L/Random/over parameters.psd b/docu/Pics/MH-60L/Random/over parameters.psd new file mode 100644 index 00000000..e095d1bc Binary files /dev/null and b/docu/Pics/MH-60L/Random/over parameters.psd differ diff --git a/docu/Pics/MH-60L/Random/over parameters2.jpg b/docu/Pics/MH-60L/Random/over parameters2.jpg new file mode 100644 index 00000000..780d503c Binary files /dev/null and b/docu/Pics/MH-60L/Random/over parameters2.jpg differ diff --git a/docu/Pics/MH-60L/Random/vrs warning no.jpg b/docu/Pics/MH-60L/Random/vrs warning no.jpg new file mode 100644 index 00000000..ff38901a Binary files /dev/null and b/docu/Pics/MH-60L/Random/vrs warning no.jpg differ diff --git a/docu/Pics/MH-60L/Random/vrs warning warn.jpg b/docu/Pics/MH-60L/Random/vrs warning warn.jpg new file mode 100644 index 00000000..7fc83f2f Binary files /dev/null and b/docu/Pics/MH-60L/Random/vrs warning warn.jpg differ diff --git a/docu/Pics/MH-60L/Random/vrs warning.psd b/docu/Pics/MH-60L/Random/vrs warning.psd new file mode 100644 index 00000000..01ab0780 Binary files /dev/null and b/docu/Pics/MH-60L/Random/vrs warning.psd differ diff --git a/docu/Pics/MH-60L/readme.txt b/docu/Pics/MH-60L/readme.txt new file mode 100644 index 00000000..aecdff0a --- /dev/null +++ b/docu/Pics/MH-60L/readme.txt @@ -0,0 +1 @@ +This folder contains images used in the MH-60L streamdeck profile. diff --git a/docu/Pics/Mi-24P Hind/Autopilot/alt green off.png b/docu/Pics/Mi-24P Hind/Autopilot/alt green off.png new file mode 100644 index 00000000..5de4a154 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/alt green off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/alt green on.png b/docu/Pics/Mi-24P Hind/Autopilot/alt green on.png new file mode 100644 index 00000000..52067c6c Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/alt green on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/altitude green off.png b/docu/Pics/Mi-24P Hind/Autopilot/altitude green off.png new file mode 100644 index 00000000..0f82a757 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/altitude green off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/altitude green on.png b/docu/Pics/Mi-24P Hind/Autopilot/altitude green on.png new file mode 100644 index 00000000..88c065ff Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/altitude green on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/altitude red off.png b/docu/Pics/Mi-24P Hind/Autopilot/altitude red off.png new file mode 100644 index 00000000..50744d7a Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/altitude red off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/altitude red on.png b/docu/Pics/Mi-24P Hind/Autopilot/altitude red on.png new file mode 100644 index 00000000..da65f799 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/altitude red on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/green circle off.png b/docu/Pics/Mi-24P Hind/Autopilot/green circle off.png new file mode 100644 index 00000000..70d5e970 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/green circle off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/green circle on.png b/docu/Pics/Mi-24P Hind/Autopilot/green circle on.png new file mode 100644 index 00000000..616f5999 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/green circle on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/hover green off.png b/docu/Pics/Mi-24P Hind/Autopilot/hover green off.png new file mode 100644 index 00000000..b9f12526 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/hover green off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/hover green on.png b/docu/Pics/Mi-24P Hind/Autopilot/hover green on.png new file mode 100644 index 00000000..d7ae0c8b Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/hover green on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/hover red off.png b/docu/Pics/Mi-24P Hind/Autopilot/hover red off.png new file mode 100644 index 00000000..6fd6a340 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/hover red off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/hover red on.png b/docu/Pics/Mi-24P Hind/Autopilot/hover red on.png new file mode 100644 index 00000000..f02e5985 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/hover red on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off red off.png b/docu/Pics/Mi-24P Hind/Autopilot/off red off.png new file mode 100644 index 00000000..a9f5a2b3 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off red off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off red on.png b/docu/Pics/Mi-24P Hind/Autopilot/off red on.png new file mode 100644 index 00000000..5080990b Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off red on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 roll.png b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 roll.png new file mode 100644 index 00000000..b0427f04 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 roll.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 pitch.png b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 pitch.png new file mode 100644 index 00000000..13161df7 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 pitch.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 pitchl.png b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 pitchl.png new file mode 100644 index 00000000..3f9ecad4 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 pitchl.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 yaw.png b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 yaw.png new file mode 100644 index 00000000..df5cb197 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160 yaw.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160.png b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160.png new file mode 100644 index 00000000..ac1ffa45 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off1 255x160.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 roll.png b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 roll.png new file mode 100644 index 00000000..94658c1e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 roll.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 pitch.png b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 pitch.png new file mode 100644 index 00000000..0fb568a4 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 pitch.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 yaw.png b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 yaw.png new file mode 100644 index 00000000..7d19559c Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160 yaw.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160.png b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160.png new file mode 100644 index 00000000..b4fadd7e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/off2 255x160.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160 roll.png b/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160 roll.png new file mode 100644 index 00000000..a927e4f3 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160 roll.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160 yaw.png b/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160 yaw.png new file mode 100644 index 00000000..1b3f856b Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160 yaw.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160.png b/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160.png new file mode 100644 index 00000000..dada1e34 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on1 255x160.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 pitch off.png b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 pitch off.png new file mode 100644 index 00000000..ebf393e0 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 pitch off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 pitch.png b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 pitch.png new file mode 100644 index 00000000..b4db913c Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 pitch.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 yaw.png b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 yaw.png new file mode 100644 index 00000000..e40f90e2 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160 yaw.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160.png b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160.png new file mode 100644 index 00000000..c42dbdc0 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/on2 255x160.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/red circle off.png b/docu/Pics/Mi-24P Hind/Autopilot/red circle off.png new file mode 100644 index 00000000..d20893a9 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/red circle off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/red circle on.png b/docu/Pics/Mi-24P Hind/Autopilot/red circle on.png new file mode 100644 index 00000000..4d23d255 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/red circle on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/roll green off.png b/docu/Pics/Mi-24P Hind/Autopilot/roll green off.png new file mode 100644 index 00000000..622d47b0 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/roll green off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/roll green on.png b/docu/Pics/Mi-24P Hind/Autopilot/roll green on.png new file mode 100644 index 00000000..af95b9af Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/roll green on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/roll red off.png b/docu/Pics/Mi-24P Hind/Autopilot/roll red off.png new file mode 100644 index 00000000..2f465eba Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/roll red off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/roll red on.png b/docu/Pics/Mi-24P Hind/Autopilot/roll red on.png new file mode 100644 index 00000000..0cef8963 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/roll red on.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/route green off.png b/docu/Pics/Mi-24P Hind/Autopilot/route green off.png new file mode 100644 index 00000000..07e35d52 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/route green off.png differ diff --git a/docu/Pics/Mi-24P Hind/Autopilot/route green on.png b/docu/Pics/Mi-24P Hind/Autopilot/route green on.png new file mode 100644 index 00000000..dbd9e35e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Autopilot/route green on.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/1 red - Copy.png b/docu/Pics/Mi-24P Hind/Cassettes/1 red - Copy.png new file mode 100644 index 00000000..5ae4a15d Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/1 red - Copy.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/1 red.png b/docu/Pics/Mi-24P Hind/Cassettes/1 red.png new file mode 100644 index 00000000..76aff3a9 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/1 red.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/2 green - Copy.png b/docu/Pics/Mi-24P Hind/Cassettes/2 green - Copy.png new file mode 100644 index 00000000..a5329752 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/2 green - Copy.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/2 green.png b/docu/Pics/Mi-24P Hind/Cassettes/2 green.png new file mode 100644 index 00000000..39ac2bfd Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/2 green.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/3 yellow - Copy.png b/docu/Pics/Mi-24P Hind/Cassettes/3 yellow - Copy.png new file mode 100644 index 00000000..55572e1c Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/3 yellow - Copy.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/3 yellow.png b/docu/Pics/Mi-24P Hind/Cassettes/3 yellow.png new file mode 100644 index 00000000..140b831b Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/3 yellow.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/4 white - Copy.png b/docu/Pics/Mi-24P Hind/Cassettes/4 white - Copy.png new file mode 100644 index 00000000..ead46190 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/4 white - Copy.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/4 white.png b/docu/Pics/Mi-24P Hind/Cassettes/4 white.png new file mode 100644 index 00000000..5c4ddafc Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/4 white.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/switch down.png b/docu/Pics/Mi-24P Hind/Cassettes/switch down.png new file mode 100644 index 00000000..d4eb31c2 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/switch down.png differ diff --git a/docu/Pics/Mi-24P Hind/Cassettes/switch up.png b/docu/Pics/Mi-24P Hind/Cassettes/switch up.png new file mode 100644 index 00000000..645648fd Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Cassettes/switch up.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flare lh 1.png b/docu/Pics/Mi-24P Hind/Countermeasures/flare lh 1.png new file mode 100644 index 00000000..0c896fe7 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flare lh 1.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flare lh 2.png b/docu/Pics/Mi-24P Hind/Countermeasures/flare lh 2.png new file mode 100644 index 00000000..0058006e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flare lh 2.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flare rh 2.png b/docu/Pics/Mi-24P Hind/Countermeasures/flare rh 2.png new file mode 100644 index 00000000..7ac89294 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flare rh 2.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flare rh1.png b/docu/Pics/Mi-24P Hind/Countermeasures/flare rh1.png new file mode 100644 index 00000000..77e9f3d7 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flare rh1.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flare series 1.png b/docu/Pics/Mi-24P Hind/Countermeasures/flare series 1.png new file mode 100644 index 00000000..fe787287 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flare series 1.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flare series 2.png b/docu/Pics/Mi-24P Hind/Countermeasures/flare series 2.png new file mode 100644 index 00000000..91ef659b Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flare series 2.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flares jett 1.png b/docu/Pics/Mi-24P Hind/Countermeasures/flares jett 1.png new file mode 100644 index 00000000..e8dcad92 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flares jett 1.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/flares jett 2.png b/docu/Pics/Mi-24P Hind/Countermeasures/flares jett 2.png new file mode 100644 index 00000000..1f19da84 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/flares jett 2.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/interval1.png b/docu/Pics/Mi-24P Hind/Countermeasures/interval1.png new file mode 100644 index 00000000..61634fe8 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/interval1.png differ diff --git a/docu/Pics/Mi-24P Hind/Countermeasures/interval2.png b/docu/Pics/Mi-24P Hind/Countermeasures/interval2.png new file mode 100644 index 00000000..242bbcb6 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Countermeasures/interval2.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/arc-15ch1.jpg b/docu/Pics/Mi-24P Hind/Random/arc-15ch1.jpg new file mode 100644 index 00000000..7723b596 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/arc-15ch1.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Random/arc-15ch2.jpg b/docu/Pics/Mi-24P Hind/Random/arc-15ch2.jpg new file mode 100644 index 00000000..0c32b9de Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/arc-15ch2.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Random/doorsopen1.png b/docu/Pics/Mi-24P Hind/Random/doorsopen1.png new file mode 100644 index 00000000..2abfcefb Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/doorsopen1.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/doorsopen2.png b/docu/Pics/Mi-24P Hind/Random/doorsopen2.png new file mode 100644 index 00000000..8a3dde04 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/doorsopen2.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/fan1.png b/docu/Pics/Mi-24P Hind/Random/fan1.png new file mode 100644 index 00000000..b5a770a5 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/fan1.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/fan2.png b/docu/Pics/Mi-24P Hind/Random/fan2.png new file mode 100644 index 00000000..4678dbb5 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/fan2.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/fire1.png b/docu/Pics/Mi-24P Hind/Random/fire1.png new file mode 100644 index 00000000..7f26129f Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/fire1.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/fire2.png b/docu/Pics/Mi-24P Hind/Random/fire2.png new file mode 100644 index 00000000..9b6708c4 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/fire2.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/hind seats.png b/docu/Pics/Mi-24P Hind/Random/hind seats.png new file mode 100644 index 00000000..d6902430 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/hind seats.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/hind seats1.png b/docu/Pics/Mi-24P Hind/Random/hind seats1.png new file mode 100644 index 00000000..6598ba98 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/hind seats1.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/hind seats2.png b/docu/Pics/Mi-24P Hind/Random/hind seats2.png new file mode 100644 index 00000000..a3a6cd8b Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/hind seats2.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/map1.png b/docu/Pics/Mi-24P Hind/Random/map1.png new file mode 100644 index 00000000..58f3b773 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/map1.png differ diff --git a/docu/Pics/Mi-24P Hind/Random/map2.png b/docu/Pics/Mi-24P Hind/Random/map2.png new file mode 100644 index 00000000..640bf07e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Random/map2.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/aimingthingy.png b/docu/Pics/Mi-24P Hind/Weapons/aimingthingy.png new file mode 100644 index 00000000..26a05a1e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/aimingthingy.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ammo counter1.jpg b/docu/Pics/Mi-24P Hind/Weapons/ammo counter1.jpg new file mode 100644 index 00000000..de5f7abc Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ammo counter1.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ammo counter2.jpg b/docu/Pics/Mi-24P Hind/Weapons/ammo counter2.jpg new file mode 100644 index 00000000..2e5ae728 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ammo counter2.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/grndunitpwr1.png b/docu/Pics/Mi-24P Hind/Weapons/grndunitpwr1.png new file mode 100644 index 00000000..d63261d9 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/grndunitpwr1.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/grndunitpwr2.png b/docu/Pics/Mi-24P Hind/Weapons/grndunitpwr2.png new file mode 100644 index 00000000..1b3cac80 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/grndunitpwr2.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/limitmanu1.png b/docu/Pics/Mi-24P Hind/Weapons/limitmanu1.png new file mode 100644 index 00000000..792b6ced Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/limitmanu1.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/limitmanu2.png b/docu/Pics/Mi-24P Hind/Weapons/limitmanu2.png new file mode 100644 index 00000000..58765226 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/limitmanu2.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/observ1.png b/docu/Pics/Mi-24P Hind/Weapons/observ1.png new file mode 100644 index 00000000..b9f6af5e Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/observ1.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/observ2.png b/docu/Pics/Mi-24P Hind/Weapons/observ2.png new file mode 100644 index 00000000..1e7a9862 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/observ2.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ready green off.png b/docu/Pics/Mi-24P Hind/Weapons/ready green off.png new file mode 100644 index 00000000..f185bf7c Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ready green off.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ready green on.png b/docu/Pics/Mi-24P Hind/Weapons/ready green on.png new file mode 100644 index 00000000..e3c12f42 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ready green on.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/release rads1.png b/docu/Pics/Mi-24P Hind/Weapons/release rads1.png new file mode 100644 index 00000000..5f8c7171 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/release rads1.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/release rads2.png b/docu/Pics/Mi-24P Hind/Weapons/release rads2.png new file mode 100644 index 00000000..5e7a1335 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/release rads2.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/scho power1.png b/docu/Pics/Mi-24P Hind/Weapons/scho power1.png new file mode 100644 index 00000000..8c090082 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/scho power1.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/scho power2.png b/docu/Pics/Mi-24P Hind/Weapons/scho power2.png new file mode 100644 index 00000000..c8931aa8 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/scho power2.png differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc1.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc1.jpg new file mode 100644 index 00000000..118feaf1 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc1.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc1off.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc1off.jpg new file mode 100644 index 00000000..e9945b16 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc1off.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc2off.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc2off.jpg new file mode 100644 index 00000000..a5e74297 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc2off.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc2on.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc2on.jpg new file mode 100644 index 00000000..5772043a Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc2on.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc3.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc3.jpg new file mode 100644 index 00000000..335b37fe Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc3.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc4off.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc4off.jpg new file mode 100644 index 00000000..af815447 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc4off.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc4on.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc4on.jpg new file mode 100644 index 00000000..8b7d331f Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc4on.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc5off.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc5off.jpg new file mode 100644 index 00000000..f508f7b5 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc5off.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc5on.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc5on.jpg new file mode 100644 index 00000000..c9f536bd Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc5on.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc6off.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc6off.jpg new file mode 100644 index 00000000..cf54ba5d Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc6off.jpg differ diff --git a/docu/Pics/Mi-24P Hind/Weapons/ufc6on.jpg b/docu/Pics/Mi-24P Hind/Weapons/ufc6on.jpg new file mode 100644 index 00000000..a0bd0913 Binary files /dev/null and b/docu/Pics/Mi-24P Hind/Weapons/ufc6on.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic01.jpg b/docu/Pics/Mirage F1/MF1_pic01.jpg new file mode 100644 index 00000000..7f23cce2 Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic01.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic02.jpg b/docu/Pics/Mirage F1/MF1_pic02.jpg new file mode 100644 index 00000000..42e9842f Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic02.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic03.jpg b/docu/Pics/Mirage F1/MF1_pic03.jpg new file mode 100644 index 00000000..130b3c44 Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic03.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic04.jpg b/docu/Pics/Mirage F1/MF1_pic04.jpg new file mode 100644 index 00000000..33e222fd Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic04.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic05.jpg b/docu/Pics/Mirage F1/MF1_pic05.jpg new file mode 100644 index 00000000..96f6fa14 Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic05.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic06.jpg b/docu/Pics/Mirage F1/MF1_pic06.jpg new file mode 100644 index 00000000..e4202602 Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic06.jpg differ diff --git a/docu/Pics/Mirage F1/MF1_pic07.jpg b/docu/Pics/Mirage F1/MF1_pic07.jpg new file mode 100644 index 00000000..757aaa7f Binary files /dev/null and b/docu/Pics/Mirage F1/MF1_pic07.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 22_57_22-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 22_57_22-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..2977984b Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 22_57_22-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_31-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_31-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..a100536c Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_31-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_38-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_38-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..15b389b7 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_38-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_44-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_44-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..4eddb1b6 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_00_44-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_02_35-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_02_35-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..7f452f95 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_02_35-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_00-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_00-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..12efbc33 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_00-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_21-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_21-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..16a9b365 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_21-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_29-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_29-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..f896d6ee Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_03_29-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_04_42-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_04_42-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..533cc3a2 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_04_42-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_04_56-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_04_56-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..4c8c4d71 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_04_56-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_05_11-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_05_11-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..313fb81b Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_05_11-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_05_14-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_05_14-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..c5d50fd3 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_05_14-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_07_26-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_07_26-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..bfcdb65e Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_07_26-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_07_42-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_07_42-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..2281b56f Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_07_42-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_08_00-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_08_00-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..d55cd250 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_08_00-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_08_07-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_08_07-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..6f25a84e Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-26 23_08_07-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_08_19-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_08_19-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..3933ac81 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_08_19-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_08_32-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_08_32-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..125eb581 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_08_32-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_14_52-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_14_52-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..074d5a7e Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_14_52-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_14_59-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_14_59-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..7b8ae6e4 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_14_59-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_20_13-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_20_13-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..4b2a96c7 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_20_13-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_20_24-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_20_24-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..eea4d285 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_20_24-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_21_01-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_21_01-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..4b8a7bac Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_21_01-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_21_23-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_21_23-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg new file mode 100644 index 00000000..2465643e Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/Raw/2021-09-29 15_21_23-ModelViewer2_0 g__games_dcs world openbeta_mods_aircraft_mosquitofbmkvi_cockpit_.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/fusing panel.psd b/docu/Pics/MosquitoFBMkVI/fusing panel.psd new file mode 100644 index 00000000..58c11a33 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/fusing panel.psd differ diff --git a/docu/Pics/MosquitoFBMkVI/fusing_lower.jpg b/docu/Pics/MosquitoFBMkVI/fusing_lower.jpg new file mode 100644 index 00000000..0f704cc1 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/fusing_lower.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/fusing_mid.jpg b/docu/Pics/MosquitoFBMkVI/fusing_mid.jpg new file mode 100644 index 00000000..6567fe49 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/fusing_mid.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/fusing_upper.jpg b/docu/Pics/MosquitoFBMkVI/fusing_upper.jpg new file mode 100644 index 00000000..8cb13742 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/fusing_upper.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_off.jpg b/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_off.jpg new file mode 100644 index 00000000..5b375d70 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_off.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_on.jpg b/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_on.jpg new file mode 100644 index 00000000..54803a7e Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_on.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_safe.jpg b/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_safe.jpg new file mode 100644 index 00000000..a8485772 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/gunMasterSwitch_safe.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/missie generic onoffs.psd b/docu/Pics/MosquitoFBMkVI/missie generic onoffs.psd new file mode 100644 index 00000000..dd1e9248 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/missie generic onoffs.psd differ diff --git a/docu/Pics/MosquitoFBMkVI/mossie gun master switchediting.psd b/docu/Pics/MosquitoFBMkVI/mossie gun master switchediting.psd new file mode 100644 index 00000000..8a887007 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/mossie gun master switchediting.psd differ diff --git a/docu/Pics/MosquitoFBMkVI/mossie offon.psd b/docu/Pics/MosquitoFBMkVI/mossie offon.psd new file mode 100644 index 00000000..d9d4f805 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/mossie offon.psd differ diff --git a/docu/Pics/MosquitoFBMkVI/mossie updown switch.psd b/docu/Pics/MosquitoFBMkVI/mossie updown switch.psd new file mode 100644 index 00000000..f6750b18 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/mossie updown switch.psd differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_1off_right.jpg b/docu/Pics/MosquitoFBMkVI/switch_1off_right.jpg new file mode 100644 index 00000000..bcacd517 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_1off_right.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_1on_right.jpg b/docu/Pics/MosquitoFBMkVI/switch_1on_right.jpg new file mode 100644 index 00000000..859e34ba Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_1on_right.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_2off_left.jpg b/docu/Pics/MosquitoFBMkVI/switch_2off_left.jpg new file mode 100644 index 00000000..943f6dec Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_2off_left.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_2on_left.jpg b/docu/Pics/MosquitoFBMkVI/switch_2on_left.jpg new file mode 100644 index 00000000..5ba7f4be Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_2on_left.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_3down.jpg b/docu/Pics/MosquitoFBMkVI/switch_3down.jpg new file mode 100644 index 00000000..bd0e8d65 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_3down.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_3up.jpg b/docu/Pics/MosquitoFBMkVI/switch_3up.jpg new file mode 100644 index 00000000..7ab2e813 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_3up.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_4off.jpg b/docu/Pics/MosquitoFBMkVI/switch_4off.jpg new file mode 100644 index 00000000..a3e9ea97 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_4off.jpg differ diff --git a/docu/Pics/MosquitoFBMkVI/switch_4on.jpg b/docu/Pics/MosquitoFBMkVI/switch_4on.jpg new file mode 100644 index 00000000..af96f7d2 Binary files /dev/null and b/docu/Pics/MosquitoFBMkVI/switch_4on.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/01-Main.jpg b/docu/Pics/OH-58D Kiowa/01-Main.jpg new file mode 100644 index 00000000..edd60ee7 Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/01-Main.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/02-Pilot.jpg b/docu/Pics/OH-58D Kiowa/02-Pilot.jpg new file mode 100644 index 00000000..613440be Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/02-Pilot.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/03-Copilot.jpg b/docu/Pics/OH-58D Kiowa/03-Copilot.jpg new file mode 100644 index 00000000..1ff9525b Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/03-Copilot.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/04-AI1.jpg b/docu/Pics/OH-58D Kiowa/04-AI1.jpg new file mode 100644 index 00000000..87c4b3e4 Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/04-AI1.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/05-AI2.jpg b/docu/Pics/OH-58D Kiowa/05-AI2.jpg new file mode 100644 index 00000000..eac346aa Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/05-AI2.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/06-MFK Num.jpg b/docu/Pics/OH-58D Kiowa/06-MFK Num.jpg new file mode 100644 index 00000000..c89701d0 Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/06-MFK Num.jpg differ diff --git a/docu/Pics/OH-58D Kiowa/07-MFK Keyboard.jpg b/docu/Pics/OH-58D Kiowa/07-MFK Keyboard.jpg new file mode 100644 index 00000000..a98633b5 Binary files /dev/null and b/docu/Pics/OH-58D Kiowa/07-MFK Keyboard.jpg differ diff --git a/docu/Pics/SRS/Arrow Down LightRed with dot.png b/docu/Pics/SRS/Arrow Down LightRed with dot.png new file mode 100644 index 00000000..0ca9e68f Binary files /dev/null and b/docu/Pics/SRS/Arrow Down LightRed with dot.png differ diff --git a/docu/Pics/SRS/Arrow Down LightRed with dot2.png b/docu/Pics/SRS/Arrow Down LightRed with dot2.png new file mode 100644 index 00000000..a710fec3 Binary files /dev/null and b/docu/Pics/SRS/Arrow Down LightRed with dot2.png differ diff --git a/docu/Pics/SRS/Arrow Down LightRed.png b/docu/Pics/SRS/Arrow Down LightRed.png new file mode 100644 index 00000000..65d7d534 Binary files /dev/null and b/docu/Pics/SRS/Arrow Down LightRed.png differ diff --git a/docu/Pics/SRS/Arrow Down Red.png b/docu/Pics/SRS/Arrow Down Red.png new file mode 100644 index 00000000..72e5dd37 Binary files /dev/null and b/docu/Pics/SRS/Arrow Down Red.png differ diff --git a/docu/Pics/SRS/Arrow Up Blue with dot.png b/docu/Pics/SRS/Arrow Up Blue with dot.png new file mode 100644 index 00000000..a33fbf6a Binary files /dev/null and b/docu/Pics/SRS/Arrow Up Blue with dot.png differ diff --git a/docu/Pics/SRS/Arrow Up Blue.png b/docu/Pics/SRS/Arrow Up Blue.png new file mode 100644 index 00000000..d7861b5c Binary files /dev/null and b/docu/Pics/SRS/Arrow Up Blue.png differ diff --git a/docu/Pics/SRS/Arrow Up LightBlue with dot.png b/docu/Pics/SRS/Arrow Up LightBlue with dot.png new file mode 100644 index 00000000..b5eaa54f Binary files /dev/null and b/docu/Pics/SRS/Arrow Up LightBlue with dot.png differ diff --git a/docu/Pics/SRS/Arrow Up LightBlue.png b/docu/Pics/SRS/Arrow Up LightBlue.png new file mode 100644 index 00000000..5d27770d Binary files /dev/null and b/docu/Pics/SRS/Arrow Up LightBlue.png differ diff --git a/docu/Pics/SRS/SRS Buttons.psd b/docu/Pics/SRS/SRS Buttons.psd new file mode 100644 index 00000000..5ac75ef5 Binary files /dev/null and b/docu/Pics/SRS/SRS Buttons.psd differ diff --git a/docu/Pics/SRS/Transparent Image 300x300.png b/docu/Pics/SRS/Transparent Image 300x300.png new file mode 100644 index 00000000..79bbcc53 Binary files /dev/null and b/docu/Pics/SRS/Transparent Image 300x300.png differ diff --git a/docu/Pics/Spitfire/BG1.png b/docu/Pics/Spitfire/BG1.png new file mode 100644 index 00000000..c4ae1514 Binary files /dev/null and b/docu/Pics/Spitfire/BG1.png differ diff --git a/docu/Pics/Spitfire/BG2.png b/docu/Pics/Spitfire/BG2.png new file mode 100644 index 00000000..fb0ef8af Binary files /dev/null and b/docu/Pics/Spitfire/BG2.png differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_19_36-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_19_36-Digital Combat Simulator.jpg new file mode 100644 index 00000000..ff78c523 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_19_36-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_19_52-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_19_52-Digital Combat Simulator.jpg new file mode 100644 index 00000000..a566492c Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_19_52-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_20_30-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_20_30-Digital Combat Simulator.jpg new file mode 100644 index 00000000..bbace016 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_20_30-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_20_36-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_20_36-Digital Combat Simulator.jpg new file mode 100644 index 00000000..a625ffc9 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_20_36-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_21_32-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_32-Digital Combat Simulator.jpg new file mode 100644 index 00000000..c5f0abb6 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_32-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_21_36-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_36-Digital Combat Simulator.jpg new file mode 100644 index 00000000..ead7437c Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_36-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_21_43-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_43-Digital Combat Simulator.jpg new file mode 100644 index 00000000..40a3dbca Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_43-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_21_46-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_46-Digital Combat Simulator.jpg new file mode 100644 index 00000000..65840e32 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_21_46-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_23_59-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_23_59-Digital Combat Simulator.jpg new file mode 100644 index 00000000..dd484e01 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_23_59-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_24_16-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_24_16-Digital Combat Simulator.jpg new file mode 100644 index 00000000..d838995e Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_24_16-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_24_24-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_24_24-Digital Combat Simulator.jpg new file mode 100644 index 00000000..abd2423b Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_24_24-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_48_02-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_48_02-Digital Combat Simulator.jpg new file mode 100644 index 00000000..8bd4ba42 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_48_02-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_48_46-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_48_46-Digital Combat Simulator.jpg new file mode 100644 index 00000000..1edd2d7f Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_48_46-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/2021-10-01 14_50_41-Digital Combat Simulator.jpg b/docu/Pics/Spitfire/Raw/2021-10-01 14_50_41-Digital Combat Simulator.jpg new file mode 100644 index 00000000..77d3f316 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/2021-10-01 14_50_41-Digital Combat Simulator.jpg differ diff --git a/docu/Pics/Spitfire/Raw/GunsightMasterArm.psd b/docu/Pics/Spitfire/Raw/GunsightMasterArm.psd new file mode 100644 index 00000000..c6bbd868 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/GunsightMasterArm.psd differ diff --git a/docu/Pics/Spitfire/Raw/GunsightMasterArm2.psd b/docu/Pics/Spitfire/Raw/GunsightMasterArm2.psd new file mode 100644 index 00000000..b6b45171 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/GunsightMasterArm2.psd differ diff --git a/docu/Pics/Spitfire/Raw/flapLever.psd b/docu/Pics/Spitfire/Raw/flapLever.psd new file mode 100644 index 00000000..4bd686ce Binary files /dev/null and b/docu/Pics/Spitfire/Raw/flapLever.psd differ diff --git a/docu/Pics/Spitfire/Raw/gear.psd b/docu/Pics/Spitfire/Raw/gear.psd new file mode 100644 index 00000000..78e57770 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/gear.psd differ diff --git a/docu/Pics/Spitfire/Raw/masterArmOff.psd b/docu/Pics/Spitfire/Raw/masterArmOff.psd new file mode 100644 index 00000000..9049c93e Binary files /dev/null and b/docu/Pics/Spitfire/Raw/masterArmOff.psd differ diff --git a/docu/Pics/Spitfire/Raw/starters.psd b/docu/Pics/Spitfire/Raw/starters.psd new file mode 100644 index 00000000..a4a56010 Binary files /dev/null and b/docu/Pics/Spitfire/Raw/starters.psd differ diff --git a/docu/Pics/Spitfire/Spitfire.psd b/docu/Pics/Spitfire/Spitfire.psd new file mode 100644 index 00000000..ec58daac Binary files /dev/null and b/docu/Pics/Spitfire/Spitfire.psd differ diff --git a/docu/Pics/Spitfire/boosterCoil_closed.jpg b/docu/Pics/Spitfire/boosterCoil_closed.jpg new file mode 100644 index 00000000..3ebbe232 Binary files /dev/null and b/docu/Pics/Spitfire/boosterCoil_closed.jpg differ diff --git a/docu/Pics/Spitfire/boosterCoil_open.jpg b/docu/Pics/Spitfire/boosterCoil_open.jpg new file mode 100644 index 00000000..75e3407a Binary files /dev/null and b/docu/Pics/Spitfire/boosterCoil_open.jpg differ diff --git a/docu/Pics/Spitfire/flapsDown.jpg b/docu/Pics/Spitfire/flapsDown.jpg new file mode 100644 index 00000000..400d4f58 Binary files /dev/null and b/docu/Pics/Spitfire/flapsDown.jpg differ diff --git a/docu/Pics/Spitfire/flapsUp.jpg b/docu/Pics/Spitfire/flapsUp.jpg new file mode 100644 index 00000000..906698f4 Binary files /dev/null and b/docu/Pics/Spitfire/flapsUp.jpg differ diff --git a/docu/Pics/Spitfire/gear1.jpg b/docu/Pics/Spitfire/gear1.jpg new file mode 100644 index 00000000..de82246f Binary files /dev/null and b/docu/Pics/Spitfire/gear1.jpg differ diff --git a/docu/Pics/Spitfire/gear2.jpg b/docu/Pics/Spitfire/gear2.jpg new file mode 100644 index 00000000..07030b3c Binary files /dev/null and b/docu/Pics/Spitfire/gear2.jpg differ diff --git a/docu/Pics/Spitfire/gear3.jpg b/docu/Pics/Spitfire/gear3.jpg new file mode 100644 index 00000000..03b8ef82 Binary files /dev/null and b/docu/Pics/Spitfire/gear3.jpg differ diff --git a/docu/Pics/Spitfire/gear4.jpg b/docu/Pics/Spitfire/gear4.jpg new file mode 100644 index 00000000..cd6cf854 Binary files /dev/null and b/docu/Pics/Spitfire/gear4.jpg differ diff --git a/docu/Pics/Spitfire/gearDown.jpg b/docu/Pics/Spitfire/gearDown.jpg new file mode 100644 index 00000000..79876b7d Binary files /dev/null and b/docu/Pics/Spitfire/gearDown.jpg differ diff --git a/docu/Pics/Spitfire/gearTrans.jpg b/docu/Pics/Spitfire/gearTrans.jpg new file mode 100644 index 00000000..3c205089 Binary files /dev/null and b/docu/Pics/Spitfire/gearTrans.jpg differ diff --git a/docu/Pics/Spitfire/gearUp.jpg b/docu/Pics/Spitfire/gearUp.jpg new file mode 100644 index 00000000..2872d70a Binary files /dev/null and b/docu/Pics/Spitfire/gearUp.jpg differ diff --git a/docu/Pics/Spitfire/masterArmOff.jpg b/docu/Pics/Spitfire/masterArmOff.jpg new file mode 100644 index 00000000..f4caf117 Binary files /dev/null and b/docu/Pics/Spitfire/masterArmOff.jpg differ diff --git a/docu/Pics/Spitfire/masterArmOff2.jpg b/docu/Pics/Spitfire/masterArmOff2.jpg new file mode 100644 index 00000000..e4aadf36 Binary files /dev/null and b/docu/Pics/Spitfire/masterArmOff2.jpg differ diff --git a/docu/Pics/Spitfire/masterArmOn.jpg b/docu/Pics/Spitfire/masterArmOn.jpg new file mode 100644 index 00000000..f703b2e0 Binary files /dev/null and b/docu/Pics/Spitfire/masterArmOn.jpg differ diff --git a/docu/Pics/Spitfire/masterArmOn2.jpg b/docu/Pics/Spitfire/masterArmOn2.jpg new file mode 100644 index 00000000..a62146bb Binary files /dev/null and b/docu/Pics/Spitfire/masterArmOn2.jpg differ diff --git a/docu/Pics/Spitfire/pump1.jpg b/docu/Pics/Spitfire/pump1.jpg new file mode 100644 index 00000000..5149a59e Binary files /dev/null and b/docu/Pics/Spitfire/pump1.jpg differ diff --git a/docu/Pics/Spitfire/pump2.jpg b/docu/Pics/Spitfire/pump2.jpg new file mode 100644 index 00000000..ec9ee1a0 Binary files /dev/null and b/docu/Pics/Spitfire/pump2.jpg differ diff --git a/docu/Pics/Spitfire/radioChA.png b/docu/Pics/Spitfire/radioChA.png new file mode 100644 index 00000000..f49777a8 Binary files /dev/null and b/docu/Pics/Spitfire/radioChA.png differ diff --git a/docu/Pics/Spitfire/radioChA_pressed.jpg b/docu/Pics/Spitfire/radioChA_pressed.jpg new file mode 100644 index 00000000..5c867d60 Binary files /dev/null and b/docu/Pics/Spitfire/radioChA_pressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChA_unpressed.jpg b/docu/Pics/Spitfire/radioChA_unpressed.jpg new file mode 100644 index 00000000..48a0a6ce Binary files /dev/null and b/docu/Pics/Spitfire/radioChA_unpressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChB.png b/docu/Pics/Spitfire/radioChB.png new file mode 100644 index 00000000..44bdf7a0 Binary files /dev/null and b/docu/Pics/Spitfire/radioChB.png differ diff --git a/docu/Pics/Spitfire/radioChB_pressed.jpg b/docu/Pics/Spitfire/radioChB_pressed.jpg new file mode 100644 index 00000000..89b1d696 Binary files /dev/null and b/docu/Pics/Spitfire/radioChB_pressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChB_unpressed.jpg b/docu/Pics/Spitfire/radioChB_unpressed.jpg new file mode 100644 index 00000000..509594c5 Binary files /dev/null and b/docu/Pics/Spitfire/radioChB_unpressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChC.png b/docu/Pics/Spitfire/radioChC.png new file mode 100644 index 00000000..b4ec09b6 Binary files /dev/null and b/docu/Pics/Spitfire/radioChC.png differ diff --git a/docu/Pics/Spitfire/radioChC_pressed.jpg b/docu/Pics/Spitfire/radioChC_pressed.jpg new file mode 100644 index 00000000..457c16d4 Binary files /dev/null and b/docu/Pics/Spitfire/radioChC_pressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChC_unpressed.jpg b/docu/Pics/Spitfire/radioChC_unpressed.jpg new file mode 100644 index 00000000..d87c6b2d Binary files /dev/null and b/docu/Pics/Spitfire/radioChC_unpressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChD.png b/docu/Pics/Spitfire/radioChD.png new file mode 100644 index 00000000..478a4580 Binary files /dev/null and b/docu/Pics/Spitfire/radioChD.png differ diff --git a/docu/Pics/Spitfire/radioChD_pressed.jpg b/docu/Pics/Spitfire/radioChD_pressed.jpg new file mode 100644 index 00000000..ae4eb0b0 Binary files /dev/null and b/docu/Pics/Spitfire/radioChD_pressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChD_unpressed.jpg b/docu/Pics/Spitfire/radioChD_unpressed.jpg new file mode 100644 index 00000000..38643073 Binary files /dev/null and b/docu/Pics/Spitfire/radioChD_unpressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChOFF_pressed.jpg b/docu/Pics/Spitfire/radioChOFF_pressed.jpg new file mode 100644 index 00000000..8885b33f Binary files /dev/null and b/docu/Pics/Spitfire/radioChOFF_pressed.jpg differ diff --git a/docu/Pics/Spitfire/radioChOFF_unpressed.jpg b/docu/Pics/Spitfire/radioChOFF_unpressed.jpg new file mode 100644 index 00000000..743ba04f Binary files /dev/null and b/docu/Pics/Spitfire/radioChOFF_unpressed.jpg differ diff --git a/docu/Pics/Spitfire/radioOff.png b/docu/Pics/Spitfire/radioOff.png new file mode 100644 index 00000000..599b844f Binary files /dev/null and b/docu/Pics/Spitfire/radioOff.png differ diff --git a/docu/Pics/Spitfire/starter_closed.jpg b/docu/Pics/Spitfire/starter_closed.jpg new file mode 100644 index 00000000..c1230b79 Binary files /dev/null and b/docu/Pics/Spitfire/starter_closed.jpg differ diff --git a/docu/Pics/Spitfire/starter_open.jpg b/docu/Pics/Spitfire/starter_open.jpg new file mode 100644 index 00000000..06df7379 Binary files /dev/null and b/docu/Pics/Spitfire/starter_open.jpg differ diff --git a/docu/Pics/UH-1H/UH1HPic01.jpg b/docu/Pics/UH-1H/UH1HPic01.jpg new file mode 100644 index 00000000..36b9ee77 Binary files /dev/null and b/docu/Pics/UH-1H/UH1HPic01.jpg differ diff --git a/docu/StreamDeck Examples/Bronco OV-10A by Bailey.streamDeckProfile b/docu/StreamDeck Examples/Bronco OV-10A by Bailey.streamDeckProfile new file mode 100644 index 00000000..b611512b Binary files /dev/null and b/docu/StreamDeck Examples/Bronco OV-10A by Bailey.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/DCS F5 Flow Blinker.streamDeckProfile b/docu/StreamDeck Examples/DCS F5 Flow Blinker.streamDeckProfile new file mode 100644 index 00000000..7dbce0d3 Binary files /dev/null and b/docu/StreamDeck Examples/DCS F5 Flow Blinker.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/Exo's F-5E.streamDeckProfile b/docu/StreamDeck Examples/Exo's F-5E.streamDeckProfile new file mode 100644 index 00000000..5e07b234 Binary files /dev/null and b/docu/StreamDeck Examples/Exo's F-5E.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/F-4E.streamDeckProfile b/docu/StreamDeck Examples/F-4E.streamDeckProfile new file mode 100644 index 00000000..d9d80d6e Binary files /dev/null and b/docu/StreamDeck Examples/F-4E.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/F16 ECM Panel.streamDeckProfile b/docu/StreamDeck Examples/F16 ECM Panel.streamDeckProfile new file mode 100644 index 00000000..551b4058 Binary files /dev/null and b/docu/StreamDeck Examples/F16 ECM Panel.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/Gaz ADF.streamDeckProfile b/docu/StreamDeck Examples/Gaz ADF.streamDeckProfile new file mode 100644 index 00000000..58ea587b Binary files /dev/null and b/docu/StreamDeck Examples/Gaz ADF.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/M-2000C.streamDeckProfile b/docu/StreamDeck Examples/M-2000C.streamDeckProfile new file mode 100644 index 00000000..4adead49 Binary files /dev/null and b/docu/StreamDeck Examples/M-2000C.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/MH-60L Mod by Bailey Release.streamDeckProfile b/docu/StreamDeck Examples/MH-60L Mod by Bailey Release.streamDeckProfile new file mode 100644 index 00000000..533de7b7 Binary files /dev/null and b/docu/StreamDeck Examples/MH-60L Mod by Bailey Release.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/Mirage F1 by Bailey.streamDeckProfile b/docu/StreamDeck Examples/Mirage F1 by Bailey.streamDeckProfile new file mode 100644 index 00000000..e568a1cf Binary files /dev/null and b/docu/StreamDeck Examples/Mirage F1 by Bailey.streamDeckProfile differ diff --git a/docu/StreamDeck Examples/OH-58D Kiowa by Bailey WIP.streamDeckProfile b/docu/StreamDeck Examples/OH-58D Kiowa by Bailey WIP.streamDeckProfile new file mode 100644 index 00000000..28ec0254 Binary files /dev/null and b/docu/StreamDeck Examples/OH-58D Kiowa by Bailey WIP.streamDeckProfile differ