コード例 #1
0
 private void PopulateComboBoxInterfaceType(DCSBIOSInput dcsbiosInput)
 {
     try
     {
         ComboBoxInterfaceType.SelectionChanged -= ComboBoxInterfaceType_OnSelectionChanged;
         ComboBoxInterfaceType.Items.Clear();
         foreach (var dcsbiosInputObject in dcsbiosInput.DCSBIOSInputObjects)
         {
             var comboBoxItem = new ComboBoxItem();
             comboBoxItem.Content = dcsbiosInputObject.Interface.ToString();
             ComboBoxInterfaceType.Items.Add(comboBoxItem);
         }
         if (dcsbiosInput.SelectedDCSBIOSInput != null)
         {
             ComboBoxInterfaceType.SelectedValue = dcsbiosInput.SelectedDCSBIOSInput.Interface.ToString();
         }
         else
         {
             ComboBoxInterfaceType.SelectedValue = dcsbiosInput.DCSBIOSInputObjects[0].Interface.ToString();
         }
     }
     finally
     {
         ComboBoxInterfaceType.SelectionChanged += ComboBoxInterfaceType_OnSelectionChanged;
     }
 }
コード例 #2
0
 public DCSBiosInputWindow(string description, DCSBIOSInput dcsBiosInput)
 {
     InitializeComponent();
     _description     = description;
     _dcsBiosInput    = dcsBiosInput;
     _dcsbiosControl  = DCSBIOSControlLocator.GetControl(_dcsBiosInput.ControlId);
     _dcsbiosControls = DCSBIOSControlLocator.GetInputControls();
     PopulateComboBoxInterfaceType(_dcsBiosInput);
 }
コード例 #3
0
        internal override void ImportSettings(string settings)
        {
            if (string.IsNullOrEmpty(settings))
            {
                throw new ArgumentException("Import string empty. (DCSBIOSBindingPZ70)");
            }

            if (settings.StartsWith("MultiPanelDCSBIOSControl{"))
            {
                // MultiPanelDCSBIOSControl{HDG}\\o/{1LCD_WHEEL_DEC|DCS-BIOS}\\o/\\o/DCSBIOSInput{AAP_CDUPWR|SET_STATE|1|0}\\o/\\\\?\\hid#vid_06a3&pid_0d06#9&244b4bcc&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\\o/PanelSettingsVersion=2X"
                var parameters = settings.Split(new[] { SaitekConstants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries);

                // MultiPanelDCSBIOSControl{ALT}
                var param0 = parameters[0].Replace("MultiPanelDCSBIOSControl{", string.Empty).Replace("}", string.Empty);
                _pz70DialPosition = (PZ70DialPosition)Enum.Parse(typeof(PZ70DialPosition), param0);

                // {1KNOB_ALT}
                // or
                // {1KNOB_ALT|Landing gear up and blablabla description}
                var param1 = parameters[1].Replace("{", string.Empty).Replace("}", string.Empty);

                // 1KNOB_ALT
                // or
                // 1KNOB_ALT|Landing gear up and blablabla description
                WhenTurnedOn = (param1.Substring(0, 1) == "1");
                if (param1.Contains("|"))
                {
                    // 1KNOB_ALT|Landing gear up and blablabla description
                    param1 = param1.Substring(1);

                    // KNOB_ALT|Landing gear up and blablabla description
                    var stringArray = param1.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    _multiPanelPZ70Knob = (MultiPanelPZ70Knobs)Enum.Parse(typeof(MultiPanelPZ70Knobs), stringArray[0]);
                    Description         = stringArray[1];
                }
                else
                {
                    param1 = param1.Substring(1);
                    _multiPanelPZ70Knob = (MultiPanelPZ70Knobs)Enum.Parse(typeof(MultiPanelPZ70Knobs), param1);
                }

                // The rest of the array besides last entry are DCSBIOSInput
                // DCSBIOSInput{AAP_EGIPWR|FIXED_STEP|INC}
                DCSBIOSInputs = new List <DCSBIOSInput>();
                for (var i = 0; i < parameters.Length; i++)
                {
                    if (parameters[i].StartsWith("DCSBIOSInput{"))
                    {
                        var dcsbiosInput = new DCSBIOSInput();
                        dcsbiosInput.ImportString(parameters[i]);
                        DCSBIOSInputs.Add(dcsbiosInput);
                    }
                }
            }
        }
コード例 #4
0
        internal override void ImportSettings(string settings)
        {
            if (string.IsNullOrEmpty(settings))
            {
                throw new ArgumentException("Import string empty. (DCSBIOSBindingPZ55)");
            }

            if (settings.StartsWith("SwitchPanelDCSBIOSControl{"))
            {
                // SwitchPanelDCSBIOSControl{1KNOB_ENGINE_OFF}\o/DCSBIOSInput{AAP_STEER|SET_STATE|2}\o/DCSBIOSInput{BAT_PWR|INC|2}\o/\\?\hid#vid_06a3&pid_0d67#9&231fd360&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
                var parameters = settings.Split(new[] { SaitekConstants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries);

                // SwitchPanelDCSBIOSControl{1KNOB_ENGINE_LEFT}
                var param0 = parameters[0].Substring(parameters[0].IndexOf("{", StringComparison.InvariantCulture) + 1);

                // 1KNOB_ENGINE_LEFT}
                param0 = param0.Remove(param0.Length - 1, 1);

                // 1KNOB_ENGINE_LEFT
                WhenOnTurnedOn = (param0.Substring(0, 1) == "1");
                if (param0.Contains("|"))
                {
                    // 1KNOB_ALT|Landing gear up and blablabla description
                    param0 = param0.Substring(1);

                    // KNOB_ALT|Landing gear up and blablabla description
                    var stringArray = param0.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    _switchPanelPZ55Key = (SwitchPanelPZ55Keys)Enum.Parse(typeof(SwitchPanelPZ55Keys), stringArray[0]);
                    Description         = stringArray[1];
                }
                else
                {
                    param0 = param0.Substring(1);
                    _switchPanelPZ55Key = (SwitchPanelPZ55Keys)Enum.Parse(typeof(SwitchPanelPZ55Keys), param0);
                }

                // The rest of the array besides last entry are DCSBIOSInput
                // DCSBIOSInput{AAP_EGIPWR|FIXED_STEP|INC}
                DCSBIOSInputs = new List <DCSBIOSInput>();
                for (var i = 0; i < parameters.Length; i++)
                {
                    if (parameters[i].StartsWith("DCSBIOSInput{"))
                    {
                        var dcsbiosInput = new DCSBIOSInput();
                        dcsbiosInput.ImportString(parameters[i]);
                        DCSBIOSInputs.Add(dcsbiosInput);
                    }
                }
            }
        }
コード例 #5
0
        public void DCSBIOSInput_MustBe_Clonable()
        {
            DCSBIOSInput source = new();

            source.ControlId          = _sringValue1;
            source.Delay              = _intValue1;
            source.ControlDescription = _sringValue2;

            DCSBIOSInput cloned = source.CloneJson();

            Assert.NotNull(cloned);
            Assert.Equal(_sringValue1, cloned.ControlId);
            Assert.Equal(_intValue1, cloned.Delay);
            Assert.Equal(_sringValue2, cloned.ControlDescription);
        }
コード例 #6
0
        internal void ImportSettings(string settings)
        {
            if (string.IsNullOrEmpty(settings))
            {
                throw new ArgumentException("Import string empty. (DCSBIOSBindingPZ70)");
            }
            if (settings.StartsWith("MultiPanelDCSBIOSControl{"))
            {
                //MultiPanelDCSBIOSControl{1KNOB_ALT}\o/DCSBIOSInput{AAP_STEER|SET_STATE|2}\o/\\?\hid#vid_06a3&pid_0d67#9&231fd360&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
                var parameters = settings.Split(new[] { SeparatorChars }, StringSplitOptions.RemoveEmptyEntries);

                //MultiPanelDCSBIOSControl{1KNOB_ALT}
                //or
                //MultiPanelDCSBIOSControl{1KNOB_ALT|Landing gear up and blablabla description}
                var param0 = parameters[0].Substring(parameters[0].IndexOf("{", StringComparison.InvariantCulture) + 1);
                //1KNOB_ALT}
                param0 = param0.Remove(param0.Length - 1, 1);
                //1KNOB_ALT
                //or
                //1KNOB_ALT|Landing gear up and blablabla description
                _whenOnTurnedOn = (param0.Substring(0, 1) == "1");
                if (param0.Contains("|"))
                {
                    //1KNOB_ALT|Landing gear up and blablabla description
                    param0 = param0.Substring(1);
                    //KNOB_ALT|Landing gear up and blablabla description
                    var stringArray = param0.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    _multiPanelPZ70Knob = (MultiPanelPZ70Knobs)Enum.Parse(typeof(MultiPanelPZ70Knobs), stringArray[0]);
                    _description        = stringArray[1];
                }
                else
                {
                    param0 = param0.Substring(1);
                    _multiPanelPZ70Knob = (MultiPanelPZ70Knobs)Enum.Parse(typeof(MultiPanelPZ70Knobs), param0);
                }
                //The rest of the array besides last entry are DCSBIOSInput
                //DCSBIOSInput{AAP_EGIPWR|FIXED_STEP|INC}
                _dcsbiosInputs = new List <DCSBIOSInput>();
                for (int i = 1; i < parameters.Length - 1; i++)
                {
                    var dcsbiosInput = new DCSBIOSInput();
                    dcsbiosInput.ImportString(parameters[i]);
                    _dcsbiosInputs.Add(dcsbiosInput);
                }
            }
        }
コード例 #7
0
        internal override void ImportSettings(string settings)
        {
            if (string.IsNullOrEmpty(settings))
            {
                throw new ArgumentException("Import string empty. (DCSBIOSBindingPZ69)");
            }

            if (settings.StartsWith("RadioPanelDCSBIOSControl{"))
            {
                //RadioPanelDCSBIOSControl{COM1}\\o/{1UpperSmallFreqWheelInc|DCS-BIOS}\\o/\\o/DCSBIOSInput{AAP_CDUPWR|SET_STATE|1|0}\\o/\\\\?\\hid#vid_06a3&pid_0d06#9&244b4bcc&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\\o/PanelSettingsVersion=2X"
                var parameters = settings.Split(new[] { SaitekConstants.SEPARATOR_SYMBOL }, StringSplitOptions.RemoveEmptyEntries);

                //RadioPanelDCSBIOSControl{COM1}
                var param0 = parameters[0].Replace("RadioPanelDCSBIOSControl{", "").Replace("}", "");
                _pz69DialPosition = (PZ69DialPosition)Enum.Parse(typeof(PZ69DialPosition), param0);

                var param1 = parameters[1].Replace("{", "").Replace("}", "");
                WhenTurnedOn = (param1.Substring(0, 1) == "1");
                if (param1.Contains("|"))
                {
                    param1 = param1.Substring(1);
                    var stringArray = param1.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    _panelPZ69Knob = (RadioPanelPZ69KnobsEmulator)Enum.Parse(typeof(RadioPanelPZ69KnobsEmulator), stringArray[0]);
                    Description    = stringArray[1];
                }
                else
                {
                    param1         = param1.Substring(1);
                    _panelPZ69Knob = (RadioPanelPZ69KnobsEmulator)Enum.Parse(typeof(RadioPanelPZ69KnobsEmulator), param1);
                }

                //The rest of the array besides last entry are DCSBIOSInput
                //DCSBIOSInput{AAP_EGIPWR|FIXED_STEP|INC}
                DCSBIOSInputs = new List <DCSBIOSInput>();
                for (var i = 2; i < parameters.Length - 1; i++)
                {
                    if (parameters[i].StartsWith("DCSBIOSInput{"))
                    {
                        var dcsbiosInput = new DCSBIOSInput();
                        dcsbiosInput.ImportString(parameters[i]);
                        DCSBIOSInputs.Add(dcsbiosInput);
                    }
                }
            }
        }
コード例 #8
0
        internal void ImportSettings(string settings)
        {
            if (string.IsNullOrEmpty(settings))
            {
                throw new ArgumentException("Import string empty. (DCSBIOSBindingFIP)");
            }
            if (settings.StartsWith("FIPPanelDCSBIOSControl{"))
            {
                //FIPPanelDCSBIOSControl{1SOFTBUTTON_1}\o/DCSBIOSInput{AAP_STEER|SET_STATE|2}\o/DCSBIOSInput{BAT_PWR|INC|2}
                var parameters = settings.Split(new[] { SeparatorChars }, StringSplitOptions.RemoveEmptyEntries);

                //FIPPanelDCSBIOSControl{1SOFTBUTTON_1}
                var param0 = parameters[0].Substring(parameters[0].IndexOf("{", StringComparison.InvariantCulture) + 1);
                //1SOFTBUTTON_1}
                param0 = param0.Remove(param0.Length - 1, 1);
                //1SOFTBUTTON_1
                _whenOnTurnedOn = (param0.Substring(0, 1) == "1");
                if (param0.Contains("|"))
                {
                    //1SOFTBUTTON_1|Landing gear up and blablabla description
                    param0 = param0.Substring(1);
                    //SOFTBUTTON_1|Landing gear up and blablabla description
                    var stringArray = param0.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    _fipPanelButton = (FIPPanelButtons)Enum.Parse(typeof(FIPPanelButtons), stringArray[0]);
                    _description    = stringArray[1];
                }
                else
                {
                    param0          = param0.Substring(1);
                    _fipPanelButton = (FIPPanelButtons)Enum.Parse(typeof(FIPPanelButtons), param0);
                }
                //The rest of the array besides last entry are DCSBIOSInput
                //DCSBIOSInput{AAP_EGIPWR|FIXED_STEP|INC}
                _dcsbiosInputs = new List <DCSBIOSInput>();
                for (int i = 1; i < parameters.Length - 1; i++)
                {
                    var dcsbiosInput = new DCSBIOSInput();
                    dcsbiosInput.ImportString(parameters[i]);
                    _dcsbiosInputs.Add(dcsbiosInput);
                }
            }
        }
コード例 #9
0
 private void DataGridValues_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         if (_dataGridValues.SelectedItems.Count == 1)
         {
             _dcsbiosControl = (DCSBIOSControl)_dataGridValues.SelectedItem;
             _dcsBiosInput   = new DCSBIOSInput();
             _dcsBiosInput.Consume(_dcsbiosControl);
             _dcsBiosInput.SetSelectedInputBasedOnInterfaceType(GetChosenInterfaceType());
             PopulateComboBoxInterfaceType(_dcsBiosInput);
             //TextBoxInputTypeDescription.Text = _dcsBiosInput.GetDescriptionForInterface(GetChosenInterfaceType());
             //TextBoxMaxValue.Text = _dcsBiosInput.GetMaxValueForInterface(GetChosenInterfaceType()).ToString();
             ShowValues2();
         }
         SetFormState();
     }
     catch (Exception ex)
     {
         Common.ShowErrorMessageBox(1007, ex);
     }
 }
コード例 #10
0
 private void DataGridValues_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     try
     {
         if (_dataGridValues.SelectedItems.Count == 1)
         {
             _dcsbiosControl = (DCSBIOSControl)_dataGridValues.SelectedItem;
             _dcsBiosInput   = new DCSBIOSInput();
             _dcsBiosInput.Consume(_dcsbiosControl);
             _dcsBiosInput.SetSelectedInputBasedOnInterfaceType(GetChosenInterfaceType());
             PopulateComboBoxInterfaceType(_dcsBiosInput);
             //TextBoxInputTypeDescription.Text = _dcsBiosInput.GetDescriptionForInterface(GetChosenInterfaceType());
             //TextBoxMaxValue.Text = _dcsBiosInput.GetMaxValueForInterface(GetChosenInterfaceType()).ToString();
             ShowValues2();
             SetFormState();
         }
         _popupSearch.IsOpen = false;
         SetFormState();
     }
     catch (Exception ex)
     {
         Common.ShowErrorMessageBox(ex);
     }
 }
コード例 #11
0
 private void ClearAll()
 {
     _dcsbiosControl = null;
     _dcsBiosInput   = null;
 }