From 64cea89d3e50a6659336f11ee2c9db5ef492441b Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Mon, 29 Dec 2014 01:07:11 +0100 Subject: [PATCH] OP-1660 Reset channel data : Type and number. Prevent bad channel setting like channel type set and no channel number or wizard freezes. --- .../src/plugins/config/configinputwidget.cpp | 14 ++++++++++++++ .../src/plugins/config/configinputwidget.h | 1 + .../src/plugins/config/inputchannelform.cpp | 1 + 3 files changed, 16 insertions(+) diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp index f9d3a7278..c7b6cc938 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp @@ -412,6 +412,9 @@ void ConfigInputWidget::goToWizard() flightModeSettingsData.Arming = FlightModeSettings::ARMING_ALWAYSDISARMED; flightModeSettingsObj->setData(flightModeSettingsData); + // Now reset channel settings + resetChannelSettings(); + // Use faster input update rate. fastMdata(); @@ -1661,3 +1664,14 @@ bool ConfigInputWidget::shouldObjectBeSaved(UAVObject *object) // ManualControlCommand no need to be saved return dynamic_cast(object) == 0; } + +void ConfigInputWidget::resetChannelSettings() +{ + manualSettingsData = manualSettingsObj->getData(); + // Clear all channel data : Channel Type (PPM,PWM..) and Number + for (unsigned int channel = 0; channel < 9; channel++) { + manualSettingsData.ChannelGroups[channel] = ManualControlSettings::CHANNELGROUPS_NONE; + manualSettingsData.ChannelNumber[channel] = 0; + manualSettingsObj->setData(manualSettingsData); + } +} diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.h b/ground/openpilotgcs/src/plugins/config/configinputwidget.h index 0cb0b34cc..ecbf0830f 100644 --- a/ground/openpilotgcs/src/plugins/config/configinputwidget.h +++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.h @@ -192,6 +192,7 @@ private slots: void simpleCalibration(bool state); void adjustSpecialNeutrals(); void updateCalibration(); + void resetChannelSettings(); protected: void resizeEvent(QResizeEvent *event); diff --git a/ground/openpilotgcs/src/plugins/config/inputchannelform.cpp b/ground/openpilotgcs/src/plugins/config/inputchannelform.cpp index df3f0a186..7e9b6d361 100644 --- a/ground/openpilotgcs/src/plugins/config/inputchannelform.cpp +++ b/ground/openpilotgcs/src/plugins/config/inputchannelform.cpp @@ -61,6 +61,7 @@ void InputChannelForm::minMaxUpdated() void InputChannelForm::updateTooltip() { int currentValue = ui->channelNeutral->value(); + ui->channelNeutral->setToolTip(QString::number(currentValue)); }