mirror of
https://github.com/weyne85/DCS-ExportScripts.git
synced 2025-10-29 16:58:18 +00:00
propose to swap your version with mine, which retains all the functionalities you had corrected already, and adds several parameters (HSI mode etc.) corrects duplication of parameters declarations, cleans up PCN Display and adds several optional additional exports in cleaned up parameters (notably around HSI and HUD Displays)
1482 lines
53 KiB
Lua
1482 lines
53 KiB
Lua
-- 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.4"
|
|
|
|
|
|
-----------------------------
|
|
-- Helper functions --
|
|
-----------------------------
|
|
function ExportScript.PCN_place_decimal(PCN_string, point_mask)
|
|
local retval = ""
|
|
if (PCN_string ~=nil) and (point_mask ~= nil) then
|
|
if (point_mask:find("%.") ~= nil) then
|
|
local i = 0
|
|
for i = 1, #point_mask, 1 do
|
|
if point_mask:sub(i, i) == "." then
|
|
retval = retval .. "." .. PCN_string:sub(i, i)
|
|
else
|
|
retval = retval .. PCN_string:sub(i, i)
|
|
end
|
|
end
|
|
else
|
|
retval = PCN_string
|
|
end
|
|
end
|
|
return retval
|
|
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
|
|
|
|
-- 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", --tranfer
|
|
[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", -- 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", -- voyant rouge „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“ 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
|
|
|
|
-- 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
|
|
-- 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
|
|
[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
|
|
[950] = "%.1f", --U/VHF Mode
|
|
|
|
|
|
-- 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
|
|
|
|
-- 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
|
|
|
|
}
|
|
|
|
-----------------------------
|
|
-- 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)
|
|
|
|
-- 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_UR Navigation Displays
|
|
if ExportScript.Config.Debug then
|
|
local lPCNUR = list_indication(9)
|
|
ExportScript.Tools.WriteToLog('lPCNUR : '..ExportScript.Tools.dump(lPCNUR))
|
|
end
|
|
|
|
local lPCNUR = ExportScript.Tools.getListIndicatorValue(9)
|
|
|
|
local lPCN_sub_L_T, lPCN_sub_R_T, lPCN_sub_L_B, lPCN_sub_R_B, lPCN_main_L, lPCN_main_R, lPCN_mask_L, lPCN_mask_R = "", "", "", "", "", "", "", ""
|
|
-- 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
|
|
|
|
-- retrieve main text
|
|
if lPCNUR.PCN_UL_DIGITS ~= nil then
|
|
lPCN_main_L = lPCNUR.PCN_UL_DIGITS
|
|
end
|
|
if lPCNUR.PCN_UR_DIGITS ~= nil then
|
|
lPCN_main_R = lPCNUR.PCN_UR_DIGITS
|
|
end
|
|
-- retrieve mask
|
|
if lPCNUR.PCN_UL_POINTS ~= nil then
|
|
lPCN_mask_L = lPCNUR.PCN_UL_POINTS
|
|
end
|
|
if lPCNUR.PCN_UR_POINTS ~= nil then
|
|
lPCN_mask_R = lPCNUR.PCN_UR_POINTS
|
|
end
|
|
|
|
local lPCN_main_L_D, lPCN_main_R_D = "", "" -- initialize variables that will hold the cleaned up text
|
|
-- retrieve main digits and place the points according to the mask
|
|
if (#lPCN_main_L ~= 0) then
|
|
lPCN_main_L_D = ExportScript.PCN_place_decimal(lPCN_main_L, lPCN_mask_L)
|
|
end
|
|
if (#lPCN_main_R ~= 0) then
|
|
lPCN_main_R_D = ExportScript.PCN_place_decimal(lPCN_main_R, lPCN_mask_R)
|
|
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))
|
|
-- export string on txo 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 poinjts
|
|
ExportScript.Tools.WriteToLog("2056: "..string.format("%s", lPCN_main_L_D))
|
|
ExportScript.Tools.WriteToLog("2057: "..string.format("%s", lPCN_main_R_D))
|
|
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))
|
|
-- 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_main_L_D))
|
|
ExportScript.Tools.SendData(2057, string.format("%s", lPCN_main_R_D))
|
|
|
|
-- PCN_BR (Poste de Commande Navigation)
|
|
-- NEW CODE below for 2.7
|
|
local lPCNBR = list_indication(10)
|
|
if ExportScript.Config.Debug then
|
|
ExportScript.Tools.WriteToLog('lPCNBR : '..ExportScript.Tools.dump(lPCNBR))
|
|
end
|
|
|
|
local lPCNBR = ExportScript.Tools.getListIndicatorValue(10)
|
|
local lPCN_BR1, lPCN_BR2
|
|
if lPCNBR ~= nil and lPCNBR.PCN_BL_DIGITS ~= nil then
|
|
lPCN_BR1 = lPCNBR.PCN_BL_DIGITS
|
|
else
|
|
lPCN_BR1 = " "
|
|
end
|
|
if lPCNBR ~= nil and lPCNBR.PCN_BR_DIGITS ~= nil then
|
|
lPCN_BR2 = lPCNBR.PCN_BR_DIGITS
|
|
else
|
|
lPCN_BR2 = " "
|
|
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.
|
|
]]
|
|
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 Channel post processing to get a displayable number
|
|
--local EVF_Channels = {[0.00]=" 1", [0.05]=" 2", [0.10]=" 3", [0.15]=" 4", [0.20]=" 5", [0.25]=" 6", [0.30]=" 7", [0.35]=" 8", [0.40]=" 9", [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"}
|
|
--[[ EVF_Channel = string.format("%02d", (mainPanelDevice:get_argument_value(968) * 20) + 1)
|
|
ExportScript.Tools.SendData(2068, EVF_Channel)
|
|
if ExportScript.Config.Debug then
|
|
ExportScript.Tools.WriteToLog("2068: "..string.format("%s", EVF_Channel))
|
|
end ]]
|
|
|
|
-- 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
|
|
|
|
-- 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 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))
|
|
|
|
-- 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.SendDataDAC(2601, IFF_1)
|
|
ExportScript.Tools.SendDataDAC(2602, IFF_2)
|
|
ExportScript.Tools.SendDataDAC(2603, IFF_3)
|
|
ExportScript.Tools.SendDataDAC(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
|
|
|
|
-- send data
|
|
ExportScript.Tools.FlushDataDAC(#ExportScript.Config.DAC)
|
|
|
|
-- uncomment the code below to access DCS exported parameters
|
|
--[[
|
|
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
|