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
+
+
+