|
|
|
@ -62,6 +62,10 @@ ParameterLoader::ParameterLoader(AutoPilotPlugin* autopilot, Vehicle* vehicle, Q
@@ -62,6 +62,10 @@ ParameterLoader::ParameterLoader(AutoPilotPlugin* autopilot, Vehicle* vehicle, Q
|
|
|
|
|
// We signal this to ouselves in order to start timer on our thread
|
|
|
|
|
connect(this, &ParameterLoader::restartWaitingParamTimer, this, &ParameterLoader::_restartWaitingParamTimer); |
|
|
|
|
|
|
|
|
|
_initialRequestTimeoutTimer.setSingleShot(true); |
|
|
|
|
_initialRequestTimeoutTimer.setInterval(6000); |
|
|
|
|
connect(&_initialRequestTimeoutTimer, &QTimer::timeout, this, &ParameterLoader::_initialRequestTimeout); |
|
|
|
|
|
|
|
|
|
_waitingParamTimeoutTimer.setSingleShot(true); |
|
|
|
|
_waitingParamTimeoutTimer.setInterval(1000); |
|
|
|
|
connect(&_waitingParamTimeoutTimer, &QTimer::timeout, this, &ParameterLoader::_waitingParamTimeout); |
|
|
|
@ -92,6 +96,8 @@ void ParameterLoader::_parameterUpdate(int uasId, int componentId, QString param
@@ -92,6 +96,8 @@ void ParameterLoader::_parameterUpdate(int uasId, int componentId, QString param
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_initialRequestTimeoutTimer.stop(); |
|
|
|
|
|
|
|
|
|
qCDebug(ParameterLoaderLog) << "_parameterUpdate (usaId:" << uasId << |
|
|
|
|
"componentId:" << componentId << |
|
|
|
|
"name:" << parameterName << |
|
|
|
@ -296,6 +302,10 @@ void ParameterLoader::refreshAllParameters(void)
@@ -296,6 +302,10 @@ void ParameterLoader::refreshAllParameters(void)
|
|
|
|
|
{ |
|
|
|
|
_dataMutex.lock(); |
|
|
|
|
|
|
|
|
|
if (!_initialLoadComplete) { |
|
|
|
|
_initialRequestTimeoutTimer.start(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Reset index wait lists
|
|
|
|
|
foreach (int componentId, _paramCountMap.keys()) { |
|
|
|
|
// Add/Update all indices to the wait list, parameter index is 0-based
|
|
|
|
@ -859,3 +869,10 @@ void ParameterLoader::_checkInitialLoadComplete(void)
@@ -859,3 +869,10 @@ void ParameterLoader::_checkInitialLoadComplete(void)
|
|
|
|
|
emit parametersReady(false); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ParameterLoader::_initialRequestTimeout(void) |
|
|
|
|
{ |
|
|
|
|
qgcApp()->showMessage("Vehicle did not respond to request for parameters, retrying"); |
|
|
|
|
refreshAllParameters(); |
|
|
|
|
_initialRequestTimeoutTimer.start(); |
|
|
|
|
} |
|
|
|
|