From 223a748441f8302c961c1294b8229aa13741511d Mon Sep 17 00:00:00 2001 From: Michael Carpenter Date: Fri, 21 Jun 2013 18:32:54 -0400 Subject: [PATCH] CompassConfig implementation --- src/ui/configuration/CompassConfig.cc | 99 ++++++++++++++++++++++++++++++++++- src/ui/configuration/CompassConfig.h | 11 +++- src/ui/configuration/CompassConfig.ui | 4 +- 3 files changed, 109 insertions(+), 5 deletions(-) diff --git a/src/ui/configuration/CompassConfig.cc b/src/ui/configuration/CompassConfig.cc index 015c45c..fda95b6 100644 --- a/src/ui/configuration/CompassConfig.cc +++ b/src/ui/configuration/CompassConfig.cc @@ -3,9 +3,106 @@ CompassConfig::CompassConfig(QWidget *parent) : QWidget(parent) { + m_uas=0; ui.setupUi(this); -} + ui.autoDecCheckBox->setEnabled(false); + ui.enableCheckBox->setEnabled(false); + ui.orientationComboBox->setEnabled(false); + ui.declinationLineEdit->setEnabled(false); + connect(ui.enableCheckBox,SIGNAL(clicked(bool)),this,SLOT(enableClicked(bool))); + connect(ui.autoDecCheckBox,SIGNAL(clicked(bool)),this,SLOT(autoDecClicked(bool))); + connect(ui.orientationComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(orientationComboChanged(int))); + + connect(UASManager::instance(),SIGNAL(activeUASSet(UASInterface*)),this,SLOT(activeUASSet(UASInterface*))); + activeUASSet(UASManager::instance()->getActiveUAS()); +} CompassConfig::~CompassConfig() { } +void CompassConfig::activeUASSet(UASInterface *uas) +{ + if (!uas) return; + if (!m_uas) + { + disconnect(m_uas,SIGNAL(parameterChanged(int,int,QString,QVariant)),this,SLOT(parameterChanged(int,int,QString,QVariant))); + } + m_uas = uas; + connect(m_uas,SIGNAL(parameterChanged(int,int,QString,QVariant)),this,SLOT(parameterChanged(int,int,QString,QVariant))); +} +void CompassConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value) +{ + if (parameterName == "MAG_ENABLE") + { + if (value.toInt() == 0) + { + ui.enableCheckBox->setChecked(false); + ui.autoDecCheckBox->setEnabled(false); + ui.declinationLineEdit->setEnabled(false); + } + else + { + ui.enableCheckBox->setChecked(true); + ui.autoDecCheckBox->setEnabled(true); + ui.declinationLineEdit->setEnabled(true); + } + ui.enableCheckBox->setEnabled(true); + } + else if (parameterName == "COMPASS_AUTODEC") + { + if (value.toInt() == 0) + { + ui.autoDecCheckBox->setChecked(false); + } + else + { + ui.autoDecCheckBox->setChecked(true); + } + } + else if (parameterName == "COMPASS_DEC") + { + ui.declinationLineEdit->setText(QString::number(value.toDouble())); + } +} + +void CompassConfig::enableClicked(bool enabled) +{ + if (m_uas) + { + if (enabled) + { + m_uas->setParameter(0,"MAG_ENABLE",QVariant(1)); + ui.autoDecCheckBox->setEnabled(true); + if (!ui.autoDecCheckBox->isChecked()) + { + ui.declinationLineEdit->setEnabled(true); + } + } + else + { + m_uas->setParameter(0,"MAG_ENABLE",QVariant(0)); + ui.autoDecCheckBox->setEnabled(false); + ui.declinationLineEdit->setEnabled(false); + } + } +} + +void CompassConfig::autoDecClicked(bool enabled) +{ + if (m_uas) + { + if (enabled) + { + m_uas->setParameter(0,"COMPASS_AUTODEC",QVariant(1)); + } + else + { + m_uas->setParameter(0,"COMPASS_AUTODEC",QVariant(0)); + } + } +} + +void CompassConfig::orientationComboChanged(int index) +{ + +} diff --git a/src/ui/configuration/CompassConfig.h b/src/ui/configuration/CompassConfig.h index e70f340..31a7fe3 100644 --- a/src/ui/configuration/CompassConfig.h +++ b/src/ui/configuration/CompassConfig.h @@ -3,7 +3,8 @@ #include #include "ui_CompassConfig.h" - +#include "UASManager.h" +#include "UASInterface.h" class CompassConfig : public QWidget { Q_OBJECT @@ -11,9 +12,15 @@ class CompassConfig : public QWidget public: explicit CompassConfig(QWidget *parent = 0); ~CompassConfig(); - +private slots: + void activeUASSet(UASInterface *uas); + void parameterChanged(int uas, int component, QString parameterName, QVariant value); + void enableClicked(bool enabled); + void autoDecClicked(bool enabled); + void orientationComboChanged(int index); private: Ui::CompassConfig ui; + UASInterface *m_uas; }; #endif // COMPASSCONFIG_H diff --git a/src/ui/configuration/CompassConfig.ui b/src/ui/configuration/CompassConfig.ui index 8f7edd5..7ac1ede 100644 --- a/src/ui/configuration/CompassConfig.ui +++ b/src/ui/configuration/CompassConfig.ui @@ -42,7 +42,7 @@ <a href="http://magnetic-declination.com/">Declination Website</a> - + 280 @@ -102,7 +102,7 @@ - +