diff --git a/files/images/devices/AC-0004-11-2.jpg b/files/images/devices/AC-0004-11-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..334486b6756e6b2671c1a2dd1099f2c051e4a20c Binary files /dev/null and b/files/images/devices/AC-0004-11-2.jpg differ diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index b40e399506aa99057a2e25523a249abf192b7469..2f8034f33df93fcbf35c335d9927f628d4131184 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -111,6 +111,7 @@ files/images/mavs/frames-05.png files/images/devices/BR-HMC5883-01-2.jpg files/images/devices/BR-APMPWRDEAN-2.jpg + files/images/devices/AC-0004-11-2.jpg files/styles/Vera.ttf diff --git a/src/ui/configuration/SonarConfig.cc b/src/ui/configuration/SonarConfig.cc index fa9ce05d704c6b8621026b96cb497586ca7ddcb7..fb3481d90836c49b8e0c3b253e36f6d66606ae16 100644 --- a/src/ui/configuration/SonarConfig.cc +++ b/src/ui/configuration/SonarConfig.cc @@ -1,11 +1,68 @@ #include "SonarConfig.h" +#include - -SonarConfig::SonarConfig(QWidget *parent) : QWidget(parent) +SonarConfig::SonarConfig(QWidget *parent) : AP2ConfigWidget(parent) { ui.setupUi(this); + connect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(checkBoxToggled(bool))); + connect(ui.sonarTypeComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(sonarTypeChanged(int))); + + ui.sonarTypeComboBox->addItem("XL-EZ0 / XL-EZ4"); + ui.sonarTypeComboBox->addItem("LV-EZ0"); + ui.sonarTypeComboBox->addItem("XL-EZL0"); + ui.sonarTypeComboBox->addItem("HRLV"); } SonarConfig::~SonarConfig() { } +void SonarConfig::checkBoxToggled(bool enabled) +{ + if (enabled) + { + ui.sonarTypeComboBox->setEnabled(false); + } + if (!m_uas) + { + QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration")); + return; + } + m_uas->setParameter(0,"SONAR_ENABLE",ui.enableCheckBox->isChecked() ? 1 : 0); +} +void SonarConfig::sonarTypeChanged(int index) +{ + if (!m_uas) + { + QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration")); + return; + } + m_uas->setParameter(0,"SONAR_TYPE",ui.sonarTypeComboBox->currentIndex()); +} + +void SonarConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value) +{ + if (parameterName == "SONAR_ENABLE") + { + if (value.toInt() == 0) + { + //Disabled + disconnect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(checkBoxToggled(bool))); + ui.enableCheckBox->setChecked(false); + connect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(checkBoxToggled(bool))); + ui.sonarTypeComboBox->setEnabled(false); + } + else + { + disconnect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(checkBoxToggled(bool))); + ui.enableCheckBox->setChecked(true); + connect(ui.enableCheckBox,SIGNAL(toggled(bool)),this,SLOT(checkBoxToggled(bool))); + ui.sonarTypeComboBox->setEnabled(true); + } + } + else if (parameterName == "SONAR_TYPE") + { + disconnect(ui.sonarTypeComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(sonarTypeChanged(int))); + ui.sonarTypeComboBox->setCurrentIndex(value.toInt()); + connect(ui.sonarTypeComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(sonarTypeChanged(int))); + } +} diff --git a/src/ui/configuration/SonarConfig.h b/src/ui/configuration/SonarConfig.h index 07dc9cfbcde908401b91b1764c984b14d7200a3e..825591a65294e37f5359675d715103031bf601c9 100644 --- a/src/ui/configuration/SonarConfig.h +++ b/src/ui/configuration/SonarConfig.h @@ -2,16 +2,20 @@ #define SONARCONFIG_H #include +#include "AP2ConfigWidget.h" #include "ui_SonarConfig.h" -class SonarConfig : public QWidget +class SonarConfig : public AP2ConfigWidget { Q_OBJECT public: explicit SonarConfig(QWidget *parent = 0); ~SonarConfig(); - +private slots: + void parameterChanged(int uas, int component, QString parameterName, QVariant value); + void checkBoxToggled(bool enabled); + void sonarTypeChanged(int index); private: Ui::SonarConfig ui; }; diff --git a/src/ui/configuration/SonarConfig.ui b/src/ui/configuration/SonarConfig.ui index e286253853b60b192241715a33dcecf0e1298689..6bce3475ae776af46200c947cb29004b44b9e676 100644 --- a/src/ui/configuration/SonarConfig.ui +++ b/src/ui/configuration/SonarConfig.ui @@ -6,8 +6,8 @@ 0 0 - 400 - 300 + 651 + 432 @@ -29,7 +29,51 @@ false + + + + 30 + 60 + 91 + 81 + + + + + + + :/files/images/devices/AC-0004-11-2.jpg + + + true + + + + + + 140 + 60 + 70 + 17 + + + + CheckBox + + + + + + 150 + 100 + 171 + 22 + + + - + + +