From ed807d4ff04a65cfbd93eaef3fd9cc3830eb1e21 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 4 Dec 2014 15:47:39 -0800 Subject: [PATCH] Mock param mgr is created with full set of params --- src/qgcunittest/MockQGCUASParamManager.cc | 52 ++++++++++++++++++++++- src/qgcunittest/MockQGCUASParamManager.h | 2 + 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/qgcunittest/MockQGCUASParamManager.cc b/src/qgcunittest/MockQGCUASParamManager.cc index c5e177c36..c2cad7b3f 100644 --- a/src/qgcunittest/MockQGCUASParamManager.cc +++ b/src/qgcunittest/MockQGCUASParamManager.cc @@ -22,6 +22,8 @@ ======================================================================*/ #include "MockQGCUASParamManager.h" +#include "mavlink.h" + #include #include @@ -29,7 +31,7 @@ Q_LOGGING_CATEGORY(MockQGCUASParamManagerLog, "MockQGCUASParamManagerLog") MockQGCUASParamManager::MockQGCUASParamManager(void) { - + _loadParams(); } bool MockQGCUASParamManager::getParameterValue(int component, const QString& parameter, QVariant& value) const @@ -52,3 +54,51 @@ void MockQGCUASParamManager::setParameter(int component, QString parameterName, _mapParams[parameterName] = value; emit parameterUpdated(_defaultComponentId, parameterName, value); } + +void MockQGCUASParamManager::_loadParams(void) +{ + QFile paramFile(":/unittest/MockLink.param"); + + bool success = paramFile.open(QFile::ReadOnly); + Q_UNUSED(success); + Q_ASSERT(success); + + QTextStream paramStream(¶mFile); + + while (!paramStream.atEnd()) { + QString line = paramStream.readLine(); + + if (line.startsWith("#")) { + continue; + } + + QStringList paramData = line.split("\t"); + Q_ASSERT(paramData.count() == 5); + + QString paramName = paramData.at(2); + QString valStr = paramData.at(3); + uint paramType = paramData.at(4).toUInt(); + + QVariant paramValue; + switch (paramType) { + case MAV_PARAM_TYPE_REAL32: + paramValue = QVariant(valStr.toFloat()); + break; + case MAV_PARAM_TYPE_UINT32: + paramValue = QVariant(valStr.toUInt()); + break; + case MAV_PARAM_TYPE_INT32: + paramValue = QVariant(valStr.toInt()); + break; + case MAV_PARAM_TYPE_INT8: + paramValue = QVariant((unsigned char)valStr.toUInt()); + break; + default: + Q_ASSERT(false); + break; + } + + Q_ASSERT(!_mapParams.contains(paramName)); + _mapParams[paramName] = paramValue; + } +} diff --git a/src/qgcunittest/MockQGCUASParamManager.h b/src/qgcunittest/MockQGCUASParamManager.h index 548eb391f..e5d587100 100644 --- a/src/qgcunittest/MockQGCUASParamManager.h +++ b/src/qgcunittest/MockQGCUASParamManager.h @@ -97,6 +97,8 @@ public slots: virtual void copyPersistentParamsToVolatile() { Q_ASSERT(false); } private: + void _loadParams(void); + ParamMap_t _mapParams; static const int _defaultComponentId = 50; -- 2.22.0