From 6e8f316a6a52111af7b5fd406d570d898d9baa7e Mon Sep 17 00:00:00 2001 From: lm Date: Wed, 30 Jun 2010 17:01:29 +0200 Subject: [PATCH] load parameters work maybe --- src/uas/PxQuadMAV.cc | 2 ++ src/ui/QGCParamWidget.cc | 29 +++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/uas/PxQuadMAV.cc b/src/uas/PxQuadMAV.cc index d1a0f3a..be412aa 100644 --- a/src/uas/PxQuadMAV.cc +++ b/src/uas/PxQuadMAV.cc @@ -134,6 +134,8 @@ void PxQuadMAV::receiveMessage(LinkInterface* link, mavlink_message_t message) emit localizationChanged(this, status.position_fix); emit visionLocalizationChanged(this, status.vision_fix); emit gpsLocalizationChanged(this, status.gps_fix); + + qDebug() << "ATT CONTROL IS" << status.control_att; } break; default: diff --git a/src/ui/QGCParamWidget.cc b/src/ui/QGCParamWidget.cc index aaf08d0..f1f2e72 100644 --- a/src/ui/QGCParamWidget.cc +++ b/src/ui/QGCParamWidget.cc @@ -375,15 +375,36 @@ void QGCParamWidget::loadParameters() // Only load parameters for right mav if (mav->getUASID() == wpParams.at(0).toInt()) { + bool changed = false; + int component = wpParams.at(1).toInt(); + QString parameterName = wpParams.at(2); + if (!parameters.contains(component) || parameters.value(component)->value(parameterName, 0.0f) != (float)wpParams.at(3).toDouble()) + { + changed = true; + } + + // Set parameter value addParameter(wpParams.at(0).toInt(), wpParams.at(1).toInt(), wpParams.at(2), wpParams.at(3).toDouble()); - if (changedValues.contains(wpParams.at(1).toInt())) + + if (changed) { - if (changedValues.value(wpParams.at(1).toInt())->contains(wpParams.at(1))) + // Create changed values data structure if necessary + if (!changedValues.contains(wpParams.at(1).toInt())) { - changedValues.value(wpParams.at(1).toInt())->remove(wpParams.at(1)); + changedValues.insert(wpParams.at(1).toInt(), new QMap()); } - changedValues.value(wpParams.at(1).toInt())->insert(wpParams.at(1), (float)wpParams.at(2).toDouble()); + // Add to changed values + if (changedValues.value(wpParams.at(1).toInt())->contains(wpParams.at(2))) + { + changedValues.value(wpParams.at(1).toInt())->remove(wpParams.at(2)); + } + + changedValues.value(wpParams.at(1).toInt())->insert(wpParams.at(2), (float)wpParams.at(3).toDouble()); + + qDebug() << "MARKING COMP" << wpParams.at(1).toInt() << "PARAM" << wpParams.at(2) << "VALUE" << (float)wpParams.at(3).toDouble() << "AS CHANGED"; + + // Mark in UI } } }