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()