diff --git a/ground/gcs/src/plugins/config/commonhwsettingswidget.cpp b/ground/gcs/src/plugins/config/commonhwsettingswidget.cpp new file mode 100644 index 000000000..a758e0fff --- /dev/null +++ b/ground/gcs/src/plugins/config/commonhwsettingswidget.cpp @@ -0,0 +1,113 @@ +/** + ****************************************************************************** + * + * @file commonhwsettingswidget.cpp + * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2017. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup ConfigPlugin Config Plugin + * @{ + * @brief Common hardware configuration panel + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include "commonhwsettingswidget.h" + +#include "ui_commonhwsettingswidget.h" + +#include + +CommonHWSettingsWidget::CommonHWSettingsWidget(QWidget *parent) : QWidget(parent) +{ + m_ui = new Ui_CommonHWSettingsWidget(); + m_ui->setupUi(this); + + setFeatures(0); + + /* Relay signals from private members */ + connect(m_ui->cbUSBHID, SIGNAL(currentIndexChanged(int)), this, SIGNAL(USBHIDFunctionChanged(int))); + connect(m_ui->cbUSBVCP, SIGNAL(currentIndexChanged(int)), this, SIGNAL(USBVCPFunctionChanged(int))); +} + +CommonHWSettingsWidget::~CommonHWSettingsWidget() +{ + delete m_ui; +} + +void CommonHWSettingsWidget::registerWidgets(ConfigTaskWidget &ct) +{ +// addAutoBindings(); + +// ct.addUAVObject("HwSettings"); + + ct.addWidgetBinding("HwSettings", "USB_HIDPort", m_ui->cbUSBHID); + ct.addWidgetBinding("HwSettings", "USB_VCPPort", m_ui->cbUSBVCP); + + ct.addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbTelemetrySpeed); + ct.addWidgetBinding("HwSettings", "GPSSpeed", m_ui->cbGPSSpeed); + ct.addWidgetBinding("HwSettings", "DebugConsoleSpeed", m_ui->cbDebugConsoleSpeed); + ct.addWidgetBinding("HwSettings", "SBusMode", m_ui->cbSBUSMode); + ct.addWidgetBinding("HwSettings", "DSMxBind", m_ui->cbDSMxBind, 0, 1, true); + + ct.addWidgetBinding("GPSSettings", "DataProtocol", m_ui->cbGPSProtocol); +} + + +void CommonHWSettingsWidget::setFeatures(quint32 features) +{ + bool flag = features != 0; + + setVisible(flag); + + flag = (features & F_USB) != 0; + + m_ui->lbUSBHID->setVisible(flag); + m_ui->cbUSBHID->setVisible(flag); + m_ui->lbUSBVCP->setVisible(flag); + m_ui->cbUSBVCP->setVisible(flag); + + flag = (features & F_SBUS) != 0; + + m_ui->lbSBUSMode->setVisible(flag); + m_ui->cbSBUSMode->setVisible(flag); + + flag = (features & F_DSM) != 0; + + m_ui->lbDSMxBind->setVisible(flag); + m_ui->cbDSMxBind->setVisible(flag); + + flag = (features & F_TELEMETRY) != 0; + + m_ui->lbTelemetrySpeed->setVisible(flag); + m_ui->cbTelemetrySpeed->setVisible(flag); + + flag = (features & F_DEBUGCONSOLE) != 0; + + m_ui->lbDebugConsoleSpeed->setVisible(flag); + m_ui->cbDebugConsoleSpeed->setVisible(flag); + + flag = (features & F_GPS) != 0; + + m_ui->lbGPSSpeed->setVisible(flag); + m_ui->cbGPSSpeed->setVisible(flag); + m_ui->lbGPSProtocol->setVisible(flag); + m_ui->cbGPSProtocol->setVisible(flag); +} + +QComboBox *CommonHWSettingsWidget::USBVCPComboBox() +{ + return m_ui->cbUSBVCP; +} diff --git a/ground/gcs/src/plugins/config/commonhwsettingswidget.h b/ground/gcs/src/plugins/config/commonhwsettingswidget.h new file mode 100644 index 000000000..95e72add5 --- /dev/null +++ b/ground/gcs/src/plugins/config/commonhwsettingswidget.h @@ -0,0 +1,62 @@ +/** + ****************************************************************************** + * + * @file commonhwsettingswidget.h + * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2017. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup ConfigPlugin Config Plugin + * @{ + * @brief Common hardware configuration panel + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#ifndef COMMONHWSETTINGSWIDGET_H +#define COMMONHWSETTINGSWIDGET_H + +#include "../uavobjectwidgetutils/configtaskwidget.h" + +class Ui_CommonHWSettingsWidget; + +class CommonHWSettingsWidget : public QWidget { + Q_OBJECT + +public: + static const quint32 F_USB = (1 << 0); + static const quint32 F_SBUS = (1 << 1); + static const quint32 F_DSM = (1 << 2); + static const quint32 F_TELEMETRY = (1 << 3); + static const quint32 F_DEBUGCONSOLE = (1 << 4); + static const quint32 F_GPS = (1 << 5); + + CommonHWSettingsWidget(QWidget *parent = 0); + virtual ~CommonHWSettingsWidget(); + + void registerWidgets(ConfigTaskWidget &ct); + + void setFeatures(quint32 features); + + QComboBox *USBVCPComboBox(); + +signals: + void USBHIDFunctionChanged(int index); + void USBVCPFunctionChanged(int index); + +private: + Ui_CommonHWSettingsWidget *m_ui; +}; + +#endif // COMMONHWSETTINGSWIDGET_H diff --git a/ground/gcs/src/plugins/config/commonhwsettingswidget.ui b/ground/gcs/src/plugins/config/commonhwsettingswidget.ui new file mode 100644 index 000000000..b43cf22cd --- /dev/null +++ b/ground/gcs/src/plugins/config/commonhwsettingswidget.ui @@ -0,0 +1,307 @@ + + + CommonHWSettingsWidget + + + + 0 + 0 + 605 + 208 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + + + + Options + + + Qt::AlignCenter + + + + + + + -1 + + + + + + 0 + 0 + + + + GPS Speed + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + true + + + + + + + + 0 + 0 + + + + Telemetry Speed + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + GPS Protocol + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + + 0 + 0 + + + + DebugConsole Speed + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 250 + 1 + + + + + + + + + + -1 + + + + + + 0 + 0 + + + + USB HID + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + true + + + + + + + true + + + + + + + + 0 + 0 + + + + DSMx Bind + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + USB VCP + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + SBus Mode + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 250 + 1 + + + + + + + + + + + diff --git a/ground/gcs/src/plugins/config/config.pro b/ground/gcs/src/plugins/config/config.pro index 6de77a22d..2eb9aa995 100644 --- a/ground/gcs/src/plugins/config/config.pro +++ b/ground/gcs/src/plugins/config/config.pro @@ -49,7 +49,8 @@ HEADERS += \ mixercurve.h \ dblspindelegate.h \ configrevohwwidget.h \ - configspracingf3hwwidget.h \ + configspracingf3evohwwidget.h \ + commonhwsettingswidget.h \ calibration/calibrationutils.h \ calibration/wizardstate.h \ calibration/wizardmodel.h \ @@ -97,7 +98,8 @@ SOURCES += \ mixercurve.cpp \ dblspindelegate.cpp \ configrevohwwidget.cpp \ - configspracingf3hwwidget.cpp \ + configspracingf3evohwwidget.cpp \ + commonhwsettingswidget.cpp \ calibration/calibrationutils.cpp \ calibration/wizardstate.cpp \ calibration/wizardmodel.cpp \ @@ -134,8 +136,9 @@ FORMS += \ txpid.ui \ mixercurve.ui \ configrevohwwidget.ui \ - configspracingf3hwwidget.ui \ autotune.ui \ + configspracingf3evohwwidget.ui \ + commonhwsettingswidget.ui \ oplink.ui \ configrevonanohwwidget.ui \ configsparky2hwwidget.ui \ diff --git a/ground/gcs/src/plugins/config/configgadgetwidget.cpp b/ground/gcs/src/plugins/config/configgadgetwidget.cpp index b2109b785..5a4536841 100644 --- a/ground/gcs/src/plugins/config/configgadgetwidget.cpp +++ b/ground/gcs/src/plugins/config/configgadgetwidget.cpp @@ -42,7 +42,7 @@ #include "configrevowidget.h" #include "configrevonanohwwidget.h" #include "configsparky2hwwidget.h" -#include "configspracingf3hwwidget.h" +#include "configspracingf3evohwwidget.h" #include "defaultconfigwidget.h" #include @@ -262,9 +262,9 @@ void ConfigGadgetWidget::onAutopilotConnect() widget = 0; if (board == 0x1001) { - widget = new ConfigSPRacingF3HWWidget(this); + // widget = new ConfigSPRacingF3HWWidget(this); } else if (board == 0x1002 || board == 0x1003) { // SpracingF3 EVO or NucleoF303RE - // widget = new ConfigSPRacingF3EVOHWWidget(this); + widget = new ConfigSPRacingF3EVOHWWidget(this); } else if (board == 0x1005) { // widget = new ConfigPikoBLXHWWidget(this); } else if (board == 0x1006) { diff --git a/ground/gcs/src/plugins/config/configspracingf3evohwwidget.cpp b/ground/gcs/src/plugins/config/configspracingf3evohwwidget.cpp new file mode 100644 index 000000000..d6e4c6d3e --- /dev/null +++ b/ground/gcs/src/plugins/config/configspracingf3evohwwidget.cpp @@ -0,0 +1,202 @@ +/** + ****************************************************************************** + * + * @file configspracingf3evohwwidget.cpp + * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2016-2017. + * The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @addtogroup GCSPlugins GCS Plugins + * @{ + * @addtogroup ConfigPlugin Config Plugin + * @{ + * @brief SPRacingF3EVO hardware configuration panel + *****************************************************************************/ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include "configspracingf3evohwwidget.h" + +#include "ui_configspracingf3evohwwidget.h" + +#include "hwsettings.h" +#include "hwspracingf3evosettings.h" + +#include + +ConfigSPRacingF3EVOHWWidget::ConfigSPRacingF3EVOHWWidget(QWidget *parent) : ConfigTaskWidget(parent) +{ + m_ui = new Ui_SPRacingF3EVOHWWidget(); + m_ui->setupUi(this); + + // must be done before auto binding ! + setWikiURL("SPRacingF3EVO+Configuration"); + + addAutoBindings(); + + addUAVObject("HwSettings"); + addUAVObject("HwSPRacingF3EVOSettings"); + + addWidgetBinding("HwSPRacingF3EVOSettings", "UARTPort", m_ui->cbUART1, 0, 1, true); + addWidgetBinding("HwSPRacingF3EVOSettings", "UARTPort", m_ui->cbUART2, 1, 1, true); + addWidgetBinding("HwSPRacingF3EVOSettings", "UARTPort", m_ui->cbUART3, 2, 1, true); + addWidgetBinding("HwSPRacingF3EVOSettings", "LEDPort", m_ui->cbLEDPort); + addWidgetBinding("HwSPRacingF3EVOSettings", "I2CPort", m_ui->cbI2C1); + + connect(m_ui->cbUART1, static_cast(&QComboBox::currentIndexChanged), this, &ConfigSPRacingF3EVOHWWidget::UART1Changed); + connect(m_ui->cbUART2, static_cast(&QComboBox::currentIndexChanged), this, &ConfigSPRacingF3EVOHWWidget::UART2Changed); + connect(m_ui->cbUART3, static_cast(&QComboBox::currentIndexChanged), this, &ConfigSPRacingF3EVOHWWidget::UART3Changed); + + m_ui->commonHWSettings->registerWidgets(*this); + + connect(m_ui->commonHWSettings, &CommonHWSettingsWidget::USBVCPFunctionChanged, this, &ConfigSPRacingF3EVOHWWidget::USBVCPFunctionChanged); + + updateFeatures(); +} + +ConfigSPRacingF3EVOHWWidget::~ConfigSPRacingF3EVOHWWidget() +{ + // Do nothing +} + +void ConfigSPRacingF3EVOHWWidget::refreshWidgetsValuesImpl(UAVObject *obj) +{ + Q_UNUSED(obj); + + UART1Changed(0); + UART2Changed(0); + UART3Changed(0); +} + +void ConfigSPRacingF3EVOHWWidget::updateObjectsFromWidgetsImpl() +{ + updateFeatures(); +} + +void ConfigSPRacingF3EVOHWWidget::updateFeatures() +{ + quint32 features = CommonHWSettingsWidget::F_USB; + + QComboBox *ports[3] = { m_ui->cbUART1, m_ui->cbUART2, m_ui->cbUART3 }; + + for (int i = 0; i < 3; ++i) { + switch (getComboboxSelectedOption(ports[i])) { + case HwSPRacingF3EVOSettings::UARTPORT_TELEMETRY: + features |= CommonHWSettingsWidget::F_TELEMETRY; + break; + case HwSPRacingF3EVOSettings::UARTPORT_DSM: + features |= CommonHWSettingsWidget::F_DSM; + break; + case HwSPRacingF3EVOSettings::UARTPORT_SBUS: + features |= CommonHWSettingsWidget::F_SBUS; + break; + case HwSPRacingF3EVOSettings::UARTPORT_GPS: + features |= CommonHWSettingsWidget::F_GPS; + break; + case HwSPRacingF3EVOSettings::UARTPORT_DEBUGCONSOLE: + features |= CommonHWSettingsWidget::F_DEBUGCONSOLE; + break; + default: + break; + } + } + + m_ui->commonHWSettings->setFeatures(features); + + HwSettings::GetInstance(getObjectManager()) + ->setOptionalModules(HwSettings::OPTIONALMODULES_GPS, + (features & CommonHWSettingsWidget::F_GPS) + ? HwSettings::OPTIONALMODULES_ENABLED : HwSettings::OPTIONALMODULES_DISABLED); +} + +bool ConfigSPRacingF3EVOHWWidget::optionConflict(int uartOption, int vcpOption) +{ + return (vcpOption == HwSettings::USB_VCPPORT_DEBUGCONSOLE + && uartOption == HwSPRacingF3EVOSettings::UARTPORT_DEBUGCONSOLE) + || (vcpOption == HwSettings::USB_VCPPORT_MAVLINK + && uartOption == HwSPRacingF3EVOSettings::UARTPORT_MAVLINK); +} + +void ConfigSPRacingF3EVOHWWidget::UARTxChanged(QComboBox *cbUARTx) +{ + /* Everything except HwSPRacingF3EVOSettings::UARTPORT_DISABLED and HwSPRacingF3EVOSettings::UARTPORT_DSM + * is allowed on single port only. + * HoTT SUMD & SUMH belong to the same receiver group, therefore cannot be configure at the same time + */ + + int option = getComboboxSelectedOption(cbUARTx); + + if (option == HwSPRacingF3EVOSettings::UARTPORT_HOTTSUMD) { + option = HwSPRacingF3EVOSettings::UARTPORT_HOTTSUMH; + } + + if (option != HwSPRacingF3EVOSettings::UARTPORT_DISABLED && option != HwSPRacingF3EVOSettings::UARTPORT_DSM) { + QComboBox *ports[3] = { m_ui->cbUART1, m_ui->cbUART2, m_ui->cbUART3 }; + + for (int i = 0; i < 3; ++i) { + if (ports[i] == cbUARTx) { + continue; + } + int other = getComboboxSelectedOption(ports[i]); + if (other == HwSPRacingF3EVOSettings::UARTPORT_HOTTSUMD) { + other = HwSPRacingF3EVOSettings::UARTPORT_HOTTSUMH; + } + if (other == option) { + setComboboxSelectedOption(ports[i], HwSPRacingF3EVOSettings::UARTPORT_DISABLED); + } + } + + QComboBox *cbUSBVCP = m_ui->commonHWSettings->USBVCPComboBox(); + + if (optionConflict(option, getComboboxSelectedOption(cbUSBVCP))) { + setComboboxSelectedOption(cbUSBVCP, HwSettings::USB_VCPPORT_DISABLED); + } + } + + updateFeatures(); +} + +void ConfigSPRacingF3EVOHWWidget::USBVCPFunctionChanged(int index) +{ + Q_UNUSED(index); + + int vcpOption = getComboboxSelectedOption(m_ui->commonHWSettings->USBVCPComboBox()); + + QComboBox *ports[3] = { m_ui->cbUART1, m_ui->cbUART2, m_ui->cbUART3 }; + + for (int i = 0; i < 3; ++i) { + if (optionConflict(getComboboxSelectedOption(ports[i]), vcpOption)) { + setComboboxSelectedOption(ports[i], HwSPRacingF3EVOSettings::UARTPORT_DISABLED); + } + } + + updateFeatures(); +} + +void ConfigSPRacingF3EVOHWWidget::UART1Changed(int index) +{ + Q_UNUSED(index); + UARTxChanged(m_ui->cbUART1); +} + +void ConfigSPRacingF3EVOHWWidget::UART2Changed(int index) +{ + Q_UNUSED(index); + UARTxChanged(m_ui->cbUART2); +} + +void ConfigSPRacingF3EVOHWWidget::UART3Changed(int index) +{ + Q_UNUSED(index); + UARTxChanged(m_ui->cbUART3); +} diff --git a/ground/gcs/src/plugins/config/configspracingf3hwwidget.h b/ground/gcs/src/plugins/config/configspracingf3evohwwidget.h similarity index 65% rename from ground/gcs/src/plugins/config/configspracingf3hwwidget.h rename to ground/gcs/src/plugins/config/configspracingf3evohwwidget.h index 66d8476e7..4f90a2f33 100644 --- a/ground/gcs/src/plugins/config/configspracingf3hwwidget.h +++ b/ground/gcs/src/plugins/config/configspracingf3evohwwidget.h @@ -1,14 +1,14 @@ /** ****************************************************************************** * - * @file configspracingf3hwwidget.h - * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2016. + * @file configspracingf3evohwwidget.h + * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2016-2017. * The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. * @addtogroup GCSPlugins GCS Plugins * @{ * @addtogroup ConfigPlugin Config Plugin * @{ - * @brief SPRacingF3 hardware configuration panel + * @brief SPRacingF3EVO hardware configuration panel *****************************************************************************/ /* * This program is free software; you can redistribute it and/or modify @@ -25,36 +25,40 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef CONFIGSPRACINGF3HWWIDGET_H -#define CONFIGSPRACINGF3HWWIDGET_H +#ifndef CONFIGSPRACINGF3EVOHWWIDGET_H +#define CONFIGSPRACINGF3EVOHWWIDGET_H #include "../uavobjectwidgetutils/configtaskwidget.h" -class Ui_SPRacingF3HWWidget; +class Ui_SPRacingF3EVOHWWidget; class UAVObject; class QWidget; -class ConfigSPRacingF3HWWidget : public ConfigTaskWidget { +class ConfigSPRacingF3EVOHWWidget : public ConfigTaskWidget { Q_OBJECT public: - ConfigSPRacingF3HWWidget(QWidget *parent = 0); - ~ConfigSPRacingF3HWWidget(); + ConfigSPRacingF3EVOHWWidget(QWidget *parent = 0); + ~ConfigSPRacingF3EVOHWWidget(); protected: virtual void refreshWidgetsValuesImpl(UAVObject *obj); virtual void updateObjectsFromWidgetsImpl(); private: - Ui_SPRacingF3HWWidget *m_ui; + Ui_SPRacingF3EVOHWWidget *m_ui; + void UARTxChanged(QComboBox *cbUARTx); + void updateFeatures(); - void setupCustomCombos(); + bool optionConflict(int uartOption, int vcpOption); private slots: - void usbVCPPortChanged(int index); - void usbHIDPortChanged(int index); + void UART1Changed(int index); + void UART2Changed(int index); + void UART3Changed(int index); + void USBVCPFunctionChanged(int index); }; -#endif // CONFIGSPRACINGF3HWWIDGET_H +#endif // CONFIGSPRACINGF3EVOHWWIDGET_H diff --git a/ground/gcs/src/plugins/config/configspracingf3hwwidget.ui b/ground/gcs/src/plugins/config/configspracingf3evohwwidget.ui similarity index 59% rename from ground/gcs/src/plugins/config/configspracingf3hwwidget.ui rename to ground/gcs/src/plugins/config/configspracingf3evohwwidget.ui index cb1f7afb3..355189dee 100644 --- a/ground/gcs/src/plugins/config/configspracingf3hwwidget.ui +++ b/ground/gcs/src/plugins/config/configspracingf3evohwwidget.ui @@ -1,7 +1,7 @@ - SPRacingF3HWWidget - + SPRacingF3EVOHWWidget + 0 @@ -139,22 +139,6 @@ 12 - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 10 - - - - @@ -168,8 +152,8 @@ - - + + Qt::Horizontal @@ -181,6 +165,22 @@ + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + @@ -218,8 +218,8 @@ - - + + Qt::Horizontal @@ -232,239 +232,8 @@ - - - - - UART3 -(bottom) - - - Qt::AlignBottom|Qt::AlignHCenter - - - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 120 - 10 - - - - - - - - - - - UART2 - - - Qt::AlignBottom|Qt::AlignHCenter - - - - - - - - - - - - - - - UART1 -(bottom) - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Maximum - - - - 20 - 20 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Maximum - - - - 40 - 20 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 120 - 10 - - - - - - - - - - - - - I2C1 -(bottom) - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Qt::Vertical - - - QSizePolicy::Maximum - - - - 20 - 90 - - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 10 - 20 - - - - - - - - - - - - - - - - - - - - - - IO-2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - Sonar - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - ADC2 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - ADC1 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 10 - - - - - - - + + @@ -482,7 +251,7 @@ - :/configgadget/images/spracingf3_top.png + :/configgadget/images/spracingf3evo_top.png false @@ -495,271 +264,163 @@ - - - - + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 10 + 20 + + + + + + + + - - - IO-1 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - + Qt::Vertical - QSizePolicy::Maximum + QSizePolicy::Fixed 20 - 50 + 75 - - - - Qt::Vertical - - - - 20 - 10 - - - - - - - - LED Strip - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - VBAT - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - Qt::Vertical - - - QSizePolicy::Maximum - - - - 20 - 70 - - - - - - - - - - + - Buzzer - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Maximum - - - - 20 - 70 - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - SBUS Inverted - - - - - - - GPS Protocol - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - GPS Speed - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Telemetry Speed - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - DebugConsole Speed - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - DSMx Bind - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - Qt::Horizontal - - - - - - - Options + UART3 +(pads) Qt::AlignCenter + + + + Qt::Vertical + + + + 20 + 40 + + + + - + + + + + 20 + 80 + + + + + + + + + + + + + UART1 +(pads) + + + Qt::AlignCenter + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 75 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 35 + + + + + + + + IR/LED + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 60 + + + + + + + Qt::Vertical + + QSizePolicy::Fixed + 20 @@ -768,6 +429,39 @@ + + + + UART2 + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + I2C1 + + + Qt::AlignBottom|Qt::AlignHCenter + + + + + + + + 0 + 0 + + + + + + + @@ -981,6 +675,14 @@ Beware of not locking yourself out! + + + CommonHWSettingsWidget + QWidget +
commonhwsettingswidget.h
+ 1 +
+
diff --git a/ground/gcs/src/plugins/config/configspracingf3hwwidget.cpp b/ground/gcs/src/plugins/config/configspracingf3hwwidget.cpp deleted file mode 100644 index d260e645d..000000000 --- a/ground/gcs/src/plugins/config/configspracingf3hwwidget.cpp +++ /dev/null @@ -1,467 +0,0 @@ -/** - ****************************************************************************** - * - * @file configspracingf3hwwidget.cpp - * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2016. - * The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @addtogroup GCSPlugins GCS Plugins - * @{ - * @addtogroup ConfigPlugin Config Plugin - * @{ - * @brief SPRacingF3 hardware configuration panel - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -#include "configspracingf3hwwidget.h" - -#include "ui_configspracingf3hwwidget.h" - -#include "hwsettings.h" -#include "hwspracingf3settings.h" - -#include - -ConfigSPRacingF3HWWidget::ConfigSPRacingF3HWWidget(QWidget *parent) : ConfigTaskWidget(parent) -{ - m_ui = new Ui_SPRacingF3HWWidget(); - m_ui->setupUi(this); - - // must be done before auto binding ! - setWikiURL("SPRacingF3+Configuration"); - - addAutoBindings(); - - addUAVObject("HwSettings"); - -// addWidgetBinding("HwSettings", "RM_FlexiPort", m_ui->cbFlexi); -// addWidgetBinding("HwSettings", "RM_MainPort", m_ui->cbMain); -// addWidgetBinding("HwSettings", "RM_RcvrPort", m_ui->cbRcvr); -// -// addWidgetBinding("HwSettings", "USB_HIDPort", m_ui->cbUSBHIDFunction); -// addWidgetBinding("HwSettings", "USB_VCPPort", m_ui->cbUSBVCPFunction); -// -// addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbFlexiTelemSpeed); -// addWidgetBinding("HwSettings", "GPSSpeed", m_ui->cbFlexiGPSSpeed); -// -// addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbMainTelemSpeed); -// addWidgetBinding("HwSettings", "GPSSpeed", m_ui->cbMainGPSSpeed); -// -// addWidgetBinding("HwSettings", "TelemetrySpeed", m_ui->cbRcvrTelemSpeed); -// addWidgetBinding("HwSettings", "GPSSpeed", m_ui->cbRcvrGPSSpeed); -// -//// Add Gps protocol configuration -// addWidgetBinding("GPSSettings", "DataProtocol", m_ui->cbMainGPSProtocol); -// addWidgetBinding("GPSSettings", "DataProtocol", m_ui->cbFlexiGPSProtocol); -// addWidgetBinding("GPSSettings", "DataProtocol", m_ui->cbRcvrGPSProtocol); - - setupCustomCombos(); -} - -ConfigSPRacingF3HWWidget::~ConfigSPRacingF3HWWidget() -{ - // Do nothing -} - -void ConfigSPRacingF3HWWidget::setupCustomCombos() -{ -// connect(m_ui->cbUSBHIDFunction, SIGNAL(currentIndexChanged(int)), this, SLOT(usbHIDPortChanged(int))); -// connect(m_ui->cbUSBVCPFunction, SIGNAL(currentIndexChanged(int)), this, SLOT(usbVCPPortChanged(int))); -// -// m_ui->cbSonar->addItem(tr("Disabled")); -// m_ui->cbSonar->setCurrentIndex(0); -// m_ui->cbSonar->setEnabled(false); -// -// connect(m_ui->cbFlexi, SIGNAL(currentIndexChanged(int)), this, SLOT(flexiPortChanged(int))); -// connect(m_ui->cbMain, SIGNAL(currentIndexChanged(int)), this, SLOT(mainPortChanged(int))); -// connect(m_ui->cbRcvr, SIGNAL(currentIndexChanged(int)), this, SLOT(rcvrPortChanged(int))); -} - -void ConfigSPRacingF3HWWidget::refreshWidgetsValuesImpl(UAVObject *obj) -{ - Q_UNUSED(obj); - -// usbVCPPortChanged(0); -// mainPortChanged(0); -// flexiPortChanged(0); -// rcvrPortChanged(0); -} - -void ConfigSPRacingF3HWWidget::updateObjectsFromWidgetsImpl() -{ - // If any port is configured to be GPS port, enable GPS module if it is not enabled. - // Otherwise disable GPS module. -// quint8 enableModule = HwSettings::OPTIONALMODULES_DISABLED; -// -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_GPS) -// || isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_GPS)) { -// enableModule = HwSettings::OPTIONALMODULES_ENABLED; -// } -// -// HwSettings *hwSettings = HwSettings::GetInstance(getObjectManager()); -// hwSettings->setOptionalModules(HwSettings::OPTIONALMODULES_GPS, enableModule); -} - -void ConfigSPRacingF3HWWidget::usbVCPPortChanged(int index) -{ - Q_UNUSED(index); - -// bool vcpComBridgeEnabled = isComboboxOptionSelected(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_COMBRIDGE); -// -// if (!vcpComBridgeEnabled && isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// enableComboBoxOptionItem(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_COMBRIDGE, vcpComBridgeEnabled); -// -// if (!vcpComBridgeEnabled && isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// enableComboBoxOptionItem(m_ui->cbMain, HwSettings::RM_MAINPORT_COMBRIDGE, vcpComBridgeEnabled); -// -// if (!vcpComBridgeEnabled && isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (!vcpComBridgeEnabled && isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMCOMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// -// enableComboBoxOptionItem(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_COMBRIDGE, vcpComBridgeEnabled); -// enableComboBoxOptionItem(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMCOMBRIDGE, vcpComBridgeEnabled); -// -//// _DEBUGCONSOLE modes are mutual exclusive -// if (isComboboxOptionSelected(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_DEBUGCONSOLE)) { -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMDEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// } -// -//// _USBTELEMETRY modes are mutual exclusive -// if (isComboboxOptionSelected(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_USBTELEMETRY) -// && isComboboxOptionSelected(m_ui->cbUSBHIDFunction, HwSettings::USB_HIDPORT_USBTELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbUSBHIDFunction, HwSettings::USB_HIDPORT_DISABLED); -// } -} - -void ConfigSPRacingF3HWWidget::usbHIDPortChanged(int index) -{ - Q_UNUSED(index); - -//// _USBTELEMETRY modes are mutual exclusive -// if (isComboboxOptionSelected(m_ui->cbUSBHIDFunction, HwSettings::USB_HIDPORT_USBTELEMETRY) -// && isComboboxOptionSelected(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_USBTELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_DISABLED); -// } -} - -// void ConfigSPRacingF3HWWidget::flexiPortChanged(int index) -// { -// Q_UNUSED(index); -// -// m_ui->cbFlexiTelemSpeed->setVisible(false); -// m_ui->cbFlexiGPSSpeed->setVisible(false); -// m_ui->lblFlexiSpeed->setVisible(true); -// -//// Add Gps protocol configuration -// m_ui->cbFlexiGPSProtocol->setVisible(false); -// m_ui->lbFlexiGPSProtocol->setVisible(false); -// -// switch (getComboboxSelectedOption(m_ui->cbFlexi)) { -// case HwSettings::RM_FLEXIPORT_TELEMETRY: -// m_ui->cbFlexiTelemSpeed->setVisible(true); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_TELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMTELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_TELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// break; -// case HwSettings::RM_FLEXIPORT_GPS: -//// Add Gps protocol configuration -// m_ui->cbFlexiGPSProtocol->setVisible(true); -// m_ui->lbFlexiGPSProtocol->setVisible(true); -// -// m_ui->cbFlexiGPSSpeed->setVisible(true); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_GPS)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMGPS)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_GPS)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// -// break; -// case HwSettings::RM_FLEXIPORT_COMBRIDGE: -// m_ui->lblFlexiSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMCOMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// break; -// case HwSettings::RM_FLEXIPORT_DEBUGCONSOLE: -// m_ui->lblFlexiSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMDEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// break; -// case HwSettings::RM_FLEXIPORT_OSDHK: -// m_ui->lblFlexiSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_OSDHK)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// case HwSettings::RM_FLEXIPORT_MSP: -// m_ui->lblFlexiSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_MSP)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_MSP)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMMSP)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// break; -// case HwSettings::RM_FLEXIPORT_MAVLINK: -// m_ui->lblFlexiSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_MAVLINK)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_MAVLINK)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMMAVLINK)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// break; -// default: -// m_ui->lblFlexiSpeed->setVisible(false); -// break; -// } -// } -// -// void ConfigSPRacingF3HWWidget::mainPortChanged(int index) -// { -// Q_UNUSED(index); -// -// m_ui->cbMainTelemSpeed->setVisible(false); -// m_ui->cbMainGPSSpeed->setVisible(false); -// m_ui->lblMainSpeed->setVisible(true); -// -//// Add Gps protocol configuration -// m_ui->cbMainGPSProtocol->setVisible(false); -// m_ui->lbMainGPSProtocol->setVisible(false); -// -// switch (getComboboxSelectedOption(m_ui->cbMain)) { -// case HwSettings::RM_MAINPORT_TELEMETRY: -// m_ui->cbMainTelemSpeed->setVisible(true); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_TELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMTELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_TELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// break; -// case HwSettings::RM_MAINPORT_GPS: -//// Add Gps protocol configuration -// m_ui->cbMainGPSProtocol->setVisible(true); -// m_ui->lbMainGPSProtocol->setVisible(true); -// -// m_ui->cbMainGPSSpeed->setVisible(true); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_GPS)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMGPS)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_GPS)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// break; -// case HwSettings::RM_MAINPORT_COMBRIDGE: -// m_ui->lblMainSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMCOMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// break; -// case HwSettings::RM_MAINPORT_DEBUGCONSOLE: -// m_ui->lblMainSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbUSBVCPFunction, HwSettings::USB_VCPPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMDEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// break; -// case HwSettings::RM_MAINPORT_OSDHK: -// m_ui->lblMainSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_OSDHK)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// break; -// case HwSettings::RM_MAINPORT_MSP: -// m_ui->lblMainSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_MSP)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_MSP)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMMSP)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// break; -// case HwSettings::RM_MAINPORT_MAVLINK: -// m_ui->lblMainSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_MAVLINK)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_MAVLINK)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPMMAVLINK)) { -// setComboboxSelectedOption(m_ui->cbRcvr, HwSettings::RM_RCVRPORT_PPM); -// } -// break; -// default: -// m_ui->lblMainSpeed->setVisible(false); -// break; -// } -// } -// -// void ConfigSPRacingF3HWWidget::rcvrPortChanged(int index) -// { -// Q_UNUSED(index); -// m_ui->lblRcvrSpeed->setVisible(true); -// m_ui->cbRcvrTelemSpeed->setVisible(false); -// m_ui->cbRcvrGPSSpeed->setVisible(false); -// -//// Add Gps protocol configuration -// m_ui->cbRcvrGPSProtocol->setVisible(false); -// m_ui->lblRcvrGPSProtocol->setVisible(false); -// -// switch (getComboboxSelectedOption(m_ui->cbRcvr)) { -// case HwSettings::RM_RCVRPORT_TELEMETRY: -// case HwSettings::RM_RCVRPORT_PPMTELEMETRY: -// m_ui->cbRcvrTelemSpeed->setVisible(true); -// -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_TELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_TELEMETRY)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// case HwSettings::RM_RCVRPORT_COMBRIDGE: -// case HwSettings::RM_RCVRPORT_PPMCOMBRIDGE: -// m_ui->lblRcvrSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_COMBRIDGE)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// case HwSettings::RM_RCVRPORT_DEBUGCONSOLE: -// case HwSettings::RM_RCVRPORT_PPMDEBUGCONSOLE: -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_DEBUGCONSOLE)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// case HwSettings::RM_RCVRPORT_GPS: -// case HwSettings::RM_RCVRPORT_PPMGPS: -//// Add Gps protocol configuration -// m_ui->cbRcvrGPSProtocol->setVisible(true); -// m_ui->lblRcvrGPSProtocol->setVisible(true); -// -// m_ui->cbRcvrGPSSpeed->setVisible(true); -// -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_GPS)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_GPS)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// case HwSettings::RM_RCVRPORT_MSP: -// case HwSettings::RM_RCVRPORT_PPMMSP: -// m_ui->lblRcvrSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_MSP)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_MSP)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// case HwSettings::RM_RCVRPORT_MAVLINK: -// case HwSettings::RM_RCVRPORT_PPMMAVLINK: -// m_ui->lblRcvrSpeed->setVisible(false); -// if (isComboboxOptionSelected(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_MAVLINK)) { -// setComboboxSelectedOption(m_ui->cbFlexi, HwSettings::RM_FLEXIPORT_DISABLED); -// } -// if (isComboboxOptionSelected(m_ui->cbMain, HwSettings::RM_MAINPORT_MAVLINK)) { -// setComboboxSelectedOption(m_ui->cbMain, HwSettings::RM_MAINPORT_DISABLED); -// } -// break; -// default: -// m_ui->lblRcvrSpeed->setVisible(false); -// break; -// } -// }