mirror of
https://github.com/weyne85/DCS-ExportScripts.git
synced 2025-10-29 16:58:18 +00:00
1630 lines
67 KiB
Lua
1630 lines
67 KiB
Lua
-- Module Name Export
|
|
--[[
|
|
*****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.
|
|
*****DISCLAIMER*****
|
|
--]]
|
|
|
|
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", --3001,REPEATER_COMPASS_SW1,TUMB,1,-1,0,1,Cockpit.Mosquito.r_i_compass_switch
|
|
[2] = "%.1f", --3002,REPEATER_COMPASS_SW2,TUMB,2,1,0,1,Cockpit.Mosquito.r_i_compass_switch
|
|
[3] = "%.1f", --3004,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", --3084,PITOT_HEAD_SW,TUMB,164,1,0,1,Cockpit.Generic.pitot_heat_switch
|
|
[165] = "%.1f", --3086,LR_FUEL_PUMP_SW,TUMB,165,-1,0,1,Cockpit.Mosquito.lr_fuel_pump_switch
|
|
[168] = "%.1f", --3088,IFF_SW,TUMB,168,1,0,1,Cockpit.Mosquito.iff_radio_switch
|
|
[17] = "%.1f", --3092,REAR_ILLUM,LEV,17,0,0,1,Cockpit.Mosquito.loop_antenna_flood_light_dimmer
|
|
[303] = "%.1f", --3095,CHART_ILLUM,LEV,303,0,0,1,Cockpit.Mosquito.chart_flood_light_dimmer
|
|
[302] = "%.1f", --3101,DOME_ILLUM,LEV,302,0,0,1,Cockpit.Mosquito.roof_dome_light_dimmer
|
|
[188] = "%.1f", --3104,IFF966_CHAN,TUMB,188,-0.2,0,1,Cockpit.Generic.BC966IFF.channel_selector
|
|
[363] = "%.1f", --3107,IFF966_DETONATE_COVER,TUMB,363,1,0,1,Cockpit.Generic.BC966IFF.detonator_switch_cover
|
|
[189] = "%.1f", --3109,IFF966_DETONATE,TUMB,189,-1,0,1,Cockpit.Generic.BC966IFF.detonator_switch
|
|
[190] = "%.1f", --3111,IFF966_OPER,TUMB,190,1,0,1,Cockpit.Generic.BC966IFF.power_switch
|
|
[307] = "%.1f", --3113,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", --3033,WIPER_RT,LEV,176,0,0,1,Cockpit.Generic.windscreen_wiper_rheostat
|
|
[169] = "%.1f", --3036,ARI_DETONATE_COVER,TUMB,169,-1,0,1,Cockpit.Mosquito.radio_detonator_switch_cover
|
|
[170] = "%.1f", --3038,ARI_DETONATE_1,BTN,170,1,0,1,Cockpit.Mosquito.radio_detonator_switch_l
|
|
[171] = "%.1f", --3039,ARI_DETONATE_2,BTN,171,1,0,1,Cockpit.Mosquito.radio_detonator_switch_r
|
|
[172] = "%.1f", --3040,PORT_EXTG_BTN_COVER,TUMB,172,1,0,1,Cockpit.Mosquito.port_extignuisher_switch_cover
|
|
[173] = "%.1f", --3042,PORT_EXTG_BTN,BTN,173,1,0,1,Cockpit.Mosquito.port_extignuisher_switch
|
|
[174] = "%.1f", --3043,STBD_EXTG_BTN_COVER,TUMB,174,1,0,1,Cockpit.Mosquito.stbd_extignuisher_switch_cover
|
|
[175] = "%.1f", --3045,STBD_EXTG_BTN,BTN,175,1,0,1,Cockpit.Mosquito.stbd_extignuisher_switch
|
|
[178] = "%.1f", --3046,RESIN_LIGHT_SW,TUMB,178,1,0,1,Cockpit.Mosquito.resin_lamps_switch
|
|
[167] = "%.1f", --3048,NAV_HEAD_LAMP_SW,TUMB,167,-0.5,0,1,Cockpit.Mosquito.id_lamp_head_mode_switch
|
|
[166] = "%.1f", --3051,REFLECTOR_SIGHT_SW,TUMB,166,1,0,1,Cockpit.Mosquito.reflector_sight_switch
|
|
[14] = "%.1f", --3053,RIGHT_SIDE_ILLUM,LEV,14,0,0,1,Cockpit.Mosquito.rh_flood_light_dimmer
|
|
[15] = "%.1f", --3056,BOX_B_ILLUM,LEV,15,0,0,1,Cockpit.Mosquito.box_b_flood_light_dimmer
|
|
[16] = "%.1f", --3059,BOMB_PANEL_ILLUM,LEV,16,0,0,1,Cockpit.Mosquito.bomb_aimers_panel_flood_light_dimmer
|
|
[112] = "%.1f", --3062,RAD_FLAP_LH,TUMB,112,-1,0,1,Cockpit.Mosquito.lh_rad_flap_switch
|
|
[113] = "%.1f", --3064,RAD_FLAP_RH,TUMB,113,1,0,1,Cockpit.Mosquito.rh_rad_flap_switch
|
|
[114] = "%.1f", --3066,AIR_FILTER,TUMB,114,-1,0,1,Cockpit.Mosquito.tropical_air_filter_switch
|
|
[157] = "%.1f", --3068,MORSE_KEY,BTN,157,1,0,1,Cockpit.SpitfireLFMkIX.morse_key
|
|
[158] = "%.1f", --3069,DOWNWARD_LEVER,TUMB,158,-0.5,0,1,Cockpit.SpitfireLFMkIX.id_lamp_down_mode
|
|
[159] = "%.1f", --3072,UPWARD_LEVER,TUMB,159,0.5,0,1,Cockpit.SpitfireLFMkIX.id_lamp_up_mode
|
|
[160] = "%.1f", --3075,DOWN_IDENT_LIGHTS_SW,TUMB,160,-0.5,0,1,Cockpit.Mosquito.id_lamp_down_colour_switch
|
|
[161] = "%.1f", --3078,CAMERA_GUN_SW,TUMB,161,1,0,1,Cockpit.Mosquito.camera_gun_switch
|
|
[162] = "%.1f", --3080,NAV_LIGHTS_SW,TUMB,162,-1,0,1,Cockpit.Generic.nav_lights_switch
|
|
[163] = "%.1f", --3082,UV_LIGHT_SW,TUMB,163,1,0,1,Cockpit.Generic.uv_lighting_switch
|
|
[164] = "%.1f", --3084,PITOT_HEAD_SW,TUMB,164,-1,0,1,Cockpit.Generic.pitot_heat_switch
|
|
[165] = "%.1f", --3086,LR_FUEL_PUMP_SW,TUMB,165,1,0,1,Cockpit.Mosquito.lr_fuel_pump_switch
|
|
[168] = "%.1f", --3088,IFF_SW,TUMB,168,-1,0,1,Cockpit.Mosquito.iff_radio_switch
|
|
[17] = "%.1f", --3092,REAR_ILLUM,LEV,17,0,0,1,Cockpit.Mosquito.loop_antenna_flood_light_dimmer
|
|
[303] = "%.1f", --3095,CHART_ILLUM,LEV,303,0,0,1,Cockpit.Mosquito.chart_flood_light_dimmer
|
|
[302] = "%.1f", --3101,DOME_ILLUM,LEV,302,0,0,1,Cockpit.Mosquito.roof_dome_light_dimmer
|
|
[188] = "%.1f", --3104,IFF966_CHAN,TUMB,188,-0.2,0,1,Cockpit.Generic.BC966IFF.channel_selector
|
|
[363] = "%.1f", --3107,IFF966_DETONATE_COVER,TUMB,363,1,0,1,Cockpit.Generic.BC966IFF.detonator_switch_cover
|
|
[189] = "%.1f", --3109,IFF966_DETONATE,TUMB,189,-1,0,1,Cockpit.Generic.BC966IFF.detonator_switch
|
|
[190] = "%.1f", --3111,IFF966_OPER,TUMB,190,1,0,1,Cockpit.Generic.BC966IFF.power_switch
|
|
[307] = "%.1f", --3113,T_T_F_SW,TUMB,307,-1,0,1,Cockpit.Mosquito.transmitter_type_f_switch
|
|
|
|
--Three-Way Selector
|
|
[327] = "%.1f", --3001,BOMB_DOORS,BTN,327,-1,-1,0,Cockpit.Mosquito.bomb_doors_lever
|
|
[328] = "%.1f", --3002,CHASSIS,BTN,328,1,0,1,Cockpit.Mosquito.chassis_lever
|
|
[329] = "%.1f", --3003,FLAPS,BTN,329,-1,-1,0,Cockpit.Mosquito.flaps_lever
|
|
[117] = "%.1f", --3004,CHASSIS_GATE,TUMB,117,1,0,1,Cockpit.Mosquito.chassis_gate
|
|
[353] = "%.1f", --3006,FLAPS_GATE,TUMB,353,-1,0,1,Cockpit.Mosquito.flaps_gate
|
|
|
|
|
|
--VHF Radio
|
|
[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
|
|
[42] = "%.1f", --3006,RCTRL_DIM,TUMB,42,1,0,1,Cockpit.SpitfireLFMkIX.radio_dimmer
|
|
[44] = "%.1f", --3007,RCTRL_T,TUMB,44,1,0,1,Cockpit.SpitfireLFMkIX.radio_mode
|
|
[364] = "%.1f", --3015,RCTRL_VOL,LEV,364,0,0,1,Cockpit.SpitfireLFMkIX.radio_volume
|
|
[43] = "%.1f", --3017,RCTRL_TLOCK,TUMB,43,-1,0,1,Cockpit.SpitfireLFMkIX.radio_lock
|
|
[4] = "%.1f", --3099,PTT_ES,BTN,4,1,0,1,SCR-522 PTT Button
|
|
|
|
--Weapons
|
|
[120] = "%.1f", --3001,GUN_MASTER_COVER,TUMB,120,-1,0,1,Cockpit.Mosquito.gun_firing_master_switch_cover
|
|
[121] = "%.1f", --3003,GUN_MASTER,TUMB,121,1,0,1,Cockpit.Mosquito.gun_firing_master_switch
|
|
[245] = "%.1f", --3005,MACHINEGUN_FIRING,BTN,245,1,0,1,Cockpit.Bf109K4.trigger_a
|
|
[246] = "%.1f", --3006,GUN_FIRING,BTN,246,1,0,1,Cockpit.Bf109K4.trigger_b2
|
|
[244] = "%.1f", --3007,CAMERA_GUN,BTN,244,1,0,1,Cockpit.Bf109K4.trigger_b2
|
|
[8] = "%.1f", --3008,WING_TANK_JETTSON_COVER,TUMB,8,1,0,1,Cockpit.Mosquito.wing_tank_jettison_button_cover
|
|
[9] = "%.1f", --3010,WING_TANK_JETTSON,BTN,9,1,0,1,Cockpit.Mosquito.wing_tank_jettison_button
|
|
[323] = "%.1f", --3043,HARNESS_LEVER,TUMB,323,1,0,1,Cockpit.Generic.harness_release_lever
|
|
[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
|
|
[144] = "%.1f", --3056,JETTISON_CONTAINERS_COVER,TUMB,144,-1,0,1,Cockpit.Mosquito.containers_jettison_button_cover
|
|
[145] = "%.1f", --3058,JETTISON_CONTAINERS,BTN,145,1,0,1,Cockpit.Mosquito.containers_jettison_button
|
|
[311] = "%.1f", --3059,BOMB_PANEL_LOCK,TUMB,311,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_protective_cover
|
|
[143] = "%.1f", --3061,CINE_CAMERA,TUMB,143,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_trigger_changeover_switch
|
|
[148] = "%.1f", --3063,WING_BOMBS_OR_TANKS_1,TUMB,148,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_1_switch
|
|
[149] = "%.1f", --3065,WING_BOMBS_OR_TANKS_2,TUMB,149,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_2_switch
|
|
[150] = "%.1f", --3067,FUSELAGE_BOMBS_3,TUMB,150,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_3_switch
|
|
[151] = "%.1f", --3069,FUSELAGE_BOMBS_4,TUMB,151,1,0,1,Cockpit.Mosquito.bomb_aimers_panel_station_4_switch
|
|
[152] = "%.1f", --3071,ALL_BOMBS_NOSE,TUMB,152,-1,0,1,Cockpit.Mosquito.bomb_aimers_panel_nose_fusing_switch
|
|
[153] = "%.1f" --3073,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.gunnerTile(mainPanelDevice)
|
|
ExportScript.fuelTanksTiles(mainPanelDevice)
|
|
ExportScript.VhfRadioTile(mainPanelDevice)
|
|
ExportScript.CrazyRadioTile(mainPanelDevice)
|
|
ExportScript.PilotRadioTile(mainPanelDevice)
|
|
|
|
--[[
|
|
----------------------------------------------
|
|
---------Display: Airspeed--------------------
|
|
----------------------------------------------
|
|
local dial_airspeed = math.floor(mainPanelDevice:get_argument_value(64) * 1000) --thanks ED
|
|
ExportScript.Tools.SendData(3000, dial_airspeed)
|
|
|
|
----------------------------------------------
|
|
---------Display: Heading Repeater--------------------
|
|
----------------------------------------------
|
|
|
|
local dial_directionIndicator = math.floor(mainPanelDevice:get_argument_value(73) * 360)
|
|
ExportScript.Tools.SendData(3001, dial_directionIndicator)
|
|
|
|
----------------------------------------------
|
|
---------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)
|
|
|
|
----------------------------------------------
|
|
---------Display: Vertical Speed Indicator--------------------
|
|
----------------------------------------------
|
|
|
|
local dial_verticalSpeedIndicator = math.floor(mainPanelDevice:get_argument_value(67) * 4000)
|
|
ExportScript.Tools.SendData(3019, dial_verticalSpeedIndicator)
|
|
|
|
|
|
----------------------------------------------
|
|
---------Display: Compass Heading--------------------
|
|
----------------------------------------------
|
|
|
|
local dial_compass = math.floor(mainPanelDevice:get_argument_value(31) * 360)
|
|
if dial_compass == 0 then
|
|
dial_compass = 360
|
|
dial_compass = string.format("0" .. dial_compass)
|
|
end
|
|
|
|
if #dial_compass == 1 then
|
|
dial_compass = string.format("00" .. dial_compass)
|
|
elseif #dial_compass == 2 then
|
|
dial_compass = string.format("0" .. dial_compass)
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3008, dial_compass)
|
|
|
|
|
|
local dial_compassNeedle1 = math.floor(mainPanelDevice:get_argument_value(47) * 360)
|
|
|
|
if dial_compassNeedle1 == 0 then
|
|
dial_compassNeedle1 = 360
|
|
dial_compassNeedle1 = string.format("0" .. dial_compassNeedle1)
|
|
end
|
|
|
|
if #dial_compassNeedle1 == 1 then
|
|
dial_compassNeedle1 = string.format("00" .. dial_compassNeedle1)
|
|
elseif #dial_compassNeedle1 == 2 then
|
|
dial_compassNeedle1 = string.format("0" .. dial_compassNeedle1)
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3012, dial_compassNeedle1)
|
|
|
|
|
|
local dial_compassNeedle2 = math.floor(mainPanelDevice:get_argument_value(48) * 360)
|
|
|
|
if dial_compassNeedle2 == 0 then
|
|
dial_compassNeedle2 = 360
|
|
dial_compassNeedle2 = string.format("0" .. dial_compassNeedle2)
|
|
end
|
|
|
|
if #dial_compassNeedle2 == 1 then
|
|
dial_compassNeedle2 = string.format("00" .. dial_compassNeedle2)
|
|
elseif #dial_compassNeedle2 == 2 then
|
|
dial_compassNeedle2 = string.format("0" .. dial_compassNeedle2)
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3013, dial_compassNeedle2)
|
|
|
|
|
|
----------------------------------------------
|
|
---------Display: Gear Up and Down------------
|
|
----------------------------------------------
|
|
|
|
local light_gearRedUpLeft = math.floor(mainPanelDevice:get_argument_value(77)) --red up left
|
|
local light_gearGreenDownLeft = math.floor(mainPanelDevice:get_argument_value(78)) --green down left
|
|
local light_gearRedUpRight = math.floor(mainPanelDevice:get_argument_value(79)) --red up right
|
|
local light_gearGreenDownRight = math.floor(mainPanelDevice:get_argument_value(80)) --green down right
|
|
|
|
local gearIsUp
|
|
local gearIsDown
|
|
|
|
if light_gearRedUpLeft == 1 && light_gearRedUpRight == 1 then
|
|
gearIsUp = 1
|
|
else
|
|
gearIsUp = 0
|
|
end
|
|
|
|
if light_gearGreenDownLeft == 1 && light_gearGreenDownRight == 1 then
|
|
gearIsDown = 1
|
|
else
|
|
gearIsDown = 0
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3009, gearIsUp)
|
|
ExportScript.Tools.SendData(3010, gearIsDown)
|
|
|
|
|
|
|
|
----------------------------------------------
|
|
---------Display: Flaps--------------------
|
|
----------------------------------------------
|
|
|
|
local dial_flapIndicator = math.floor(mainPanelDevice:get_argument_value(81) * 100)
|
|
|
|
if dial_flapIndicator > 70 then
|
|
dial_flapIndicator = 70
|
|
ExportScript.Tools.SendData(3011, dial_flapIndicator)
|
|
|
|
----------------------------------------------
|
|
---------Display: Oxygen supply available--------------------
|
|
----------------------------------------------
|
|
|
|
|
|
local dial_oxygenFlowRatePilot = math.floor(mainPanelDevice:get_argument_value(82) * 100)
|
|
ExportScript.Tools.SendData(3014, 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(3015, isDial_oxygenFlowRatePilotEmergency)
|
|
|
|
|
|
local dial_oxygenSupplyPilotRaw = math.floor(mainPanelDevice:get_argument_value(83))
|
|
|
|
local dial_oxygenSupplyPilot = math.floor((dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * 87.118)
|
|
- (dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * 228.16)
|
|
+ (dial_oxygenSupplyPilotRaw * dial_oxygenSupplyPilotRaw * 189.84)
|
|
+ (dial_oxygenSupplyPilotRaw * 51.237)
|
|
- 0.0026)
|
|
ExportScript.Tools.SendData(3024, 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
|
|
|
|
|
|
|
|
|
|
local dial_oxygenFlowRateCopilot = math.floor(mainPanelDevice:get_argument_value(155) * 100)
|
|
ExportScript.Tools.SendData(3016, 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(3017, isDial_oxygenFlowRateCopilotEmergency)
|
|
|
|
|
|
local dial_oxygenSupplyCopilotRaw = math.floor(mainPanelDevice:get_argument_value(156))
|
|
|
|
local dial_oxygenSupplyCopilot = math.floor((dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * 87.118)
|
|
- (dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * 228.16)
|
|
+ (dial_oxygenSupplyCopilotRaw * dial_oxygenSupplyCopilotRaw * 189.84)
|
|
+ (dial_oxygenSupplyCopilotRaw * 51.237)
|
|
- 0.0026)
|
|
ExportScript.Tools.SendData(3024, 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
|
|
|
|
----------------------------------------------
|
|
---------Display: Fuel Inner Tank--------------------
|
|
----------------------------------------------
|
|
|
|
--local dial_fuelInnerLeft = math.floor(mainPanelDevice:get_argument_value(92) * X)
|
|
--ExportScript.Tools.SendData(3017, dial_fuelInnerLeft)
|
|
--noted in calculator
|
|
|
|
local dial_fuelInnerTankLeftRaw = math.floor(mainPanelDevice:get_argument_value(92))
|
|
|
|
local dial_fuelInnerTankLeft = math.floor(
|
|
+ (1084.9 * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw)
|
|
- (2252.4 * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw)
|
|
+ (1590.9 * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw)
|
|
- (377.05 * dial_fuelInnerTankLeftRaw * dial_fuelInnerTankLeftRaw)
|
|
+ (128.21 * dial_fuelInnerTankLeftRaw)
|
|
- 0.1146)
|
|
|
|
--consider making flags for these that can be set by the user
|
|
if dial_fuelInnerTankLeft < 0 then
|
|
dial_fuelInnerTankLeft = 0
|
|
end
|
|
|
|
if dial_fuelInnerTankLeft < 146 then
|
|
dial_fuelInnerTankLeft = 146
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3025, dial_fuelInnerTankLeft)
|
|
|
|
|
|
|
|
local dial_fuelInnerTankRightRaw = math.floor(mainPanelDevice:get_argument_value(93))
|
|
|
|
local dial_fuelInnerTankRight = math.floor(
|
|
(1084.9 * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw)
|
|
- (2252.4 * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw)
|
|
+ (1590.9 * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw)
|
|
- (377.05 * dial_fuelInnerTankRightRaw * dial_fuelInnerTankRightRaw)
|
|
+ (128.21 * dial_fuelInnerTankRightRaw)
|
|
- 0.1146)
|
|
|
|
--consider making flags for these that can be set by the user
|
|
if dial_fuelInnerTankRight < 0 then
|
|
dial_fuelInnerTankRight = 0
|
|
end
|
|
|
|
if dial_fuelInnerTankRight < 146 then
|
|
dial_fuelInnerTankRight = 146
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3026, dial_fuelInnerTankRight)
|
|
|
|
|
|
|
|
----------------------------------------------
|
|
---------Display: Fuel Center tanks--------------------
|
|
----------------------------------------------
|
|
|
|
--note that the formulas are different for both of these
|
|
|
|
|
|
local dial_centerTankNo10Raw = math.floor(mainPanelDevice:get_argument_value(94))
|
|
|
|
local dial_centerTankNo10 = math.floor(
|
|
(-88.166 * dial_centerTankNo10Raw * dial_centerTankNo10Raw * dial_centerTankNo10Raw * dial_centerTankNo10Raw)
|
|
+ (203.91 * dial_centerTankNo10Raw * dial_centerTankNo10Raw * dial_centerTankNo10Raw)
|
|
- (150.81 * dial_centerTankNo10Raw * dial_centerTankNo10Raw)
|
|
+ (94.58 * dial_centerTankNo10Raw)
|
|
+ 0.0185)
|
|
|
|
--consider making flags for these that can be set by the user
|
|
if dial_centerTankNo10 < 0 then
|
|
dial_centerTankNo10 = 0
|
|
end
|
|
|
|
if dial_centerTankNo10 < 53 then
|
|
dial_centerTankNo10 = 53
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3027, dial_centerTankNo10)
|
|
|
|
|
|
|
|
local dial_centerTankNo12Raw = math.floor(mainPanelDevice:get_argument_value(95))
|
|
|
|
local dial_centerTankNo12 = math.floor(
|
|
(533.91 * dial_centerTankNo12Raw * dial_centerTankNo12Raw * dial_centerTankNo12Raw * dial_centerTankNo12Raw * dial_centerTankNo12Raw)
|
|
- (1189.9 * dial_centerTankNo12Raw * dial_centerTankNo12Raw * dial_centerTankNo12Raw * dial_centerTankNo12Raw)
|
|
+ (941.77 * dial_centerTankNo12Raw * dial_centerTankNo12Raw * dial_centerTankNo12Raw)
|
|
- (290.11 * dial_centerTankNo12Raw * dial_centerTankNo12Raw)
|
|
+ (81.317 * dial_centerTankNo12Raw)
|
|
- 0.0347)
|
|
|
|
--consider making flags for these that can be set by the user
|
|
if dial_centerTankNo12 < 0 then
|
|
dial_centerTankNo12 = 0
|
|
end
|
|
|
|
if dial_centerTankNo12 < 63 then
|
|
dial_centerTankNo12 = 63
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3028, dial_centerTankNo12)
|
|
|
|
|
|
|
|
|
|
----------------------------------------------
|
|
---------Display: Fuel outer tanks--------------------
|
|
----------------------------------------------
|
|
|
|
|
|
--[96] and [97]
|
|
|
|
local dial_outerTankLeftRaw = math.floor(mainPanelDevice:get_argument_value(96))
|
|
local dial_outerTankLeft
|
|
if dial_outerTankLeftRaw < 0.7699 then
|
|
dial_outerTankLeft = math.floor(
|
|
(64.393 * dial_o uterTankLeftRaw * dial_outerTankLeftRaw * dial_outerTankLeftRaw)
|
|
- (90.401 * dial_outerTankLeftRaw * dial_outerTankLeftRaw)
|
|
+ (83.39 * dial_outerTankLeftRaw)
|
|
+ 0.0365)
|
|
else
|
|
dial_outerTankLeft = math.floor(
|
|
(135.71 * dial_outerTankLeftRaw)
|
|
- 64.485)
|
|
end
|
|
|
|
--consider making flags for these that can be set by the user
|
|
if dial_outerTankLeft < 0 then
|
|
dial_outerTankLeft = 0
|
|
end
|
|
|
|
if dial_outerTankLeft < 59 then
|
|
dial_outerTankLeft = 59
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3029, dial_outerTankLeft)
|
|
|
|
|
|
local dial_outerTankRightRaw = math.floor(mainPanelDevice:get_argument_value(97))
|
|
local dial_outerTankRight
|
|
if dial_outerTankRightRaw < 0.7699 then
|
|
dial_outerTankRight = math.floor(
|
|
(64.393 * dial_o uterTankRightRaw * dial_outerTankRightRaw * dial_outerTankRightRaw)
|
|
- (90.401 * dial_outerTankRightRaw * dial_outerTankRightRaw)
|
|
+ (83.39 * dial_outerTankRightRaw)
|
|
+ 0.0365)
|
|
else
|
|
dial_outerTankRight = math.floor(
|
|
(135.71 * dial_outerTankRightRaw)
|
|
- 64.485)
|
|
end
|
|
|
|
--consider making flags for these that can be set by the user
|
|
if dial_outerTankRight < 0 then
|
|
dial_outerTankRight = 0
|
|
end
|
|
|
|
if dial_outerTankRight < 59 then
|
|
dial_outerTankRight = 59
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3030, dial_outerTankRight)
|
|
|
|
|
|
----------------------------------------------
|
|
---------Display: air temperature--------------------
|
|
----------------------------------------------
|
|
|
|
local dial_airTemp = math.floor((mainPanelDevice:get_argument_value(314) * 100)
|
|
ExportScript.Tools.SendData(3018, dial_airTemp)
|
|
|
|
]]--
|
|
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 --
|
|
-----------------------------
|
|
|
|
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 .. "\n" ..
|
|
"Oil P " .. guage_oilPresLeft .. "\n" ..
|
|
"Rad T " .. guage_radTempLeft)
|
|
|
|
------------------------------
|
|
-- 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}--remove osme decimal places plz
|
|
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 .. "\n" ..
|
|
"Oil P " .. guage_oilPresRight .. "\n" ..
|
|
"Rad T " .. guage_radTempRight)
|
|
|
|
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 enduce false reading with negitive 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" .. "No10 " .. fuelCenterTankNo10 .. "\n" ..
|
|
"No12 " .. 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, "Fuel Tot " .. fuelAircraftTotal .. "\n" ..
|
|
"Inner " .. fuelInnerTankTotal .. "\n" ..
|
|
"Center " .. fuelCenterTankTotal .. "\n" ..
|
|
"Outer " .. fuelOuterTankTotal)
|
|
|
|
end
|
|
|
|
|
|
function ExportScript.VhfRadioTile(mainPanelDevice) --https://streamable.com/nnjgpt
|
|
--TODO find a way to always show three digits
|
|
--TODO assign actual number to these exports
|
|
|
|
--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)
|
|
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)
|
|
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) --TODO: When the radio is off, print OFF
|
|
-- 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")
|
|
|
|
--TODO condider taking out 0s after the decimal
|
|
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
|
|
|
|
|
|
|
|
--[[ Tiles
|
|
|
|
--this is the basic format. you will still need fine tune everything
|
|
function ExportScript.engLeftRpmTile(mainPanelDevice) --boost is [54], rpm is []
|
|
|
|
local guage_rpm = math.floor(mainPanelDevice:get_argument_value(37) * 10000)
|
|
|
|
local dial_boostLeftRaw = math.floor(mainPanelDevice:get_argument_value(39) * 1)
|
|
|
|
local dial_boostLeft = math.floor(dial_boostLeftRaw * 24)
|
|
|
|
ExportScript.Tools.SendData(3000, string.format("Eng L" .. "\n"
|
|
.. "RPM ".. guage_rpm .. "\n"
|
|
.. "Boost ".. dial_boostLeft .. "\n"))
|
|
end
|
|
|
|
function ExportScript.engLeftOilTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.engRightRpmTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.engRightOilTile(mainPanelDevice)
|
|
end
|
|
|
|
|
|
function ExportScript.oxygenTile(mainPanelDevice)
|
|
local dial_oxygenFlowRatePilot = math.floor(mainPanelDevice:get_argument_value(82) * 100)
|
|
ExportScript.Tools.SendData(3014, 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(3015, 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(3024, 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(3031, isDial_oxygenSupplyPilotRedZone)
|
|
|
|
local oxygenTile_output = string.format("Oxygen" .. "\n"
|
|
.. "PLT Flow ".. dial_oxygenFlowRatePilot .. "\n"
|
|
.. "PLT Supply ".. dial_oxygenSupplyPilot .. "\n")
|
|
|
|
ExportScript.Tools.SendData(3032, oxygenTile_output)
|
|
|
|
local isPilotOxygenEmergency
|
|
if isDial_oxygenSupplyPilotRedZone == 1 or isDial_oxygenFlowRatePilotEmergency == 1 then
|
|
isPilotOxygenEmergency = 1
|
|
else
|
|
isPilotOxygenEmergency = 0
|
|
end
|
|
|
|
ExportScript.Tools.SendData(3033, isPilotOxygenEmergency)
|
|
|
|
end
|
|
|
|
function ExportScript.BrakesTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.trimTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.fuelTanksTiles(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.fuelCenterTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.fuelOuterTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.airTempTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.gearUpTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.gearDownTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.altBaroVsiTile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.navigation1Tile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.navigation2Tile(mainPanelDevice)
|
|
end
|
|
|
|
function ExportScript.radio1Tile(mainPanelDevice)
|
|
--look at the spitfire for clues
|
|
end
|
|
|
|
function ExportScript.radio2Tile(mainPanelDevice)
|
|
|
|
end
|
|
|
|
function ExportScript.gunnerSightTile(mainPanelDevice)
|
|
--wingspan is in ft in the aircraft
|
|
end
|
|
|
|
]]--
|
|
|
|
|
|
|
|
|
|
--[[
|
|
Scratch pad for linear interpolation
|
|
|
|
if incomingNumber < 0 then
|
|
incomingNumber = 0
|
|
elseif incomingNumber < 0.1366 then --incoming number is
|
|
x1 = 0 = argument number 1
|
|
y1 = 0 = guage number 1
|
|
x2 = incomingNumber
|
|
x3 = 0.13366 = argument number 2
|
|
y3 = 10 = guage number 2
|
|
solution = (((incomingNumber - x1) * (y3 - y1) ) / (x3 - x1)) + y1
|
|
|
|
]]--
|
|
|
|
--[[
|
|
------------------------------
|
|
-- Ideas for implementation --
|
|
------------------------------
|
|
|
|
[
|
|
-Aircraft Startup Page
|
|
-Basic readout and instrument readouts such as airspeed
|
|
-Readout for the currently selected copilot frequency
|
|
-Airspeed tile with color changes for limits
|
|
-Tile for optimal settings based on aircraft weight and altitude
|
|
-A way for the copilot to use the streamdeck to dial freqs
|
|
-set gunner sight via different aircraft (focus on the ones in DCS)
|
|
-maybe have the tile react to what the user is doing ingame,
|
|
-as the user scrolls the wheel, the names of the different aircraft
|
|
-appear on the dial
|
|
-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" --
|
|
-----------------------
|
|
|
|
-------------
|
|
| Radio 1 |
|
|
| Channel A |
|
|
------------- complete.
|
|
|
|
------------------
|
|
| Status |
|
|
| BOMB BAY: XXXX |
|
|
| GEAR: XXX |
|
|
| FLAPS: XX |
|
|
------------------
|
|
|
|
----------------
|
|
| Radio 2 |
|
|
| Band: Yellow |
|
|
| Freq: XXXXX |
|
|
---------------- Complete.
|
|
|
|
-----------------
|
|
| Gear UP |
|
|
| PIC PIC |
|
|
| Under Carrage |
|
|
----------------
|
|
|
|
-----------------
|
|
| Under Carrage |
|
|
| PIC PIC |
|
|
| Gear DOWN |
|
|
-----------------
|
|
|
|
--------------
|
|
| Alt: XXXX |
|
|
| Baro: XXXX |
|
|
| VSI: XXXX |
|
|
--------------
|
|
|
|
-----------------
|
|
| NAVIGATION1 |
|
|
| Repeater: XXX |
|
|
| Needle 1: XXX |
|
|
| Needle 2: XXX |
|
|
-----------------
|
|
|
|
-----------------
|
|
| NAVIGATION2 |
|
|
| Compass: XXX |
|
|
| Repeater: XXX |
|
|
| Director: XXX |
|
|
-----------------
|
|
|
|
-------------------
|
|
| Oxygen |
|
|
| PLT Flow: XXX |
|
|
| PLT Supply: XX |
|
|
| CPLT Flow: XXX |
|
|
| CPLT Supply: XX |
|
|
-------------------
|
|
|
|
------------------
|
|
| Brakes |
|
|
| Supply: XXX |
|
|
| Port: XX |
|
|
| Starboard: XXX |
|
|
------------------
|
|
|
|
--------------------
|
|
| Trim |
|
|
| Aileron: L XX% |
|
|
| Elevator: R XX% |
|
|
| Rudder: Centered |
|
|
--------------------
|
|
|
|
------------
|
|
| Air Temp |
|
|
| XXoC |
|
|
------------
|
|
|
|
------------- -------------
|
|
| 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 --
|
|
------------------------------
|
|
|
|
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
|