Beispiel #1
0
        public void PZ69KnobChanged(bool isFirstReport, IEnumerable <object> hashSet)
        {
            if (isFirstReport)
            {
                return;
            }

            try
            {
                Interlocked.Increment(ref _doUpdatePanelLCD);
                lock (LockLCDUpdateObject)
                {
                    foreach (var radioPanelKnobObject in hashSet)
                    {
                        var radioPanelKnob = (RadioPanelKnobAJS37)radioPanelKnobObject;

                        switch (radioPanelKnob.RadioPanelPZ69Knob)
                        {
                        case RadioPanelPZ69KnobsAJS37.UPPER_FR22:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.FR22);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_FR24:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.FR24);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_TILS:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.TILS);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FR22:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.FR22);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FR24:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.FR24);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_TILS:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.TILS);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE0:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE1:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE2:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE3:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE0:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE1:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE2:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE3:
                        {
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_DEC:
                        {
                            // Ignore
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH:
                        {
                            if (_currentUpperRadioMode == CurrentAJS37RadioMode.FR22)
                            {
                                if (radioPanelKnob.IsOn)
                                {
                                    _fr22DialSideSelected = _fr22DialSideSelected == FR22DialSideSelected.Left ? FR22DialSideSelected.Right : FR22DialSideSelected.Left;
                                }
                            }
                            else if (_currentUpperRadioMode == CurrentAJS37RadioMode.FR24 && radioPanelKnob.IsOn)
                            {
                            }
                            else if (_currentUpperRadioMode == CurrentAJS37RadioMode.TILS && radioPanelKnob.IsOn)
                            {
                                DCSBIOS.Send(TILS_CHANNEL_LAYER_DIAL_COMMAND_TOGGLE);
                            }
                            else if (radioPanelKnob.IsOn)
                            {
                                SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH);
                            }

                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH:
                        {
                            if (_currentLowerRadioMode == CurrentAJS37RadioMode.FR22)
                            {
                                if (radioPanelKnob.IsOn)
                                {
                                    _fr22DialSideSelected = _fr22DialSideSelected == FR22DialSideSelected.Left ? FR22DialSideSelected.Right : FR22DialSideSelected.Left;
                                }
                            }
                            else if (_currentLowerRadioMode == CurrentAJS37RadioMode.FR24 && radioPanelKnob.IsOn)
                            {
                            }
                            else if (_currentLowerRadioMode == CurrentAJS37RadioMode.TILS && radioPanelKnob.IsOn)
                            {
                                DCSBIOS.Send(TILS_CHANNEL_LAYER_DIAL_COMMAND_TOGGLE);
                            }
                            else if (radioPanelKnob.IsOn)
                            {
                                SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH);
                            }

                            break;
                        }
                        }

                        if (PluginManager.PlugSupportActivated && PluginManager.HasPlugin())
                        {
                            PluginManager.DoEvent(DCSFPProfile.SelectedProfile.Description, HIDInstance, PluginGamingPanelEnum.PZ69RadioPanel_PreProg_AJS37, (int)radioPanelKnob.RadioPanelPZ69Knob, radioPanelKnob.IsOn, null);
                        }
                    }

                    AdjustFrequency(hashSet);
                }
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }
Beispiel #2
0
        public void PZ69KnobChanged(bool isFirstReport, IEnumerable <object> hashSet)
        {
            try
            {
                Interlocked.Add(ref _doUpdatePanelLCD, 1);
                lock (LockLCDUpdateObject)
                {
                    foreach (var radioPanelKnobObject in hashSet)
                    {
                        var radioPanelKnob = (RadioPanelKnobAJS37)radioPanelKnobObject;

                        switch (radioPanelKnob.RadioPanelPZ69Knob)
                        {
                        case RadioPanelPZ69KnobsAJS37.UPPER_FR22:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.FR22);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_FR24:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.FR24);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_TILS:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.TILS);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FR22:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.FR22);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FR24:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.FR24);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_TILS:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.TILS);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE0:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE1:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE2:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE3:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE0:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE1:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE2:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE3:
                        {
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_DEC:
                        {
                            //Ignore
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH:
                        {
                            if (_currentUpperRadioMode == CurrentAJS37RadioMode.FR22)
                            {
                                if (radioPanelKnob.IsOn)
                                {
                                    _fr22DialSideSelected = _fr22DialSideSelected == FR22DialSideSelected.Left ? FR22DialSideSelected.Right : FR22DialSideSelected.Left;
                                }
                            }
                            else if (_currentUpperRadioMode == CurrentAJS37RadioMode.FR24 && radioPanelKnob.IsOn)
                            {
                            }
                            else if (_currentUpperRadioMode == CurrentAJS37RadioMode.TILS && radioPanelKnob.IsOn)
                            {
                                DCSBIOS.Send(TILS_CHANNEL_LAYER_DIAL_COMMAND_TOGGLE);
                            }
                            else if (radioPanelKnob.IsOn)
                            {
                                SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH:
                        {
                            if (_currentLowerRadioMode == CurrentAJS37RadioMode.FR22)
                            {
                                if (radioPanelKnob.IsOn)
                                {
                                    _fr22DialSideSelected = _fr22DialSideSelected == FR22DialSideSelected.Left ? FR22DialSideSelected.Right : FR22DialSideSelected.Left;
                                }
                            }
                            else if (_currentLowerRadioMode == CurrentAJS37RadioMode.FR24 && radioPanelKnob.IsOn)
                            {
                            }
                            else if (_currentLowerRadioMode == CurrentAJS37RadioMode.TILS && radioPanelKnob.IsOn)
                            {
                                DCSBIOS.Send(TILS_CHANNEL_LAYER_DIAL_COMMAND_TOGGLE);
                            }
                            else if (radioPanelKnob.IsOn)
                            {
                                SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH);
                            }
                            break;
                        }
                        }
                    }
                    AdjustFrequency(hashSet);
                }
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }
        }
        public void PZ69KnobChanged(IEnumerable <object> hashSet)
        {
            try
            {
                Common.DebugP("Entering AJS-37 Radio PZ69KnobChanged()");
                Interlocked.Add(ref _doUpdatePanelLCD, 1);
                lock (LockLCDUpdateObject)
                {
                    foreach (var radioPanelKnobObject in hashSet)
                    {
                        var radioPanelKnob = (RadioPanelKnobAJS37)radioPanelKnobObject;

                        switch (radioPanelKnob.RadioPanelPZ69Knob)
                        {
                        case RadioPanelPZ69KnobsAJS37.UPPER_FR22:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.FR22);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_FR24:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.FR24);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_TILS:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetUpperRadioMode(CurrentAJS37RadioMode.TILS);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FR22:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.FR22);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FR24:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.FR24);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_TILS:
                        {
                            if (radioPanelKnob.IsOn)
                            {
                                SetLowerRadioMode(CurrentAJS37RadioMode.TILS);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE0:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE1:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE2:
                        case RadioPanelPZ69KnobsAJS37.UPPER_NO_USE3:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE0:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE1:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE2:
                        case RadioPanelPZ69KnobsAJS37.LOWER_NO_USE3:
                        {
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_DEC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_INC:
                        case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_DEC:
                        {
                            //Ignore
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH:
                        {
                            if (_currentUpperRadioMode == CurrentAJS37RadioMode.FR22)
                            {
                                if (radioPanelKnob.IsOn)
                                {
                                    _fr22DialSideSelected = _fr22DialSideSelected == FR22DialSideSelected.Left ? FR22DialSideSelected.Right : FR22DialSideSelected.Left;
                                }
                            }
                            else if (_currentUpperRadioMode == CurrentAJS37RadioMode.FR24 && radioPanelKnob.IsOn)
                            {
                            }
                            else if (_currentUpperRadioMode == CurrentAJS37RadioMode.TILS && radioPanelKnob.IsOn)
                            {
                                DCSBIOS.Send(TILSChannelLayerDialCommandToggle);
                            }
                            else if (radioPanelKnob.IsOn)
                            {
                                SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH);
                            }
                            break;
                        }

                        case RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH:
                        {
                            if (_currentLowerRadioMode == CurrentAJS37RadioMode.FR22)
                            {
                                if (radioPanelKnob.IsOn)
                                {
                                    _fr22DialSideSelected = _fr22DialSideSelected == FR22DialSideSelected.Left ? FR22DialSideSelected.Right : FR22DialSideSelected.Left;
                                }
                            }
                            else if (_currentLowerRadioMode == CurrentAJS37RadioMode.FR24 && radioPanelKnob.IsOn)
                            {
                            }
                            else if (_currentLowerRadioMode == CurrentAJS37RadioMode.TILS && radioPanelKnob.IsOn)
                            {
                                DCSBIOS.Send(TILSChannelLayerDialCommandToggle);
                            }
                            else if (radioPanelKnob.IsOn)
                            {
                                SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH);
                            }
                            break;
                        }
                        }
                    }
                    AdjustFrequency(hashSet);
                }
            }
            catch (Exception ex)
            {
                Common.LogError(78006, ex);
            }
            Common.DebugP("Leaving AJS-37 Radio PZ69KnobChanged()");
        }