diff --git a/Scripts/DCS-BIOS/doc/control-reference.html b/Scripts/DCS-BIOS/doc/control-reference.html
index 390da5795..4b05a0de3 100644
--- a/Scripts/DCS-BIOS/doc/control-reference.html
+++ b/Scripts/DCS-BIOS/doc/control-reference.html
@@ -22,6 +22,8 @@
+
+
diff --git a/Scripts/DCS-BIOS/lib/AJS37.lua b/Scripts/DCS-BIOS/lib/AJS37.lua
new file mode 100644
index 000000000..beed541ea
--- /dev/null
+++ b/Scripts/DCS-BIOS/lib/AJS37.lua
@@ -0,0 +1,310 @@
+BIOS.protocol.beginModule("AJS37", 0x4600)
+BIOS.protocol.setExportModuleAircrafts({"AJS37"})
+
+local documentation = moduleBeingDefined.documentation
+local document = BIOS.util.document
+local parse_indication = BIOS.util.parse_indication
+local defineFloat = BIOS.util.defineFloat
+local defineIndicatorLight = BIOS.util.defineIndicatorLight
+local definePushButton = BIOS.util.definePushButton
+local definePotentiometer = BIOS.util.definePotentiometer
+local defineRotary = BIOS.util.defineRotary
+local defineSetCommandTumb = BIOS.util.defineSetCommandTumb
+local defineTumb = BIOS.util.defineTumb
+local defineToggleSwitch = BIOS.util.defineToggleSwitch
+local defineToggleSwitchToggleOnly = BIOS.util.defineToggleSwitchToggleOnly
+local defineFixedStepTumb = BIOS.util.defineFixedStepTumb
+local defineFixedStepInput = BIOS.util.defineFixedStepInput
+local defineVariableStepTumb = BIOS.util.defineVariableStepTumb
+local defineString = BIOS.util.defineString
+local defineRockerSwitch = BIOS.util.defineRockerSwitch
+local defineMultipositionSwitch = BIOS.util.defineMultipositionSwitch
+local defineIntegerFromGetter = BIOS.util.defineIntegerFromGetter
+
+--[[--Weapon System--]]--
+defineToggleSwitch("TRIGGER_SAFETY_BRACKET", 2, 3300, 8, "Weapon System", "Trigger Safety Bracket")
+defineToggleSwitch("WEAPON_RELEASE_COVER", 2, 3302, 260, "Weapon System", "Weapon Emergency Release Cover")
+definePushButton("WEAPON_RELEASE", 2, 3303, 261, "Weapon System", "Weapon Emergency Release Button")
+defineToggleSwitch("TANK_RELEASE_COVER", 2, 3402, 262, "Weapon System", "External Tank Release Cover")
+definePushButton("TANK_RELEASE", 2, 3320, 263, "Weapon System", "External Tank Release Button")
+defineTumb("WEAPON_SELECT", 2, 3304, 264, 0.1, {0.0, 0.5}, nil, false, "Weapon System", "Weapon Selector Knob")
+defineTumb("WEAPON_INTERVAL", 2, 3305, 265, 0.1, {0.0, 1.0}, nil, false, "Weapon System", "Weapon Interval Selector Mode Knob")
+defineToggleSwitch("WEAPON_REL_MODE", 2, 3306, 266, "Weapon System", "Weapon Release Mode Switch")
+defineToggleSwitch("RB_BK_REL_MODE",2, 3307, 267, "Weapon System", "RB-04/RB-15/BK Release Mode Switch")
+
+--[[--Radar--]]--
+defineTumb("ANTI_JAM_MODE", 5, 3208, 217, 0.1, {0.0, 0.7}, nil, false, "Radar", "Anti Jamming Mode (AS) Selector")
+defineToggleSwitch("RADAR_GAIN", 5, 3209, 214, "Radar", "Lin/Log Radar Gain Switch")
+defineToggleSwitch("RADAR_PULSE_NORMAL_SHORT", 5, 3328, 218, "Radar", "Pulse Normal/Short Switch")
+defineToggleSwitch("RADAR_RECCE_ON_OFF", 5, 3350, 216, "Radar", "Passive Recce On/Off Switch")
+defineToggleSwitch("RADAR_MAINTENANCE_TEST", 5, 3914, 1006, "Radar", "Radar/EL Maintenance Test")
+defineToggleSwitch("RADAR_IGNITION_COILS", 5, 3918, 395, "Radar", "Ignition Coils")
+definePushButton("RADAR_IFF_ID", 5, 3922, 1205, "Radar", "IFF Identification")
+
+--[[--Reversal--]]--
+defineToggleSwitch("REVERSAL", 7, 3001, 20, "Thrust Reverser", "Thrust Reverser On/Off")
+
+--[[--Navigation--]]--
+definePushButton("DATAPANEL_KEY_0", 12, 3020, 290, "Navigation", "Datapanel Key 0")
+definePushButton("DATAPANEL_KEY_1", 12, 3021, 291, "Navigation", "Datapanel Key 1")
+definePushButton("DATAPANEL_KEY_2", 12, 3022, 292, "Navigation", "Datapanel Key 2")
+definePushButton("DATAPANEL_KEY_3", 12, 3023, 293, "Navigation", "Datapanel Key 3")
+definePushButton("DATAPANEL_KEY_4", 12, 3024, 294, "Navigation", "Datapanel Key 4")
+definePushButton("DATAPANEL_KEY_5", 12, 3025, 295, "Navigation", "Datapanel Key 5")
+definePushButton("DATAPANEL_KEY_6", 12, 3026, 296, "Navigation", "Datapanel Key 6")
+definePushButton("DATAPANEL_KEY_7", 12, 3027, 297, "Navigation", "Datapanel Key 7")
+definePushButton("DATAPANEL_KEY_8", 12, 3028, 298, "Navigation", "Datapanel Key 8")
+definePushButton("DATAPANEL_KEY_9", 12, 3029, 299, "Navigation", "Datapanel Key 9")
+definePushButton("NAV_SELECT_BTN_B1", 12, 3011, 271, "Navigation", "Navigation Selector Button B1")
+definePushButton("NAV_SELECT_BTN_B2", 12, 3012, 272, "Navigation", "Navigation Selector Button B2")
+definePushButton("NAV_SELECT_BTN_B3", 12, 3013, 273, "Navigation", "Navigation Selector Button B3")
+definePushButton("NAV_SELECT_BTN_B4", 12, 3014, 274, "Navigation", "Navigation Selector Button B4")
+definePushButton("NAV_SELECT_BTN_B5", 12, 3015, 275, "Navigation", "Navigation Selector Button B5")
+definePushButton("NAV_SELECT_BTN_B6", 12, 3016, 276, "Navigation", "Navigation Selector Button B6")
+definePushButton("NAV_SELECT_BTN_B7", 12, 3017, 277, "Navigation", "Navigation Selector Button B7")
+definePushButton("NAV_SELECT_BTN_B8", 12, 3018, 278, "Navigation", "Navigation Selector Button B8")
+definePushButton("NAV_SELECT_BTN_B9", 12, 3019, 279, "Navigation", "Navigation Selector Button B9")
+definePushButton("NAV_SELECT_BTN_BX", 12, 3010, 280, "Navigation", "Navigation Selector Button BX")
+definePushButton("NAV_SELECT_BTN_LS", 12, 3009, 270, "Navigation", "Navigation Selector Button LS")
+definePushButton("NAV_SELECT_BTN_L_MAL", 12, 3008, 281, "Navigation", "Navigation Selector Button L MAL")
+
+--[[Lights--]]--
+defineToggleSwitch("ANTI_COLLISION_LIGHTS", 17, 3001, 250, "Lights", "Anti Collision Lights")
+defineTumb("NAVIGATION_LIGHTS", 17, 3002, 251, 1, {-1,1}, nil, false, "Lights", "Navigation Lights")
+defineToggleSwitch("FORMATION_LIGHTS", 17, 3003, 252, "Lights", "Formation Lights")
+defineToggleSwitch("POSITION_LIGHTS", 17, 3004, 253, "Lights", "Position Lights")
+defineToggleSwitch("TAXI_LANDING_LIGHTS", 17, 3009, 3554, "Lights", "Taxi/Landing Lights")
+defineToggleSwitch("EMERGENCY_LIGHTS", 17, 3010, 3555, "Lights", "Emergency Lights")
+definePotentiometer("FLOOD_LIGHTS", 17, 3007, 393, {0, 1}, "Lights", "Flood Lights")
+definePotentiometer("PANEL_LIGHTS", 17, 3006, 392, {0, 1}, "Lights", "Panel Lights")
+defineTumb("POSITION_LIGHTS_BRIGHTNESS", 17, 3005, 254, 0.1, {0.0, 0.2}, nil, false, "Lights", "Position Lights Brightness")
+definePotentiometer("INSTRUMENT_LIGHTS", 17, 3008, 394, {0, 1}, "Lights", "Instrument Lights")
+
+--[[--Engine Panel--]]--
+defineToggleSwitch("START_SYSTEM", 18, 3001, 206, "Engine Panel", "Start System")
+defineToggleSwitch("LOW_PRES_FUEL_VALVE", 18, 3002, 204, "Engine Panel", "Low Pressure Fuel Valve")
+defineToggleSwitch("HIGH_PRES_FUEL_VALVE", 18, 3005, 202, "Engine Panel", "High Pressure Fuel Valve")
+defineToggleSwitch("ENGINE_DEICE", 18, 3008, 310, "Engine Panel", "Engine De-Ice")
+defineToggleSwitch("MANUAL_FUEL_REG", 18, 3007, 316, "Engine Panel", "Manual Fuel Regulator")
+defineToggleSwitch("CB_AUTOPILOT", 18, 3905, 302, "Engine Panel", "CB Autopilot SA")
+defineToggleSwitch("CB_HIGH_ALPHA_WARN", 18, 3906, 303, "Engine Panel", "CB High Alpha Warning")
+defineToggleSwitch("CB_TRIM_SYSTEM", 18, 3907, 304, "Engine Panel", "CB Trim System")
+defineToggleSwitch("CB_CI_SI", 18, 3908, 305, "Engine Panel", "CB CI/SI")
+defineToggleSwitch("CB_EJECTION_SYSTEM", 18, 3909, 306, "Engine Panel", "CB Ejection System")
+defineToggleSwitch("CB_ENGINE", 18, 3910, 307, "Engine Panel", "CB Engine")
+defineToggleSwitch("IFF_TRANSPONDER_POWER", 18, 3920, 1203, "Engine Panel", "IFF/Transponder Power")
+defineToggleSwitch("IFF_CHANNEL", 18, 3921, 1204, "Engine Panel", "IFF Channel Selector")
+defineToggleSwitch("DME_SELECTOR", 18, 3919, 1206, "Engine Panel", "DME Selector")
+defineToggleSwitch("IGNITION_SYSTEM", 18, 3003, 205, "Engine Panel", "Ignition System")
+defineToggleSwitch("MAN_AFTERBURN_FUEL_REG", 18, 3006, 313, "Engine Panel", "Manual Afterburner Fuel Regulator")
+defineTumb("FLIGHT_RECORDER", 18, 3924, 384, 0.5, {0.0, 1.0}, nil, false, "Engine Panel", "Flight Recorder")
+definePushButton("RESTART", 18, 3004, 208, "Engine Panel", "Restart")
+defineTumb("AFK_LEVER", 18, 3304, 13, 1.138, {0, 1.138}, nil, false, "Engine Panel", "AFK Lever")
+defineToggleSwitch("DATA_CARTRIDGE", 18, 3925, 4200, "Engine Panel", "Insert/Remove Data Cartridge")
+definePushButton("MISSILE_SELECT_BUTTON", 18, 3000, 400, "Engine Panel", "Missile Select Button")
+
+--[[--Electric System--]]--
+defineToggleSwitch("GENERATOR", 19, 3002, 207, "Electric System", "Generator")
+defineToggleSwitch("MAIN_ELECTRIC_POWER", 19, 3001, 203, "Electric System", "Main Electric Power")
+defineToggleSwitch("BACKUP_GENERATOR", 19, 3003, 312, "Electric System", "Backup Generator")
+
+--[[--Radar Altimeter--]]--
+defineToggleSwitch("RADAR_ALTIMETER_POWER", 20, 3002, 283, "Radar Altimeter", "Radar Altimeter Power")
+
+--[[--Doppler--]]--
+defineToggleSwitchToggleOnly("DOPPLER_LAND_SEA_MODE", 21, 3001, 213, "Doppler", "Doppler Land/Sea Mode")
+
+--[[--Flight Data Unit--]]--
+defineToggleSwitch("GEAR_HANDLE", 22, 3719, 12, "Flight Data Unit", "Gear Handle")
+definePushButton("SPAK", 22, 3301, 401, "Flight Data Unit", "SPAK")
+definePushButton("ATTITUDE_HOLD", 22, 3302, 402, "Flight Data Unit", "Attitude Hold")
+definePushButton("ALTITUDE_HOLD", 22, 3303, 403, "Flight Data Unit", "Altitude Hold")
+defineTumb("TILS_CHANNEL_SELECT", 22, 3512, 282, 0.1, {0.0, 1.0}, nil, false, "Flight Data Unit", "TILS Channel Selection")
+defineToggleSwitch("TILS_CHANNEL_LAYER", 22, 3511, 285, "Flight Data Unit", "TILS Channel Layer Selection")
+defineToggleSwitch("EJECTION_SEAT_ARM", 22, 3405, 21, "Flight Data Unit", "Ejection Seat Arm")
+defineToggleSwitch("SLAV_SI", 22, 3201, 323, "Flight Data Unit", "Slav SI")
+defineToggleSwitch("HOJD_CISI", 22, 3200, 324, "Flight Data Unit", "HOJD CISI")
+definePotentiometer("BACKUP_ALT_SETTING", 22, 3721, 126, {0, 1}, "Flight Data Unit", "Backup Altimeter Setting")
+defineToggleSwitch("PITCH_GEAR_MODE", 22, 3210, 311, "Flight Data Unit", "Pitch Gear Automatic/Landing")
+defineToggleSwitch("OXYGEN_LEVER", 22, 3718, 176, "Flight Data Unit", "Oxygen Lever")
+defineTumb("CANOPY_OPEN_CLOSE", 22, 3406, 9, 1, {-1, 1}, nil, false, "Flight Data Unit", "Canopy Open/Close")
+definePushButton("CANOPY_JETTISON", 22, 3407, 210, "Flight Data Unit", "Canopy Jettison")
+definePushButton("COUNTERMEASURE_FAST_RELEASE", 22, 3001, 184, "Flight Data Unit", "Countermeasure Fast Release")
+defineToggleSwitch("EMERGENCY_ROLL_TRIM", 22, 3716, 390, "Flight Data Unit", "Emergency Roll Trim")
+defineToggleSwitch("EMERGENCY_PITCH_TRIM", 22, 3717, 389, "Flight Data Unit", "Emergency Pitch Trim")
+defineToggleSwitch("EMERGENCY_YAW_TRIM", 22, 3918, 388, "Flight Data Unit", "Emergency Yaw Trim")
+defineToggleSwitch("MAG_DEC_COVER", 22, 3742, 1200, "Flight Data Unit", "Magnetic Declination Cover")
+defineToggleSwitch("YAW_TRIM_COVER", 22, 3741, 493, "Flight Data Unit", "Autopilot Yaw Trim Cover")
+defineToggleSwitchToggleOnly("PARKING_BRAKE", 22, 3408, 22, "Flight Data Unit", "Parking Brake")
+defineToggleSwitchToggleOnly("HUD_GLASS_POSITION", 22, 3401, 11, "Flight Data Unit", "HUD Reflector Glass Position")
+defineToggleSwitchToggleOnly("AFK_MODE_3", 22, 3402, 464, "Flight Data Unit", "AFK Mode 3")
+defineToggleSwitchToggleOnly("AFK_15_DEG_MODE", 22, 3402, 464, "Flight Data Unit", "AFK 15 Deg Mode")
+defineTumb("MASTER_MODE_SELECT", 22, 3107, 209, 0.16666667, {0, 1}, nil, false, "Flight Data Unit", "Master Mode Selector")
+
+--[[--Navigation Panel--]]--
+defineTumb("DATAPANEL_SELECTOR", 23, 3009, 200, 0.1, {0.0, 0.6}, nil, false, "Navigation Panel", "Datapanel Selector")
+defineToggleSwitch("DATA_IN_OUT", 23, 3008, 201, "Navigation Panel", "Data In/Out")
+defineToggleSwitch("RENSA_BUTTON_COVER", 23, 3101, 300, "Navigation Panel", "Rensa Button Cover")
+definePushButton("CK37_RENSA_CLEAR", 23, 3001, 301, "Navigation Panel", "CK37 Rensa Clear")
+
+--[[--RWR--]]--
+defineTumb("RADAR_WARN_SELECT", 24, 3004, 321, 0.1, {0.0, 0.2}, nil, false, "RWR", "Radar Warning Indication Selector")
+
+--[[--Warning Panel--]]--
+definePushButton("WARNING_PANEL_TEST", 26, 3002, 344, "Warning Panel", "Warning Panel Light Test")
+definePushButton("INDICATOR_SYSTEM_TEST", 26, 3004, 315, "Warning Panel", "Indicator System Test")
+defineToggleSwitch("MASTER_CAUTION_RESET", 26, 3001, 446, "Warning Panel", "Master Caution Reset")
+
+--[[--Countermeasures--]]--
+defineTumb("JAMMER_MODE_SELECTOR", 28, 3024, 317, 0.1, {0.0, 0.4}, nil, false, "Countermeasures", "Jammer Mode Selector")
+defineTumb("JAMMER_BAND_SELECTOR", 28, 3025, 318, 0.1, {0.0, 0.4}, nil, false, "Countermeasures", "Jammer Band Selector")
+defineTumb("COUNTERMEASURE_MODE_SELECTOR", 28, 3026, 319, 0.1, {0.0, 0.4}, nil, false, "Countermeasures", "Countermeasure Operation Mode Selector")
+defineTumb("COUNTERMEASURE_STREAK_MODE_SELECTOR", 28, 3027, 320, 0.1, {0.0, 0.1}, nil, false, "Countermeasures", "Countermeasure Streak Mode Selector")
+defineTumb("COUNTERMEASURE_CHAFF_FLARES_SELECTOR", 28, 3028, 322, 0.1, {0.0, 0.2}, nil, false, "Countermeasures", "Countermeasure Chaff/Flares Selector")
+defineTumb("COUNTERMEASURE_RELEASE_MODE", 22, 3001, 184, 1, {-1, 1}, nil, false, "Countermeasures", "Countermeasure Release Mode")
+
+--[[--FR22 Radio--]]--
+defineRotary("FR22_INNER_LEFT_KNOB", 31, 3003, 171, "FR22 Radio", "Radio Frequency Knob Inner Left")
+defineRotary("FR22_OUTER_LEFT_KNOB", 31, 3004, 172, "FR22 Radio", "Radio Frequency Knob Outer Left")
+defineRotary("FR22_INNER_RIGHT_KNOB", 31, 3005, 173, "FR22 Radio", "Radio Frequency Knob Inner Right")
+defineRotary("FR22_OUTER_RIGHT_KNOB", 31, 3006, 174, "FR22 Radio", "Radio Frequency Knob Outer Right")
+defineToggleSwitchToggleOnly("FR22_SET_MODULATION", 31, 3008, 170, "FR22 Radio", "Radio Manual Frequency Setting Modulation")
+
+--[[--Raw Gauge Values--]]--
+defineFloat("STICK_PITCH", 2, {-1, 1}, "Raw Gauge Values", "Stick Pitch")
+defineFloat("STICK_ROLL", 3, {-1, 1}, "Raw Gauge Values", "Stick Roll")
+defineFloat("PEDALS", 4, {-1, 1}, "Raw Gauge Values", "Pedals")
+defineFloat("THROTTLE", 5, {0, 1}, "Raw Gauge Values", "Throttle")
+defineFloat("ENGINE_RPM_100", 139, {-1, 1}, "Raw Gauge Values", "Engine RPM 100")
+defineFloat("ENGINE_RPM_10", 140, {0, 1}, "Raw Gauge Values", "Engine RPM 10")
+defineFloat("ENGINE_TEMP", 146, {0, 1}, "Raw Gauge Values", "Engine Temp")
+defineFloat("AIRSPEED_M/S", 100, {0, 1}, "Raw Gauge Values", "Airspeed m/s")
+defineFloat("MACH_METER_INTEGER", 101, {0, 1}, "Raw Gauge Values", "Mach Meter Integer X.00")
+defineFloat("MACH_METER_FIRST_DECIMAL", 102, {0, 1}, "Raw Gauge Values", "Mach Meter First Decimal 0.X0")
+defineFloat("MACH_METER_SECOND_DECIMAL", 103, {0, 1}, "Raw Gauge Values", "Mach Meter Second Decimal 0.0X")
+defineFloat("VERTICAL_ACCELERATION", 136, {-0.3, 0.8}, "Raw Gauge Values", "Vertical Acceleration G Meter")
+defineFloat("ALTIMETER_10000M", 114, {0, 1}, "Raw Gauge Values", "Altimeter 10000 Meter")
+defineFloat("ALTIMETER_1000M", 113, {0, 1}, "Raw Gauge Values", "Altimeter 1000 Meter")
+defineFloat("ALTIMETER_BARO_1_HPA", 115, {0, 1}, "Raw Gauge Values", "Altimeter Baro 1 hPa 000X")
+defineFloat("ALTIMETER_BARO_10_HPA", 116, {0, 1}, "Raw Gauge Values", "Altimeter Baro 10 hPa 00X0")
+defineFloat("ALTIMETER_BARO_100_HPA", 117, {0, 1}, "Raw Gauge Values", "Altimeter Baro 100 hPa 0X00")
+defineFloat("ALTIMETER_BARO_1000_HPA", 118, {0, 1}, "Raw Gauge Values", "Altimeter Baro 1000 hPa X000")
+defineFloat("ADI_PITCH", 105, {1, -1}, "Raw Gauge Values", "ADI Pitch")
+defineFloat("ADI_HEADING", 106, {1, -1}, "Raw Gauge Values", "ADI Heading")
+defineFloat("ADI_ROLL", 107, {-1, 1}, "Raw Gauge Values", "ADI Roll")
+defineFloat("ADI_VERTICAL_VELOCITY", 108, {-1, 1}, "Raw Gauge Values", "ADI Vertical Velocity")
+defineFloat("ADI_VERTICAL_ILS", 109, {1, -1}, "Raw Gauge Values", "ADI Vertical ILS")
+defineFloat("ADI_HORIZONTAL_ILS", 110, {1, -1}, "Raw Gauge Values", "ADI Horizontal ILS")
+defineFloat("ADI_SLIPBALL", 111, {-1, 1}, "Raw Gauge Values", "ADI Slipball")
+defineFloat("ADI_AOA_INDICATOR", 147, {0, 1}, "Raw Gauge Values", "ADI AoA Indicator")
+defineFloat("CI_HEADING", 128, {1, -1}, "Raw Gauge Values", "CI Heading")
+defineFloat("CI_COMMANDED_HEADING", 129, {1, 0}, "Raw Gauge Values", "CI Commanded Heading")
+defineFloat("MAGNETIC_HEADING", 127, {1, -1}, "Raw Gauge Values", "Magnetic Heading")
+defineFloat("BACKUP_INDICATED_AIRSPEED", 138, {0, 1}, "Raw Gauge Values", "Backup Indicated Airspeed")
+defineFloat("BACKUP_ALTIMETER_10000M", 125, {0, 1}, "Raw Gauge Values", "Backup Altimeter 10000 Meter")
+defineFloat("BACKUP_ALTIMETER_1000M", 124, {0, 1}, "Raw Gauge Values", "Backup Altimeter 1000 Meter")
+defineFloat("BACKUP_PITCH", 121, {1, -1}, "Raw Gauge Values", "Backup Pitch")
+defineFloat("BACKUP_ROLL", 122, {1, -1}, "Raw Gauge Values", "Backup Roll")
+defineFloat("DISTANCE_INDICATOR", 142, {0, 1}, "Raw Gauge Values", "Distance Indicator")
+defineFloat("FUEL_LEVEL", 144, {0, 1}, "Raw Gauge Values", "Fuel Level")
+defineFloat("FUEL_NEEDED", 145, {0, 1}, "Raw Gauge Values", "Fuel Needed")
+defineIndicatorLight("SPAK_LAMP", 401, "Indicator Lights", "SPAK Lamp")
+defineIndicatorLight("ATT_LAMP", 402, "Indicator Lights", "ATT Lamp")
+defineIndicatorLight("HOJD_LAMP", 403, "Indicator Lights", "HOJD Lamp")
+
+--[[--Error Panel Indicators--]]--
+defineIndicatorLight("BRAND_1", 406, "Error Panel", "Engine Fire 1")
+defineIndicatorLight("BRAND_2", 407, "Error Panel", "Engine Fire 2")
+defineIndicatorLight("BRA_UPPF", 408, "Error Panel", "Fuel Distribution Low Pressure")
+defineIndicatorLight("X_TANK_BRA", 409, "Error Panel", "External Fuel Tank Feed System")
+defineIndicatorLight("TANK_PUMP", 410, "Error Panel", "Fuel Pump")
+defineIndicatorLight("LANDSTALL", 411, "Error Panel", "Landing Gear")
+defineIndicatorLight("FORV_FORB", 412, "Error Panel", "Thrust Reverser Warning")
+defineIndicatorLight("NOSSTALL", 413, "Error Panel", "Nose Gear")
+defineIndicatorLight("VSTALL", 414, "Error Panel", "Left Gear")
+defineIndicatorLight("HSTALL", 415, "Error Panel", "Right Gear")
+defineIndicatorLight("TIPPVAXEL", 416, "Error Panel", "Pitch Gearing")
+defineIndicatorLight("ELFEL", 417, "Error Panel", "Electrical System")
+defineIndicatorLight("RESERVEFF", 418, "Error Panel", "Backup Hydraulic")
+defineIndicatorLight("HYDRA_TA_2", 419, "Error Panel", "Hydraulic System 2 Pressure")
+defineIndicatorLight("HYDRA_TA_1", 420, "Error Panel", "Hydraulic System 1 Pressure")
+defineIndicatorLight("AFK_FEL", 421, "Error Panel", "Autothrottle")
+defineIndicatorLight("EJ_REV", 422, "Error Panel", "Thrust Reverser Inoperable")
+defineIndicatorLight("OLJETRYCK", 423, "Error Panel", "Oil Pressure")
+defineIndicatorLight("SPAK", 424, "Error Panel", "SPAK")
+defineIndicatorLight("HALL_FUNK", 425, "Error Panel", "Autopilot Hold")
+defineIndicatorLight("RHM_FEL", 426, "Error Panel", "Radar Altimeter")
+defineIndicatorLight("ROLL_VAXEL", 427, "Error Panel", "Roll Gearing")
+defineIndicatorLight("CK", 428, "Error Panel", "Computer")
+defineIndicatorLight("KABINHOJD", 429, "Error Panel", "Cabin Pressure")
+defineIndicatorLight("HUV_O_STOL", 430, "Error Panel", "Ejection Seat/Canopy")
+defineIndicatorLight("TANDSYST", 431, "Error Panel", "Ignition System")
+defineIndicatorLight("STARTSYST", 432, "Error Panel", "Starter System")
+defineIndicatorLight("MAN_BG_REG", 433, "Error Panel", "Manual Fuel Regulator")
+defineIndicatorLight("SYRGAS", 434, "Error Panel", "Oxygen")
+defineIndicatorLight("BRA_24", 435, "Error Panel", "Low Fuel")
+defineIndicatorLight("BRAND_GTS", 436, "Error Panel", "Turbine Starter Fire")
+defineIndicatorLight("TILS", 437, "Error Panel", "TILS")
+defineIndicatorLight("NAV_SYST", 438, "Error Panel", "Navigation System")
+defineIndicatorLight("KB_V_SLUT", 439, "Error Panel", "Left Countermeasures Pod Empty")
+defineIndicatorLight("KB_H_KA_SL", 440, "Error Panel", "Right Countermeasures Pod Empty/ECM Failure")
+defineIndicatorLight("FACKL_SL", 441, "Error Panel", "Flares Empty")
+defineIndicatorLight("MOTVERK", 442, "Error Panel", "Countermeasures/RWR")
+defineIndicatorLight("LUFTBROMS", 443, "Error Panel", "Airbrakes")
+
+--[[--Actual Gauge Values--]]--
+
+local function getRPM()
+ local returnValue = ((GetDevice(0):get_argument_value(139))*55+55)
+ return returnValue
+end
+defineIntegerFromGetter("ENGINE_RPM", getRPM, 65000, "Gauge Values", "Engine RPM")
+
+local function getEngineTemp()
+ local returnValue = ((GetDevice(0):get_argument_value(146))*700+100)
+ return returnValue
+end
+defineIntegerFromGetter("ENGINE_TEMP", getEngineTemp, 65000, "Gauge Values", "Engine Temp")
+
+local function getAirspeed()
+ local returnValue = ((-707.23*(GetDevice(0):get_argument_value(100))^4)+(1843.8*(GetDevice(0):get_argument_value(100))^3)-(647.84*(GetDevice(0):get_argument_value(100))^2)+(810.63*(GetDevice(0):get_argument_value(100)))+100.03)
+ return returnValue
+end
+defineIntegerFromGetter("Airspeed", getAirspeed, 65000, "Gauge Values", "Airspeed")
+
+local function getAlt()
+ local returnValue = ((GetDevice(0):get_argument_value(114))*10000)
+ return returnValue
+end
+defineIntegerFromGetter("ALTITUDE", getAlt, 65000, "Gauge Values", "Altitude Meters")
+
+local function getFuelLev()
+ local returnValue = ((GetDevice(0):get_argument_value(144))*135)
+ return returnValue
+end
+defineIntegerFromGetter("FUEL_LEVEL", getFuelLev, 65000, "Gauge Values", "Fuel Level")
+
+local function getFuelNeed()
+ local returnValue = ((GetDevice(0):get_argument_value(145))*135)
+ return returnValue
+end
+defineIntegerFromGetter("FUEL_NEEDED", getFuelNeed, 65000, "Gauge Values", "Fuel Needed")
+
+local function getCIHDG()
+ local heading = 0
+ if (GetDevice(0):get_argument_value(128)) <= 0 then
+ heading = ((180 * (GetDevice(0):get_argument_value(128))) + 360)
+ else
+ heading = (180 * (GetDevice(0):get_argument_value(128)))
+ end
+ return heading
+end
+defineIntegerFromGetter("CI_HEADING", getCIHDG, 65000, "Gauge Values", "CI Heading")
+
+local function getCICMDHDG()
+ local returnValue = ((GetDevice(0):get_argument_value(129)) * 360)
+ return returnValue
+end
+defineIntegerFromGetter("CI_COMMAND_HEADING_VALUE", getCICMDHDG, 65000, "Gauge Values", "CI Commanded Heading Value")
+
+BIOS.protocol.endModule()
\ No newline at end of file
diff --git a/Scripts/DCS-BIOS/lib/AircraftList.lua b/Scripts/DCS-BIOS/lib/AircraftList.lua
index b3119e165..7ffc253b3 100644
--- a/Scripts/DCS-BIOS/lib/AircraftList.lua
+++ b/Scripts/DCS-BIOS/lib/AircraftList.lua
@@ -20,4 +20,6 @@ a("UH-1H", true)
a("MiG-21Bis", true)
a("F-86F Sabre", true)
a("FW-190D9", true)
-a("Bf-109K-4", true)
\ No newline at end of file
+a("Bf-109K-4", true)
+a("SpitfireLFMkIX", true)
+a("AJS37", true)
\ No newline at end of file
diff --git a/Scripts/DCS-BIOS/lib/F86.lua b/Scripts/DCS-BIOS/lib/F86.lua
index feb6a2df9..0cfabe91c 100644
--- a/Scripts/DCS-BIOS/lib/F86.lua
+++ b/Scripts/DCS-BIOS/lib/F86.lua
@@ -22,7 +22,7 @@ local defineVariableStepTumb = BIOS.util.defineVariableStepTumb
local defineString = BIOS.util.defineString
local defineRockerSwitch = BIOS.util.defineRockerSwitch
local defineMultipositionSwitch = BIOS.util.defineMultipositionSwitch
-
+local defineIntegerFromGetter = BIOS.util.defineIntegerFromGetter
defineTumb("BAT_START",1, 3001, 653, 1, {-1,1}, nil, false, "Electrics", "Battery-Starter Switch, BATTERY/OFF/STARTER")
defineTumb("INSTR_PWR",1, 3002, 643, 1, {0,1}, nil, false, "Electrics", "Instrument Power Switch, ALTERNATE/NORMAL")
@@ -106,12 +106,12 @@ defineTumb("LONG_ALT_TRM_CVR",13, 3011, 738, 1, {0,1}, nil, false, "Steering", "
defineTumb("TO_TRIM_LGHT_TEST",13, 3012, 683, 1, {0,1}, nil, false, "Steering", "Take-off (Trim) Position Indicator Light (Push to test)")
defineTumb("N_WHEEL_STEER",2, 3016, 209, 1, {0,1}, nil, false, "Hydraulics", "Nose Wheel Steering Button")
defineTumb("MIC_BUT",26, 3004, 213, 1, {0,1}, nil, false, "Radio", "Microphone Button")
-defineTumb("ARN_6_LGHT",27, 3007, 657, 1, {-1,1}, nil, false, "Radio Compass", "AN/ARN-6 Scale Light Switch, HI/OFF/LO")
-defineTumb("ARN_6_CW",27, 3006, 658, 1, {0,1}, nil, false, "Radio Compass", "AN/ARN-6 CW-VOICE Switch, CW/VOICE")
-defineTumb("APX_6_IFF_2",29, 3002, 659, 1, {-1,1}, nil, false, "IFF", "AN/APX-6 IFF Mode 2 Switch, MODE 2/OUT/I/P")
-defineTumb("APX_6_IFF_3",29, 3003, 660, 1, {0,1}, nil, false, "IFF", "AN/APX-6 IFF Mode 3 Switch, MODE 3/OUT")
-defineTumb("APX_6_DESTR_CVR",29, 3005, 808, 1, {0,1}, nil, false, "IFF", "AN/APX-6 IFF Destruct Switch Cover")
-defineTumb("APX_6_IFF_DIAL_STOP",29, 3010, 203, 1, {0,1}, nil, false, "IFF", "AN/APX-6 IFF Dial Stop Button")
+defineTumb("ARN_6_LGHT",27, 3007, 657, 1, {-1,1}, nil, false, "Radio", "AN/ARN-6 Scale Light Switch, HI/OFF/LO")
+defineTumb("ARN_6_CW",27, 3006, 658, 1, {0,1}, nil, false, "Radio", "AN/ARN-6 CW-VOICE Switch, CW/VOICE")
+defineTumb("APX_6_IFF_2",29, 3002, 659, 1, {-1,1}, nil, false, "Radio", "AN/APX-6 IFF Mode 2 Switch, MODE 2/OUT/I/P")
+defineTumb("APX_6_IFF_3",29, 3003, 660, 1, {0,1}, nil, false, "Radio", "AN/APX-6 IFF Mode 3 Switch, MODE 3/OUT")
+defineTumb("APX_6_DESTR_CVR",29, 3005, 808, 1, {0,1}, nil, false, "Radio", "AN/APX-6 IFF Destruct Switch Cover")
+defineTumb("APX_6_IFF_DIAL_STOP",29, 3010, 203, 1, {0,1}, nil, false, "Radio", "AN/APX-6 IFF Dial Stop Button")
defineTumb("SLAVE_FAST",20, 3003, 598, 1, {0,1}, nil, false, "Gyro Compass", "Directional Indicator Fast Slaving Button - Push for fast slaving")
defineTumb("J8_ATT_CAGE",24, 3001, 714, 1, {0,1}, nil, false, "Attitude Indicator", "J-8 Attitude Indicator Cage Knob - Pull to cage")
defineTumb("ACC_RST",12, 3001, 1004, 1, {0,1}, nil, false, "Cockpit", "Accelerometer Reset Button - Push to reset")
@@ -132,10 +132,10 @@ definePotentiometer("IN_PNL_LGHT",17,3002, 813, {0, 1},"Lights", "Instrument Pan
definePotentiometer("IN_PNL_AUX_LGHT",17,3003, 811, {0, 1},"Lights", "Instrument Panel Auxiliary Light Rheostat")
definePotentiometer("CONS_LGTH",17,3001, 812, {0, 1},"Lights", "Console and Panel Light Rheostat")
definePotentiometer("ARC_27_VOL",26,3002, 806, {0.1, 0.9},"Radio", "AN/ARC-27 UHF Audio Volume Knob")
-definePotentiometer("ARN_6_VOL",27,3004, 802, {0.1, 0.9},"Radio Compass", "AN/ARN-6 Audio Volume Control")
+definePotentiometer("ARN_6_VOL",27,3004, 802, {0.1, 0.9},"Radio", "AN/ARN-6 Audio Volume Control")
definePotentiometer("J8_ATT_PTC_TRIM",24,3002, 200, {0.0, 1.0},"Attitude Indicator", "J-8 Attitude Indicator Pitch Trim Knob")
-defineRotary("ARN_6_TUNE",27, 3003, nil, "Radio Compass", "AN/ARN-6 Tuning Crank")
-defineRotary("ARN_6_E_W_VAR",27, 3008, 826, "Radio Compass", "AN/ARN-6 East/West Variation Knob")
+defineRotary("ARN_6_TUNE",27, 3003, nil, "Radio", "AN/ARN-6 Tuning Crank")
+defineRotary("ARN_6_E_W_VAR",27, 3008, 826, "Radio", "AN/ARN-6 East/West Variation Knob")
defineRotary("ALT_MET_REF_PRESS",7, 3001, 218, "Cockpit", "Altimeter reference pressure adjusting knob")
defineRotary("COMP_DIRECTION",20, 3001, nil, "Gyro Compass", "Compass Correction")
@@ -145,7 +145,7 @@ defineTumb("EMG_JETT_HANDLE_CVR",25, 3016, 220, 1, {0,1}, nil, false, "Cockpit",
defineTumb("EMG_ALT_JETT_HANDLE",25, 3009, 817, 1, {0,1}, nil, false, "Cockpit", "Canopy Alternate Emergency Jettison Handle, IN/OUT")
defineTumb("CANOPY_DECLUTCH",25, 3010, 816, 1, {0,1}, nil, false, "Cockpit", "Canopy Declutch Handle, IN/OUT")
-defineTumb("LG_HANDLE",2, 3001, 599, 1, {0,1}, nil, false, "Cockpit", "Canopy Declutch Handle, IN/OUT")
+defineTumb("LANDING_GEAR_HANDLE",2, 3001, 599, 1, {0,1}, nil, false, "Cockpit", "Landing Gear Up/Down")
defineTumb("LG_EMG_HANDLE",2, 3010, 819, 1, {0,1}, nil, false, "Cockpit", "Landing Gear Emergency Release Handle")
defineTumb("DRP_TANK_SEL",3, 3003, 662, 1, {0,1}, nil, false, "Cockpit", "Drop Tank Selector Switch")
defineTumb("OXY_EMG_LEVER",14, 3010, 229, 1, {0,1}, nil, false, "Cockpit", "Oxygen Regulator Emergency Lever")
@@ -154,20 +154,20 @@ defineTumb("CPIT_HEAT_MODE",16, 3005, 737, 0.1, {0,0.5}, nil, false, "Cockpit",
defineTumb("AIR_OUTLET_SEL",16, 3008, 741, 1, {-1,1}, nil, false, "Cockpit", "Air Outlet Selector Lever, FLOOR/BOTH/DEFROST")
defineTumb("WND_SHIELD_ANTI_ICE",16, 3019, 202, 1, {0,1}, nil, false, "Cockpit", "Windshield Anti-Icing Lever, ON/OFF")
defineTumb("ENG_EMG_IGN_SWITCH",4, 3001, 733, 1, {-1,1}, nil, false, "Cockpit", "Emergency (In-air) Ignition Switch, ON/OFF")
-defineTumb("ENG_EMG_IGN_SWITCH",13, 3010, 648, 1, {-1,1}, nil, false, "Cockpit", "Rudder Trim Switch, LEFT/OFF/RIGHT")
-defineTumb("ENG_EMG_IGN_SWITCH",13, 3009, 739, 0.2, {0.1,0.5}, nil, false, "Cockpit", "Longitudinal Alternate Trim Switch - NORMAL GRIP CONT/OFF, NOSE UP/OFF, NOSE DOWN/OFF")
-defineTumb("ENG_EMG_IGN_SWITCH",13, 3001, 735,1, {-1,1}, nil, false, "Cockpit", "Wing Flaps Handle")
+defineTumb("RUDDER_TRIM_SWITCH",13, 3010, 648, 1, {-1,1}, nil, false, "Cockpit", "Rudder Trim Switch, LEFT/OFF/RIGHT")
+defineTumb("LONG_ALT_TRIM_SWITCH",13, 3009, 739, 0.2, {0.1,0.5}, nil, false, "Cockpit", "Longitudinal Alternate Trim Switch - NORMAL GRIP CONT/OFF, NOSE UP/OFF, NOSE DOWN/OFF")
+defineTumb("WING_FLAPS_HANDLE",13, 3001, 735,1, {-1,1}, nil, false, "Cockpit", "Wing Flaps Handle")
defineTumb("TRIM_LEFT_OFF",13, 3004, 205, 1, {-1,0}, nil, false, "Cockpit", "Left Trim Switch, LEFT/OFF")
defineTumb("TRIM_RIGHT_OFF",13, 3005, 205, 1, {0,1}, nil, false, "Cockpit", "Right Trim Switch, LEFT/OFF")
defineTumb("TRIM_UP_OFF",13, 3007, 204, 1, {-1,0}, nil, false, "Cockpit", "Up Trim Switch, LEFT/OFF")
defineTumb("TRIM_DOWN_OFF",13, 3006, 204, 1, {0,1}, nil, false, "Cockpit", "Down Trim Switch, LEFT/OFF")
-defineTumb("ARC27_CHAN_SEL",26, 3001, 807,0.01, {0,0.18}, nil, false, "Radios", "AN/ARC-27 UHF Preset Channel Selector")
-defineTumb("ARC27_PWR_SEL",26, 3003, 805,0.1, {0,0.3}, nil, false, "Radios", "AN/ARC-27 UHF Power Switch, OFF/T/R/T/R + G REC/ADF")
-defineTumb("ARN6_CHAN_SEL",27, 3002, 803, 0.1, {0,0.3}, nil, false, "Radios", "AN/ARN-6 Frequency Band Switch")
-defineTumb("ARN6_FUNC_SEL",27, 3001, 667, 0.1, {0,0.4}, nil, false, "Radios", "AN/ARN-6 Function Selector Switch, OFF/COMP/ANT./LOOP/CONT.")
-defineTumb("ARN6_LOOP_SEL",27, 3005, 666, 1, {-1,1}, nil, false, "Radios", "AN/ARN-6 LOOP L-R Switch")
-defineTumb("APX6_MASTER",29, 3001, 810, 0.1, {0,0.4}, nil, false, "Radios", "AN/APX-6 IFF Master Switch, EMERGENCY/NORM/LOW/STDBY/OFF")
-defineTumb("APX6_DESTRUCT",29, 3004, 809, 1, {-1,1}, nil, false, "Radios", "AN/APX-6 IFF Destruct Switch, OFF/ON")
+defineTumb("ARC27_CHAN_SEL",26, 3001, 807,0.01, {0,0.18}, nil, false, "Radio", "AN/ARC-27 UHF Preset Channel Selector")
+defineTumb("ARC27_PWR_SEL",26, 3003, 805,0.1, {0,0.3}, nil, false, "Radio", "AN/ARC-27 UHF Power Switch, OFF/T/R/T/R + G REC/ADF")
+defineTumb("ARN6_CHAN_SEL",27, 3002, 803, 0.1, {0,0.3}, nil, false, "Radio", "AN/ARN-6 Frequency Band Switch")
+defineTumb("ARN6_FUNC_SEL",27, 3001, 667, 0.1, {0,0.4}, nil, false, "Radio", "AN/ARN-6 Function Selector Switch, OFF/COMP/ANT./LOOP/CONT.")
+defineTumb("ARN6_LOOP_SEL",27, 3005, 666, 1, {-1,1}, nil, false, "Radio", "AN/ARN-6 LOOP L-R Switch")
+defineTumb("APX6_MASTER",29, 3001, 810, 0.1, {0,0.4}, nil, false, "Radio", "AN/APX-6 IFF Master Switch, EMERGENCY/NORM/LOW/STDBY/OFF")
+defineTumb("APX6_DESTRUCT",29, 3004, 809, 1, {-1,1}, nil, false, "Radio", "AN/APX-6 IFF Destruct Switch, OFF/ON")
definePushButton("CLOCK_SET_ENABLE", 10, 3002, 227, "Cockpit", "Press to set clock")
defineRotary("CLOCK_SET", 10, 3003, 228, "Cockpit", "Set Clock Knob")
definePushButton("CLOCK_TIMER", 10, 3004, 831, "Cockpit", "Elapsed Time Mechanism Button")
@@ -250,7 +250,7 @@ defineFloat("ATTITUDEINDICATORBANK", 606, {1.0, -1.0}, "Indicator", "AttitudeInd
defineFloat("ATTITUDEINDICATORPITCHSPHERE", 81, {-1.0, 1.0}, "Indicator", "AttitudeIndicatorPitchSphere")
defineFloat("ATTITUDEINDICATORBANKNEEDLE", 1005, {1.0, -1.0}, "Indicator", "AttitudeIndicatorBankNeedle")
defineFloat("ATTITUDEINDICATORPITCHSHIFT", 214, {-1.0, 1.0}, "Indicator", "AttitudeIndicatorPitchShift")
-defineFloat("ENGINETACHOMETER", 16, {0.012, 1.0}, "Indicator", "EngineTachometer")
+defineFloat("ENGINETACHOMETER", 16, {0.0, 1.0}, "Indicator", "EngineTachometer")
defineFloat("ENGINEEXHAUSTTEMPERATURE", 12, {0.0, 1.0}, "Indicator", "EngineExhaustTemperature")
defineFloat("ENGINEOILPRESSURE", 112, {0.023, 1.0}, "Indicator", "EngineOilPressure")
defineFloat("ENGINEFUELFLOW", 531, {0.0, 1.0}, "Indicator", "EngineFuelFlow")
@@ -268,14 +268,163 @@ defineFloat("ARN6_BEARING", 800, {0.0, 1.0}, "Indicator", "ARN6_Bearing")
defineFloat("ARN6_SCALE", 814, {1.0, 0.0}, "Indicator", "ARN6_Scale")
defineFloat("ARN6_FREQSCALE", 830, {0.0, 1.0}, "Indicator", "ARN6_FreqScale")
defineFloat("ARN6_SCALELIGHT", 219, {0.0, 1.0}, "Indicator", "ARN6_ScaleLight")
-defineFloat("ILLUMINATIONLIGHTS", 182, {0.0, 1.0}, "Indicator", "IlluminationLights")
-defineFloat("STANDBYCOMPASSLIGHT", 825, {0.0, 1.0}, "Indicator", "StandByCompassLight")
-defineFloat("PRIMARYINSTLIGHTS", 180, {0.0, 1.0}, "Indicator", "PrimaryInstLights")
-defineFloat("LANDINGGEARUNSAFE", 222, {0.0, 1.0}, "Indicator", "LandingGearUnsafe")
+defineFloat("ILLUMINATIONLIGHTS", 182, {0.0, 1.0}, "Indicator", "Illumination Lights")
+defineFloat("STANDBYCOMPASSLIGHT", 825, {0.0, 1.0}, "Indicator", "Standby Compass Light")
+defineFloat("PRIMARYINSTLIGHTS", 180, {0.0, 1.0}, "Indicator", "Primary Instrument Lights")
+defineFloat("LANDING_GEAR_UNSAFE", 222, {0.0, 1.0}, "Indicator", "Landing Gear Unsafe")
defineFloat("AUXILIARYINSTRUMENTLIGHTS", 185, {0.0, 1.0}, "Indicator", "AuxiliaryInstrumentLights")
defineFloat("LABS_ROLL_NEEDLE", 603, {-1.0, 1.0}, "Indicator", "LABS_roll_needle")
defineFloat("LABS_PITCH_NEEDLE", 604, {-1.0, 1.0}, "Indicator", "LABS_pitch_needle")
defineFloat("EMERGENCYJETTISONHANDLEPOS", 818, {0.0, 1.0}, "Indicator", "EmergencyJettisonHandlePos")
defineFloat("EMERGENCYJETTISONHANDLEROT", 221, {0.0, 1.0}, "Indicator", "EmergencyJettisonHandleRot")
+--[[--Gauge Values--]]--
+
+local function getBand()
+ local returnValue = (((GetDevice(0):get_argument_value(804))*3)+1)
+ return returnValue
+end
+defineIntegerFromGetter("ARN6_BAND", getBand, 65000,
+"Gauge Values", "ARN-6 Band")
+
+local function getARN6Freq()
+ local returnValue = (GetDevice(0):get_argument_value(830))
+ if (GetDevice(0):get_argument_value(830)) >= 0 and (GetDevice(0):get_argument_value(830)) < 0.25 then
+ returnValue = (((GetDevice(0):get_argument_value(830))*400)+100)
+ elseif (GetDevice(0):get_argument_value(830)) >= 0.25 and (GetDevice(0):get_argument_value(830)) < 0.5 then
+ returnValue = (((GetDevice(0):get_argument_value(830))*840)-10)
+ elseif (GetDevice(0):get_argument_value(830)) >= 0.5 and (GetDevice(0):get_argument_value(830)) < 0.75 then
+ returnValue = (((GetDevice(0):get_argument_value(830))*1760)-470)
+ elseif (GetDevice(0):get_argument_value(830)) >= 0.75 then
+ returnValue = (((GetDevice(0):get_argument_value(830))*3600)-1850)
+ end
+ return returnValue
+end
+defineIntegerFromGetter("ARN6_FREQUENCY", getARN6Freq, 65000,
+"Gauge Values", "ARN-6 Frequency")
+
+local function getBearing()
+ local returnValue = (GetDevice(0):get_argument_value(600))*360
+ return returnValue
+end
+defineIntegerFromGetter("ARN6_BEARING_VALUE", getBearing, 65000,
+"Gauge Values", "ARN-6 Bearing Value")
+
+local function getScale()
+ local returnValue = (GetDevice(0):get_argument_value(814))*360
+ return returnValue
+end
+defineIntegerFromGetter("ARN6_SCALE_VALUE", getScale, 65000,
+"Gauge Values", "ARN-6 Scale Value")
+
+local function getMach()
+ local returnValue = (((-0.1871*(GetDevice(0):get_argument_value(179))^4)+(1.0314*(GetDevice(0):get_argument_value(179))^3)-(1.3069*(GetDevice(0):get_argument_value(179))^2)+(1.5846*(GetDevice(0):get_argument_value(179)))+0.4231)*100)
+ return returnValue
+end
+defineIntegerFromGetter("MACH_NUMBER_VALUE_X.XX", getMach, 65000,
+"Gauge Values", "Mach Number Value Read As X.XX")
+
+local function getAirspeed()
+ local returnValue = (((GetDevice(0):get_argument_value(178))*625)+40)
+ return returnValue
+end
+defineIntegerFromGetter("AIRSPEED_VALUE", getAirspeed, 65000,
+"Gauge Values", "Airspeed Value")
+
+local function getAlt()
+ local returnValue = (GetDevice(0):get_argument_value(707))*100000
+ return returnValue
+end
+defineIntegerFromGetter("ALTITUDE_VALUE", getAlt, 65000,
+"Gauge Values", "Altitude Value")
+
+local function getExhTemp()
+ local returnValue = (GetDevice(0):get_argument_value(12))*1000
+ return returnValue
+end
+defineIntegerFromGetter("EXHAUST_TEMP_VALUE", getExhTemp, 65000,
+"Gauge Values", "Exhaust Temperature Value")
+
+local function getOilPres()
+ local returnValue = (GetDevice(0):get_argument_value(112))*100
+ return returnValue
+end
+defineIntegerFromGetter("OIL_PRESSURE_VALUE", getOilPres, 65000,
+"Gauge Values", "Oil Pressure Value")
+
+local function getFuelFlow()
+ local returnValue = (GetDevice(0):get_argument_value(531))*10000
+ return returnValue
+end
+defineIntegerFromGetter("FUEL_FLOW_VALUE", getFuelFlow, 65000,
+"Gauge Values", "Fuel Flow Value")
+
+local function getVolt()
+ local returnValue = (GetDevice(0):get_argument_value(601))*100
+ return returnValue
+end
+defineIntegerFromGetter("DC_VOLTAGE_VALUE", getVolt, 65000,
+"Gauge Values", "DC Voltage Value")
+
+local function getLoad()
+ local returnValue = (GetDevice(0):get_argument_value(602))*100
+ return returnValue
+end
+defineIntegerFromGetter("LOADMETER_VALUE", getLoad, 65000,
+"Gauge Values", "Loadmeter Value")
+
+local function getTach()
+ local returnValue = ((5.894*(GetDevice(0):get_argument_value(16))^3)+(3.021*(GetDevice(0):get_argument_value(16))^2)+(101.29*(GetDevice(0):get_argument_value(16)))+0.0758)
+ return returnValue
+end
+defineIntegerFromGetter("TACHOMETER_VALUE", getTach, 65000,
+"Gauge Values", "Tachometer Value")
+
+local function getHydPres()
+ local returnValue = (GetDevice(0):get_argument_value(109))*4000
+ return returnValue
+end
+defineIntegerFromGetter("HYDRAULIC_PRES_VALUE", getHydPres, 65000,
+"Gauge Values", "Hydraulic Pressure Value")
+
+local function getFuelQuant()
+ local returnValue = (GetDevice(0):get_argument_value(22))*3200
+ return returnValue
+end
+defineIntegerFromGetter("FUEL_QUANTITY_VALUE", getFuelQuant, 65000,
+"Gauge Values", "Fuel Quantity Value")
+
+local function getOxyPres()
+ local returnValue = (GetDevice(0):get_argument_value(353))*500
+ return returnValue
+end
+defineIntegerFromGetter("OXYGEN_PRESSURE_VALUE", getOxyPres, 65000,
+"Gauge Values", "Oxygen Pressure Value")
+
+local function getCockpitAlt()
+ local returnValue = (GetDevice(0):get_argument_value(114))*50000
+ return returnValue
+end
+defineIntegerFromGetter("COCKPIT_ALT_VALUE", getCockpitAlt, 65000,
+"Gauge Values", "Cockpit Altitude Value")
+
+local function getHDG()
+ local heading = 0
+ if ((360-((GetDevice(0):get_argument_value(711))/0.002778)) + (360-((GetDevice(0):get_argument_value(712))/0.002778))) < 360 then
+ heading = (360-((GetDevice(0):get_argument_value(711))/0.002778)) + (360-((GetDevice(0):get_argument_value(712))/0.002778))
+ else
+ heading = ((360-((GetDevice(0):get_argument_value(711))/0.002778)) + (360-((GetDevice(0):get_argument_value(712))/0.00278))) - 360
+ end
+ return heading
+end
+defineIntegerFromGetter("HEADING_VALUE", getHDG, 65000,"Gauge Values",
+"Heading Value")
+
+local function getVVI()
+ local returnValue = (-1319.8*(GetDevice(0):get_argument_value(24))^5)+(0.00000005*(GetDevice(0):get_argument_value(24))^4)+(4334.8*(GetDevice(0):get_argument_value(24))^3)+(0.0000002*(GetDevice(0):get_argument_value(24))^2)+(2988.1*(GetDevice(0):get_argument_value(24)))+0.0000001
+ return returnValue
+end
+defineIntegerFromGetter("VVI_VALUE", getVVI, 65000,
+"Gauge Values", "Verticl Velocity VVI")
+
BIOS.protocol.endModule()
\ No newline at end of file
diff --git a/Scripts/DCS-BIOS/lib/SpitfireLFMkIX.lua b/Scripts/DCS-BIOS/lib/SpitfireLFMkIX.lua
new file mode 100644
index 000000000..a59119028
--- /dev/null
+++ b/Scripts/DCS-BIOS/lib/SpitfireLFMkIX.lua
@@ -0,0 +1,210 @@
+BIOS.protocol.beginModule("SpitfireLFMkIX", 0x5400)
+BIOS.protocol.setExportModuleAircrafts({"SpitfireLFMkIX"})
+
+local documentation = moduleBeingDefined.documentation
+
+local document = BIOS.util.document
+
+local parse_indication = BIOS.util.parse_indication
+
+local defineFloat = BIOS.util.defineFloat
+local defineIndicatorLight = BIOS.util.defineIndicatorLight
+local definePushButton = BIOS.util.definePushButton
+local definePotentiometer = BIOS.util.definePotentiometer
+local defineRotary = BIOS.util.defineRotary
+local defineSetCommandTumb = BIOS.util.defineSetCommandTumb
+local defineTumb = BIOS.util.defineTumb
+local defineToggleSwitch = BIOS.util.defineToggleSwitch
+local defineToggleSwitchToggleOnly = BIOS.util.defineToggleSwitchToggleOnly
+local defineFixedStepTumb = BIOS.util.defineFixedStepTumb
+local defineFixedStepInput = BIOS.util.defineFixedStepInput
+local defineVariableStepTumb = BIOS.util.defineVariableStepTumb
+local defineString = BIOS.util.defineString
+local defineRockerSwitch = BIOS.util.defineRockerSwitch
+local defineMultipositionSwitch = BIOS.util.defineMultipositionSwitch
+local defineIntegerFromGetter = BIOS.util.defineIntegerFromGetter
+
+-- Oxygen Apparatus Controls
+defineTumb("OXY_VALVE", 3, 3003, 13, 1, {0,1}, nil, false, "Cockpit", "Oxygen Valve")
+-- Safety Lever
+defineTumb("SAFETY",5, 3001, 3, 1, {0,1}, nil, false, "Weapons", "Safety")
+--Triggers
+defineTumb("BUTTON_MG",5, 3003, 4, 1, {0,1}, nil, false, "Weapons", "MG Trigger")
+defineTumb("BUTTON_CAN",5, 3004, 5, 1, {0,1}, nil, false, "Weapons", "Cannons Trigger")
+defineTumb("BUTTON_LINKED",5, 3005, 6, 1, {0,1}, nil, false, "Weapons", "MG+Cannons Trigger")
+-- Wheel Brakes Lever
+defineTumb("WHEEL_BRAKES",1, 3002, 9, 1, {0,1}, nil, false, "Undercarriage", "Wheel Brakes")
+-- Main Panel
+-- Altimeter
+defineRotary("ALT_MBAR",1, 3037, 30, "Cockpit", "Altimeter Pressure Set")
+-- DI
+defineRotary("DI",1, 3041, 32, "Cockpit", "Directional Gyro Adjust")
+-- Fuel Gauge Button
+defineTumb("FUEL_GAUGE",1, 3005, 44, 1, {0,1}, nil, false, "Cockpit", "Show Fuel Contents")
+-- Nav. Lights Toggle
+defineTumb("NAV_LIGHTS",1, 3007, 46, 1, {0,1}, nil, false, "Lights", "Nav. Lights On/Off")
+-- Flaps Lever
+defineTumb("FLAPS", 1, 3009, 47, 1, {0,1}, nil, false, "Cockpit", "Landing Flaps Up/Down")
+-- U/C Indicator Blind
+defineTumb("UC_BLIND", 1, 3011, 50, 1, {0,1}, nil, false, "Cockpit", "U/C Indicator Blind Up/Down")
+-- Clock Setter Pinion
+defineTumb("CLK_PINION_PULL", 1, 3013, 54, 1, {0,1}, nil, false, "Cockpit", "Winding/Adjustment Clock Pull out.")
+defineRotary("CLK_PINION", 1, 3014, 55, "Cockpit", "Winding/Adjustment Clock")
+-- Magnetos Toggles
+defineTumb("MAGNETO0",2, 3015, 56, 1, {0,1}, nil, false, "Engine", "No. 1 Magneto On/Off")
+defineTumb("MAGNETO1",2, 3017, 57, 1, {0,1}, nil, false, "Engine", "No. 2 Magneto On/Off")
+-- Supercharger Mode Toggle
+defineTumb("BLOWER",2, 3019, 58, 1, {0,1}, nil, false, "Engine", "Supercharger Mode Auto/M.S.")
+-- Illumination Controls
+definePotentiometer("PITLITE_LH",4, 3001, 60, {0,1}, "Lights", "Port Flood Lamp Brightness")
+definePotentiometer("PITLITE_RH",4, 3004, 61, {0,1}, "Lights", "Stbd. Flood Lamp Brightness")
+-- Starter Button Cover
+defineTumb("STARTER_COVER",2, 3021, 64, 1, {0,1}, nil, false, "Engine", "Starter Button Cover")
+-- Starter Button
+defineTumb("STARTER",2, 3023, 65, 1, {0,1}, nil, false, "Engine", "Starter")
+-- Booster Coil Button Cover
+defineTumb("BOOSTER_COVER",2, 3025, 66, 1, {0,1}, nil, false, "Engine", "Booster Coil Button Cover")
+-- Booster Coil Button
+defineTumb("BOOSTER",2, 3027, 67, 1, {0,1}, nil, false, "Engine", "Booster Coil")
+-- Primer Pump
+--TODO definePotentiometer("PRIMER",1, 3030, 69, {0,1}, "Engine", "Primer")
+-- Tank Pressurizer Lever
+defineTumb("TANK_PRS",2, 3033, 70, 1, {0,1}, nil, false, "Engine", "Fuel Tank Pressure On/Off")
+-- Magnetic Compass
+defineFixedStepTumb("COMPASS_RING", 1, 3017, 74, 0.00333, {0, 1}, {-0.00333, 0.00333}, nil, "Cockpit", "Compass Course Setter Ring")
+-- Gun Sight and Tertiary Weapons Controls
+-- Gun Sight Setter Rings
+definePotentiometer("GUNSIGHT_RANGE",5,3007, 77, {0.0, 1.0},"Weapons", "Gunsight Range")
+definePotentiometer("GUNSIGHT_BASE",5,3010, 78, {0.0, 1.0},"Weapons", "Gunsight Base")
+-- Gun Sight Tint Screen
+defineTumb("GUNSIGHT_TINT", 5, 3016, 79, 1, {0,1}, nil, false, "Weapons", "Gunsight Tint Screen Up/Down")
+-- Gun Sight Master Switch
+defineTumb("GUNSIGHT_SWITCH",5, 3018, 80, 1, {0,1}, nil, false, "Weapons", "Gunsight Master On/Off")
+-- Gun Sight Dimmer
+definePotentiometer("GUNSIGHT_DIMMER",5, 3020, 81, {0.0, 1.0}, "Weapons", "Gun Sight Light")
+-- Port Wall
+-- Elevator Trim Wheel
+definePotentiometer("TRIM_WHEEL",1,3029, 145, {-1.0, 1.0},"Controls", "Elevator Trim")
+-- Rudder Trim Wheel
+definePotentiometer("RTRIM_WHEEL",1,3044, 146, {-1.0, 1.0},"Controls", "Rudder Trim")
+-- Radio Remote Channel Switcher
+-- Off Button
+defineTumb("RCTRL_OFF", 15, 3001, 115, 1, {0,1}, nil, false, "Radio", "Radio Power OFF")
+-- A Button
+defineTumb("RCTRL_A", 15, 3002, 116, 1, {0,1}, nil, false, "Radio", "Radio Channel A")
+-- B Button
+defineTumb("RCTRL_B", 15, 3003, 117, 1, {0,1}, nil, false, "Radio", "Radio Channel B")
+-- C Button
+defineTumb("RCTRL_C", 15, 3004, 118, 1, {0,1}, nil, false, "Radio", "Radio Channel C")
+-- D Button
+defineTumb("RCTRL_D", 15, 3005, 119, 1, {0,1}, nil, false, "Radio", "Radio Channel D")
+-- Dimmer Toggle
+defineTumb("RCTRL_DIM",15, 3006, 125, 1, {0,1}, nil, false, "Radio", "Radio Channel Dimmer")
+-- Transmit Lock Toggle
+defineTumb("RCTRL_TLOCK",15, 3017, 155, 1, {0,1}, nil, false, "Radio", "Switch Locking Lever")
+-- Mode Selector
+--TODO NOT WORKING PROPERLY
+defineTumb("RCTRL_T_MODE1",15, 3007, 156, 1, {0,1}, nil, false, "Radio", "Radio Mode 1")
+defineTumb("RCTRL_T_MODE2",15, 3008, 156, 1, {-1,0}, nil, false, "Radio", "Radio Mode 2")
+-- Throttle Quadrant
+-- Throttle Lever
+--TODO elements["THTL"] = default_movable_axis(_("Throttle"), devices.ENGINE_CONTROLS, device_commands.Button_3, 126, 0.0, 0.1, true, false)
+-- Bomb Drop Button
+defineTumb("BUTTON_BOMB",5, 3015, 128, 1, {0,1}, nil, false, "Weapons", "Drop Bombs")
+-- Airscrew Lever
+definePotentiometer("PROP", 2, 3006, 129, {-1.0, 1.0},"Engine", "Propeller RPM")
+-- Mix Cut-Off Lever
+defineTumb("MIX", 2, 3009, 130, 1, {0,1}, nil, false, "Engine", "Mixture Control Select IDLE CUT OFF/RUN")
+defineTumb("UC_DOWN_C",2, 3099, 131, 1, {0,1}, nil, false, "Undercarriage", "Undercarriage Indicator On/Off")
+defineTumb("UC_DOWN_C",2, 3099, 131, 1, {0,1}, nil, false, "Undercarriage", "Undercarriage Raise/Lower_down_indication")
+-- Radiator Control Toggle
+defineTumb("RADIATOR",1, 3033, 133, 1, {0,1}, nil, false, "Engine", "Radiator Flap Open/Auto")
+-- Pitot Heater Toggle
+defineTumb("PITOT",1, 3035, 134, 1, {0,1}, nil, false, "Engine", "Pitot Heating On/Off")
+-- Fuel Pump Toggle
+defineTumb("FUEL_PUMP",2, 3043, 135, 1, {0,1}, nil, false, "Engine", "Fuel Pump On/Off")
+-- Carb. Air Control Lever
+defineTumb("CARB_AIR", 2, 3045, 137, 1, {0,1}, nil, false, "Engine", "Carburettor Air Control")
+-- Oil Diluter Button Cover
+defineTumb("DILUTER_COVER",2, 3051, 157, 1, {0,1}, nil, false, "Engine", "Oil Dilution Button Cover")
+-- Oil Diluter Button
+defineTumb("DILUTER",2, 3053, 158, 1, {0,1}, nil, false, "Engine", "Oil Dilution")
+-- Supercharger Mode Test Button Cover
+defineTumb("MS_TEST_COVER",2, 3055, 159, 1, {0,1}, nil, false, "Engine", "Supercharger Test Button Cover")
+-- Supercharger Mode Test Button
+defineTumb("MS_TEST",2, 3057, 160, 1, {0,1}, nil, false, "Engine", "Supercharger Test")
+-- Radiator Flap Test Button Cover
+defineTumb("RAD_TEST_COVER",2, 3059, 161, 1, {0,1}, nil, false, "Engine", "Radiator Test Button Cover")
+-- Radiator Flap Test Button
+defineTumb("RAD_TEST",2, 3061, 162, 1, {0,1}, nil, false, "Engine", "Radiator Test")
+-- Stbd. Wall
+-- De-Icer Lever
+defineTumb("DEICER", 1, 3021, 87, 1, {0,1}, nil, false, "Cockpit", "Windscreen De-Icer On/Off")
+-- U/C Emergency Release Lever
+defineTumb("UC_EMER", 1, 3023, 88, 1, {0,1}, nil, false, "Undercarriage", "Undercarriage Emergency Release")
+-- Wobble Type Fuel Pump
+defineTumb("WOBBLE_PUMP", 2, 3035, 90, 1, {0,1}, nil, false, "Engine", "Wobble Type Fuel Pump")
+-- Morse Key & Apparatus
+-- Upward Lamp Mode Selector
+defineTumb("MORSE_UP_MODE", 4, 3007, 92, 0.5, {0,1}, nil, false, "Lights", "Upward Lamp Mode")
+-- Downward Lamp Mode Selector
+defineTumb("MORSE_DN_MODE", 4, 3011, 93, 0.5, {0,1}, nil, false, "Lights", "Downward Lamp Mode")
+-- Morse Key
+defineTumb("MORSE_KEY",4, 3015, 94, 1, {0,1}, nil, false, "Lights", "Morse Key")
+-- U/C Lever
+defineTumb("UC",1, 3025, 148, 1, {0,1}, nil, false, "Undercarriage", "Undercarriage Raise/Lower")
+-- I.F.F. Control Box
+-- I.F.F. Upper Toggle (Type B)
+defineTumb("IFF_B",4, 3017, 106, 1, {0,1}, nil, false, "Radio", "I.F.F. Circuit B")
+-- I.F.F. Lower Toggle (Type D)
+defineTumb("IFF_D",4, 3019, 107, 1, {0,1}, nil, false, "Radio", "I.F.F. Circuit D")
+-- I.F.F. Protective Cover
+defineTumb("IFF_COVER",4, 3021, 108, 1, {0,1}, nil, false, "Radio", "I.F.F. Cover Open/Close")
+-- I.F.F. Fore Button (0)
+defineTumb("IFF_0",4, 3023, 109, 1, {0,1}, nil, false, "Radio", "I.F.F. Detonate Button 1")
+-- I.F.F. Aft Button (1)
+defineTumb("IFF_1",4, 3025, 110, 1, {0,1}, nil, false, "Radio", "I.F.F. Detonate Button 2")
+-- Fuel Cocks & Tertiary
+-- Fuel Cock
+defineTumb("FUEL_COCK", 2, 3037, 100, 1, {0,1}, nil, false, "Engine", "Main Tank On/Off")
+-- Droptank Cock
+defineTumb("DROPTANK_COCK", 2, 3041, 98, 1, {0,1}, nil, false, "Engine", "Drop Tank On/Off")
+-- Droptank Release Handle
+defineTumb("DROPTANK_JETT", 5, 3041, 99, 1, {0,1}, nil, false, "Engine", "Drop Tank Release")
+-- Canopy Controls
+-- Cockpit Open/Close Control
+defineTumb("HATCH",1, 3051, 149, 1, {0,1}, nil, false, "Cockpit", "Canopy Open/Close")
+-- Cockpit Jettison Pull Ball
+defineTumb("HATCH_JETTISON", 1, 3057, 140, 1, {0,1}, nil, false, "Cockpit", "Jettison Canopy")
+-- Cockpit Side Door Open/Close Control
+defineTumb("SIDE_DOOR",1, 3059, 147, 1, {0,1}, nil, false, "Cockpit", "Side Door Open/Close")
+
+defineFloat("CANOPY_TRUCKS", 162, {0, 1}, "Indicator", "Canopy_Trucks")
+defineFloat("CANOPY_VISIBILITY", 163, {0, 1}, "Indicator", "Canopy_Visibility")
+defineFloat("CANOPY_CRANK", 147, {0.0, 1.0}, "Indicator", "Canopy_Crank")
+defineFloat("OXYGENDELIVERYGAUGE", 11, {0.0, 0.4}, "Indicator", "OxygenDeliveryGauge")
+defineFloat("OXYGENSUPPLYGAUGE", 12, {0.0, 1.0}, "Indicator", "OxygenSupplyGauge")
+defineFloat("TRIMGAUGE", 17, {-1.0, 1.0}, "Indicator", "TrimGauge")
+defineFloat("PNEUMATICPRESSUREGAUGE", 18, {0.0, 1.0}, "Indicator", "PneumaticPressureGauge")
+defineFloat("LEFTWHEELBRAKEGAUGE", 19, {0.0, 1.0}, "Indicator", "LeftWheelBrakeGauge")
+defineFloat("RIGHTWHEELBRAKEGAUGE", 20, {0.0, 1.0}, "Indicator", "RightWheelBrakeGauge")
+defineFloat("AIRSPEEDGAUGE", 21, {0.0, 0.5}, "Indicator", "AirspeedGauge")
+defineFloat("AHORIZONBANK", 23, {-1.0, 1.0}, "Indicator", "AHorizonBank")
+defineFloat("AHORIZONPITCH", 24, {-1.0, 1.0}, "Indicator", "AHorizonPitch")
+defineFloat("VARIOMETERGAUGE", 25, {-1.0, 1.0}, "Indicator", "VariometerGauge")
+defineFloat("ALTIMETERHUNDREDS", 26, {0.0, 1.0}, "Indicator", "AltimeterHundreds")
+defineFloat("ALTIMETERTHOUSANDS", 27, {0.0, 1.0}, "Indicator", "AltimeterThousands")
+defineFloat("ALTIMETERTENSTHOUSANDS", 28, {0.0, 1.0}, "Indicator", "AltimeterTensThousands")
+defineFloat("ALTIMETERSETPRESSURE", 29, {0.0, 1.0}, "Indicator", "AltimeterSetPressure")
+defineFloat("DIGAUGE", 31, {0.0, 1.0}, "Indicator", "DIGauge")
+defineFloat("SIDESLIPGAUGE", 33, {-1.0, 1.0}, "Indicator", "SideslipGauge")
+defineFloat("TURNGAUGE", 34, {-1.0, 1.0}, "Indicator", "TurnGauge")
+defineFloat("VOLTMETERGAUGE", 35, {0.0, 1.0}, "Indicator", "VoltmeterGauge")
+defineFloat("TACHOMETERGAUGE", 37, {0.0, 0.5}, "Indicator", "TachometerGauge")
+defineFloat("BOOSTGAUGE", 39, {0.0, 1.0}, "Indicator", "BoostGauge")
+defineFloat("OILPRESSUREGAUGE", 40, {0.0, 1.0}, "Indicator", "OilPressureGauge")
+defineFloat("OILTEMPERATUREGAUGE", 41, {0.0, 1.0}, "Indicator", "OilTemperatureGauge")
+defineFloat("RADIATORTEMPERATUREGAUGE", 42, {0.0, 0.7}, "Indicator", "RadiatorTemperatureGauge")
+defineFloat("FUELRESERVEGAUGE", 43, {0.0, 1.0}, "Indicator", "FuelReserveGauge")
+
+BIOS.protocol.endModule()