diff --git a/files/images/devices/BR-0004-03-2.jpg b/files/images/devices/BR-0004-03-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0126646ef48942d00ed34f2b0e720b26a308f155 Binary files /dev/null and b/files/images/devices/BR-0004-03-2.jpg differ diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index 2f8034f33df93fcbf35c335d9927f628d4131184..c9e4ccbf482b76511396ee7a402d82f556a68c29 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -112,6 +112,7 @@ files/images/devices/BR-HMC5883-01-2.jpg files/images/devices/BR-APMPWRDEAN-2.jpg files/images/devices/AC-0004-11-2.jpg + files/images/devices/BR-0004-03-2.jpg files/styles/Vera.ttf diff --git a/src/ui/configuration/AirspeedConfig.cc b/src/ui/configuration/AirspeedConfig.cc index bff387fb6aa82f8f61828e0eac4b2ac008e1df01..8402622ee63b0ada9d09dbe0eca8906e4253e28c 100644 --- a/src/ui/configuration/AirspeedConfig.cc +++ b/src/ui/configuration/AirspeedConfig.cc @@ -1,11 +1,82 @@ #include "AirspeedConfig.h" +#include - -AirspeedConfig::AirspeedConfig(QWidget *parent) : QWidget(parent) +AirspeedConfig::AirspeedConfig(QWidget *parent) : AP2ConfigWidget(parent) { ui.setupUi(this); + connect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(enableCheckBoxClicked(bool))); + connect(ui.useAirspeedCheckBox,SIGNAL(toggled(bool)),this,SLOT(useCheckBoxClicked(bool))); } AirspeedConfig::~AirspeedConfig() { } +void AirspeedConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value) +{ + if (parameterName == "ARSPD_ENABLE") + { + if (value.toInt() == 0) + { + disconnect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(enableCheckBoxClicked(bool))); + ui.enableCheckBox->setChecked(false); + connect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(enableCheckBoxClicked(bool))); + ui.useAirspeedCheckBox->setEnabled(false); + } + else + { + disconnect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(enableCheckBoxClicked(bool))); + ui.enableCheckBox->setChecked(true); + connect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(enableCheckBoxClicked(bool))); + ui.useAirspeedCheckBox->setEnabled(true); + } + } + else if (parameterName == "ARSPD_USE") + { + if (value.toInt() == 0) + { + disconnect(ui.useAirspeedCheckBox,SIGNAL(toggled(bool)),this,SLOT(useCheckBoxClicked(bool))); + ui.useAirspeedCheckBox->setChecked(false); + connect(ui.useAirspeedCheckBox,SIGNAL(toggled(bool)),this,SLOT(useCheckBoxClicked(bool))); + } + else + { + disconnect(ui.useAirspeedCheckBox,SIGNAL(toggled(bool)),this,SLOT(useCheckBoxClicked(bool))); + ui.useAirspeedCheckBox->setChecked(true); + connect(ui.useAirspeedCheckBox,SIGNAL(toggled(bool)),this,SLOT(useCheckBoxClicked(bool))); + } + } +} + +void AirspeedConfig::useCheckBoxClicked(bool checked) +{ + if (!m_uas) + { + QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration")); + return; + } + if (checked) + { + m_uas->setParameter(0,"ARSPD_USE",1); + } + else + { + m_uas->setParameter(0,"ARSPD_USE",0); + } +} + +void AirspeedConfig::enableCheckBoxClicked(bool checked) +{ + if (!m_uas) + { + QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration")); + return; + } + if (checked) + { + m_uas->setParameter(0,"ARSPD_ENABLE",1); + } + else + { + m_uas->setParameter(0,"ARSPD_ENABLE",0); + } +} diff --git a/src/ui/configuration/AirspeedConfig.h b/src/ui/configuration/AirspeedConfig.h index cd67ba49ece8b3f478060d6196ca69120c3c4f4f..1646b36759fa0154eb23120203edc0873ead70bc 100644 --- a/src/ui/configuration/AirspeedConfig.h +++ b/src/ui/configuration/AirspeedConfig.h @@ -2,16 +2,20 @@ #define AIRSPEEDCONFIG_H #include +#include "AP2ConfigWidget.h" #include "ui_AirspeedConfig.h" -class AirspeedConfig : public QWidget +class AirspeedConfig : public AP2ConfigWidget { Q_OBJECT public: explicit AirspeedConfig(QWidget *parent = 0); ~AirspeedConfig(); - +private slots: + void parameterChanged(int uas, int component, QString parameterName, QVariant value); + void useCheckBoxClicked(bool checked); + void enableCheckBoxClicked(bool checked); private: Ui::AirspeedConfig ui; }; diff --git a/src/ui/configuration/AirspeedConfig.ui b/src/ui/configuration/AirspeedConfig.ui index 07c97247a9cd5c7bf278a54c5d860394a466dc28..7d33cae3664b7dec1d1e5ce1bbf64beca2735ed7 100644 --- a/src/ui/configuration/AirspeedConfig.ui +++ b/src/ui/configuration/AirspeedConfig.ui @@ -29,7 +29,54 @@ false + + + + 20 + 60 + 71 + 71 + + + + + + + :/files/images/devices/BR-0004-03-2.jpg + + + true + + + + + + 110 + 70 + 70 + 17 + + + + Enable + + + + + + 110 + 100 + 91 + 17 + + + + Use Airspeed + + - + + +