Commit 5218dcaf authored by Lorenz Meier's avatar Lorenz Meier

Merge pull request #333 from tstellanova/flow_debug

Avoid re-requesting paramlist when opening new param widget; Fix widget promotion 
parents 46d27b94 f22f7f7f
......@@ -45,7 +45,6 @@ void QGCUASParamManager::requestParameterList()
if (!mav) {
return;
}
//paramDataModel->forgetAllOnboardParameters(); //TODO really??
setParameterStatusMsg(tr("Requested param list.. waiting"));
paramCommsMgr->requestParameterList();
}
......
......@@ -60,6 +60,15 @@ void UASParameterCommsMgr::loadParamCommsSettings()
}
void UASParameterCommsMgr::requestParameterListIfEmpty()
{
int totalOnboard = paramDataModel->countOnboardParams();
if (totalOnboard < 2) { //TODO arbitrary constant, maybe 0 is OK?
requestParameterList();
}
}
/**
* Send a request to deliver the list of onboard parameters
......
......@@ -72,6 +72,8 @@ public slots:
/** @brief Request list of parameters from MAV */
virtual void requestParameterList();
/** @brief Request a list of params onboard the MAV if the onboard param list we have is empty */
virtual void requestParameterListIfEmpty();
/** @brief Check for missing parameters */
virtual void retransmissionGuardTick();
......
......@@ -20,15 +20,28 @@ UASParameterDataModel::UASParameterDataModel(QObject *parent) :
int UASParameterDataModel::countPendingParams()
{
int totalPending = 0;
int total = 0;
QMap<int, QMap<QString, QVariant>*>::iterator i;
for (i = pendingParameters.begin(); i != pendingParameters.end(); ++i) {
// Iterate through the parameters of the component
QMap<QString, QVariant>* paramList = i.value();
totalPending += paramList->count();
total += paramList->count();
}
return totalPending;
return total;
}
int UASParameterDataModel::countOnboardParams()
{
int total = 0;
QMap<int, QMap<QString, QVariant>*>::iterator i;
for (i = onboardParameters.begin(); i != onboardParameters.end(); ++i) {
// Iterate through the parameters of the component
QMap<QString, QVariant>* paramList = i.value();
total += paramList->count();
}
return total;
}
......
......@@ -69,8 +69,10 @@ public:
}
/** @brief return a count of all pending parameters */
int countPendingParams();
virtual int countPendingParams();
/** @brief return a count of all onboard parameters we've received */
virtual int countOnboardParams();
virtual void writeOnboardParamsToStream(QTextStream &stream, const QString& uasName);
virtual void readUpdateParamsFromStream(QTextStream &stream);
......
......@@ -802,7 +802,7 @@ void QGCPX4VehicleConfig::loadConfig()
}
doneLoadingConfig = true;
//Config is finished, lets do a parameter request to ensure none are missed if someone else started requesting before we were finished.
mav->getParamCommsMgr()->requestParameterList();
paramCommsMgr->requestParameterListIfEmpty();
}
void QGCPX4VehicleConfig::setActiveUAS(UASInterface* active)
......
......@@ -1272,7 +1272,7 @@ p, li { white-space: pre-wrap; }
<customwidget>
<class>QGCPendingParamWidget</class>
<extends>QWidget</extends>
<header>/ui/QGCPendingParamWidget.h</header>
<header>ui/QGCPendingParamWidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
......
......@@ -62,8 +62,9 @@ void QGCParamWidget::init()
layoutWidget();
connectSignalsAndSlots();
// Ensure we're receiving the list of params
requestAllParamsUpdate();
// Ensure we have a list of params
paramCommsMgr->requestParameterListIfEmpty();
}
void QGCParamWidget::connectSignalsAndSlots()
......@@ -497,6 +498,7 @@ void QGCParamWidget::requestAllParamsUpdate()
// Clear view and request param list
clear();
//paramDataModel->forgetAllOnboardParameters(); //TODO really??
requestParameterList();
}
......
......@@ -791,7 +791,7 @@ void QGCVehicleConfig::loadConfig()
mav->getParamManager()->setParamDescriptions(paramTooltips);
doneLoadingConfig = true;
//Config is finished, lets do a parameter request to ensure none are missed if someone else started requesting before we were finished.
mav->getParamCommsMgr()->requestParameterList();
mav->getParamCommsMgr()->requestParameterListIfEmpty();
}
void QGCVehicleConfig::setActiveUAS(UASInterface* active)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment