diff --git a/src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc b/src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc index d64380b20014b0c7bdadeeed7be0fabc326e1b59..4fe2703ad98c7b43b0643210e537df6d6fc8b3e1 100644 --- a/src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc +++ b/src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc @@ -198,30 +198,9 @@ void PX4ParameterMetaData::_loadParameterFactMetaData(void) qCDebug(PX4ParameterMetaDataLog) << "Found parameter name:" << name << " type:" << type << " default:" << strDefault; // Convert type from string to FactMetaData::ValueType_t - - struct String2Type { - const char* strType; - FactMetaData::ValueType_t type; - }; - - static const struct String2Type rgString2Type[] = { - { "FLOAT", FactMetaData::valueTypeFloat }, - { "INT32", FactMetaData::valueTypeInt32 }, - }; - static const size_t crgString2Type = sizeof(rgString2Type) / sizeof(rgString2Type[0]); - - bool found = false; - FactMetaData::ValueType_t foundType; - for (size_t i=0; istrType) { - found = true; - foundType = info->type; - break; - } - } - if (!found) { + bool unknownType; + FactMetaData::ValueType_t foundType = FactMetaData::stringToType(type, unknownType); + if (unknownType) { qWarning() << "Parameter meta data with bad type:" << type << " name:" << name; return; } diff --git a/src/MissionManager/MissionCommandList.cc b/src/MissionManager/MissionCommandList.cc index 8a0a6dc228e0ba5a63c30c630906bcbc0b2f4891..2adfabee0280785022e7214e97ad7ffd74bba989 100644 --- a/src/MissionManager/MissionCommandList.cc +++ b/src/MissionManager/MissionCommandList.cc @@ -26,6 +26,7 @@ This file is part of the QGROUNDCONTROL project #include "FirmwarePluginManager.h" #include "QGCApplication.h" #include "QGroundControlQmlGlobal.h" +#include "JsonHelper.h" #include #include @@ -62,20 +63,6 @@ MissionCommandList::MissionCommandList(const QString& jsonFilename, QObject* par _loadMavCmdInfoJson(jsonFilename); } -bool MissionCommandList::_validateKeyTypes(QJsonObject& jsonObject, const QStringList& keys, const QList& types) -{ - for (int i=0; i types; keys << _defaultJsonKey << _decimalPlacesJsonKey << _enumStringsJsonKey << _enumValuesJsonKey << _labelJsonKey << _unitsJsonKey; types << QJsonValue::Double << QJsonValue::Double << QJsonValue::String << QJsonValue::String << QJsonValue::String << QJsonValue::String; - if (!_validateKeyTypes(paramObject, keys, types)) { + if (!JsonHelper::validateKeyTypes(jsonObject, keys, types, errorString)) { + qWarning() << errorString; return; } diff --git a/src/MissionManager/MissionCommandList.h b/src/MissionManager/MissionCommandList.h index 98c3ef78c9b29e272d9887295a7b3df2978c8aa7..55afd27c8f532e93361c6605c7d1456d249b0661 100644 --- a/src/MissionManager/MissionCommandList.h +++ b/src/MissionManager/MissionCommandList.h @@ -143,7 +143,6 @@ public: private: void _loadMavCmdInfoJson(const QString& jsonFilename); - bool _validateKeyTypes(QJsonObject& jsonObject, const QStringList& keys, const QList& types); private: QMap _mavCmdInfoMap;