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; } } }
public override void Dispose() { EventHandlers.DetachDCSBIOSDecoder(this); DCSBIOSStringManager.DetachListener(this); DCSBIOS.GetInstance()?.DetachDataReceivedListener(this); _shutdown = true; try { //_autoResetEvent.Set(); } catch (Exception e) { Debugger.Break(); } try { if (_imageUpdateTread != null && (_imageUpdateTread.ThreadState & (ThreadState.Aborted | ThreadState.AbortRequested)) == 0) { _imageUpdateTread.Abort(); } } catch (Exception) {} base.Dispose(); }
public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem, IGlobalHandler globalHandler, DCSBIOS dcsbios) { InitializeComponent(); ParentTabItem = parentTabItem; //no worky worky for this library hidSkeleton.HIDReadDevice.Removed += DeviceRemovedHandler; _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton); _streamDeckPanel.Attach((IGamingPanelListener)this); globalHandler.Attach(_streamDeckPanel); GlobalHandler = globalHandler; _dcsbios = dcsbios; UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel); UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel); StackPanelButtonUI.Children.Clear(); switch (panelType) { case GamingPanelEnum.StreamDeckMini: { var child = new UserControlStreamDeckUIMini(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeck: { var child = new UserControlStreamDeckUINormal(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeckXL: { var child = new UserControlStreamDeckUIXL(_streamDeckPanel); _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } } EventHandlers.AttachStreamDeckListener(UCStreamDeckButtonAction); EventHandlers.AttachStreamDeckListener(UCStreamDeckButtonFace); EventHandlers.AttachStreamDeckListener(_uiButtonGrid); EventHandlers.AttachStreamDeckConfigListener(_uiButtonGrid); EventHandlers.AttachStreamDeckListener(this); UCStreamDeckButtonAction.GlobalHandler = GlobalHandler; UCStreamDeckButtonFace.GlobalHandler = GlobalHandler; UCStreamDeckButtonFace.SetStreamDeckPanel(_streamDeckPanel); UCStreamDeckButtonAction.SetStreamDeckPanel(_streamDeckPanel); }
private void SendDCSBIOSCommandsThread(List <DCSBIOSInput> dcsbiosInputs, CancellationToken cancellationToken) { CancelSendDCSBIOSCommands = false; try { try { if (_isSequenced) { if (dcsbiosInputs.Count == 0) { return; } if (_sequenceIndex <= dcsbiosInputs.Count - 1) { var command = dcsbiosInputs[_sequenceIndex].SelectedDCSBIOSInput.GetDCSBIOSCommand(); Thread.Sleep(dcsbiosInputs[_sequenceIndex].SelectedDCSBIOSInput.Delay); if (CancelSendDCSBIOSCommands || cancellationToken.IsCancellationRequested) { return; } DCSBIOS.Send(command); _sequenceIndex++; if (_sequenceIndex >= dcsbiosInputs.Count) { _sequenceIndex = 0; } } } else { foreach (var dcsbiosInput in dcsbiosInputs) { if (CancelSendDCSBIOSCommands || cancellationToken.IsCancellationRequested) { return; } var command = dcsbiosInput.SelectedDCSBIOSInput.GetDCSBIOSCommand(); Thread.Sleep(dcsbiosInput.SelectedDCSBIOSInput.Delay); if (CancelSendDCSBIOSCommands || cancellationToken.IsCancellationRequested) { return; } DCSBIOS.Send(command); } } } catch (ThreadAbortException) { } catch (Exception ex) { Common.LogError(ex); } } finally { } }
private void SendFrequencyToDCSBIOS(RadioPanelKnobAV8BNA knob) { if (IgnoreSwitchButtonOnce() && (knob.RadioPanelPZ69Knob == RadioPanelPZ69KnobsAV8BNA.UPPER_FREQ_SWITCH || knob.RadioPanelPZ69Knob == RadioPanelPZ69KnobsAV8BNA.LOWER_FREQ_SWITCH)) { //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.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsAV8BNA.UPPER_FREQ_SWITCH: { switch (_currentUpperRadioMode) { case CurrentAV8BNARadioMode.COMM1: { DCSBIOS.Send(knob.IsOn ? COMM1_PULL_PRESS : COMM1_PULL_RELEASE); ShowFrequenciesOnPanel(); break; } case CurrentAV8BNARadioMode.COMM2: { DCSBIOS.Send(knob.IsOn ? COMM2_PULL_PRESS : COMM2_PULL_RELEASE); ShowFrequenciesOnPanel(); break; } } break; } case RadioPanelPZ69KnobsAV8BNA.LOWER_FREQ_SWITCH: { switch (_currentLowerRadioMode) { case CurrentAV8BNARadioMode.COMM1: { DCSBIOS.Send(knob.IsOn ? COMM1_PULL_PRESS : COMM1_PULL_RELEASE); ShowFrequenciesOnPanel(); break; } case CurrentAV8BNARadioMode.COMM2: { DCSBIOS.Send(knob.IsOn ? COMM2_PULL_PRESS : COMM2_PULL_RELEASE); ShowFrequenciesOnPanel(); break; } } break; } } }
public void SendDCSBIOSCommands() { foreach (var dcsbiosInput in _dcsbiosInputs) { var command = dcsbiosInput.SelectedDCSBIOSInput.GetDCSBIOSCommand(); DCSBIOS.Send(command); } }
public DCSBIOSDecoder() { _jaceId = RandomFactory.Get(); _imageUpdateTread = new Thread(ImageRefreshingThread); _imageUpdateTread.Start(); DCSBIOS.GetInstance().AttachDataReceivedListener(this); EventHandlers.AttachDCSBIOSDecoder(this); }
public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem, IGlobalHandler globalHandler, DCSBIOS dcsbios) { InitializeComponent(); _parentTabItem = parentTabItem; _parentTabItemHeader = _parentTabItem.Header.ToString(); _streamDeckPanel = new StreamDeckPanel(panelType, hidSkeleton); _streamDeckPanel.Attach((IGamingPanelListener)this); globalHandler.Attach(_streamDeckPanel); _globalHandler = globalHandler; _dcsbios = dcsbios; StackPanelButtonUI.Children.Clear(); switch (panelType) { case GamingPanelEnum.StreamDeckMini: { var child = new UserControlStreamDeckUIMini(); child.PanelHash = _streamDeckPanel.PanelHash; _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeck: { var child = new UserControlStreamDeckUINormal(); child.PanelHash = _streamDeckPanel.PanelHash; _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeckXL: { var child = new UserControlStreamDeckUIXL(); child.PanelHash = _streamDeckPanel.PanelHash; _uiButtonGrid = child; StackPanelButtonUI.Children.Add(child); break; } } EventHandlers.AttachStreamDeckListener(UCStreamDeckButtonAction); EventHandlers.AttachStreamDeckListener(UCStreamDeckButtonFace); EventHandlers.AttachStreamDeckListener(_uiButtonGrid); EventHandlers.AttachStreamDeckConfigListener(_uiButtonGrid); EventHandlers.AttachStreamDeckListener(this); UCStreamDeckButtonAction.GlobalHandler = _globalHandler; UCStreamDeckButtonFace.GlobalHandler = _globalHandler; UCStreamDeckButtonFace.PanelHash = _streamDeckPanel.PanelHash; UCStreamDeckButtonAction.PanelHash = _streamDeckPanel.PanelHash; }
public JaceSandboxWindow(DCSBIOS dcsbios) { _dcsbios = dcsbios; _dcsbios.AttachDataReceivedListener(this); DCSBIOSControlLocator.LoadControls(); _dcsbiosControls = DCSBIOSControlLocator.GetIntegerOutputControls(); var thread = new Thread(ThreadLoop); thread.Start(); InitializeComponent(); }
public override void AfterClone() { DCSBIOS.GetInstance().AttachDataReceivedListener(this); //_autoResetEvent = new AutoResetEvent(false); if (_imageUpdateTread != null) { try { _imageUpdateTread.Abort(); } catch (Exception) { } } _imageUpdateTread = new Thread(ImageRefreshingThread); _imageUpdateTread.Start(); }
public StreamDeckUserControl(GamingPanelEnum panelType, HIDSkeleton hidSkeleton, TabItem parentTabItem, IGlobalHandler globalHandler, DCSBIOS dcsbios) { InitializeComponent(); _parentTabItem = parentTabItem; _parentTabItemHeader = _parentTabItem.Header.ToString(); _streamDeck = new StreamDeckPanel(this, panelType, hidSkeleton); _streamDeck.Attach((IGamingPanelListener)this); globalHandler.Attach(_streamDeck); _globalHandler = globalHandler; _dcsbios = dcsbios; StackPanelButtonUI.Children.Clear(); switch (panelType) { case GamingPanelEnum.StreamDeckMini: case GamingPanelEnum.StreamDeck: { var child = new UserControlStreamDeckUINormal(); _streamDeckUI = child; child.SetSDUIParent(this); StackPanelButtonUI.Children.Add(child); break; } case GamingPanelEnum.StreamDeckXL: { var child = new UserControlStreamDeckUIXL(); _streamDeckUI = child; child.SetSDUIParent(this); StackPanelButtonUI.Children.Add(child); break; } } UCStreamDeckButtonAction.SDUIParent = this; UCStreamDeckButtonAction.GlobalHandler = _globalHandler; UCStreamDeckButtonFace.SDUIParent = this; UCStreamDeckButtonFace.GlobalHandler = _globalHandler; UCStreamDeckButtonFace.UserControlStreamDeckButtonAction = UCStreamDeckButtonAction; UCStreamDeckButtonAction.UserControlStreamDeckButtonFace = UCStreamDeckButtonFace; _streamDeckUI.HideAllDotImages(); }
private void SendDecVHFPresetCommand() { Interlocked.Increment(ref _doUpdatePanelLCD); lock (_lockVhf1DialObject1) { switch (_vhf1CockpitPresetActiveButton) { case 0: { break; } case 1: { DCSBIOS.Send("VHF_RADIO_ON_OFF 1\n"); break; } case 2: { DCSBIOS.Send("VHF_RADIO_CHAN_A 1\n"); break; } case 3: { DCSBIOS.Send("VHF_RADIO_CHAN_B 1\n"); break; } case 4: { DCSBIOS.Send("VHF_RADIO_CHAN_C 1\n"); break; } } } }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobAJS37 = (RadioPanelKnobAJS37)o; if (radioPanelKnobAJS37.IsOn) { switch (radioPanelKnobAJS37.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_BIG_DIAL_INCREASE_COMMAND : FR22_RIGHT_BIG_DIAL_INCREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipTilsChannelDialChange()) { DCSBIOS.Send(TILS_CHANNEL_DIAL_COMMAND_INC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_BIG_DIAL_DECREASE_COMMAND : FR22_RIGHT_BIG_DIAL_DECREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipTilsChannelDialChange()) { DCSBIOS.Send(TILS_CHANNEL_DIAL_COMMAND_DEC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_SMALL_DIAL_INCREASE_COMMAND : FR22_RIGHT_SMALL_DIAL_INCREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipMasterModeSelectorChange()) { DCSBIOS.Send(MASTER_MODE_SELECTOR_COMMAND_INC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_SMALL_DIAL_DECREASE_COMMAND : FR22_RIGHT_SMALL_DIAL_DECREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipMasterModeSelectorChange()) { DCSBIOS.Send(MASTER_MODE_SELECTOR_COMMAND_DEC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_BIG_DIAL_INCREASE_COMMAND : FR22_RIGHT_BIG_DIAL_INCREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipTilsChannelDialChange()) { DCSBIOS.Send(TILS_CHANNEL_DIAL_COMMAND_INC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_BIG_DIAL_DECREASE_COMMAND : FR22_RIGHT_BIG_DIAL_DECREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipTilsChannelDialChange()) { DCSBIOS.Send(TILS_CHANNEL_DIAL_COMMAND_DEC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_SMALL_DIAL_INCREASE_COMMAND : FR22_RIGHT_SMALL_DIAL_INCREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipMasterModeSelectorChange()) { DCSBIOS.Send(MASTER_MODE_SELECTOR_COMMAND_INC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentAJS37RadioMode.FR22: { DCSBIOS.Send(_fr22DialSideSelected == FR22DialSideSelected.Left ? FR22_LEFT_SMALL_DIAL_DECREASE_COMMAND : FR22_RIGHT_SMALL_DIAL_DECREASE_COMMAND); break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { if (!SkipMasterModeSelectorChange()) { DCSBIOS.Send(MASTER_MODE_SELECTOR_COMMAND_DEC); } break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
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); } }
private void SendFrequencyToDCSBIOS(RadioPanelPZ69KnobsAJS37 knob) { try { if (IgnoreSwitchButtonOnce() && (knob == RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH || knob == RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH)) { //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 RadioPanelPZ69KnobsAJS37.UPPER_FREQ_SWITCH: { switch (_currentUpperRadioMode) { case CurrentAJS37RadioMode.FR22: { break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { DCSBIOS.Send(TILS_CHANNEL_LAYER_DIAL_COMMAND_TOGGLE); break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsAJS37.LOWER_FREQ_SWITCH: { switch (_currentLowerRadioMode) { case CurrentAJS37RadioMode.FR22: { break; } case CurrentAJS37RadioMode.FR24: { break; } case CurrentAJS37RadioMode.TILS: { DCSBIOS.Send(TILS_CHANNEL_LAYER_DIAL_COMMAND_TOGGLE); break; } case CurrentAJS37RadioMode.NOUSE: { break; } } break; } } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void AdjustFrequency(IEnumerable <object> hashSet) { if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobAV8BNA = (RadioPanelKnobAV8BNA)o; if (radioPanelKnobAV8BNA.IsOn) { switch (radioPanelKnobAV8BNA.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsAV8BNA.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentAV8BNARadioMode.COMM1: { if (_comm1ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM1_CHANNEL_INC); } else { DCSBIOS.Send(COMM1_CHANNEL_INC); } break; } case CurrentAV8BNARadioMode.COMM2: { if (_comm2ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM2_CHANNEL_INC); } else { DCSBIOS.Send(COMM2_CHANNEL_INC); } break; } } break; } case RadioPanelPZ69KnobsAV8BNA.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentAV8BNARadioMode.COMM1: { if (_comm1ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM1_CHANNEL_DEC); } else { DCSBIOS.Send(COMM1_CHANNEL_DEC); } break; } case CurrentAV8BNARadioMode.COMM2: { if (_comm2ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM2_CHANNEL_DEC); } else { DCSBIOS.Send(COMM2_CHANNEL_DEC); } break; } } break; } case RadioPanelPZ69KnobsAV8BNA.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentAV8BNARadioMode.COMM1: { DCSBIOS.Send(COMM1_VOL_INC); break; } case CurrentAV8BNARadioMode.COMM2: { DCSBIOS.Send(COMM2_VOL_INC); break; } } break; } case RadioPanelPZ69KnobsAV8BNA.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentAV8BNARadioMode.COMM1: { DCSBIOS.Send(COMM1_VOL_DEC); break; } case CurrentAV8BNARadioMode.COMM2: { DCSBIOS.Send(COMM2_VOL_DEC); break; } } break; } case RadioPanelPZ69KnobsAV8BNA.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentAV8BNARadioMode.COMM1: { if (_comm1ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM1_CHANNEL_INC); } else { DCSBIOS.Send(COMM1_CHANNEL_INC); } break; } case CurrentAV8BNARadioMode.COMM2: { if (_comm2ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM2_CHANNEL_INC); } else { DCSBIOS.Send(COMM2_CHANNEL_INC); } break; } } break; } case RadioPanelPZ69KnobsAV8BNA.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentAV8BNARadioMode.COMM1: { if (_comm1ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM1_CHANNEL_DEC); } else { DCSBIOS.Send(COMM1_CHANNEL_DEC); } break; } case CurrentAV8BNARadioMode.COMM2: { if (_comm2ChannelClickSpeedDetector.ClickAndCheck()) { //No need for turbo DCSBIOS.Send(COMM2_CHANNEL_DEC); } else { DCSBIOS.Send(COMM2_CHANNEL_DEC); } break; } } break; } case RadioPanelPZ69KnobsAV8BNA.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentAV8BNARadioMode.COMM1: { DCSBIOS.Send(COMM1_VOL_INC); break; } case CurrentAV8BNARadioMode.COMM2: { DCSBIOS.Send(COMM2_VOL_INC); break; } } break; } case RadioPanelPZ69KnobsAV8BNA.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentAV8BNARadioMode.COMM1: { DCSBIOS.Send(COMM1_VOL_DEC); break; } case CurrentAV8BNARadioMode.COMM2: { DCSBIOS.Send(COMM2_VOL_DEC); break; } } break; } } } } Interlocked.Add(ref _doUpdatePanelLCD, 1); ShowFrequenciesOnPanel(); }
public DCSBIOSDecoder() { DCSBIOS.GetInstance().AttachDataReceivedListener(this); }
public void PZ69KnobChanged(IEnumerable <object> hashSet) { try { Common.DebugP("Entering Bf 109 Radio PZ69KnobChanged()"); Interlocked.Add(ref _doUpdatePanelLCD, 1); lock (LockLCDUpdateObject) { foreach (var radioPanelKnobObject in hashSet) { var radioPanelKnob = (RadioPanelKnobBf109)radioPanelKnobObject; switch (radioPanelKnob.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsBf109.UPPER_FUG16ZY: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentBf109RadioMode.FUG16ZY); } break; } case RadioPanelPZ69KnobsBf109.UPPER_IFF: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentBf109RadioMode.IFF); } break; } case RadioPanelPZ69KnobsBf109.UPPER_HOMING: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentBf109RadioMode.HOMING); } break; } case RadioPanelPZ69KnobsBf109.UPPER_NO_USE1: case RadioPanelPZ69KnobsBf109.UPPER_NO_USE2: case RadioPanelPZ69KnobsBf109.UPPER_NO_USE3: case RadioPanelPZ69KnobsBf109.UPPER_NO_USE4: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentBf109RadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsBf109.LOWER_FUG16ZY: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentBf109RadioMode.FUG16ZY); } break; } case RadioPanelPZ69KnobsBf109.LOWER_IFF: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentBf109RadioMode.IFF); } break; } case RadioPanelPZ69KnobsBf109.LOWER_HOMING: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentBf109RadioMode.HOMING); } break; } case RadioPanelPZ69KnobsBf109.LOWER_NO_USE1: case RadioPanelPZ69KnobsBf109.LOWER_NO_USE2: case RadioPanelPZ69KnobsBf109.LOWER_NO_USE3: case RadioPanelPZ69KnobsBf109.LOWER_NO_USE4: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentBf109RadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsBf109.UPPER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsBf109.UPPER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsBf109.UPPER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsBf109.UPPER_SMALL_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsBf109.LOWER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsBf109.LOWER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsBf109.LOWER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsBf109.LOWER_SMALL_FREQ_WHEEL_DEC: { //Ignore break; } case RadioPanelPZ69KnobsBf109.UPPER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentBf109RadioMode.IFF) { DCSBIOS.Send(radioPanelKnob.IsOn ? FU_G25_A_TEST_COMMAND_INC : FU_G25_A_TEST_COMMAND_DEC); } if (_currentUpperRadioMode == CurrentBf109RadioMode.HOMING) { if (radioPanelKnob.IsOn) { lock (_lockHomingDialObject1) { DCSBIOS.Send(_homingCockpitDialPos == 1 ? HOMING_COMMAND_DEC : HOMING_COMMAND_INC); } } } break; } case RadioPanelPZ69KnobsBf109.LOWER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentBf109RadioMode.IFF) { DCSBIOS.Send(radioPanelKnob.IsOn ? FU_G25_A_TEST_COMMAND_INC : FU_G25_A_TEST_COMMAND_DEC); } if (_currentLowerRadioMode == CurrentBf109RadioMode.HOMING) { if (radioPanelKnob.IsOn) { lock (_lockHomingDialObject1) { DCSBIOS.Send(_homingCockpitDialPos == 1 ? HOMING_COMMAND_DEC : HOMING_COMMAND_INC); } } } break; } } } AdjustFrequency(hashSet); } } catch (Exception ex) { Common.LogError(82006, ex); } Common.DebugP("Leaving Bf 109 Radio PZ69KnobChanged()"); }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobP51D = (RadioPanelKnobP51D)o; if (radioPanelKnobP51D.IsOn) { switch (radioPanelKnobP51D.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsP51D.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendIncVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendDecVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(VHF1_VOLUME_KNOB_COMMAND_INC); break; } } break; } case RadioPanelPZ69KnobsP51D.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(VHF1_VOLUME_KNOB_COMMAND_DEC); break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendIncVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendDecVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(VHF1_VOLUME_KNOB_COMMAND_INC); break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(VHF1_VOLUME_KNOB_COMMAND_DEC); break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { logger.Error(ex); } }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobFw190 = (RadioPanelKnobFw190)o; if (radioPanelKnobFw190.IsOn) { switch (radioPanelKnobFw190.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsFw190.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_INC); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25_AIFF_COMMAND_INC); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_DEC); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25_AIFF_COMMAND_DEC); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Fine tuning DCSBIOS.Send(FUG16_ZY_FINE_TUNE_COMMAND_INC); break; } case CurrentFw190RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_INC); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Fine tuning DCSBIOS.Send(FUG16_ZY_FINE_TUNE_COMMAND_DEC); break; } case CurrentFw190RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_DEC); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_INC); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25_AIFF_COMMAND_INC); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_DEC); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25_AIFF_COMMAND_DEC); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Fine tuning DCSBIOS.Send(FUG16_ZY_FINE_TUNE_COMMAND_INC); break; } case CurrentFw190RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_INC); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { // Fine tuning DCSBIOS.Send(FUG16_ZY_FINE_TUNE_COMMAND_DEC); break; } case CurrentFw190RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_DEC); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { logger.Error(ex); } }
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 = (RadioPanelKnobFw190)radioPanelKnobObject; switch (radioPanelKnob.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsFw190.UPPER_FUG16ZY: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentFw190RadioMode.FUG16ZY); } break; } case RadioPanelPZ69KnobsFw190.UPPER_IFF: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentFw190RadioMode.IFF); } break; } case RadioPanelPZ69KnobsFw190.UPPER_HOMING: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentFw190RadioMode.HOMING); } break; } case RadioPanelPZ69KnobsFw190.UPPER_NO_USE1: case RadioPanelPZ69KnobsFw190.UPPER_NO_USE2: case RadioPanelPZ69KnobsFw190.UPPER_NO_USE3: case RadioPanelPZ69KnobsFw190.UPPER_NO_USE4: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentFw190RadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsFw190.LOWER_FUG16ZY: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentFw190RadioMode.FUG16ZY); } break; } case RadioPanelPZ69KnobsFw190.LOWER_IFF: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentFw190RadioMode.IFF); } break; } case RadioPanelPZ69KnobsFw190.LOWER_HOMING: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentFw190RadioMode.HOMING); } break; } case RadioPanelPZ69KnobsFw190.LOWER_NO_USE1: case RadioPanelPZ69KnobsFw190.LOWER_NO_USE2: case RadioPanelPZ69KnobsFw190.LOWER_NO_USE3: case RadioPanelPZ69KnobsFw190.LOWER_NO_USE4: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentFw190RadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsFw190.UPPER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsFw190.UPPER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsFw190.UPPER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsFw190.UPPER_SMALL_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsFw190.LOWER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsFw190.LOWER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsFw190.LOWER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsFw190.LOWER_SMALL_FREQ_WHEEL_DEC: { // Ignore break; } case RadioPanelPZ69KnobsFw190.UPPER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentFw190RadioMode.IFF) { DCSBIOS.Send(radioPanelKnob.IsOn ? FU_G25_A_TEST_COMMAND_INC : FU_G25_A_TEST_COMMAND_DEC); } if (_currentUpperRadioMode == CurrentFw190RadioMode.HOMING) { if (radioPanelKnob.IsOn) { lock (_lockHomingDialObject1) { DCSBIOS.Send(_homingCockpitDialPos == 1 ? HOMING_COMMAND_DEC : HOMING_COMMAND_INC); } } } break; } case RadioPanelPZ69KnobsFw190.LOWER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentFw190RadioMode.IFF) { DCSBIOS.Send(radioPanelKnob.IsOn ? FU_G25_A_TEST_COMMAND_INC : FU_G25_A_TEST_COMMAND_DEC); } if (_currentLowerRadioMode == CurrentFw190RadioMode.HOMING) { if (radioPanelKnob.IsOn) { lock (_lockHomingDialObject1) { DCSBIOS.Send(_homingCockpitDialPos == 1 ? HOMING_COMMAND_DEC : HOMING_COMMAND_INC); } } } break; } } if (PluginManager.PlugSupportActivated && PluginManager.HasPlugin()) { PluginManager.DoEvent(DCSFPProfile.SelectedProfile.Description, HIDInstance, PluginGamingPanelEnum.PZ69RadioPanel_PreProg_FW190, (int)radioPanelKnob.RadioPanelPZ69Knob, radioPanelKnob.IsOn, null); } } AdjustFrequency(hashSet); } } catch (Exception ex) { logger.Error(ex); } }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { Common.DebugP("Entering Fw 190 Radio AdjustFrequency()"); if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobFw190 = (RadioPanelKnobFw190)o; if (radioPanelKnobFw190.IsOn) { switch (radioPanelKnobFw190.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsFw190.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(Fug16ZyPresetCommandInc); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandInc); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(Fug16ZyPresetCommandDec); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandDec); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Fine tuning Common.DebugP("Sending Fug16ZyFineTuneCommandInc"); DCSBIOS.Send(Fug16ZyFineTuneCommandInc); break; } case CurrentFw190RadioMode.IFF: { Common.DebugP("Sending RadioVolumeKnobCommandInc"); DCSBIOS.Send(RadioVolumeKnobCommandInc); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Fine tuning Common.DebugP("Sending Fug16ZyFineTuneCommandDec"); DCSBIOS.Send(Fug16ZyFineTuneCommandDec); break; } case CurrentFw190RadioMode.IFF: { Common.DebugP("Sending RadioVolumeKnobCommandDec"); DCSBIOS.Send(RadioVolumeKnobCommandDec); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(Fug16ZyPresetCommandInc); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandInc); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(Fug16ZyPresetCommandDec); } break; } case CurrentFw190RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandDec); } break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Fine tuning Common.DebugP("Sending Fug16ZyFineTuneCommandInc"); DCSBIOS.Send(Fug16ZyFineTuneCommandInc); break; } case CurrentFw190RadioMode.IFF: { Common.DebugP("Sending RadioVolumeKnobCommandInc"); DCSBIOS.Send(RadioVolumeKnobCommandInc); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsFw190.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentFw190RadioMode.FUG16ZY: { //Fine tuning Common.DebugP("Sending Fug16ZyFineTuneCommandDec"); DCSBIOS.Send(Fug16ZyFineTuneCommandDec); break; } case CurrentFw190RadioMode.IFF: { Common.DebugP("Sending RadioVolumeKnobCommandDec"); DCSBIOS.Send(RadioVolumeKnobCommandDec); break; } case CurrentFw190RadioMode.HOMING: { break; } case CurrentFw190RadioMode.NOUSE: { break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { Common.LogError(83007, ex); } Common.DebugP("Leaving Fw 190 Radio AdjustFrequency()"); }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { Common.DebugP("Entering P-51D Radio AdjustFrequency()"); if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobP51D = (RadioPanelKnobP51D)o; if (radioPanelKnobP51D.IsOn) { switch (radioPanelKnobP51D.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsP51D.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendIncVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendDecVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(Vhf1VolumeKnobCommandInc); break; } } break; } case RadioPanelPZ69KnobsP51D.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(Vhf1VolumeKnobCommandDec); break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendIncVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { if (!SkipVhf1PresetDialChange()) { SendDecVHFPresetCommand(); } break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(Vhf1VolumeKnobCommandInc); break; } } break; } case RadioPanelPZ69KnobsP51D.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentP51DRadioMode.VHF: { DCSBIOS.Send(Vhf1VolumeKnobCommandDec); break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { Common.LogError(84007, ex); } Common.DebugP("Leaving P-51D Radio AdjustFrequency()"); }
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; } } }
private void AdjustFrequency(IEnumerable <object> hashSet) { if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobMiG21Bis = (RadioPanelKnobMiG21Bis)o; if (radioPanelKnobMiG21Bis.IsOn) { switch (radioPanelKnobMiG21Bis.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsMiG21Bis.UpperLargeFreqWheelInc: { switch (_currentUpperRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_FREQ_SELECTOR_POSITION_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_NAV_CHANNEL_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_SECTOR_COMMAND_INC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.UpperLargeFreqWheelDec: { switch (_currentUpperRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_FREQ_SELECTOR_POSITION_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_NAV_CHANNEL_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_SECTOR_COMMAND_DEC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.UpperSmallFreqWheelInc: { switch (_currentUpperRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_VOLUME_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_ILS_CHANNEL_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_PRESET_CHANNEL_COMMAND_INC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.UpperSmallFreqWheelDec: { switch (_currentUpperRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_VOLUME_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_ILS_CHANNEL_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_PRESET_CHANNEL_COMMAND_DEC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.LowerLargeFreqWheelInc: { switch (_currentLowerRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_FREQ_SELECTOR_POSITION_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_NAV_CHANNEL_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_SECTOR_COMMAND_INC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.LowerLargeFreqWheelDec: { switch (_currentLowerRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_FREQ_SELECTOR_POSITION_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_NAV_CHANNEL_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_SECTOR_COMMAND_DEC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.LowerSmallFreqWheelInc: { switch (_currentLowerRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_VOLUME_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_ILS_CHANNEL_COMMAND_INC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_PRESET_CHANNEL_COMMAND_INC); break; } } break; } case RadioPanelPZ69KnobsMiG21Bis.LowerSmallFreqWheelDec: { switch (_currentLowerRadioMode) { case CurrentMiG21BisRadioMode.Radio: { DCSBIOS.Send(RADIO_VOLUME_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.RSBN: { DCSBIOS.Send(RSBN_ILS_CHANNEL_COMMAND_DEC); break; } case CurrentMiG21BisRadioMode.ARC: { DCSBIOS.Send(ARC_PRESET_CHANNEL_COMMAND_DEC); break; } } break; } } } } ShowFrequenciesOnPanel(); }
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 = (RadioPanelKnobSpitfireLFMkIX)radioPanelKnobObject; switch (radioPanelKnob.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_HFRADIO: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentSpitfireLFMkIXRadioMode.HFRADIO); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_IFF: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentSpitfireLFMkIXRadioMode.IFF); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE0: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE1: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE2: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE3: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE4: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentSpitfireLFMkIXRadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_HFRADIO: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentSpitfireLFMkIXRadioMode.HFRADIO); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_IFF: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentSpitfireLFMkIXRadioMode.IFF); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE0: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE1: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE2: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE3: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE4: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentSpitfireLFMkIXRadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_SMALL_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_SMALL_FREQ_WHEEL_DEC: { // Ignore break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentSpitfireLFMkIXRadioMode.HFRADIO) { if (radioPanelKnob.IsOn) { DCSBIOS.Send(HF_RADIO_LIGHT_SWITCH_COMMAND); } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentSpitfireLFMkIXRadioMode.HFRADIO) { if (radioPanelKnob.IsOn) { DCSBIOS.Send(HF_RADIO_LIGHT_SWITCH_COMMAND); } } break; } } if (PluginManager.PlugSupportActivated && PluginManager.HasPlugin()) { PluginManager.DoEvent( DCSFPProfile.SelectedProfile.Description, HIDInstance, PluginGamingPanelEnum.PZ69RadioPanel_PreProg_SPITFIRELFMKIX, (int)radioPanelKnob.RadioPanelPZ69Knob, radioPanelKnob.IsOn, null); } } AdjustFrequency(hashSet); } } catch (Exception ex) { logger.Error(ex); } }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { Common.DebugP("Entering Bf 109 Radio AdjustFrequency()"); if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobBf109 = (RadioPanelKnobBf109)o; if (radioPanelKnobBf109.IsOn) { switch (radioPanelKnobBf109.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsBf109.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_INC); } break; } case CurrentBf109RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandInc); } break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_DEC); } break; } case CurrentBf109RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandDec); } break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Fine tuning var changeFaster = false; _fineTuneIncreaseChangeMonitor.Click(); if (_fineTuneIncreaseChangeMonitor.ClickThresholdReached()) { //Change faster changeFaster = true; } DCSBIOS.Send(changeFaster ? FUG16_ZY_FINE_TUNE_COMMAND_INC_MORE : FUG16_ZY_FINE_TUNE_COMMAND_INC); break; } case CurrentBf109RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_INC); break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Fine tuning var changeFaster = false; _fineTuneDecreaseChangeMonitor.Click(); if (_fineTuneDecreaseChangeMonitor.ClickThresholdReached()) { //Change faster changeFaster = true; } DCSBIOS.Send(changeFaster ? FUG16_ZY_FINE_TUNE_COMMAND_DEC_MORE : FUG16_ZY_FINE_TUNE_COMMAND_DEC); break; } case CurrentBf109RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_DEC); break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_INC); } break; } case CurrentBf109RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandInc); } break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Presets if (!SkipFuG16ZYPresetDialChange()) { DCSBIOS.Send(FUG16_ZY_PRESET_COMMAND_DEC); } break; } case CurrentBf109RadioMode.IFF: { if (!SkipIFFDialChange()) { DCSBIOS.Send(FUG25AIFFCommandDec); } break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Fine tuning var changeFaster = false; _fineTuneIncreaseChangeMonitor.Click(); if (_fineTuneIncreaseChangeMonitor.ClickThresholdReached()) { //Change faster changeFaster = true; } DCSBIOS.Send(changeFaster ? FUG16_ZY_FINE_TUNE_COMMAND_INC_MORE : FUG16_ZY_FINE_TUNE_COMMAND_INC); break; } case CurrentBf109RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_INC); break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsBf109.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentBf109RadioMode.FUG16ZY: { //Fine tuning var changeFaster = false; _fineTuneDecreaseChangeMonitor.Click(); if (_fineTuneDecreaseChangeMonitor.ClickThresholdReached()) { //Change faster changeFaster = true; } DCSBIOS.Send(changeFaster ? FUG16_ZY_FINE_TUNE_COMMAND_DEC_MORE : FUG16_ZY_FINE_TUNE_COMMAND_DEC); break; } case CurrentBf109RadioMode.IFF: { DCSBIOS.Send(RADIO_VOLUME_KNOB_COMMAND_DEC); break; } case CurrentBf109RadioMode.HOMING: { break; } case CurrentBf109RadioMode.NOUSE: { break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { Common.LogError(82007, ex); } Common.DebugP("Leaving Bf 109 Radio AdjustFrequency()"); }
private void AdjustFrequency(IEnumerable <object> hashSet) { try { if (SkipCurrentFrequencyChange()) { return; } foreach (var o in hashSet) { var radioPanelKnobSpitfireLFMkIX = (RadioPanelKnobSpitfireLFMkIX)o; if (radioPanelKnobSpitfireLFMkIX.IsOn) { switch (radioPanelKnobSpitfireLFMkIX.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_LARGE_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // MODE if (!SkipHFRadioModeDialChange()) { var s = GetHFRadioModeStringCommand(true); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffdDialChange()) { DCSBIOS.Send(IFFD_COMMAND_INC); } break; } case CurrentSpitfireLFMkIXRadioMode.NOUSE: { break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_LARGE_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // MODE if (!SkipHFRadioModeDialChange()) { var s = GetHFRadioModeStringCommand(false); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffdDialChange()) { DCSBIOS.Send(IFFD_COMMAND_DEC); } break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_SMALL_FREQ_WHEEL_INC: { switch (_currentUpperRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // CHANNEL if (!SkipHFRadioChannelPresetDialChange()) { var s = GetHFRadioChannelStringCommand(true); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffbDialChange()) { DCSBIOS.Send(IFFB_COMMAND_INC); } break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_SMALL_FREQ_WHEEL_DEC: { switch (_currentUpperRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // CHANNEL if (!SkipHFRadioChannelPresetDialChange()) { var s = GetHFRadioChannelStringCommand(false); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffbDialChange()) { DCSBIOS.Send(IFFB_COMMAND_DEC); } break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_LARGE_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // MODE if (!SkipHFRadioModeDialChange()) { var s = GetHFRadioModeStringCommand(true); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffdDialChange()) { DCSBIOS.Send(IFFD_COMMAND_INC); } break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_LARGE_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // MODE if (!SkipHFRadioModeDialChange()) { var s = GetHFRadioModeStringCommand(false); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffdDialChange()) { DCSBIOS.Send(IFFD_COMMAND_DEC); } break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_SMALL_FREQ_WHEEL_INC: { switch (_currentLowerRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // CHANNEL if (!SkipHFRadioChannelPresetDialChange()) { var s = GetHFRadioChannelStringCommand(true); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffbDialChange()) { DCSBIOS.Send(IFFB_COMMAND_INC); } break; } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_SMALL_FREQ_WHEEL_DEC: { switch (_currentLowerRadioMode) { case CurrentSpitfireLFMkIXRadioMode.HFRADIO: { // CHANNEL if (!SkipHFRadioChannelPresetDialChange()) { var s = GetHFRadioChannelStringCommand(false); if (!string.IsNullOrEmpty(s)) { DCSBIOS.Send(s); } } break; } case CurrentSpitfireLFMkIXRadioMode.IFF: { if (!SkipIffbDialChange()) { DCSBIOS.Send(IFFB_COMMAND_DEC); } break; } } break; } } } } ShowFrequenciesOnPanel(); } catch (Exception ex) { logger.Error(ex); } }
public void PZ69KnobChanged(bool isFirstReport, IEnumerable <object> hashSet) { try { Interlocked.Add(ref _doUpdatePanelLCD, 1); lock (LockLCDUpdateObject) { foreach (var radioPanelKnobObject in hashSet) { var radioPanelKnob = (RadioPanelKnobSpitfireLFMkIX)radioPanelKnobObject; switch (radioPanelKnob.RadioPanelPZ69Knob) { case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_HFRADIO: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentSpitfireLFMkIXRadioMode.HFRADIO); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_IFF: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentSpitfireLFMkIXRadioMode.IFF); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE0: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE1: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE2: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE3: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_NO_USE4: { if (radioPanelKnob.IsOn) { SetUpperRadioMode(CurrentSpitfireLFMkIXRadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_HFRADIO: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentSpitfireLFMkIXRadioMode.HFRADIO); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_IFF: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentSpitfireLFMkIXRadioMode.IFF); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE0: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE1: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE2: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE3: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_NO_USE4: { if (radioPanelKnob.IsOn) { SetLowerRadioMode(CurrentSpitfireLFMkIXRadioMode.NOUSE); } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_SMALL_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_LARGE_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_LARGE_FREQ_WHEEL_DEC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_SMALL_FREQ_WHEEL_INC: case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_SMALL_FREQ_WHEEL_DEC: { //Ignore break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.UPPER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentSpitfireLFMkIXRadioMode.HFRADIO) { if (radioPanelKnob.IsOn) { DCSBIOS.Send(HF_RADIO_LIGHT_SWITCH_COMMAND); } } break; } case RadioPanelPZ69KnobsSpitfireLFMkIX.LOWER_FREQ_SWITCH: { if (_currentLowerRadioMode == CurrentSpitfireLFMkIXRadioMode.HFRADIO) { if (radioPanelKnob.IsOn) { DCSBIOS.Send(HF_RADIO_LIGHT_SWITCH_COMMAND); } } break; } } } AdjustFrequency(hashSet); } } catch (Exception ex) { Common.LogError(ex); } }
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); } }