From 36060bd15e271564c06cbaf5dff856b66696974f Mon Sep 17 00:00:00 2001 From: Michael Carpenter Date: Fri, 21 Jun 2013 09:57:23 -0400 Subject: [PATCH] Implementation of FrameTypeConfig completed, now reads and sets Frame Type --- src/ui/configuration/FrameTypeConfig.cc | 57 +++++++++++++++++++++++-- src/ui/configuration/FrameTypeConfig.h | 3 ++ 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/ui/configuration/FrameTypeConfig.cc b/src/ui/configuration/FrameTypeConfig.cc index abb894245..571c10073 100644 --- a/src/ui/configuration/FrameTypeConfig.cc +++ b/src/ui/configuration/FrameTypeConfig.cc @@ -34,27 +34,76 @@ This file is part of the QGROUNDCONTROL project FrameTypeConfig::FrameTypeConfig(QWidget *parent) : QWidget(parent) { + m_uas=0; ui.setupUi(this); + + //Disable until we get a FRAME parameter. + ui.xRadioButton->setEnabled(false); + ui.vRadioButton->setEnabled(false); + ui.plusRadioButton->setEnabled(false); + connect(ui.plusRadioButton,SIGNAL(clicked()),this,SLOT(plusFrameSelected())); connect(ui.xRadioButton,SIGNAL(clicked()),this,SLOT(xFrameSelected())); connect(ui.vRadioButton,SIGNAL(clicked()),this,SLOT(vFrameSelected())); - //connect(UASManager::instance()->getActiveUAS()->getParamManager(),SIGNAL(parameterListUpToDate(int)) + connect(UASManager::instance(),SIGNAL(activeUASSet(UASInterface*)),this,SLOT(activeUASSet(UASInterface*))); + activeUASSet(UASManager::instance()->getActiveUAS()); } FrameTypeConfig::~FrameTypeConfig() { } -void FrameTypeConfig::xFrameSelected() +void FrameTypeConfig::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 FrameTypeConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value) { + if (parameterName == "FRAME") + { + ui.xRadioButton->setEnabled(true); + ui.vRadioButton->setEnabled(true); + ui.plusRadioButton->setEnabled(true); + if (value.toInt() == 0) + { + ui.plusRadioButton->setChecked(true); + } + else if (value.toInt() == 1) + { + ui.xRadioButton->setChecked(true); + } + else if (value.toInt() == 2) + { + ui.vRadioButton->setChecked(true); + } + } +} +void FrameTypeConfig::xFrameSelected() +{ + if (m_uas) + { + m_uas->setParameter(0,"FRAME",QVariant(1)); + } } void FrameTypeConfig::plusFrameSelected() { - + if (m_uas) + { + m_uas->setParameter(0,"FRAME",QVariant(0)); + } } void FrameTypeConfig::vFrameSelected() { - + if (m_uas) + { + m_uas->setParameter(0,"FRAME",QVariant(2)); + } } diff --git a/src/ui/configuration/FrameTypeConfig.h b/src/ui/configuration/FrameTypeConfig.h index f24e00f9f..d28c91439 100644 --- a/src/ui/configuration/FrameTypeConfig.h +++ b/src/ui/configuration/FrameTypeConfig.h @@ -45,11 +45,14 @@ public: explicit FrameTypeConfig(QWidget *parent = 0); ~FrameTypeConfig(); private slots: + void activeUASSet(UASInterface *uas); + void parameterChanged(int uas, int component, QString parameterName, QVariant value); void xFrameSelected(); void plusFrameSelected(); void vFrameSelected(); private: Ui::FrameTypeConfig ui; + UASInterface *m_uas; }; #endif // FRAMETYPECONFIG_H -- 2.22.0