diff --git a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp index 6595b6366..60073eb7a 100644 --- a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp @@ -97,6 +97,11 @@ ConfigPipXtremeWidget::ConfigPipXtremeWidget(QWidget *parent) : ConfigTaskWidget // Connect the selection changed signals. connect(m_oplink->PPMOnly, SIGNAL(toggled(bool)), this, SLOT(ppmOnlyChanged())); + connect(m_oplink->MinimumChannel, SIGNAL(valueChanged(int)), this, SLOT(minChannelChanged())); + connect(m_oplink->MaximumChannel, SIGNAL(valueChanged(int)), this, SLOT(maxChannelChanged())); + + m_oplink->MinimumChannel->setKeyboardTracking(false); + m_oplink->MaximumChannel->setKeyboardTracking(false); // Request and update of the setting object. settingsUpdated = false; @@ -318,6 +323,52 @@ void ConfigPipXtremeWidget::ppmOnlyChanged() m_oplink->ComSpeed->setEnabled(!is_ppm_only); } +void ConfigPipXtremeWidget::minChannelChanged() +{ + ChannelChanged(false); +} + +void ConfigPipXtremeWidget::maxChannelChanged() +{ + ChannelChanged(true); +} + +void ConfigPipXtremeWidget::ChannelChanged(bool isMax) +{ + int minChannel = m_oplink->MinimumChannel->value(); + int maxChannel = m_oplink->MaximumChannel->value(); + + int minimalChannelRange = 10; + + if ((maxChannel - minChannel) < minimalChannelRange) { + if (isMax) { + minChannel = maxChannel - minimalChannelRange; + } else { + maxChannel = minChannel + minimalChannelRange; + } + + if (maxChannel > 250) { + maxChannel = 250; + minChannel = 250 - minimalChannelRange; + } + + if (minChannel < 0) { + minChannel = 0; + maxChannel = minimalChannelRange; + } + } + + m_oplink->MaximumChannel->setValue(maxChannel); + m_oplink->MinimumChannel->setValue(minChannel); + + // Calculate and Display frequency in Mhz + float minFrequency = 430 + (minChannel * 0.040); + float maxFrequency = 430 + (maxChannel * 0.040); + + m_oplink->MinFreq->setText(QString::number(minFrequency, 'f', 3) + "Mhz"); + m_oplink->MaxFreq->setText(QString::number(maxFrequency, 'f', 3) + "Mhz"); +} + /** @} @} diff --git a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.h b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.h index 986f7c7bd..1d38183e1 100644 --- a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.h +++ b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.h @@ -62,6 +62,9 @@ private slots: void disconnected(); void bind(); void ppmOnlyChanged(); + void minChannelChanged(); + void maxChannelChanged(); + void ChannelChanged(bool isMax); }; #endif // CONFIGTXPIDWIDGET_H diff --git a/ground/openpilotgcs/src/plugins/config/pipxtreme.ui b/ground/openpilotgcs/src/plugins/config/pipxtreme.ui index baa3482c2..e9393331f 100644 --- a/ground/openpilotgcs/src/plugins/config/pipxtreme.ui +++ b/ground/openpilotgcs/src/plugins/config/pipxtreme.ui @@ -49,8 +49,8 @@ 0 0 - 810 - 575 + 835 + 545 @@ -72,14 +72,14 @@ Configuration - + Com speed in bps. - + @@ -95,7 +95,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -124,7 +124,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -153,7 +153,20 @@ - + + + + + 16777215 + 16777215 + + + + Choose the function for the USB virtual com port + + + + @@ -172,7 +185,7 @@ - + @@ -188,20 +201,10 @@ - - - - - 16777215 - 16777215 - - - - Choose the function for the USB virtual com port - - + + - + @@ -217,10 +220,29 @@ - - + + + + + 60 + 16777215 + + + + + 50 + false + + + + Channel 0 is 430 MHz, channel 250 is 440 MHz, and the channel spacing is 40 KHz. + + + 250 + + - + @@ -252,22 +274,6 @@ - - - - - 50 - false - - - - Channel 0 is 430 MHz, channel 249 is 440 MHz, and the channel spacing is 40 KHz. - - - 249 - - - @@ -286,6 +292,12 @@ + + + 60 + 16777215 + + 50 @@ -293,10 +305,10 @@ - Channel 0 is 430 MHz, channel 249 is 440 MHz, and the channel spacing is 40 KHz. + Channel 0 is 430 MHz, channel 250 is 440 MHz, and the channel spacing is 40 KHz. - 249 + 250 @@ -318,6 +330,12 @@ + + + 60 + 16777215 + + 50 @@ -328,7 +346,7 @@ Sets the random sequence of channels to use for frequency hopping. - 249 + 250 @@ -396,6 +414,32 @@ + + + + + 105 + 16777215 + + + + 440.000Mhz + + + + + + + + 105 + 16777215 + + + + 430.000Mhz + + +