Commit d3db72a6 authored by tstellanova's avatar tstellanova

when param widget is loaded we only want to re-request the whole param list if...

when param widget is loaded we only want to re-request the whole param list if we don't already have one
parent 9bdb1a3a
......@@ -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)
......
......@@ -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