Esempio n. 1
0
 public MiG21InterfaceEditor()
 {
     InitializeComponent();
     Configuration = new DCSConfigurator("MiG21", "pack://application:,,,/Helios;component/Interfaces/DCS/MiG21/Export.lua", DCSPath, true);
     Configuration.ExportConfigPath    = "Config\\Export";
     Configuration.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/MiG21/ExportFunctions.lua";
 }
        public AV8BInterfaceEditor()
        {
            InitializeComponent();
            _bestDCSInstallType            = 3;
            Configuration                  = new DCSConfigurator("DCS AV-8B", DCSPath);
            Configuration.ExportConfigPath = "Config\\Export";
            switch (_bestDCSInstallType)
            {
            case 3:
                Configuration.DCSInstallType = "GA";
                Configuration.InstallTypeGA  = true;
                break;

            case 2:
                Configuration.DCSInstallType  = "OpenBeta";
                Configuration.InstallTypeBeta = true;
                break;

            case 1:
                Configuration.DCSInstallType   = "OpenAlpha";
                Configuration.InstallTypeAlpha = true;
                break;

            default:
                Configuration.DCSInstallType   = "";
                Configuration.InstallTypeGA    = false;
                Configuration.InstallTypeBeta  = false;
                Configuration.InstallTypeAlpha = false;
                break;
            }
            Configuration.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/AV8B/ExportFunctions.lua";
        }
 public Mi8SimpleInterfaceEditor()
 {
     InitializeComponent();
     Configuration = new DCSConfigurator("DCSMi8", DCSPath);
     Configuration.ExportConfigPath    = "Config\\Export";
     Configuration.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/Mi8Simple/ExportFunctions.lua";
 }
Esempio n. 4
0
 public F14BInterfaceEditor()
 {
     InitializeComponent();
     Configuration = new DCSConfigurator("DCSF14B", DCSPath);
     Configuration.ExportConfigPath    = "Scripts";
     Configuration.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/F14B/ExportFunctions.lua";
 }
Esempio n. 5
0
        public Mi8SimpleInterface()
            : base("DCS Mil Mi-8 (Simple)")
        {
            DCSConfigurator config = new DCSConfigurator("DCSMi8", DCSPath);

            config.ExportConfigPath    = "Config\\Export";
            config.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/Mi8Simple/ExportFunctions.lua";
            Port         = config.Port;
            _phantomFix  = config.PhantomFix;
            _phantomLeft = config.PhantomFixLeft;
            _phantomTop  = config.PhantomFixTop;

            #region Indicators
            // !!!! Any duplicate "name" values in a function will cause Helios to go bang.  Make sure that when you change the name, that it is unique
            AddFunction(new FlagValue(this, "781", "AP Indicators", "AP heading on", ""));
            AddFunction(new FlagValue(this, "782", "AP Indicators", "AP heading off", ""));
            AddFunction(new FlagValue(this, "783", "AP Indicators", "AP pitch roll on", ""));
            AddFunction(new FlagValue(this, "784", "AP Indicators", "AP height on", ""));
            AddFunction(new FlagValue(this, "785", "AP Indicators", "AP height off", ""));
            AddFunction(new FlagValue(this, "316", "ENGINE Indicators", "ENGINE RT LEFT ON", ""));
            AddFunction(new FlagValue(this, "317", "ENGINE Indicators", "ENGINE RT RIGHT ON", ""));
            AddFunction(new FlagValue(this, "318", "SARPP Indicators", "SARPP ON", ""));
            AddFunction(new FlagValue(this, "325", "Descent Indicators", "Descent Siren", ""));
            AddFunction(new FlagValue(this, "326", "LOCK Indicators", "LOCK OPEN", ""));
            AddFunction(new FlagValue(this, "327", "DOORS Indicators", "DOORS OPEN", ""));
            AddFunction(new FlagValue(this, "340", "TURN Indicators", "TURN ON RI 65", ""));
            AddFunction(new FlagValue(this, "360", "FROST Indicators", "FROST", ""));
            AddFunction(new FlagValue(this, "362", "LEFT Indicators", "LEFT ENG HEATING", ""));
            AddFunction(new FlagValue(this, "363", "RIGHT Indicators", "RIGHT ENG HEATING", ""));
            AddFunction(new FlagValue(this, "361", "ANTI Indicators", "ANTI ICE ON", ""));
            AddFunction(new FlagValue(this, "364", "LEFT Indicators", "LEFT PZU FRONT", ""));
            AddFunction(new FlagValue(this, "365", "RIGHT Indicators", "RIGHT PZU FRONT", ""));
            AddFunction(new FlagValue(this, "366", "LEFT Indicators", "LEFT PZU BACK", ""));
            AddFunction(new FlagValue(this, "367", "RIGHT Indicators", "RIGHT PZU BACK", ""));
            AddFunction(new FlagValue(this, "373", "SECTION Indicators", "SECTION 1", ""));
            AddFunction(new FlagValue(this, "375", "SECTION Indicators", "SECTION 2", ""));
            AddFunction(new FlagValue(this, "374", "SECTION Indicators", "SECTION 3", ""));
            AddFunction(new FlagValue(this, "376", "SECTION Indicators", "SECTION 4", ""));
            AddFunction(new FlagValue(this, "368", "RIO Indicators", "RIO heating ok", ""));
            AddFunction(new FlagValue(this, "377", "LEFT Indicators", "LEFT ENG FIRE", ""));
            AddFunction(new FlagValue(this, "378", "RIGHT Indicators", "RIGHT ENG FIRE", ""));
            AddFunction(new FlagValue(this, "379", "KO50 Indicators", "KO50 FIRE", ""));
            AddFunction(new FlagValue(this, "380", "REDUC Indicators", "REDUC AI9 FIRE", ""));
            AddFunction(new FlagValue(this, "381", "FIRE Indicators", "FIRE LENG 1 QUEUE", ""));
            AddFunction(new FlagValue(this, "382", "FIRE Indicators", "FIRE RENG 1 QUEUE", ""));
            AddFunction(new FlagValue(this, "383", "FIRE Indicators", "FIRE KO50 1 QUEUE", ""));
            AddFunction(new FlagValue(this, "384", "FIRE Indicators", "FIRE REDUCT 1 QUEUE", ""));
            AddFunction(new FlagValue(this, "385", "FIRE Indicators", "FIRE LENG 2 QUEUE", ""));
            AddFunction(new FlagValue(this, "386", "FIRE Indicators", "FIRE RENG 2 QUEUE", ""));
            AddFunction(new FlagValue(this, "387", "FIRE Indicators", "FIRE KO50 2 QUEUE", ""));
            AddFunction(new FlagValue(this, "388", "FIRE Indicators", "FIRE REDUCT 2 QUEUE", ""));
            AddFunction(new FlagValue(this, "398", "CHECK Indicators", "CHECK SENSORS", ""));
            AddFunction(new FlagValue(this, "407", "HYDRO Indicators", "HYDRO main on", ""));
            AddFunction(new FlagValue(this, "408", "HYDRO Indicators", "HYDRO aux on", ""));
            AddFunction(new FlagValue(this, "414", "APD9 Indicators", "APD9 on", ""));
            AddFunction(new FlagValue(this, "416", "APD9 Indicators", "APD9 oil pressure", ""));
            AddFunction(new FlagValue(this, "417", "APD9 Indicators", "APD9 rpm", ""));
            AddFunction(new FlagValue(this, "418", "APD9 Indicators", "APD9 rpm high", ""));
            AddFunction(new FlagValue(this, "420", "APD Indicators", "APD on", ""));
            AddFunction(new FlagValue(this, "424", "APD Indicators", "APD starter on", ""));
            AddFunction(new FlagValue(this, "434", "FUEL Indicators", "FUEL left closed", ""));
            AddFunction(new FlagValue(this, "435", "FUEL Indicators", "FUEL right closed", ""));
            AddFunction(new FlagValue(this, "436", "FUEL Indicators", "FUEL ring closed", ""));
            AddFunction(new FlagValue(this, "441", "FUEL Indicators", "FUEL center on", ""));
            AddFunction(new FlagValue(this, "442", "FUEL Indicators", "FUEL left on", ""));
            AddFunction(new FlagValue(this, "443", "FUEL Indicators", "FUEL right on", ""));
            AddFunction(new FlagValue(this, "461", "HEATER Indicators", "HEATER", ""));
            AddFunction(new FlagValue(this, "462", "IGNITION Indicators", "IGNITION", ""));
            AddFunction(new FlagValue(this, "463", "KO50 Indicators", "KO50 ON", ""));
            AddFunction(new FlagValue(this, "341", "LEFT Indicators", "LEFT PITOT HEATER OK", ""));
            AddFunction(new FlagValue(this, "490", "RIGHT Indicators", "RIGHT PITOT HEATER OK", ""));
            AddFunction(new FlagValue(this, "509", "LEFT Indicators", "LEFT PZU ON", ""));
            AddFunction(new FlagValue(this, "510", "RIGHT Indicators", "RIGHT PZU ON", ""));
            AddFunction(new FlagValue(this, "504", "ELEC Indicators", "ELEC turn VU1", ""));
            AddFunction(new FlagValue(this, "505", "ELEC Indicators", "ELEC turn VU2", ""));
            AddFunction(new FlagValue(this, "506", "ELEC Indicators", "ELEC turn VU3", ""));
            AddFunction(new FlagValue(this, "507", "ELEC Indicators", "ELEC DC ground", ""));
            AddFunction(new FlagValue(this, "508", "ELEC Indicators", "ELEC test equipment", ""));
            AddFunction(new FlagValue(this, "543", "ELEC Indicators", "ELEC gen1 fail", ""));
            AddFunction(new FlagValue(this, "544", "ELEC Indicators", "ELEC gen2 fail", ""));
            AddFunction(new FlagValue(this, "545", "ELEC Indicators", "ELEC AC ground", ""));
            AddFunction(new FlagValue(this, "546", "ELEC Indicators", "ELEC PO 500", ""));
            AddFunction(new FlagValue(this, "86", "CIRCUIT Indicators", "CIRCUIT FROM BATTERY", ""));
            AddFunction(new FlagValue(this, "68", "CLOG Indicators", "CLOG TF LEFT", ""));
            AddFunction(new FlagValue(this, "69", "CLOG Indicators", "CLOG TF RIGHT", ""));
            AddFunction(new FlagValue(this, "70", "CHIP Indicators", "CHIP LEFT ENG", ""));
            AddFunction(new FlagValue(this, "71", "CHIP Indicators", "CHIP RIGHT ENG", ""));
            AddFunction(new FlagValue(this, "72", "VIBRATION Indicators", "VIBRATION LEFT HIGH", ""));
            AddFunction(new FlagValue(this, "73", "VIBRATION Indicators", "VIBRATION RIGHT HIGH", ""));
            AddFunction(new FlagValue(this, "74", "FIRE Indicators", "FIRE", ""));
            AddFunction(new FlagValue(this, "76", "LEFT Indicators", "LEFT ENG TURN OFF", ""));
            AddFunction(new FlagValue(this, "77", "RIGHT Indicators", "RIGHT ENG TURN OFF", ""));
            AddFunction(new FlagValue(this, "78", "FT Indicators", "FT LEFT HIGH", ""));
            AddFunction(new FlagValue(this, "79", "FT Indicators", "FT RIGHT HIGH", ""));
            AddFunction(new FlagValue(this, "80", "OIL Indicators", "OIL PRESSURE LEFT", ""));
            AddFunction(new FlagValue(this, "81", "OIL Indicators", "OIL PRESSURE RIGHT", ""));
            AddFunction(new FlagValue(this, "82", "ER Indicators", "ER LEFT", ""));
            AddFunction(new FlagValue(this, "83", "ER Indicators", "ER RIGHT", ""));
            AddFunction(new FlagValue(this, "84", "EEC Indicators", "EEC LEFT OFF", ""));
            AddFunction(new FlagValue(this, "85", "EEC Indicators", "EEC RIGHT OFF", ""));
            AddFunction(new FlagValue(this, "873", "CHIP Indicators", "CHIP MAIN REDUCTOR", ""));
            AddFunction(new FlagValue(this, "874", "CHIP Indicators", "CHIP INTER REDUCTOR", ""));
            AddFunction(new FlagValue(this, "875", "CHIP Indicators", "CHIP TAIL REDUCTOR", ""));
            AddFunction(new FlagValue(this, "64", "300 Indicators", "300 Left", ""));
            AddFunction(new FlagValue(this, "65", "DISS Indicators", "DISS OFF", ""));
            AddFunction(new FlagValue(this, "555", "BD1 Indicators", "BD1", ""));
            AddFunction(new FlagValue(this, "556", "BD2 Indicators", "BD2", ""));
            AddFunction(new FlagValue(this, "557", "BD3 Indicators", "BD3", ""));
            AddFunction(new FlagValue(this, "558", "BD4 Indicators", "BD4", ""));
            AddFunction(new FlagValue(this, "559", "BD5 Indicators", "BD5", ""));
            AddFunction(new FlagValue(this, "560", "BD6 Indicators", "BD6", ""));
            AddFunction(new FlagValue(this, "711", "BD1Bomb Indicators", "BD1Bomb", ""));
            AddFunction(new FlagValue(this, "712", "BD2Bomb Indicators", "BD2Bomb", ""));
            AddFunction(new FlagValue(this, "713", "BD3Bomb Indicators", "BD3Bomb", ""));
            AddFunction(new FlagValue(this, "714", "BD4Bomb Indicators", "BD4Bomb", ""));
            AddFunction(new FlagValue(this, "715", "BD5Bomb Indicators", "BD5Bomb", ""));
            AddFunction(new FlagValue(this, "716", "BD6Bomb Indicators", "BD6Bomb", ""));
            AddFunction(new FlagValue(this, "562", "PUS1 Indicators", "PUS1", ""));
            AddFunction(new FlagValue(this, "563", "PUS3 Indicators", "PUS3", ""));
            AddFunction(new FlagValue(this, "564", "PUS4 Indicators", "PUS4", ""));
            AddFunction(new FlagValue(this, "565", "PUS6 Indicators", "PUS6", ""));
            AddFunction(new FlagValue(this, "561", "EmergExplode Indicators", "EmergExplode", ""));
            AddFunction(new FlagValue(this, "705", "EmergExplodeSec Indicators", "EmergExplodeSec", ""));
            AddFunction(new FlagValue(this, "710", "BV Indicators", "BV Net On", ""));
            AddFunction(new FlagValue(this, "566", "RS Indicators", "RS Net On", ""));
            AddFunction(new FlagValue(this, "567", "GUV Indicators", "GUV Net On", ""));
            //AddFunction(new FlagValue(this, " c", "MV Indicators", "MV Net On", ""));
            AddFunction(new FlagValue(this, "568", "FKP Indicators", "FKP On", ""));
            AddFunction(new FlagValue(this, "778", "Caution Indicators", "Caution Weap", ""));
            //AddFunction(new FlagValue(this, " c", "LeftSignal Indicators", "LeftSignal", ""));
            //AddFunction(new FlagValue(this, " c", "RightSignal Indicators", "RightSignal", ""));
            AddFunction(new FlagValue(this, "586", "Ready1 Indicators", "Ready1", ""));
            AddFunction(new FlagValue(this, "587", "Ready2 Indicators", "Ready2", ""));
            AddFunction(new FlagValue(this, "588", "Ready3 Indicators", "Ready3", ""));
            AddFunction(new FlagValue(this, "306", "Record Indicators", "Record P503B", ""));
            AddFunction(new FlagValue(this, "302", "IFF Indicators", "IFF KD", ""));
            AddFunction(new FlagValue(this, "303", "IFF Indicators", "IFF KP", ""));
            AddFunction(new FlagValue(this, "912", "IFF Indicators", "IFF TurnOnReserve", ""));
            AddFunction(new FlagValue(this, "87", "IFF Indicators", "IFF Failure", ""));
            #endregion
            #region Switches and Toggles

            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3015", "538", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Generator 1 Switch", "%0.1f"));       // elements["PTR-EEP-TMB-GEN1"]        = default_2_position_tumb(_("Generator 1 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_15, 538)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3016", "539", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Generator 2 Switch", "%0.1f"));       // elements["PTR-EEP-TMB-GEN2"]        = default_2_position_tumb(_("Generator 2 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_16, 539)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3014", "540", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "AC Ground Power Switch", "%0.1f"));   // elements["PTR-EEP-TMB-AER"]     = default_2_position_tumb(_("AC Ground Power Switch, ON/OFF"),devices.ELEC_INTERFACE, device_commands.Button_14, 540)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3003", "495", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Battery 1 Switch", "%0.1f"));         // elements["PTR-RSPE-TMB-AKK1"]       = default_2_position_tumb(_("Battery 1 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_3, 495)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3002", "496", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Battery 2 Switch", "%0.1f"));         // elements["PTR-RSPE-TMB-AKK2"]       = default_2_position_tumb(_("Battery 2 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_2, 496)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3001", "497", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Standby Generator Switch", "%0.1f")); // elements["PTR-RSPE-TMB-RESGEN"]     = default_2_position_tumb(_("Standby Generator Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_1, 497)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3007", "499", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Rectifier 1 Switch", "%0.1f"));       // elements["PTR-RSPE-TMB-RECT1"]      = default_2_position_tumb(_("Rectifier 1 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_7, 499)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3005", "500", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Rectifier 2 Switch", "%0.1f"));       // elements["PTR-RSPE-TMB-RECT2"]      = default_2_position_tumb(_("Rectifier 2 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_5, 500)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3006", "501", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Rectifier 3 Switch", "%0.1f"));       // elements["PTR-RSPE-TMB-RECT3"]      = default_2_position_tumb(_("Rectifier 3 Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_6, 501)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3004", "502", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "DC Ground Power Switch", "%0.1f"));   // elements["PTR-RSPE-TMB-AERF"]       = default_2_position_tumb(_("DC Ground Power Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_4, 502)
            AddFunction(Switch.CreateToggleSwitch(this, ELEC_INTERFACE, "3009", "503", "1.0", "ON", "0.0", "OFF", "ELEC INTERFACE", "Equipment Test Switch", "%0.1f"));    // elements["PTR-RSPE-TMB-TESTEQU"]    = default_2_position_tumb(_("Equipment Test Switch, ON/OFF"), devices.ELEC_INTERFACE, device_commands.Button_9, 503)


            #endregion
        }
Esempio n. 6
0
        public GenericInterface()
            : base("DCS Generic")
        {
            DCSConfigurator config = new DCSConfigurator("DCSGeneric", DCSPath);

            config.ExportConfigPath    = "Config\\Export";
            config.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/Generic/ExportFunctions.lua";
            Port         = config.Port;
            _phantomFix  = config.PhantomFix;
            _phantomLeft = config.PhantomFixLeft;
            _phantomTop  = config.PhantomFixTop;

            int indice   = 0;
            int contador = 0;

            for (int i = 1; i < 200; i++)   // 200 Network values
            {
                Functions.Add(new NetworkValue(this, i.ToString(), "NetWork Values", "NetWorkValue_" + i.ToString(), "Float values from DCS", "", BindingValueUnits.Numeric, null));
            }

            indice = 1000;
            for (int i = 1; i < 200; i++)   // 200 flag values
            {
                AddFunction(new FlagValue(this, (indice + i).ToString(), "Flag Values", "FlagValue_" + i.ToString(), "Used for lights, usually, 1=ON 0=OFF"));
            }

            indice = 2000;
            for (int i = 1; i < 200; i++)   // 200 push buttons
            {
                AddFunction(new PushButton(this, PUSH_BUTTONS, (3000 + i).ToString(), (indice + i).ToString(), "Push Buttons", "PB_" + i.ToString()));
            }

            indice = 3000;
            for (int i = 1; i < 250; i++)       // 250 Toggle Switch 1, 0
            {
                AddFunction(Switch.CreateToggleSwitch(this, TOGGLE_SWITCH, (3000 + i).ToString(), (indice + i).ToString(), "1", "UP", "0", "DOWN", "Toggle Switch 1,0", "TSwitch_" + i.ToString(), "%1d"));
            }


            indice = 4000;
            for (int i = 1; i < 250; i++)       // 250 Toggle Switch 1, -1
            {
                AddFunction(Switch.CreateToggleSwitch(this, TOGGLE_SWITCH_B, (3000 + i).ToString(), (indice + i).ToString(), "1", "UP", "-1", "DOWN", "Toggle Switch 1,-1", "TSwitch_B_" + i.ToString(), "%1d"));
            }



            indice = 5000;
            for (int i = 1; i < 100; i++)    // 100 Threeway Switch 1,0,-1
            {
                AddFunction(Switch.CreateThreeWaySwitch(this, THREEWAYSWITCH, (3000 + i).ToString(), (indice + i).ToString(), "1", "UP", "0", "CENTER", "-1", "DOWN", "Threeway Switch 1,0,-1", "3WSwitch_A_" + i.ToString(), "%1d"));
            }

            indice = 5000;
            for (int i = 101; i < 200; i++)    // 100 Threeway Switch  0  0.1  0.2
            {
                AddFunction(Switch.CreateThreeWaySwitch(this, THREEWAYSWITCH, (3000 + i).ToString(), (indice + i).ToString(), "0.0", "UP", "0.1", "CENTER", "0.2", "DOWN", "Threeway Switch 0,0.1,0.2", "3WSwitch_B_" + i.ToString(), "%0.2f"));
            }

            indice = 5000;
            for (int i = 201; i < 300; i++)    // 100 Threeway Switch  0   0.5   1
            {
                AddFunction(Switch.CreateThreeWaySwitch(this, THREEWAYSWITCH, (3000 + i).ToString(), (indice + i).ToString(), "0.0", "UP", "0.5", "CENTER", "1.0", "DOWN", "Threeway Switch 0,0.5,1", "3WSwitch_C_" + i.ToString(), "%0.2f"));
            }

            indice = 6000;
            for (int i = 1; i < 100; i++)  // 100 axis 0.1
            {
                AddFunction(new Axis(this, AXIS, (3000 + i).ToString(), (indice + i).ToString(), 0.1d, 0.0d, 1.0d, "Axis 0.1", "Axis_A_" + i.ToString()));
            }

            indice = 6000;
            for (int i = 101; i < 200; i++)  // 100 axis 0.05
            {
                AddFunction(new Axis(this, AXIS, (3000 + i).ToString(), (indice + i).ToString(), 0.05d, 0.0d, 1.0d, "Axis 0.05", "Axis_B_" + i.ToString()));
            }


            indice = 7000;
            for (int i = 1; i < 50; i++)   // 50 multiposition 6 pos
            {
                AddFunction(new Switch(this, MULTI_POS_SWITCH, (indice + i).ToString(), new SwitchPosition[] { new SwitchPosition("0.0", "POS_01", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.1", "POS_02", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.2", "POS_03", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.3", "POS_04", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.4", "POS_05", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.5", "POS_06", (3000 + i).ToString()) },
                                       "Multi 6 pos Switches", "Multi6PosSwitch_" + i.ToString(), "%0.2f"));
            }

            for (int i = 51; i < 100; i++)   // 50 multiposition 11 pos
            {
                AddFunction(new Switch(this, MULTI_POS_SWITCH, (indice + i).ToString(), new SwitchPosition[] { new SwitchPosition("0.0", "POS_01", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.1", "POS_02", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.2", "POS_03", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.3", "POS_04", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.4", "POS_05", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.5", "POS_06", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.6", "POS_07", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.7", "POS_08", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.8", "POS_09", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.9", "POS_10", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("1,0", "POS_11", (3000 + i).ToString()), }, "Multi 11 pos Switches", "Multi11PosSwitch_" + i.ToString(), "%0.2f"));
            }

            for (int i = 101; i < 121; i++)   // 20 multiposition 21 pos
            {
                AddFunction(new Switch(this, MULTI_POS_SWITCH, (indice + i).ToString(), new SwitchPosition[] { new SwitchPosition("0.0", "POS_01", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.05", "POS_02", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.1", "POS_03", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.15", "POS_04", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.2", "POS_05", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.25", "POS_06", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.3", "POS_07", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.35", "POS_08", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.4", "POS_09", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.45", "POS_10", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.5", "POS_11", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.55", "POS_12", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.6", "POS_13", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.65", "POS_14", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.7", "POS_15", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.75", "POS_16", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.8", "POS_17", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.85", "POS_18", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.9", "POS_19", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("0.95", "POS_20", (3000 + i).ToString()),
                                                                                                               new SwitchPosition("1,0", "POS_21", (3000 + i).ToString()), }, "Multi 21 pos Switches", "Multi21PosSwitch_" + i.ToString(), "%0.2f"));
            }

            indice   = 8000;
            contador = 1;
            for (int i = 1; i < 150; i = i + 3)   // 50 rockers ABCC
            {
                AddFunction(new Rocker(this, ROCKER_ABCC, (3000 + i).ToString(), (3001 + i).ToString(), (3002 + i).ToString(), (3002 + i).ToString(), (indice + contador).ToString(), "Rocker type ABCC", "Rocker_A_" + contador.ToString(), true));
                contador++;
            }


            for (int i = 1; i < 100; i = i + 2)   // 50 rockers ABAB
            {
                AddFunction(new Rocker(this, ROCKER_ABAB, (3000 + i).ToString(), (3001 + i).ToString(), (3000 + i).ToString(), (3001 + i).ToString(), (indice + contador).ToString(), "Rocker type ABAB", "Rocker_B_" + contador.ToString(), true));
                contador++;
            }

            for (int i = 1; i < 100; i = i + 2)   // 50 rockers AABB
            {
                AddFunction(new Rocker(this, ROCKER_AABB, (3000 + i).ToString(), (3000 + i).ToString(), (3001 + i).ToString(), (3001 + i).ToString(), (indice + contador).ToString(), "Rocker type AABB", "Rocker_C_" + contador.ToString(), true));
                contador++;
            }



            indice = 9000;
            for (int i = 1; i < 50; i++)   // 50 rotary encoders 0.1
            {
                AddFunction(new RotaryEncoder(this, ROTARY_ENCODER, (3000 + i).ToString(), (indice + i).ToString(), 0.1d, "Rotary Encoder 0.1", "RotEncode_A_" + i.ToString()));
            }

            for (int i = 51; i < 100; i++)   // 50 rotary encoders 0.05
            {
                AddFunction(new RotaryEncoder(this, ROTARY_ENCODER, (3000 + i).ToString(), (indice + i).ToString(), 0.05d, "Rotary Encoder 0.05", "RotEncoder_B_" + i.ToString()));
            }

            indice = 10000;
            for (int i = 1; i < 100; i++)   // 100 indicator pushbuttons
            {
                AddFunction(new IndicatorPushButton(this, INDICATOR_PUSHBUTTON, (3000 + i).ToString(), (indice + i).ToString(), "Indicator pushbutton", "Ind_PButton_" + i.ToString()));
            }
        }
Esempio n. 7
0
        public F14BInterface()
            : base("DCS F-14B")
        {
            DCSConfigurator config = new DCSConfigurator("DCSF14B", DCSPath);

            config.ExportConfigPath    = "Config\\Export";
            config.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/F14B/ExportFunctions.lua";
            Port         = config.Port;
            _phantomFix  = config.PhantomFix;
            _phantomLeft = config.PhantomFixLeft;
            _phantomTop  = config.PhantomFixTop;

            #region hydraulics
            AddFunction(Switch.CreateToggleSwitch(this, HYDRAULICS, "629", "629", "0", "Position 1", "1", "Position 2", "HYDRAULICS", "Hydraulic Transfer Pump Switch", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HYDRAULICS, "631", "631", "0", "Position 1", "1", "Position 2", "HYDRAULICS", "Hydraulic Isolation Switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, HYDRAULICS, "928", "928", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "HYDRAULICS", "Hydraulic Emergency Flight Control Switch", "%1d"));
            #endregion
            #region MASTER RESET
            AddFunction(new PushButton(this, CADC, "1071", "1071", "CADC", "MASTER RESET", "1", "0", "%1d"));
            #endregion
            #region AICS
            AddFunction(Switch.CreateToggleSwitch(this, AICS, "2100", "2100", "0", "Position 1", "1", "Position 2", "AICS", "Stow Inlet Ramps Left Switch", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, AICS, "2101", "2101", "0", "Position 1", "1", "Position 2", "AICS", "Stow Inlet Ramps Right Switch", "%1d"));
            #endregion
            #region Wing sweep
            #endregion
            #region Radar altimeter
            #endregion
            #region Airspeed indicator
            #endregion
            #region Altimeter
            AddFunction(new Axis(this, BAROALTIMETER, "306", "306", 0.1d, 0.0d, 1.0d, "BAROALTIMETER", "Altimeter Pressure Setting"));
            #endregion
            #region RIO Altimeter
            AddFunction(new Axis(this, BAROALTIMETER, "20306", "20306", 0.1d, 0.0d, 1.0d, "BAROALTIMETER", "Altimeter Pressure Setting (RIO)"));
            #endregion
            #region Gear
            AddFunction(new PushButton(this, GEARHOOK, "497", "497", "GEARHOOK", "Launch Bar Abort", "1", "0", "%1d"));
            #endregion
            #region Hook
            #endregion
            #region Brakes
            AddFunction(Switch.CreateThreeWaySwitch(this, GEARHOOK, "1072", "1072", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "GEARHOOK", "Anti-Skid Spoiler BK Switch", "%1d"));
            #endregion
            #region SAS
            AddFunction(Switch.CreateToggleSwitch(this, AFCS, "2106", "2106", "0", "Position 1", "1", "Position 2", "AFCS", "AFCS Stability Augmentation - Pitch", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, AFCS, "2107", "2107", "0", "Position 1", "1", "Position 2", "AFCS", "AFCS Stability Augmentation - Roll", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, AFCS, "2108", "2108", "0", "Position 1", "1", "Position 2", "AFCS", "AFCS Stability Augmentation - Yaw", "%1d"));
            #endregion
            #region Autopilot
            AddFunction(Switch.CreateThreeWaySwitch(this, AFCS, "2109", "2109", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "AFCS", "Autopilot - Vector / Automatic Carrier Landing", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, AFCS, "2110", "2110", "0", "Position 1", "1", "Position 2", "AFCS", "Autopilot - Altitude Hold", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, AFCS, "2111", "2111", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "AFCS", "Autopilot - Heading / Ground Track", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, AFCS, "2112", "2112", "0", "Position 1", "1", "Position 2", "AFCS", "Autopilot - Engage", "%1d"));
            #endregion
            #region Flaps
            AddFunction(new Axis(this, FLAPS, "225", "225", 0.1d, 0.0d, 1.0d, "FLAPS", "Flaps Lever"));
            #endregion
            #region Engine
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "THROT_L", "THROT_L", "0", "Position 1", "1", "Position 2", "ENGINE", "Left Engine Fuel Cutoff", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "THROT_R", "THROT_R", "0", "Position 1", "1", "Position 2", "ENGINE", "Right Engine Fuel Cutoff", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ENGINE, "2104", "2104", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ENGINE", "Throttle Mode", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ENGINE, "2103", "2103", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ENGINE", "Throttle Temp", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ENGINE, "941", "941", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ENGINE", "Engine/Probe Anti-Ice", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "2105", "2105", "0", "Position 1", "1", "Position 2", "ENGINE", "Engine Airstart", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ENGINE, "2102", "2102", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ENGINE", "Engine Crank", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "16007", "16007", "0", "Position 1", "1", "Position 2", "ENGINE", "Left Engine Mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "16008", "16008", "0", "Position 1", "1", "Position 2", "ENGINE", "Right Engine Mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "16005", "16005", "0", "Position 1", "1", "Position 2", "ENGINE", "Asymmetric Thrust Limiter Cover", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ENGINE, "16006", "16006", "0", "Position 1", "1", "Position 2", "ENGINE", "Asymmetric Thrust Limiter", "%1d"));
            #endregion
            #region Fire system
            // AddFunction(new PushButton(this, FIRE, "15083", "15083", "FIRE", "Fire Ext Bottle - Left", "1", "0", "%1d"));
            // AddFunction(new PushButton(this, FIRE, "15082", "15082", "FIRE", "Fire Ext Bottle - Right", "1", "0", "%1d"));
            #endregion
            #region Fuel system
            AddFunction(Switch.CreateThreeWaySwitch(this, FUELSYSTEM, "1095", "1095", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "FUELSYSTEM", "Fuel Feed", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, FUELSYSTEM, "1001", "1001", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "FUELSYSTEM", "Wing/Ext Trans", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, FUELSYSTEM, "1074", "1074", "0", "Position 1", "1", "Position 2", "FUELSYSTEM", "Fuel Dump", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, FUELSYSTEM, "1073", "1073", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "FUELSYSTEM", "Refuel Probe", "%1d"));
            AddFunction(new Axis(this, FUELSYSTEM, "1050", "1050", 0.1d, 0.0d, 1.0d, "FUELSYSTEM", "BINGO Fuel Level Knob"));

            #endregion
            #region Electrics
            AddFunction(Switch.CreateThreeWaySwitch(this, ELECTRICS, "937", "937", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ELECTRICS", "Left Generator Switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ELECTRICS, "936", "936", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ELECTRICS", "Right Generator Switch", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ELECTRICS, "926", "926", "0", "Position 1", "1", "Position 2", "ELECTRICS", "Emergency Generator Switch", "%1d"));
            #endregion
            #region Cockpit mechanics
            #endregion
            #region Enivornment control
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "8114", "8114", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Pilot Oxygen On", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "119", "119", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "RIO Oxygen On", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "939", "939", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Cabin Pressure Dump", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "942", "942", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "Wind Shield Air", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "940", "940", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Temp Auto / Man", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "938", "938", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Ram Air", "%1d"));
            #endregion
            #region BIT panel
            #endregion
            #region Light panel
            AddFunction(Switch.CreateToggleSwitch(this, AOASYSTEM, "915", "915", "0", "Position 1", "1", "Position 2", "AOASYSTEM", "Hook Bypass", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "918", "918", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Taxi Light", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "924", "924", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "Red Flood Light", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "921", "921", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "White Flood Light", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "913_22", "913_22", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "Position Lights Wing", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "916", "916", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "Position Lights Tail", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "919", "919", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Position Lights Flash", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, COCKPITMECHANICS, "923", "923", "0", "Position 1", "1", "Position 2", "COCKPITMECHANICS", "Anti-Collision Lights", "%1d"));
            #endregion
            #region Light panel RIO
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "194", "194", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "Red Flood Light (RIO)", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COCKPITMECHANICS, "159", "159", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COCKPITMECHANICS", "White Flood Light (RIO)", "%1d"));
            #endregion
            #region DISPLAY Panel: Power
            AddFunction(Switch.CreateToggleSwitch(this, VDI, "1010", "1010", "0", "Position 1", "1", "Position 2", "VDI", "VDI Power On/Off", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HUD, "1009", "1009", "0", "Position 1", "1", "Position 2", "HUD", "HUD Power On/Off", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HSD, "1008", "1008", "0", "Position 1", "1", "Position 2", "HSD", "HSD/ECMD Power On/Off", "%1d"));
            #endregion
            #region DISPLAY Panel: Steer CMD
            #endregion
            #region DISPLAY Panel: HSD
            AddFunction(Switch.CreateToggleSwitch(this, HSD, "1016", "1016", "0", "Position 1", "1", "Position 2", "HSD", "HSD Display Mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HSD, "1017", "1017", "0", "Position 1", "1", "Position 2", "HSD", "HSD ECM Override", "%1d"));
            #endregion
            #region HSD
            AddFunction(new Axis(this, HSD, "1039", "1039", 0.1d, 0.0d, 1.0d, "HSD", "HSD Selected Heading"));
            AddFunction(new Axis(this, HSD, "1040", "1040", 0.1d, 0.0d, 1.0d, "HSD", "HSD Selected Course"));
            AddFunction(new Axis(this, HSD, "1043", "1043", 0.1d, 0.0d, 1.0d, "HSD", "HSD Brightness"));
            AddFunction(new PushButton(this, HSD, "1041", "1041", "HSD", "HSD Test", "1", "0", "%1d"));
            #endregion
            #region ECMD
            AddFunction(new Axis(this, ECMD, "2023", "2023", 0.1d, 0.0d, 1.0d, "ECMD", "ECMD Brightness"));
            AddFunction(new PushButton(this, ECMD, "2024", "2024", "ECMD", "ECMD Test", "1", "0", "%1d"));
            #endregion
            #region ECMD Panel
            #endregion
            #region TACAN CMD
            AddFunction(new PushButton(this, TACAN, "292", "292", "TACAN", "TACAN CMD Button (RIO)", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TACAN, "135", "135", "TACAN", "TACAN CMD Button", "1", "0", "%1d"));
            #endregion
            #region TACAN Pilot Panel
            AddFunction(new Axis(this, TACAN, "2036", "2036", 0.1d, 0.0d, 1.0d, "TACAN", "TACAN Volume"));
            AddFunction(Switch.CreateToggleSwitch(this, TACAN, "2042", "2042", "0", "Position 1", "1", "Position 2", "TACAN", "TACAN Mode Normal/Inverse", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, TACAN, "2043", "2043", "0", "Position 1", "1", "Position 2", "TACAN", "TACAN Channel X/Y", "%1d"));
            AddFunction(new PushButton(this, TACAN, "2115", "2115", "TACAN", "TACAN BIT", "1", "0", "%1d"));
            #endregion
            #region TACAN RIO Panel
            AddFunction(new Axis(this, TACAN, "375", "375", 0.1d, 0.0d, 1.0d, "TACAN", "TACAN Volume (RIO)"));
            AddFunction(Switch.CreateToggleSwitch(this, TACAN, "373", "373", "0", "Position 1", "1", "Position 2", "TACAN", "TACAN Mode Normal/Inverse (RIO)", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, TACAN, "372", "372", "0", "Position 1", "1", "Position 2", "TACAN", "TACAN Channel X/Y (RIO)", "%1d"));
            AddFunction(new PushButton(this, TACAN, "371", "371", "TACAN", "TACAN BIT (RIO)", "1", "0", "%1d"));
            #endregion
            #region AN/ARA-63 Panel
            AddFunction(Switch.CreateToggleSwitch(this, ILS, "910", "910", "0", "Position 1", "1", "Position 2", "ILS", "AN/ARA-63 Power Switch", "%1d"));
            AddFunction(new PushButton(this, ILS, "911", "911", "ILS", "AN/ARA-63 BIT Button", "1", "0", "%1d"));
            #endregion
            #region Pilot TONE VOLUME panel
            AddFunction(new Axis(this, ICS, "2040", "2040", 0.1d, 0.0d, 1.0d, "ICS", "ALR-67 Volume"));
            AddFunction(new Axis(this, ICS, "2039", "2039", 0.1d, 0.0d, 1.0d, "ICS", "Sidewinder Volume"));
            #endregion
            #region ICS Pilot
            AddFunction(new Axis(this, ICS, "2047", "2047", 0.1d, 0.0d, 1.0d, "ICS", "ICS Volume"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ICS, "2044", "2044", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ICS", "ICS Function Selector", "%1d"));
            #endregion
            #region ICS RIO
            AddFunction(new Axis(this, ICS, "400", "400", 0.1d, 0.0d, 1.0d, "ICS", "ICS Volume (RIO)"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ICS, "402", "402", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ICS", "ICS Function Selector (RIO)", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ICS, "381", "381", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ICS", "XMTR SEL Switch (RIO)", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ICS, "380", "380", "0", "Position 1", "1", "Position 2", "ICS", "V/UHF 2 ANT Switch (RIO)", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ICS, "382", "382", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "ICS", "KY MODE Switch (RIO)", "%1d"));
            #endregion
            #region UHF ARC-159
            AddFunction(Switch.CreateToggleSwitch(this, ARC159, "2035", "2035", "0", "Position 1", "1", "Position 2", "ARC159", "UHF ARC-159 Squelch Switch", "%1d"));
            AddFunction(new PushButton(this, ARC159, "8115", "8115", "ARC159", "UHF ARC-159 Read", "1", "0", "%1d"));
            AddFunction(new Axis(this, ARC159, "2031", "2031", 0.1d, 0.0d, 1.0d, "ARC159", "UHF ARC-159 Volume Pilot"));
            AddFunction(new Axis(this, ARC159, "383", "383", 0.1d, 0.0d, 1.0d, "ARC159", "UHF ARC-159 Volume RIO"));
            AddFunction(new Axis(this, ARC159, "2027", "2027", 0.1d, 0.0d, 1.0d, "ARC159", "UHF ARC-159 Display Brightness"));
            #endregion
            #region UHF ARC-159 End
            #endregion
            #region VHF/UHF ARC-182
            AddFunction(Switch.CreateToggleSwitch(this, ARC182, "359", "359", "0", "Position 1", "1", "Position 2", "ARC182", "VHF/UHF ARC-182 FM/AM Switch", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ARC182, "351", "351", "0", "Position 1", "1", "Position 2", "ARC182", "VHF/UHF ARC-182 Squelch Switch", "%1d"));
            AddFunction(new Axis(this, ARC182, "350", "350", 0.1d, 0.0d, 1.0d, "ARC182", "VHF/UHF ARC-182 Volume RIO"));
            AddFunction(new Axis(this, ARC182, "2038", "2038", 0.1d, 0.0d, 1.0d, "ARC182", "VHF/UHF ARC-182 Volume Pilot"));
            AddFunction(new Axis(this, ARC182, "360", "360", 0.1d, 0.0d, 1.0d, "ARC182", "VHF/UHF ARC-182 Display Brightness"));
            #endregion
            #region KY-28
            AddFunction(new PushButton(this, ICS, "361", "361", "ICS", "KY-28 ZEROIZE", "1", "0", "%1d"));
            #endregion
            #region UHF/VHF/UHF Pilot/RIO Remote Display
            AddFunction(new Axis(this, ARC159, "1031", "1031", 0.1d, 0.0d, 1.0d, "ARC159", "UHF Radio Remote Display Brightness"));
            AddFunction(new Axis(this, ARC159, "406", "406", 0.1d, 0.0d, 1.0d, "ARC159", "UHF Radio Remote Display Brightness (RIO)"));
            AddFunction(new Axis(this, ARC182, "1030", "1030", 0.1d, 0.0d, 1.0d, "ARC182", "VHF/UHF Radio Remote Display Brightness"));
            AddFunction(new PushButton(this, ARC159, "BIT_TEST", "BIT_TEST", "ARC159", "UHF Radio Remote Display Test", "1", "0", "%1d"));
            AddFunction(new PushButton(this, ARC159, "405", "405", "ARC159", "UHF Radio Remote Display Test (2)", "1", "0", "%1d"));
            AddFunction(new PushButton(this, ARC182, "BIT_TEST", "BIT_TEST", "ARC182", "VHF/UHF Radio Remote Display Test", "1", "0", "%1d"));

            #endregion
            #region DECM Panel
            AddFunction(new Axis(this, DECM, "9950", "9950", 0.1d, 0.0d, 1.0d, "DECM", "DECM ALQ-100 Volume"));
            #endregion
            #region RWR Control Panel ALR-67
            AddFunction(new Axis(this, RWR, "16011", "16011", 0.1d, 0.0d, 1.0d, "RWR", "AN/ALR-67 Display Brightness (RIO)"));
            AddFunction(new Axis(this, RWR, "376", "376", 0.1d, 0.0d, 1.0d, "RWR", "AN/ALR-67 Display Brightness"));
            AddFunction(Switch.CreateToggleSwitch(this, RWR, "2139", "2139", "0", "Position 1", "1", "Position 2", "RWR", "AN/ALR-67 Power", "%1d"));
            AddFunction(new Axis(this, ICS, "2138", "2138", 0.1d, 0.0d, 1.0d, "ICS", "AN/ALR-67 Volume"));
            #endregion
            #region AN/ALE-39 Mode Panel
            AddFunction(Switch.CreateThreeWaySwitch(this, COUNTERMEASURES, "390", "390", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COUNTERMEASURES", "AN/ALE-37 Power/Mode", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, COUNTERMEASURES, "398", "398", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "COUNTERMEASURES", "AN/ALE-37 Flare Mode", "%1d"));
            AddFunction(new PushButton(this, COUNTERMEASURES, "391", "391", "COUNTERMEASURES", "AN/ALE-37 Flare Salvo", "1", "0", "%1d"));
            AddFunction(new Axis(this, COUNTERMEASURES, "386", "386", 0.1d, 0.0d, 1.0d, "COUNTERMEASURES", "AN/ALE-37 Chaff Counter"));
            AddFunction(new Axis(this, COUNTERMEASURES, "385", "385", 0.1d, 0.0d, 1.0d, "COUNTERMEASURES", "AN/ALE-37 Flare Counter"));
            AddFunction(new Axis(this, COUNTERMEASURES, "399", "399", 0.1d, 0.0d, 1.0d, "COUNTERMEASURES", "AN/ALE-37 Jammer Counter"));
            #endregion
            #region AN/ALE-39 Program Panel
            AddFunction(new PushButton(this, COUNTERMEASURES, "216", "216", "COUNTERMEASURES", "AN/ALE-37 Programmer Reset", "1", "0", "%1d"));
            #endregion
            #region INS
            #endregion
            #region AHRS / compass
            AddFunction(Switch.CreateThreeWaySwitch(this, AHRS, "905", "905", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "AHRS", "Compass Mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, AHRS, "906", "906", "0", "Position 1", "1", "Position 2", "AHRS", "Compass N-S Hemisphere", "%1d"));
            AddFunction(new Axis(this, AHRS, "909", "909", 0.1d, 0.0d, 1.0d, "AHRS", "Compass LAT Correction"));
            #endregion
            #region Copied temp so easy to copy: (I'm lazy, sue me)
            #endregion
            #region Spoiler Overrides
            AddFunction(Switch.CreateToggleSwitch(this, ELECTRICS, "902", "902", "0", "Position 1", "1", "Position 2", "ELECTRICS", "Inboard Spoiler Override Cover", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ELECTRICS, "903", "903", "0", "Position 1", "1", "Position 2", "ELECTRICS", "Outboard Spoiler Override Cover", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ELECTRICS, "908", "908", "0", "Position 1", "1", "Position 2", "ELECTRICS", "Inboard Spoiler Override", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ELECTRICS, "907", "907", "0", "Position 1", "1", "Position 2", "ELECTRICS", "Outboard Spoiler Override", "%1d"));
            #endregion
            #region Gun Elevation
            AddFunction(new Axis(this, WEAPONS, "1000", "1000", 0.1d, 0.0d, 1.0d, "WEAPONS", "Gun Elevation Lead Adjustment"));
            AddFunction(new Axis(this, WEAPONS, "1022", "1022", 0.1d, 0.0d, 1.0d, "WEAPONS", "Gun Ammunition Counter Adjustment"));
            #endregion
            #region DISPLAY Panel
            AddFunction(new Axis(this, HUD, "1007", "1007", 0.1d, 0.0d, 1.0d, "HUD", "HUD Pitch Ladder Brightness"));
            AddFunction(Switch.CreateToggleSwitch(this, VDI, "1019", "1019", "0", "Position 1", "1", "Position 2", "VDI", "VDI Display Mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, VDI, "1018", "1018", "0", "Position 1", "1", "Position 2", "VDI", "VDI Landing Mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HUD, "1021", "1021", "0", "Position 1", "1", "Position 2", "HUD", "HUD De-clutter On/Off", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HUD, "1020", "1020", "0", "Position 1", "1", "Position 2", "HUD", "HUD AWL Mode", "%1d"));
            #endregion
            #region DISPLAY End
            #endregion
            #region Stdby ADI Pilot
            AddFunction(new PushButton(this, ACCELEROMETER, "228", "228", "ACCELEROMETER", "Accelerometer Reset", "1", "0", "%1d"));
            #endregion
            #region VDI & HUD Indicator controls
            AddFunction(new Axis(this, HUD, "1034", "1034", 0.1d, 0.0d, 1.0d, "HUD", "HUD Trim"));
            AddFunction(new Axis(this, VDI, "1035", "1035", 0.1d, 0.0d, 1.0d, "VDI", "VSDI Screen Trim"));
            AddFunction(new Axis(this, VDI, "1038", "1038", 0.1d, 0.0d, 1.0d, "VDI", "VDI Screen Contrast"));
            AddFunction(new Axis(this, VDI, "1036", "1036", 0.1d, 0.0d, 1.0d, "VDI", "VSDI Screen Brightness"));
            AddFunction(new Axis(this, HUD, "1037", "1037", 0.1d, 0.0d, 1.0d, "HUD", "HUD Brightness"));
            AddFunction(new PushButton(this, VDI, "VDI", "VDI", "VDI", "VDI filter", "1", "0", "%1d"));
            #endregion
            #region Under HUD / Master Arm / Gun/Weapons Panel
            AddFunction(Switch.CreateThreeWaySwitch(this, WEAPONS, "1047", "1047", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "WEAPONS", "Master Arm Switch", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "1048", "1048", "WEAPONS", "ACM Jettison", "1", "0", "%1d"));
            AddFunction(new PushButton(this, WARNINGLIGHTS, "9199", "9199", "WARNINGLIGHTS", "Master Caution Reset", "1", "0", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "GUN_RATE", "GUN_RATE", "WEAPONS", "Gun rate", "1", "0", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "SW_COOL", "SW_COOL", "WEAPONS", "Sidewinder cool", "1", "0", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "MSL_PREP", "MSL_PREP", "WEAPONS", "Missile prepare", "1", "0", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "MSL_MODE", "MSL_MODE", "WEAPONS", "Missile mode", "1", "0", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "239", "239", "WEAPONS", "Emergency stores jettison", "1", "0", "%1d"));
            AddFunction(new Axis(this, CLOCK, "1051", "1051", 0.1d, 0.0d, 1.0d, "CLOCK", "Clock Wind"));
            AddFunction(new PushButton(this, CLOCK, "CLOCK_RESET", "CLOCK_RESET", "CLOCK", "Clock Timer Start/Stop/Reset", "1", "0", "%1d"));
            AddFunction(new Axis(this, CLOCK, "1052", "1052", 0.1d, 0.0d, 1.0d, "CLOCK", "Clock Wind (2)"));
            AddFunction(new PushButton(this, CLOCK, "1053", "1053", "CLOCK", "Clock Timer Start/Stop/Reset (2)", "1", "0", "%1d"));
            #endregion
            #region RIO TID
            AddFunction(new PushButton(this, TID, "226", "226", "TID", "TID Non attack", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "1118", "1118", "TID", "TID Jam strobe", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "1117", "1117", "TID", "TID Data link", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "1116", "1116", "TID", "TID Sym Elem", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "1115", "1115", "TID", "TID Alt num", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "2004", "2004", "TID", "TID Reject Image Device disable no function", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "2113", "2113", "TID", "TID Launch zone", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "2114", "2114", "TID", "TID Velocity vector", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "52", "52", "TID", "collision steering", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "53", "53", "TID", "TID track hold", "1", "0", "%1d"));
            AddFunction(new Axis(this, TID, "48", "48", 0.1d, 0.0d, 1.0d, "TID", "TID Brightness"));
            AddFunction(new Axis(this, TID, "49", "49", 0.1d, 0.0d, 1.0d, "TID", "TID Contrast"));
            #endregion
            #region RIO HCU
            AddFunction(Switch.CreateToggleSwitch(this, HCU, "2007", "2007", "0", "Position 1", "1", "Position 2", "HCU", "HCU TCS mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HCU, "2008", "2008", "0", "Position 1", "1", "Position 2", "HCU", "HCU radar mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HCU, "2009", "2009", "0", "Position 1", "1", "Position 2", "HCU", "HCU DDD mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, HCU, "2010", "2010", "0", "Position 1", "1", "Position 2", "HCU", "HCU TID mode", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, TCS, "2011", "2011", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "TCS", "TV/IR switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, RADAR, "2012", "2012", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "RADAR", "WCS switch", "%1d"));
            AddFunction(new PushButton(this, RADAR, "2013", "2013", "RADAR", "Power reset", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "2014", "2014", "RADAR", "Light test", "1", "0", "%1d"));
            #endregion
            #region RIO DDD
            AddFunction(new PushButton(this, RADAR, "40", "40", "RADAR", "RADAR 5 NM", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "41", "41", "RADAR", "RADAR 10 NM", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "42", "42", "RADAR", "RADAR 20 NM", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "43", "43", "RADAR", "RADAR 50 NM", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "44", "44", "RADAR", "RADAR 100 NM", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "45", "45", "RADAR", "RADAR 200 NM", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "DDD_CENTRw", "DDD_CENTRw", "RADAR", "DDD filter", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "10", "10", "RADAR", "RADAR pulse search", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "11", "11", "RADAR", "RADAR track while scan manual", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "12", "12", "RADAR", "RADAR track while scan auto", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "13", "13", "RADAR", "RADAR range while scan", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "14", "14", "RADAR", "RADAR pulse doppler search", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "15", "15", "RADAR", "RADAR pulse single target track", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "9916", "9916", "RADAR", "RADAR pulse doppler single target track", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "17", "17", "RADAR", "DDD Interrogate Friend or Foe", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "18", "18", "RADAR", "DDD Infrared no function", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "19", "19", "RADAR", "DDD RADAR", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "1812", "1812", "RADAR", "CCM SPL no function", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "1813", "1813", "RADAR", "CCM ALT DIFF no function", "1", "0", "%1d"));
            AddFunction(new PushButton(this, RADAR, "1814", "1814", "RADAR", "CCM VGS no function", "1", "0", "%1d"));
            AddFunction(new Axis(this, RADAR, "20", "20", 0.1d, 0.0d, 1.0d, "RADAR", "IR gain no function"));
            AddFunction(new Axis(this, RADAR, "21", "21", 0.1d, 0.0d, 1.0d, "RADAR", "IR volume no function"));
            AddFunction(new Axis(this, RADAR, "22", "22", 0.1d, 0.0d, 1.0d, "RADAR", "IR threshold no function"));
            AddFunction(new Axis(this, RADAR, "23", "23", 0.1d, 0.0d, 1.0d, "RADAR", "Brightness"));
            AddFunction(new Axis(this, RADAR, "24", "24", 0.1d, 0.0d, 1.0d, "RADAR", "Pulse video"));
            AddFunction(new Axis(this, RADAR, "25", "25", 0.1d, 0.0d, 1.0d, "RADAR", "Erase"));
            AddFunction(new Axis(this, RADAR, "26", "26", 0.1d, 0.0d, 1.0d, "RADAR", "Pulse gain"));
            AddFunction(new Axis(this, RADAR, "27", "27", 0.1d, 0.0d, 1.0d, "RADAR", "ACM threshold no function"));
            AddFunction(new Axis(this, RADAR, "28", "28", 0.1d, 0.0d, 1.0d, "RADAR", "JAM/JET no function"));
            AddFunction(new Axis(this, RADAR, "29", "29", 0.1d, 0.0d, 1.0d, "RADAR", "PD threshold clutter"));
            AddFunction(new Axis(this, RADAR, "30", "30", 0.1d, 0.0d, 1.0d, "RADAR", "PD threshold clear no function"));
            AddFunction(Switch.CreateThreeWaySwitch(this, RADAR, "34", "34", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "RADAR", "Aspect", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, RADAR, "35", "35", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "RADAR", "Closing Velocity scale", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, RADAR, "36", "36", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "RADAR", "Target size no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, RADAR, "37", "37", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "RADAR", "Main Lobe Clutter filter", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, RADAR, "38", "38", "0", "Position 1", "1", "Position 2", "RADAR", "Automatic Gain Control no function", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, RADAR, "3900", "3900", "0", "Position 1", "1", "Position 2", "RADAR", "Parametric amplifier no function", "%1d"));
            #endregion
            #region RIO RADAR panel
            AddFunction(new Axis(this, RADAR, "81", "81", 0.1d, 0.0d, 1.0d, "RADAR", "Radar elevation center"));
            AddFunction(new Axis(this, RADAR, "82", "82", 0.1d, 0.0d, 1.0d, "RADAR", "Radar azimuth center"));
            AddFunction(Switch.CreateToggleSwitch(this, RADAR, "83", "83", "0", "Position 1", "1", "Position 2", "RADAR", "Stabilize", "%1d"));
            #endregion
            #region RIO TCS controls
            AddFunction(Switch.CreateThreeWaySwitch(this, TCS, "87", "87", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "TCS", "TCS Acquisition", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, TCS, "88", "88", "0", "Position 1", "1", "Position 2", "TCS", "TCS FOV", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, TCS, "89", "89", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "TCS", "TCS Slave", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, TCS, "90", "90", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "TCS", "Record power no function", "%1d"));
            AddFunction(new Axis(this, TCS, "16016", "16016", 0.1d, 0.0d, 1.0d, "TCS", "Record reset no function"));
            #endregion
            #region RIO armament panel
            AddFunction(Switch.CreateThreeWaySwitch(this, WEAPONS, "63", "63", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "WEAPONS", "Mech fuse", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, WEAPONS, "75", "75", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "WEAPONS", "Missile option", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "60", "60", "0", "Position 1", "1", "Position 2", "WEAPONS", "Bomb single/pairs", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "61", "61", "0", "Position 1", "1", "Position 2", "WEAPONS", "Bomb step/ripple", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "62", "62", "0", "Position 1", "1", "Position 2", "WEAPONS", "A/G gun mode", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "66", "66", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison racks/weapons", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "73", "73", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison left tank", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "67", "67", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison right tank", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, WEAPONS, "68", "68", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "WEAPONS", "Jettison station 1", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "65", "65", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison station 3", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "69", "69", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison station 4", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "70", "70", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison station 5", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, WEAPONS, "64", "64", "0", "Position 1", "1", "Position 2", "WEAPONS", "Jettison station 6", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, WEAPONS, "71", "71", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "WEAPONS", "Jettison station 8", "%1d"));
            AddFunction(new PushButton(this, WEAPONS, "74", "74", "WEAPONS", "A/A Launch", "1", "0", "%1d"));
            AddFunction(new PushButton(this, TID, "9964", "9964", "TID", "Next Launch", "1", "0", "%1d"));
            #endregion
            #region Computer Address Panel (CAP)
            AddFunction(new PushButton(this, CAP, "123", "123", "CAP", "CAP btn 4", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "124", "124", "CAP", "CAP btn 5", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "125", "125", "CAP", "CAP btn 3", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "126", "126", "CAP", "CAP btn 2", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "127", "127", "CAP", "CAP btn 1", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "128", "128", "CAP", "CAP TNG NBR", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "129", "129", "CAP", "CAP btn 10", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "130", "130", "CAP", "CAP btn 9", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "131", "131", "CAP", "CAP btn 8", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "132", "132", "CAP", "CAP btn 7", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "133", "133", "CAP", "CAP btn 6", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "134", "134", "CAP", "CAP PGM RSTRT", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "136", "136", "CAP", "CAP LONG 6", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "137", "137", "CAP", "CAP LAT 1", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "138", "138", "CAP", "CAP NBR 2", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "139", "139", "CAP", "CAP 7", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "140", "140", "CAP", "CAP HDG 8", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "141", "141", "CAP", "CAP SPD 3", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "143", "143", "CAP", "CAP ALT 4", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "142", "142", "CAP", "CAP 9", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "144", "144", "CAP", "CAP BRG 0", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "145", "145", "CAP", "CAP RNG 5", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "146", "146", "CAP", "CAP N+E", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "147", "147", "CAP", "CAP S-W", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "148", "148", "CAP", "CAP clear", "1", "0", "%1d"));
            AddFunction(new PushButton(this, CAP, "149", "149", "CAP", "CAP enter", "1", "0", "%1d"));
            #endregion
            #region datalink
            AddFunction(Switch.CreateThreeWaySwitch(this, DATALINK, "413", "413", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "DATALINK", "Datalink Power", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, DATALINK, "175", "175", "0", "Position 1", "1", "Position 2", "DATALINK", "Datalink Antenna no function", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, DATALINK, "176", "176", "0", "Position 1", "1", "Position 2", "DATALINK", "Datalink Reply no function", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, DATALINK, "177", "177", "0", "Position 1", "1", "Position 2", "DATALINK", "Datalink CAINS/TAC", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, DATALINK, "191", "191", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "DATALINK", "Datalink Antijam no function", "%1d"));
            AddFunction(new PushButton(this, DATALINK, "117", "117", "DATALINK", "ACLS test", "1", "0", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, DATALINK, "96", "96", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "DATALINK", "Beacon Power", "%1d"));
            #endregion
            #region IFF panel
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "161", "161", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF audio/light no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "162", "162", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF M1 no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "163", "163", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF M2 no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "164", "164", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF M3/A no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "165", "165", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF MC no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "166", "166", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF RAD no function", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, IFF, "167", "167", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "IFF", "IFF Ident no function", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, IFF, "181", "181", "0", "Position 1", "1", "Position 2", "IFF", "IFF M4 no function", "%1d"));
            AddFunction(new PushButton(this, IFF, "185", "185", "IFF", "IFF test no function", "1", "0", "%1d"));
            AddFunction(new PushButton(this, IFF, "186", "186", "IFF", "IFF reply no function", "1", "0", "%1d"));
            #endregion
            #region LIQUID cooling
            AddFunction(Switch.CreateThreeWaySwitch(this, RADAR, "95", "95", "-1", "Position 1", "0", "Position 2", "1", "Position 3", "RADAR", "Liquid cooling", "%1d"));
            #endregion
            #region LANTIRN
            AddFunction(Switch.CreateToggleSwitch(this, LANTIRN, "668", "668", "0", "Position 1", "1", "Position 2", "LANTIRN", "LANTIRN Laser Arm Switch", "%1d"));
            AddFunction(new PushButton(this, TID, "670", "670", "TID", "Video Output Toggle TCS/LANTIRN", "1", "0", "%1d"));
            AddFunction(new PushButton(this, LANTIRN, "669", "669", "LANTIRN", "LANTIRN Operate Mode Unstow", "1", "0", "%1d"));
            AddFunction(new PushButton(this, LANTIRN, "671", "671", "LANTIRN", "LANTIRN IBIT", "1", "0", "%1d"));
            #endregion
        }
Esempio n. 8
0
        public AV8BInterface()
            : base("DCS AV8B")
        {
            DCSConfigurator config = new DCSConfigurator("DCSAV8B", DCSPath);

            config.ExportConfigPath    = "Config\\Export";
            config.ExportFunctionsPath = "pack://application:,,,/Helios;component/Interfaces/DCS/AV-8B/ExportFunctions.lua";
            Port         = config.Port;
            _phantomFix  = config.PhantomFix;
            _phantomLeft = config.PhantomFixLeft;
            _phantomTop  = config.PhantomFixTop;

            #region Left MCFD
            AddFunction(new PushButton(this, MPCD_LEFT, "3200", "3200", "Left MFCD", "OSB01", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3201", "3201", "Left MFCD", "OSB02", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3202", "3202", "Left MFCD", "OSB03", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3203", "3203", "Left MFCD", "OSB04", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3204", "3204", "Left MFCD", "OSB05", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3205", "3205", "Left MFCD", "OSB06", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3206", "3206", "Left MFCD", "OSB07", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3207", "3207", "Left MFCD", "OSB08", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3208", "3208", "Left MFCD", "OSB09", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3209", "3209", "Left MFCD", "OSB10", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3210", "3210", "Left MFCD", "OSB11", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3211", "3211", "Left MFCD", "OSB12", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3212", "3212", "Left MFCD", "OSB13", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3213", "3213", "Left MFCD", "OSB14", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3214", "3214", "Left MFCD", "OSB15", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3215", "3215", "Left MFCD", "OSB16", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3216", "3216", "Left MFCD", "OSB17", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3217", "3217", "Left MFCD", "OSB18", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3218", "3218", "Left MFCD", "OSB19", "1", "0", "%1d"));
            AddFunction(new PushButton(this, MPCD_LEFT, "3219", "3219", "Left MFCD", "OSB20", "1", "0", "%1d"));
            AddFunction(new Axis(this, MPCD_LEFT, "3194", "3194", 0.1d, 0d, 1d, "Left MFCD", "Off/Brightness Control"));
            #endregion

            #region Right MCFD
            AddFunction(new PushButton(this, MPCD_RIGHT, "3224", "3224", "Right MFCD", "OSB01"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3225", "3225", "Right MFCD", "OSB02"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3226", "3226", "Right MFCD", "OSB03"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3227", "3227", "Right MFCD", "OSB04"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3228", "3228", "Right MFCD", "OSB05"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3229", "3229", "Right MFCD", "OSB06"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3230", "3230", "Right MFCD", "OSB07"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3231", "3231", "Right MFCD", "OSB08"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3232", "3232", "Right MFCD", "OSB09"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3233", "3233", "Right MFCD", "OSB10"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3234", "3234", "Right MFCD", "OSB11"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3235", "3235", "Right MFCD", "OSB12"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3236", "3236", "Right MFCD", "OSB13"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3237", "3237", "Right MFCD", "OSB14"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3238", "3238", "Right MFCD", "OSB15"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3239", "3239", "Right MFCD", "OSB16"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3240", "3240", "Right MFCD", "OSB17"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3241", "3241", "Right MFCD", "OSB18"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3242", "3242", "Right MFCD", "OSB19"));
            AddFunction(new PushButton(this, MPCD_RIGHT, "3243", "3243", "Right MFCD", "OSB20"));
            AddFunction(new Axis(this, MPCD_RIGHT, "3195", "3195", 0.1d, 0d, 1d, "Right MFCD", "Off/Brightness Control"));

            #endregion

            #region UFC
            AddFunction(new PushButton(this, UFCCONTROL, "3302", "3302", "UFC", "1"));
            AddFunction(new PushButton(this, UFCCONTROL, "3303", "3303", "UFC", "2/N"));
            AddFunction(new PushButton(this, UFCCONTROL, "3304", "3304", "UFC", "3"));
            AddFunction(new PushButton(this, UFCCONTROL, "3306", "3306", "UFC", "4/W"));
            AddFunction(new PushButton(this, UFCCONTROL, "3307", "3307", "UFC", "5"));
            AddFunction(new PushButton(this, UFCCONTROL, "3308", "3308", "UFC", "6/E"));
            AddFunction(new PushButton(this, UFCCONTROL, "3310", "3310", "UFC", "7"));
            AddFunction(new PushButton(this, UFCCONTROL, "3311", "3311", "UFC", "8/S"));
            AddFunction(new PushButton(this, UFCCONTROL, "3312", "3312", "UFC", "9"));
            AddFunction(new PushButton(this, UFCCONTROL, "3315", "3315", "UFC", "0"));
            AddFunction(new PushButton(this, UFCCONTROL, "3316", "3316", "UFC", "."));
            AddFunction(new PushButton(this, UFCCONTROL, "3313", "3313", "UFC", "-"));
            AddFunction(new PushButton(this, UFCCONTROL, "3314", "3314", "UFC", "Enter"));
            AddFunction(new PushButton(this, UFCCONTROL, "3305", "3305", "UFC", "Clear"));
            AddFunction(new PushButton(this, UFCCONTROL, "3294", "3294", "UFC", "Timer"));
            AddFunction(new PushButton(this, UFCCONTROL, "3324", "3324", "UFC", "Altitude"));
            AddFunction(new PushButton(this, UFCCONTROL, "3318", "3318", "UFC", "IFF"));
            AddFunction(new PushButton(this, UFCCONTROL, "3319", "3319", "UFC", "TACAN"));
            AddFunction(new PushButton(this, UFCCONTROL, "3320", "3320", "UFC", "All Weather Landing"));
            AddFunction(new PushButton(this, UFCCONTROL, "3317", "3317", "UFC", "On/Off"));
            AddFunction(new PushButton(this, UFCCONTROL, "3325", "3325", "UFC", "Emmission Control"));
            AddFunction(new PushButton(this, UFCCONTROL, "3296", "3296", "UFC", "Target of Opportunity"));
            AddFunction(new PushButton(this, UFCCONTROL, "3322", "3322", "UFC", "Waypoint Overfly"));
            AddFunction(new PushButton(this, UFCCONTROL, "3321", "3321", "UFC", "Weapons"));
            AddFunction(new PushButton(this, UFCCONTROL, "3323", "3323", "UFC", "RADAR Beacon"));
            AddFunction(new PushButton(this, UFCCONTROL, "3297", "3297", "UFC", "I/P"));
            AddFunction(new PushButton(this, UFCCONTROL, "3309", "3309", "UFC", "Save"));
            AddFunction(new PushButton(this, LTWCA, "3198", "3198", "Caution/Warning", "Master Caution Button"));
            AddFunction(new FlagValue(this, "196", "Caution/Warning", "Master Caution", "Master Caution indicator"));
            AddFunction(new PushButton(this, LTWCA, "3199", "3199", "Caution/Warning", "Master Warning Button"));
            AddFunction(new FlagValue(this, "197", "Caution/Warning", "Master Warning", "Master warning indicator"));
            AddFunction(new Axis(this, UFCCONTROL, "3295", "3295", 0.1d, 0d, 1d, "UFC", "Display Brightness"));
            AddFunction(new Axis(this, UFCCONTROL, "3298", "3298", 0.1d, 0d, 1d, "UFC", "Comm 1 Volume"));
            AddFunction(new Axis(this, UFCCONTROL, "3299", "3299", 0.1d, 0d, 1d, "UFC", "Comm 2 Volume"));
            AddFunction(new Axis(this, UFCCONTROL, "3300", "3300", 0.1d, 0d, 1d, "UFC", "Comm 1 Channel selector"));
            AddFunction(new Axis(this, UFCCONTROL, "3301", "3301", 0.1d, 0d, 1d, "UFC", "Comm 2 Channel selector"));
            //       public IndicatorPushButton(BaseUDPInterface sourceInterface, string deviceId, string buttonId, string argId, string device, string name)
            //       public FlagValue(BaseUDPInterface sourceInterface, string id, string device, string name, string description)
            //       public PushButton(BaseUDPInterface sourceInterface, string deviceId, string buttonId, string argId, string device, string name)
            AddFunction(Switch.CreateThreeWaySwitch(this, HUDCONTROL, "3288", "3288", "0", "Norm", "0.5", "Reject 1", "1", "Reject 2", "HUD Control", "Declutter switch", "%1d"));
            AddFunction(new Axis(this, HUDCONTROL, "3289", "3289", 0.1d, 0d, 1d, "HUD Control", "Off/Brightness control"));
            AddFunction(Switch.CreateThreeWaySwitch(this, HUDCONTROL, "3290", "3290", "0", "Day", "0.5", "Auto", "1", "Night", "HUD Control", "Display Mode switch", "%1d"));
            AddFunction(new Axis(this, HUDCONTROL, "3291", "3291", 0.1d, 0d, 1d, "HUD Control", "Video Brightness"));
            AddFunction(new Axis(this, HUDCONTROL, "3292", "3292", 0.1d, 0d, 1d, "HUD Control", "Video Contrast"));
            AddFunction(Switch.CreateToggleSwitch(this, HUDCONTROL, "3293", "3293", "0", "RDR", "1", "Baro", "HUD Control", "Altimeter Mode Switch", "%1d"));
            #endregion

            #region Master Modes
            AddFunction(new PushButton(this, MSC, "3282", "3282", "Master Modes", "NAV Button"));
            AddFunction(new FlagValue(this, "283", "Master Modes", "Nav Indicator", "Nav Master Mode Indicator"));
            AddFunction(new PushButton(this, MSC, "3284", "3284", "Master Modes", "VSTOL Button"));
            AddFunction(new FlagValue(this, "285", "Master Modes", "VSTOL Indicator", "VSTOL Master Mode Indicator"));
            AddFunction(new PushButton(this, MSC, "3280", "3280", "Master Modes", "A/G Button"));
            AddFunction(new FlagValue(this, "281", "Master Modes", "A/G Indicator", "A/G Master Mode Indicator"));
            #endregion

            #region ODU
            AddFunction(new PushButton(this, ODUCONTROL, "3250", "3250", "ODU", "1"));
            AddFunction(new PushButton(this, ODUCONTROL, "3251", "3251", "ODU", "2"));
            AddFunction(new PushButton(this, ODUCONTROL, "3252", "3252", "ODU", "3"));
            AddFunction(new PushButton(this, ODUCONTROL, "3248", "3248", "ODU", "4"));
            AddFunction(new PushButton(this, ODUCONTROL, "3249", "3249", "ODU", "5"));
            #endregion

            #region Threat Indicators
            AddFunction(new FlagValue(this, "276", "Threat Indicators", "SAM", "SAM launch detected"));
            AddFunction(new FlagValue(this, "277", "Threat Indicators", "CW", "CW Ground Tracking (Continuous Wave) radar is locked on aircraft"));
            AddFunction(new FlagValue(this, "278", "Threat Indicators", "AI", "Air Intercept radar is locked on aircraft. Flashes if launch detected"));
            AddFunction(new FlagValue(this, "279", "Threat Indicators", "AAA", "AAA gun radar is locked on aircraft"));
            #endregion

            #region Caution Indicators
            AddFunction(new FlagValue(this, "326", "Caution Indicators", "L Fuel Indicator", ""));
            AddFunction(new FlagValue(this, "327", "Caution Indicators", "R fuel Indicator", ""));
            AddFunction(new FlagValue(this, "328", "Caution Indicators", "15 Sec Indicator", "JPT above normal lift rating"));
            AddFunction(new FlagValue(this, "329", "Caution Indicators", "MFS", "Manual Fuel System on"));
            AddFunction(new FlagValue(this, "330", "Caution Indicators", "Bingo", "Bingo Warning Light"));
            AddFunction(new FlagValue(this, "331", "Caution Indicators", "H2O", "Less than 15 secs water left"));
            #endregion

            #region Warning Indicators
            AddFunction(new FlagValue(this, "334", "Warning Indicators", "Fire", "Fire in engine"));
            AddFunction(new FlagValue(this, "335", "Warning Indicators", "LAW", "Low alt warning"));
            AddFunction(new FlagValue(this, "336", "Warning Indicators", "Flaps Warning Light", "Flap System Failure"));
            AddFunction(new FlagValue(this, "337", "Warning Indicators", "L Tank", "Left tank over pressure"));
            AddFunction(new FlagValue(this, "338", "Warning Indicators", "R Tank", "Right Tank Over pressure"));
            AddFunction(new FlagValue(this, "339", "Warning Indicators", "HYD", "Both hydraulics failed"));
            AddFunction(new FlagValue(this, "340", "Warning Indicators", "Gear", "Gear Warning Light"));
            AddFunction(new FlagValue(this, "341", "Warning Indicators", "OT", "Over temp JPT"));
            AddFunction(new FlagValue(this, "342", "Warning Indicators", "JPTL", "JPTL Control Fail"));
            AddFunction(new FlagValue(this, "343", "Warning Indicators", "EFC", "All Digital engine controls failed"));
            AddFunction(new FlagValue(this, "344", "Warning Indicators", "GEN", "AC Generator offline"));
            #endregion

            #region Refueling Indicators
            AddFunction(new FlagValue(this, "750", "Refueling Indicators", "Canopy Left", "Refueling Left Tank"));
            AddFunction(new FlagValue(this, "751", "Refueling Indicators", "Canopy Ready", "Refueling Ready light"));
            AddFunction(new FlagValue(this, "752", "Refueling Indicators", "Canopy Right", "Refuelng Right Light"));
            #endregion

            #region Fuel Quantity Indicator System
            AddFunction(new RotaryEncoder(this, FQIS, "3380", "-1", 1d, "Fuel Quantity", "Bingo Fuel Set Knob"));
            AddFunction(new Switch(this, FQIS, "3379", new SwitchPosition[] { new SwitchPosition("-0.99", "BIT", "3379"), new SwitchPosition("-0.66", "FEED", "3379"), new SwitchPosition("-0.33", "TOTAL", "3379"), new SwitchPosition("0.0", "INT", "3379"), new SwitchPosition("0.33", "WING", "3379"), new SwitchPosition("0.66", "INBD", "3379"), new SwitchPosition("0.99", "OUTBD", "3379") }, "Fuel Quantity", "Fuel Totaliser Selector", "%0.1f"));
            AddFunction(new Digits4Display(this, FQIS, "2011", "FQIS", "Left Tank display", "Fuel left tank quantity"));
            AddFunction(new Digits4Display(this, FQIS, "2012", "FQIS", "Right Tank display", "Fuel right tank quantity"));
            AddFunction(new Digits4Display(this, FQIS, "2013", "FQIS", "Bingo value display", "Fuel Bingo amount"));
            AddFunction(new FuelTotalDisplay(this));
            #endregion

            #region ECM
            AddFunction(new Switch(this, RWRCONTROL, "3273", new SwitchPosition[] { new SwitchPosition("0.0", "Off", "3273"), new SwitchPosition("0.3", "posn 1", "3273"), new SwitchPosition("0.4", "posn 2", "3273"), new SwitchPosition("0.5", "posn 3", "3273"), new SwitchPosition("0.6", "posn 4", "3273"), new SwitchPosition("0.7", "posn 5", "3273"), new SwitchPosition("0.8", "posn 6", "3273"), new SwitchPosition("0.9", "posn 7", "3273"), new SwitchPosition("1.0", "posn 8", "3273") }, "RWR / ECM", "Off/Volume", "%0.1f"));
            AddFunction(new Switch(this, EWS, "3274", new SwitchPosition[] { new SwitchPosition("0.0", "OFF", "3274"), new SwitchPosition("0.25", "AUTO", "3274"), new SwitchPosition("0.50", "UP", "3274"), new SwitchPosition("0.75", "Down", "3274"), new SwitchPosition("1.00", "RWR", "3274") }, "RWR / ECM", "Decoy Dispenser Control", "%0.1f"));
            AddFunction(new Switch(this, EWS, "3275", new SwitchPosition[] { new SwitchPosition("0.0", "OFF", "3275"), new SwitchPosition("0.25", "STBY", "3275"), new SwitchPosition("0.50", "BIT", "3275"), new SwitchPosition("0.75", "RPT", "3275"), new SwitchPosition("1.00", "RPT", "3275") }, "RWR / ECM", "Jammer Control", "%0.1f"));
            #endregion

            #region Advisory indicators
            AddFunction(new FlagValue(this, "560", "Advisory Indicators", "OXY", "OBOGS malfunction"));
            AddFunction(new FlagValue(this, "561", "Advisory Indicators", "WSHLD", "Windshield hot"));
            AddFunction(new FlagValue(this, "562", "Advisory Indicators", "HYD 1", "HYD 1 pressure ≤ 1400 psi"));
            AddFunction(new FlagValue(this, "563", "Advisory Indicators", "HYD 2", "HYD 2 pressure ≤ 1400 psi"));
            AddFunction(new FlagValue(this, "564", "Advisory Indicators", "L PUMP", "Left fuel boost pump pressure low"));
            AddFunction(new FlagValue(this, "565", "Advisory Indicators", "R PUMP", "Right fuel boost pump pressure low"));
            AddFunction(new FlagValue(this, "566", "Advisory Indicators", "L TRANS", "Low air pressure to the left feeder tank"));
            AddFunction(new FlagValue(this, "567", "Advisory Indicators", "R TRANS", "Low air pressure to the right feeder tank"));
            AddFunction(new FlagValue(this, "568", "Advisory Indicators", "FLAPS 1", "Flaps 1 channel failed"));
            AddFunction(new FlagValue(this, "569", "Advisory Indicators", "FLAPS 2", "Flaps 2 channel failed"));
            AddFunction(new FlagValue(this, "570", "Advisory Indicators", "AUT FLP", "Auto flap mode or ADC failed"));
            AddFunction(new FlagValue(this, "571", "Advisory Indicators", "PROP", "Fuel proportioner off or failed"));
            AddFunction(new FlagValue(this, "572", "Advisory Indicators", "LIDS", "LIDS not in correct position"));
            AddFunction(new FlagValue(this, "573", "Advisory Indicators", "OIL", "Oil pressure low"));
            AddFunction(new FlagValue(this, "574", "Advisory Indicators", "APU GEN", "APU selected and emergency generator failed"));
            AddFunction(new FlagValue(this, "575", "Advisory Indicators", "Blank 1", "Unused"));
            AddFunction(new FlagValue(this, "576", "Advisory Indicators", "GPS", "GPS not valid"));
            AddFunction(new FlagValue(this, "577", "Advisory Indicators", "DEP RES", "Departure resistance reduced"));
            AddFunction(new FlagValue(this, "578", "Advisory Indicators", "DC", "Main transformer-rectifier failed"));
            AddFunction(new FlagValue(this, "579", "Advisory Indicators", "STBY TRU", "Standby TRU inoperative or off line"));
            AddFunction(new FlagValue(this, "580", "Advisory Indicators", "CS COOL", "Cockpit avionics cooling fan failed"));
            AddFunction(new FlagValue(this, "581", "Advisory Indicators", "LOAD", "Fuel asymmetry over VL limit"));
            AddFunction(new FlagValue(this, "582", "Advisory Indicators", "CANOPY", "Canopy not closed and locked"));
            AddFunction(new FlagValue(this, "583", "Advisory Indicators", "INS", "INS aligning or failed"));
            AddFunction(new FlagValue(this, "584", "Advisory Indicators", "SKID", "Anti-Skid System Malfunction"));
            AddFunction(new FlagValue(this, "585", "Advisory Indicators", "EFC", "DECU 1 or DECU 2 has failed"));
            AddFunction(new FlagValue(this, "586", "Advisory Indicators", "NWS", "Nosewheel Steering malfunction"));
            AddFunction(new FlagValue(this, "587", "Advisory Indicators", "AFC", "AFC malfunction or AFC deselected"));
            AddFunction(new FlagValue(this, "588", "Advisory Indicators", "C*AUT", "Computed delivery mode (AUTO and CCIP) not available"));
            AddFunction(new FlagValue(this, "589", "Advisory Indicators", "H2O SEL", "Over 250 knots and water switch not OFF"));
            AddFunction(new FlagValue(this, "590", "Advisory Indicators", "APU", "APU operating"));
            AddFunction(new FlagValue(this, "591", "Advisory Indicators", "PITCH", "Pitch stab aug off or failed"));
            AddFunction(new FlagValue(this, "592", "Advisory Indicators", "IFF", "Mode 4 off, not zeroized or not responding"));
            AddFunction(new FlagValue(this, "593", "Advisory Indicators", "SPD BRK", "Gear up and speed brake extended. Gear down and speed brake not 250"));
            AddFunction(new FlagValue(this, "594", "Advisory Indicators", "DROOP", "Ailerons dropped"));
            AddFunction(new FlagValue(this, "595", "Advisory Indicators", "ROLL", "Roll stab aug off or failed"));
            AddFunction(new FlagValue(this, "596", "Advisory Indicators", "AFT BAY", "Aft avionics bay ECS failed"));
            AddFunction(new FlagValue(this, "597", "Advisory Indicators", "AV BIT", "Refuelng Right Light"));
            AddFunction(new FlagValue(this, "598", "Advisory Indicators", "Blank 2", "Unused"));
            AddFunction(new FlagValue(this, "599", "Advisory Indicators", "YAW", "Yaw stab aug off or failed"));
            AddFunction(new FlagValue(this, "600", "Advisory Indicators", "CW NOGO", "Jammer Failure. Cannot jam CW radars"));
            AddFunction(new FlagValue(this, "601", "Advisory Indicators", "P JAM", "Jammer Pod Active: Jamming Pulse-Doppler radar signals"));
            AddFunction(new FlagValue(this, "602", "Advisory Indicators", "JMR HOT", "Jammer pod overtemp"));
            AddFunction(new FlagValue(this, "603", "Advisory Indicators", "ENG EXC", "Engine overspeed, overtemperature or over g was detected"));
            AddFunction(new FlagValue(this, "604", "Advisory Indicators", "P NOGO", "Jammer Failure. Cannot jam Pulse-Doppler radars"));
            AddFunction(new FlagValue(this, "605", "Advisory Indicators", "CW JAM", "Jammer Pod Active: Jamming CW radar signals"));
            AddFunction(new FlagValue(this, "606", "Advisory Indicators", "REPLY", "IFF responding to Mode 4 interrogation"));
            #endregion

            #region Landing Gear
            AddFunction(new FlagValue(this, "446", "Landing Gear", "Gear - Lever", "Red Gear Lever"));
            AddFunction(new FlagValue(this, "462", "Landing Gear", "Nose Wrn", "Nose Gear Warning"));
            AddFunction(new FlagValue(this, "463", "Landing Gear", "Nose", "Nose Gear Ready"));
            AddFunction(new FlagValue(this, "464", "Landing Gear", "Left Wrn", "Left Wheel Warning"));
            AddFunction(new FlagValue(this, "465", "Landing Gear", "Left", "Left Wheel Ready"));
            AddFunction(new FlagValue(this, "466", "Landing Gear", "Right Wrn", "Right Wheel Warning"));
            AddFunction(new FlagValue(this, "467", "Landing Gear", "Right", "Right Wheel Ready"));
            //AddFunction(new FlagValue(this, "468", "Landing Gear", "Main Wrn", "Main Gear Warning"));
            //AddFunction(new FlagValue(this, "469", "Landing Gear", "Main", "Main Gear Ready"));
            AddFunction(new FlagValue(this, "469", "Landing Gear", "Main Wrn", "Main Gear Warning"));   // I think the codes are switched for this and might get corrected in future by Bazbam
            AddFunction(new FlagValue(this, "468", "Landing Gear", "Main", "Main Gear Ready"));         // I think the codes are switched for this and might get corrected in future by Bazbam
            AddFunction(Switch.CreateToggleSwitch(this, FLIGHTCONTROLS, "3461", "3461", "1", "Gear up", "0", "Gear down", "Landing Gear", "lever", "%1d"));
            #endregion

            #region Left Hand Advisory Indicators
            AddFunction(new FlagValue(this, "451", "LH Flaps & Water", "SEL indicator", "Combat thrust limiter selected"));
            AddFunction(new FlagValue(this, "452", "LH Flaps & Water", "CMBT indicator", "Combat thrust activated. Flashes after 2 ½ minutes"));
            AddFunction(new FlagValue(this, "453", "LH Flaps & Water", "STO indicator", "Flap switch in STOL"));
            AddFunction(Switch.CreateThreeWaySwitch(this, DECS, "3449", "3449", "1", "TO", "0.5", "Off", "0", "VSTOL", "LH Flaps & Water", "H2O Mode Switch", "%1d"));
            AddFunction(new PushButton(this, DECS, "3450", "3450", "LH Flaps & Water", "Combat Thrust Button"));
            AddFunction(Switch.CreateThreeWaySwitch(this, VREST, "3454", "3454", "1", "VSTOL", "0.5", "Auto", "0", "Cruise", "LH Flaps & Water", "Flaps Mode Switch", "%1d"));
            AddFunction(new Digits2Display(this, SMC, "2014", "LH Flaps & Water", "Flaps position", "Position of the flaps in degrees"));
            AddFunction(new PushButton(this, VREST, "3460", "3460", "LH Flaps & Water", "Flaps BIT"));
            AddFunction(Switch.CreateThreeWaySwitch(this, VREST, "3457", "3457", "0", "Off", "0.5", "On", "1", "Reset", "LH Flaps & Water", "Flaps Power Switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, FLIGHTCONTROLS, "3459", "3459", "1", "NWS", "0.5", "On", "0", "Test", "LH Flaps & Water", "Anti-Skid Switch", "%1d"));
            #endregion

            #region Stores Management Controller
            AddFunction(Switch.CreateToggleSwitch(this, SMC, "3287", "3287", "1", "Armed", "0", "Safe", "Stores Management", "Master Arm Switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3396", "3396", "1", "Up", "0", "Off", "-1", "Dn", "Stores Management", "Armament Mode control", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3397", "3397", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Fuzing control", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3398", "3398", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Quantity Tens", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3399", "3399", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Quantity Units", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3400", "3400", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Multiple Release", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3401", "3401", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Release interval hundreds", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3402", "3402", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Release interval tens", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, SMC, "3403", "3403", "1", "Increase", "0", "Off", "-1", "decrease", "Stores Management", "Armament Release interval units", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, SMC, "3420", "3420", "1", "Cooling", "0", "Off", "Stores Management", "IR Cool Switch", "%1d"));
            AddFunction(new PushButton(this, SMC, "3407", "3407", "Stores Management", "Select station 1"));
            AddFunction(new FlagValue(this, "406", "Stores Management", "Station 1 Selected", "Station 1 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3409", "3409", "Stores Management", "Select station 2"));
            AddFunction(new FlagValue(this, "408", "Stores Management", "Station 2 Selected", "station 2 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3411", "3411", "Stores Management", "Select station 3"));
            AddFunction(new FlagValue(this, "410", "Stores Management", "Station 3 Selected", "station 3 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3413", "3413", "Stores Management", "Select station 4"));
            AddFunction(new FlagValue(this, "412", "Stores Management", "Station 4 Selected", "station 4 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3415", "3415", "Stores Management", "Select station 5"));
            AddFunction(new FlagValue(this, "414", "Stores Management", "Station 5 Selected", "station 5 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3417", "3417", "Stores Management", "Select station 6"));
            AddFunction(new FlagValue(this, "416", "Stores Management", "Station 6 Selected", "station 6 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3419", "3419", "Stores Management", "Select station 7"));
            AddFunction(new FlagValue(this, "418", "Stores Management", "Station 7 Selected", "station 7 selected indicator"));
            AddFunction(new PushButton(this, SMC, "3286", "3286", "Stores Management", "Launch Flare Salvo"));
            AddFunction(new Switch(this, SMC, "3404", new SwitchPosition[] { new SwitchPosition("-1.0", "STA", "3404"), new SwitchPosition("-0.5", "STOR", "3404"), new SwitchPosition("0.0", "SAFE", "3404"), new SwitchPosition("0.5", "CMBT", "3404"), new SwitchPosition("1.0", "FUEL", "3404") }, "Stores Management", "Jettison Mode Selector", "%0.1f"));
            AddFunction(new PushButton(this, SMC, "3405", "3405", "Stores Management", "Jettison Stores"));
            AddFunction(new Switch(this, SMC, "3395", new SwitchPosition[] { new SwitchPosition("0.0", "Norm", "3395"), new SwitchPosition("0.33", "N/T", "3395"), new SwitchPosition("0.66", "N", "3395"), new SwitchPosition("1.0", "T", "3395") }, "Stores Management", "Manual Fuzing Release Control", "%0.1f"));
            AddFunction(new Digits3Display(this, SMC, "2020", "Stores Management", "Stores interval display", "Interval value in metres"));
            AddFunction(new Digits2Display(this, SMC, "2022", "Stores Management", "Stores quantity display", "Quantity of stores"));
            AddFunction(new SMCMultipleDisplay(this));
            //AddFunction(new Text(this, "2018", "Stores Management", "SMC mode", "Stores management mode in text form"));

            #endregion

            #region Engine Display Panel
            AddFunction(new ScaledNetworkValue(this, "271", 0.94d, "EDP", "Nozzle Position", "Current Nozzle position.", "", BindingValueUnits.Degrees));
            AddFunction(new PushButton(this, EDP, "3655", "3655", "EDP", "BIT"));
            AddFunction(new Digits2Display(this, EDP, "2006", "EDP", "H2O display", "Amount of H2O available"));
            AddFunction(new Digits4Display(this, EDP, "2002", "EDP", "RPM display", "Engine RPM percentage"));
            AddFunction(new Digits3Display(this, EDP, "2001", "EDP", "Duct pressure display", "Engine Duct pressure"));
            AddFunction(new Digits3Display(this, EDP, "2003", "EDP", "FF display", "Engine FF percentage"));
            AddFunction(new Digits3Display(this, EDP, "2004", "EDP", "JPT display", "Engine Jet pipe temperature"));
            AddFunction(new Digits2Display(this, EDP, "2005", "EDP", "Stabiliser display", "Amount of Stabiliser"));
            AddFunction(new FlagValue(this, "266", "EDP", "Stabilzer Arrow", "Up/Down Arrow for the stabilizer"));  // 266 returns -1 or 1  and 0 is a dash * * * Currently causing problems with the FlagValue!

            #endregion
            #region Brake / Hydraulic Pressures
            AddFunction(new Digits3Display(this, FLIGHTCONTROLS, "2015", "Brake/ Hydraulic", "Brake pressure display", "Brake pressure in psi"));
            AddFunction(new Digits3Display(this, FLIGHTCONTROLS, "2016", "Brake/ Hydraulic", "Hyd 1 pressure display", "Hydraulic system 1 pressure in psi"));
            AddFunction(new Digits3Display(this, FLIGHTCONTROLS, "2017", "Brake/ Hydraulic", "Hyd 2 pressure display", "Hydraulic system 2 pressure in psi"));
            // Brake accumulator pressure
            CalibrationPointCollectionDouble accummulatorScale = new CalibrationPointCollectionDouble(0d, 0d, 0.36d, 3600d);
            AddFunction(new ScaledNetworkValue(this, "559", accummulatorScale, "Brake/ Hydraulic", "Brake accummulator", "Brake accummulator pressure in psi 600 to 3600 psi", "", BindingValueUnits.PoundsPerSquareInch));
            //Cabin Altitude Pressure
            CalibrationPointCollectionDouble cabinScale = new CalibrationPointCollectionDouble(-0.003d, -300d, 0.5000d, 50000d);
            cabinScale.Add(new CalibrationPointDouble(0d, 0d));
            AddFunction(new ScaledNetworkValue(this, "607", cabinScale, "Brake/ Hydraulic", "Cabin Altitude", "Cabin altitude pressue in feet 0 to +50000.", "", BindingValueUnits.Feet));

            #endregion

            #region Electrical Panel
            //Battery
            CalibrationPointCollectionDouble batteryScale = new CalibrationPointCollectionDouble(0.0d, 0d, 0.30d, 30d);
            AddFunction(new ScaledNetworkValue(this, "608", batteryScale, "Electrical", "Battery Voltage", "Voltage of battery 15v to 30v", "", BindingValueUnits.Volts));

            AddFunction(Switch.CreateThreeWaySwitch(this, ELECTRIC, "3613", "3613", "1", "On", "0.5", "Off", "0", "Alert", "Electrical", "Battery switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ELECTRIC, "3612", "3612", "1", "On", "0.5", "Off", "0", "Test", "Electrical", "Generator switch", "%1d"));
            AddFunction(Switch.CreateToggleSwitch(this, ELECTRIC, "3611", "3611", "0", "Off", "1", "Start", "Electrical", "Engine start switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ELECTRIC, "3610", "3610", "1", "Reset", "0.5", "On", "0", "Off", "Electrical", "APU generator switch", "%1d"));
            AddFunction(Switch.CreateThreeWaySwitch(this, ELECTRIC, "3609", "3609", "1", "Main", "0.5", "Off", "0", "Standby", "Electrical", "DC Test switch", "%1d"));

            #endregion


            #region Flight Instruments
            AddFunction(new Altimeter(this, "Altimeter", "2051", "Altitude", "Barometric altitude above sea level of the aircraft.", "Value is adjusted per altimeter pressure setting.", "2059", "Pressure", "Manually set barometric altitude.", ""));
            AddFunction(new RotaryEncoder(this, ADC, "3653", "3653", 0.04d, "Altimeter", "Pressure"));
            //AddFunction(new Axis(this, ADC, "3653", "3653", 0.1d,0d,1d, "Altimeter", "Pressure adjust",true, "%1d"));

            CalibrationPointCollectionDouble vviScale = new CalibrationPointCollectionDouble(-0.6d, -6000d, 0.6d, 6000d);
            vviScale.Add(new CalibrationPointDouble(0d, 0d));
            AddFunction(new ScaledNetworkValue(this, "362", vviScale, "Flight Instruments", "VVI", "Vertical velocity indicator -6000 to +6000.", "", BindingValueUnits.FeetPerMinute));

            CalibrationPointCollectionDouble AoAScale = new CalibrationPointCollectionDouble(-0.05d, -5d, 0.20d, 20d);
            AoAScale.Add(new CalibrationPointDouble(0d, 0d));
            AddFunction(new ScaledNetworkValue(this, "361", AoAScale, "Flight Instruments", "Angle of Attack", "Current angle of attack of the aircraft.", "", BindingValueUnits.Degrees));
            AddFunction(new FlagValue(this, "360", "Flight Instruments", "AOA", "Off Flag"));

            CalibrationPointCollectionDouble airspeedScale = new CalibrationPointCollectionDouble(0.0d, 0.0d, 1.0d, 1000d);
            AddFunction(new ScaledNetworkValue(this, "346", airspeedScale, "Flight Instruments", "IAS Airspeed", "Current indicated air speed of the aircraft.", "", BindingValueUnits.Knots));
            AddFunction(new Axis(this, NAV_INS, "3364", "3364", 0.1d, 0d, 1d, "NAV course", "Course Setting", true, "%1d"));

            //AddFunction(new ScaledNetworkValue(this, "17", -90d, "ADI", "Pitch", "Current pitch displayed on the ADI.", "", BindingValueUnits.Degrees));
            //AddFunction(new ScaledNetworkValue(this, "18", 180d, "ADI", "Bank", "Current bank displayed on the ADI.", "", BindingValueUnits.Degrees));
            //AddFunction(new NetworkValue(this, "24", "ADI", "Slip Ball", "Current position of the slip ball relative to the center of the tube.", "(-1 to 1) -1 is full left and 1 is full right.", BindingValueUnits.Numeric));
            //AddFunction(new NetworkValue(this, "23", "ADI", "Turn Needle", "Position of the turn needle.", "(-1 to 1)", BindingValueUnits.Numeric));
            //AddFunction(new FlagValue(this, "25", "ADI", "Attitude Warning Flag", "Indicates that the ADI has lost electrical power or otherwise been disabled."));
            //AddFunction(new FlagValue(this, "19", "ADI", "Course Warning Flag", "Indicates thatn an operative ILS or TACAN signal is received."));
            //AddFunction(new FlagValue(this, "26", "ADI", "Glide Slope Warning Flag", "Indicates that the ADI is not recieving a ILS glide slope signal."));
            //AddFunction(new NetworkValue(this, "20", "ADI", "Bank Steering Bar Offset", "Location of bank steering bar relative to the middle of the ADI.", "(-1 to 1) -1 is full left and 1 is full right.", BindingValueUnits.Numeric));
            //AddFunction(new NetworkValue(this, "21", "ADI", "Pitch Steering Bar Offset", "Location of pitch steering bar relative to the middle of the ADI.", "(-1 to 1) 1 is full up and -1 is full down.", BindingValueUnits.Numeric));
            //AddFunction(new NetworkValue(this, "27", "ADI", "Glide Slope Indicator", "Location of the glide slope indicator relative to the middle of the slope deviation scale.", "(-1 to 1) 1 is full up and -1 is full down.", BindingValueUnits.Numeric));
            //AddFunction(new Axis(this, ADI, BUTTON_1, "22", 0.05d, -0.5d, 0.5d, "ADI", "Pitch Trim Knob"));

            AddFunction(new ScaledNetworkValue(this, "349", 90d, "Flight Instruments", "SAI Pitch", "Current pitch displayed on the SAI.", "", BindingValueUnits.Degrees));
            AddFunction(new ScaledNetworkValue(this, "348", -180d, "Flight Instruments", "SAI Bank", "Current bank displayed on the SAI.", "", BindingValueUnits.Degrees));
            AddFunction(new FlagValue(this, "347", "Flight Instruments", "SAI Warning Flag", "Displayed when SAI is caged or non-functional."));
            //AddFunction(new RotaryEncoder(this, FLIGHTCONTROLS, BUTTON_3, "66", 0.1d, "SAI", "Pitch Trim / Cage"));
            //AddFunction(new NetworkValue(this, "715", "SAI", "Pitch Adjust", "Current pitch adjustment setting", "0 to 1", BindingValueUnits.Numeric));


            #endregion
        }