From 9c31d2fcb5a516eed4eb0ffdf9f97034bb3114cc Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Sat, 7 Feb 2015 13:00:10 +0100 Subject: [PATCH 1/3] OP-1706 Disable checkboxes if no range - Enable only channels already set in mixer - Add limits --- .../src/plugins/config/outputchannelform.cpp | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp b/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp index 0ca1ecaf7..358ba9d59 100644 --- a/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp +++ b/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp @@ -27,13 +27,16 @@ #include "outputchannelform.h" +#define MAXOUTPUT_VALUE 2100 +#define MINOUTPUT_VALUE 900 + OutputChannelForm::OutputChannelForm(const int index, QWidget *parent) : ChannelForm(index, parent), ui(), m_inChannelTest(false) { ui.setupUi(this); // The convention for OP is Channel 1 to Channel 10. - ui.actuatorNumber->setText(QString("%1:").arg(index + 1)); + ui.actuatorNumber->setText(QString("%1").arg(index + 1)); // Register for ActuatorSettings changes: connect(ui.actuatorMin, SIGNAL(editingFinished()), this, SLOT(setChannelRange())); @@ -45,6 +48,14 @@ OutputChannelForm::OutputChannelForm(const int index, QWidget *parent) : ui.actuatorLink->setChecked(false); connect(ui.actuatorLink, SIGNAL(toggled(bool)), this, SLOT(linkToggled(bool))); + // Set limits + ui.actuatorMin->setMaximum(MAXOUTPUT_VALUE); + ui.actuatorMax->setMaximum(MAXOUTPUT_VALUE); + ui.actuatorValue->setMaximum(MAXOUTPUT_VALUE); + ui.actuatorMin->setMinimum(MINOUTPUT_VALUE); + ui.actuatorMax->setMinimum(MINOUTPUT_VALUE); + ui.actuatorValue->setMinimum(MINOUTPUT_VALUE); + disableMouseWheelEvents(); } @@ -198,10 +209,12 @@ void OutputChannelForm::setRange(int minimum, int maximum) void OutputChannelForm::setChannelRange() { int oldMini = ui.actuatorNeutral->minimum(); + int minValue = ui.actuatorMin->value(); + int maxValue = ui.actuatorMax->value(); // int oldMaxi = ui.actuatorNeutral->maximum(); - if (ui.actuatorMin->value() < ui.actuatorMax->value()) { + if (minValue <= maxValue) { ui.actuatorNeutral->setRange(ui.actuatorMin->value(), ui.actuatorMax->value()); ui.actuatorRev->setChecked(false); } else { @@ -213,6 +226,33 @@ void OutputChannelForm::setChannelRange() ui.actuatorNeutral->setValue(ui.actuatorNeutral->minimum()); } + // Enable only outputs already set in mixer + if (name() != "-") { + ui.actuatorMin->setEnabled(true); + ui.actuatorMax->setEnabled(true); + ui.actuatorNeutral->setEnabled(true); + ui.actuatorValue->setEnabled(true); + + // Enable checkboxes Rev and Link if some range + if (minValue != maxValue) { + ui.actuatorRev->setEnabled(true); + ui.actuatorLink->setEnabled(true); + } else { + ui.actuatorRev->setEnabled(false); + ui.actuatorLink->setEnabled(false); + } + } else { + ui.actuatorMin->setEnabled(false); + ui.actuatorMax->setEnabled(false); + ui.actuatorRev->setEnabled(false); + ui.actuatorLink->setEnabled(false); + ui.actuatorMin->setValue(1000); + ui.actuatorMax->setValue(1000); + ui.actuatorNeutral->setRange(minValue, maxValue); + ui.actuatorNeutral->setEnabled(false); + ui.actuatorValue->setEnabled(false); + } + // if (ui.actuatorNeutral->value() == oldMaxi) // this can be dangerous if it happens to be controlling a motor at the time! // ui.actuatorNeutral->setValue(ui.actuatorNeutral->maximum()); From 7c4dfc9608d35b8a300a70cb1985fd1046a0c9cf Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Sat, 7 Feb 2015 13:19:46 +0100 Subject: [PATCH 2/3] OP-1706 Uncrustify --- .../openpilotgcs/src/plugins/config/outputchannelform.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp b/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp index 358ba9d59..878e1851c 100644 --- a/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp +++ b/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp @@ -48,13 +48,13 @@ OutputChannelForm::OutputChannelForm(const int index, QWidget *parent) : ui.actuatorLink->setChecked(false); connect(ui.actuatorLink, SIGNAL(toggled(bool)), this, SLOT(linkToggled(bool))); - // Set limits + // Set limits ui.actuatorMin->setMaximum(MAXOUTPUT_VALUE); ui.actuatorMax->setMaximum(MAXOUTPUT_VALUE); ui.actuatorValue->setMaximum(MAXOUTPUT_VALUE); ui.actuatorMin->setMinimum(MINOUTPUT_VALUE); ui.actuatorMax->setMinimum(MINOUTPUT_VALUE); - ui.actuatorValue->setMinimum(MINOUTPUT_VALUE); + ui.actuatorValue->setMinimum(MINOUTPUT_VALUE); disableMouseWheelEvents(); } @@ -208,7 +208,7 @@ void OutputChannelForm::setRange(int minimum, int maximum) */ void OutputChannelForm::setChannelRange() { - int oldMini = ui.actuatorNeutral->minimum(); + int oldMini = ui.actuatorNeutral->minimum(); int minValue = ui.actuatorMin->value(); int maxValue = ui.actuatorMax->value(); @@ -227,7 +227,7 @@ void OutputChannelForm::setChannelRange() } // Enable only outputs already set in mixer - if (name() != "-") { + if (name() != "-") { ui.actuatorMin->setEnabled(true); ui.actuatorMax->setEnabled(true); ui.actuatorNeutral->setEnabled(true); From bf3866d12e4ec933979ac1a2814de200f83684ac Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Sun, 8 Feb 2015 19:10:56 +0100 Subject: [PATCH 3/3] OP-1706 Output range from 500 to 2500 --- ground/openpilotgcs/src/plugins/config/outputchannelform.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp b/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp index 878e1851c..08178155b 100644 --- a/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp +++ b/ground/openpilotgcs/src/plugins/config/outputchannelform.cpp @@ -27,8 +27,8 @@ #include "outputchannelform.h" -#define MAXOUTPUT_VALUE 2100 -#define MINOUTPUT_VALUE 900 +#define MAXOUTPUT_VALUE 2500 +#define MINOUTPUT_VALUE 500 OutputChannelForm::OutputChannelForm(const int index, QWidget *parent) : ChannelForm(index, parent), ui(), m_inChannelTest(false)