From 189135d447aea616c596483ef86a34181634101e Mon Sep 17 00:00:00 2001 From: tstellanova Date: Tue, 6 Aug 2013 16:50:08 -0700 Subject: [PATCH] Fixing inter-object wiring --- src/uas/QGCUASParamManager.cc | 12 +++++++++++- src/uas/QGCUASParamManager.h | 8 ++++---- src/uas/UASManager.cc | 1 + src/ui/ParameterInterface.cc | 3 ++- src/ui/QGCParamWidget.cc | 10 +++++++--- src/ui/QGCParamWidget.h | 3 ++- 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/uas/QGCUASParamManager.cc b/src/uas/QGCUASParamManager.cc index dc11769a90..9103a2b437 100644 --- a/src/uas/QGCUASParamManager.cc +++ b/src/uas/QGCUASParamManager.cc @@ -13,6 +13,12 @@ QGCUASParamManager::QGCUASParamManager(UASInterface* uas, QWidget *parent) : { paramDataModel = uas->getParamDataModel(); uas->setParamManager(this); + + // Connect retransmission guard + connect(this, SIGNAL(parameterUpdateRequested(int,QString)), this, SLOT(requestParameterUpdate(int,QString))); + connect(this, SIGNAL(parameterUpdateRequestedById(int,int)), mav, SLOT(requestParameter(int,int))); + + } @@ -29,6 +35,10 @@ void QGCUASParamManager::requestParameterUpdate(int component, const QString& pa } } + + + + /** * Send a request to deliver the list of onboard parameters * to the MAV. @@ -132,7 +142,7 @@ void QGCUASParamManager::retransmissionGuardTick() if (count < retransmissionBurstRequestSize) { //qDebug() << __FILE__ << __LINE__ << "RETRANSMISSION GUARD REQUESTS RETRANSMISSION OF PARAM #" << id << "FROM COMPONENT #" << component; //TODO mavlink msg type for "request parameter set" ? - emit requestParameter(component, id); + emit parameterUpdateRequestedById(component, id); setParameterStatusMsg(tr("Requested retransmission of #%1").arg(id+1)); count++; } else { diff --git a/src/uas/QGCUASParamManager.h b/src/uas/QGCUASParamManager.h index 872273c522..6a87ba7632 100644 --- a/src/uas/QGCUASParamManager.h +++ b/src/uas/QGCUASParamManager.h @@ -27,12 +27,13 @@ protected: //TODO decouple this UI message display further virtual void setParameterStatusMsg(const QString& msg); + signals: void parameterChanged(int component, QString parameter, QVariant value); void parameterChanged(int component, int parameterIndex, QVariant value); void parameterListUpToDate(int component); - /** @brief Request a single parameter */ - void requestParameter(int component, int parameter); + void parameterUpdateRequested(int component, const QString& parameter); + void parameterUpdateRequestedById(int componentId, int paramId); public slots: @@ -43,8 +44,7 @@ public slots: /** @brief Check for missing parameters */ virtual void retransmissionGuardTick(); - - /** @brief Request one single parameter */ + /** @brief Request a single parameter by name */ virtual void requestParameterUpdate(int component, const QString& parameter); protected: diff --git a/src/uas/UASManager.cc b/src/uas/UASManager.cc index 072c7aea7a..8ee92242db 100644 --- a/src/uas/UASManager.cc +++ b/src/uas/UASManager.cc @@ -280,6 +280,7 @@ void UASManager::addUAS(UASInterface* uas) // Only execute if there is no UAS at this index if (!systems.contains(uas)) { + qDebug() << "Add new UAS: " << uas->getUASID(); systems.append(uas); // Set home position on UAV if set in UI // - this is done on a per-UAV basis diff --git a/src/ui/ParameterInterface.cc b/src/ui/ParameterInterface.cc index 2936394cec..c7d5f811b3 100644 --- a/src/ui/ParameterInterface.cc +++ b/src/ui/ParameterInterface.cc @@ -91,8 +91,9 @@ void ParameterInterface::selectUAS(int index) void ParameterInterface::addUAS(UASInterface* uas) { int uasId = uas->getUASID(); + qDebug() << "ParameterInterface::addUAS : " << uasId ; + if (paramWidgets->contains(uasId) ) { - qDebug() << "Already have QGCParamWidget for: " << uasId ; return; } diff --git a/src/ui/QGCParamWidget.cc b/src/ui/QGCParamWidget.cc index 6b10632b7e..4c973cd2aa 100644 --- a/src/ui/QGCParamWidget.cc +++ b/src/ui/QGCParamWidget.cc @@ -144,11 +144,15 @@ QGCParamWidget::QGCParamWidget(UASInterface* uas, QWidget *parent) : // New parameters from UAS connect(uas, SIGNAL(parameterChanged(int,int,int,int,QString,QVariant)), this, SLOT(receivedParameterUpdate(int,int,int,int,QString,QVariant))); - // Connect retransmission guard - connect(this, SIGNAL(requestParameterByName(int,QString)), uas, SLOT(requestParameterByName(int,QString))); - connect(this, SIGNAL(requestParameterByName(int,int)), uas, SLOT(requestParameterByName(int,int))); + connect(&retransmissionTimer, SIGNAL(timeout()), this, SLOT(retransmissionGuardTick())); + +// connect(this, SIGNAL(requestParameter(int,QString)), uas, SLOT(requestParameter(int,QString))); +// connect(this, SIGNAL(requestParameter(int,int)), uas, SLOT(requestParameter(int,int))); + + + // Get parameters if (uas) { requestAllParamsUpdate(); diff --git a/src/ui/QGCParamWidget.h b/src/ui/QGCParamWidget.h index 06a15b83bb..af58eabf3f 100644 --- a/src/ui/QGCParamWidget.h +++ b/src/ui/QGCParamWidget.h @@ -59,6 +59,7 @@ signals: /** @brief A parameter was changed in the widget, NOT onboard */ //void parameterChanged(int component, QString parametername, float value); // defined in QGCUASParamManager already + public slots: /** @brief Add a component to the list */ void addComponentItem(int uas, int component, QString componentName); @@ -69,7 +70,7 @@ public slots: /** @brief Request list of parameters from MAV */ void requestAllParamsUpdate(); /** @brief Set one parameter, changes value in RAM of MAV */ - void setParameter(int component, QString parameterName, QVariant value); + virtual void setParameter(int component, QString parameterName, QVariant value); /** @brief Set all parameters, changes the value in RAM of MAV */ void setParameters(); /** @brief Write the current parameters to permanent storage (EEPROM/HDD) */ -- GitLab