Commit fa69b34c authored by Don Gagne's avatar Don Gagne

Merge pull request #1077 from DonLakeFlyer/ParamHang

Param boot hang
parents 2c0d56c7 bd3bb475
......@@ -78,8 +78,11 @@ UASInterface* QGCMAVLinkUASFactory::createUAS(MAVLinkProtocol* mavlink, LinkInte
// Make UAS aware that this link can be used to communicate with the actual robot
uas->addLink(link);
// First thing we do with a new UAS is get the parameters
uas->requestParameters();
// Now add UAS to "official" list, which makes the whole application aware of it
UASManager::instance()->addUAS(uas);
return uas;
}
......@@ -40,8 +40,6 @@ void QGCBaseParamWidget::setUAS(UASInterface* uas)
connectToParamManager();
connectViewSignalsAndSlots();
layoutWidget();
paramMgr->requestParameterListIfEmpty();
}
}
......@@ -62,6 +60,9 @@ void QGCBaseParamWidget::connectToParamManager()
// Listen for param list reload finished
connect(paramMgr, SIGNAL(parameterListUpToDate()),
this, SLOT(handleOnboardParameterListUpToDate()));
if (paramMgr->parametersReady()) {
handleOnboardParameterListUpToDate();
}
// Listen to communications status messages so we can display them
connect(paramMgr, SIGNAL(parameterStatusMsgUpdated(QString,int)),
......
......@@ -51,7 +51,8 @@ QGCParamWidget::QGCParamWidget(QWidget *parent) :
QGCBaseParamWidget(parent),
componentItems(new QMap<int, QTreeWidgetItem*>()),
statusLabel(new QLabel(this)),
tree(new QTreeWidget(this))
tree(new QTreeWidget(this)),
_fullParamListLoaded(false)
{
......@@ -236,9 +237,15 @@ void QGCParamWidget::handleOnboardParamUpdate(int compId, const QString& paramNa
void QGCParamWidget::handleOnboardParameterListUpToDate()
{
// Don't load full param list more than once
if (_fullParamListLoaded) {
return;
}
_fullParamListLoaded = true;
//turn off updates while we refresh the entire list
tree->setUpdatesEnabled(false);
qDebug() << "WARN: LIST UPDATE";
//rewrite the component item tree after receiving the full list
QMap<int, QMap<QString, QVariant>*>::iterator i;
......
......@@ -104,7 +104,9 @@ protected:
QLabel* statusLabel; ///< User-facing parameter status label
QTreeWidget* tree; ///< The parameter tree
QStringList _filterList;
private:
bool _fullParamListLoaded;
};
#endif // QGCPARAMWIDGET_H
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