Exemple #1
0
 public RadioPanelKnobMiG21Bis(int group, int mask, bool isOn, RadioPanelPZ69KnobsMiG21Bis radioPanelPZ69Knob)
 {
     Group = group;
     Mask  = mask;
     IsOn  = isOn;
     RadioPanelPZ69Knob = radioPanelPZ69Knob;
 }
        private void SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsMiG21Bis knob)
        {
            if (!DataHasBeenReceivedFromDCSBIOS)
            {
                //Don't start communication with DCS-BIOS before we have had a first contact from "them"
                return;
            }
            switch (knob)
            {
            case RadioPanelPZ69KnobsMiG21Bis.UpperFreqSwitch:
            {
                switch (_currentUpperRadioMode)
                {
                case CurrentMiG21BisRadioMode.Radio:
                {
                    DCSBIOS.Send(RadioOnOffToggleCommand);
                    break;
                }

                case CurrentMiG21BisRadioMode.RSBN:
                {
                    DCSBIOS.Send(SelectRSBNCommand);
                    break;
                }

                case CurrentMiG21BisRadioMode.ARC:
                {
                    DCSBIOS.Send(SelectARCCommand);
                    break;
                }
                }
                break;
            }

            case RadioPanelPZ69KnobsMiG21Bis.LowerFreqSwitch:
            {
                switch (_currentLowerRadioMode)
                {
                case CurrentMiG21BisRadioMode.Radio:
                {
                    DCSBIOS.Send(RadioOnOffToggleCommand);
                    break;
                }

                case CurrentMiG21BisRadioMode.RSBN:
                {
                    DCSBIOS.Send(SelectRSBNCommand);
                    break;
                }

                case CurrentMiG21BisRadioMode.ARC:
                {
                    DCSBIOS.Send(SelectARCCommand);
                    break;
                }
                }
                break;
            }
            }
        }
Exemple #3
0
        public void ImportString(string str)
        {
            if (string.IsNullOrEmpty(str))
            {
                throw new ArgumentException("Import string empty. (RadioPanelKnob)");
            }
            if (!str.StartsWith("RadioPanelKnob{") || !str.EndsWith("}"))
            {
                throw new ArgumentException("Import string format exception. (RadioPanelKnob) >" + str + "<");
            }
            //RadioPanelKnob{SWITCHKEY_MASTER_ALT}
            var dataString = str.Remove(0, 15);

            //SWITCHKEY_MASTER_ALT}
            dataString = dataString.Remove(dataString.Length - 1, 1);
            //SWITCHKEY_MASTER_ALT
            RadioPanelPZ69Knob = (RadioPanelPZ69KnobsMiG21Bis)Enum.Parse(typeof(RadioPanelPZ69KnobsMiG21Bis), dataString.Trim());
        }
        private void SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsMiG21Bis knob)
        {
            if (IgnoreSwitchButtonOnce() && (knob == RadioPanelPZ69KnobsMiG21Bis.UpperFreqSwitch || knob == RadioPanelPZ69KnobsMiG21Bis.LowerFreqSwitch))
            {
                //Don't do anything on the very first button press as the panel sends ALL
                //switches when it is manipulated the first time
                //This would cause unintended sync.
                return;
            }
            if (!DataHasBeenReceivedFromDCSBIOS)
            {
                //Don't start communication with DCS-BIOS before we have had a first contact from "them"
                return;
            }
            switch (knob)
            {
            case RadioPanelPZ69KnobsMiG21Bis.UpperFreqSwitch:
            {
                switch (_currentUpperRadioMode)
                {
                case CurrentMiG21BisRadioMode.Radio:
                {
                    DCSBIOS.Send(RADIO_ON_OFF_TOGGLE_COMMAND);
                    break;
                }

                case CurrentMiG21BisRadioMode.RSBN:
                {
                    DCSBIOS.Send(SELECT_RSBN_COMMAND);
                    break;
                }

                case CurrentMiG21BisRadioMode.ARC:
                {
                    DCSBIOS.Send(SELECT_ARC_COMMAND);
                    break;
                }
                }
                break;
            }

            case RadioPanelPZ69KnobsMiG21Bis.LowerFreqSwitch:
            {
                switch (_currentLowerRadioMode)
                {
                case CurrentMiG21BisRadioMode.Radio:
                {
                    DCSBIOS.Send(RADIO_ON_OFF_TOGGLE_COMMAND);
                    break;
                }

                case CurrentMiG21BisRadioMode.RSBN:
                {
                    DCSBIOS.Send(SELECT_RSBN_COMMAND);
                    break;
                }

                case CurrentMiG21BisRadioMode.ARC:
                {
                    DCSBIOS.Send(SELECT_ARC_COMMAND);
                    break;
                }
                }
                break;
            }
            }
        }