From 3dff49a8d628459bd5fe70fc9e3da710f02d09cd Mon Sep 17 00:00:00 2001 From: Nate Weibley Date: Mon, 12 Oct 2015 17:37:33 -0400 Subject: [PATCH] Perform translation between QGC Fact data type and mavlink param type --- src/FactSystem/ParameterLoader.cc | 38 ++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/FactSystem/ParameterLoader.cc b/src/FactSystem/ParameterLoader.cc index 561030251..3071eb270 100644 --- a/src/FactSystem/ParameterLoader.cc +++ b/src/FactSystem/ParameterLoader.cc @@ -602,6 +602,42 @@ void ParameterLoader::_writeLocalParamCache() ds << cache_map; } +static MAV_PARAM_TYPE factType2MavParamType(int factType) +{ + MAV_PARAM_TYPE paramType; + switch (factType) { + case FactMetaData::valueTypeUint8: + paramType = MAV_PARAM_TYPE_UINT8; + break; + case FactMetaData::valueTypeInt8: + paramType = MAV_PARAM_TYPE_INT8; + break; + case FactMetaData::valueTypeUint16: + paramType = MAV_PARAM_TYPE_UINT16; + break; + case FactMetaData::valueTypeInt16: + paramType = MAV_PARAM_TYPE_INT16; + break; + case FactMetaData::valueTypeUint32: + paramType = MAV_PARAM_TYPE_UINT32; + break; + case FactMetaData::valueTypeInt32: + paramType = MAV_PARAM_TYPE_INT32; + break; + case FactMetaData::valueTypeFloat: + paramType = MAV_PARAM_TYPE_REAL32; + break; + case FactMetaData::valueTypeDouble: + paramType = MAV_PARAM_TYPE_REAL64; + break; + default: + paramType = MAV_PARAM_TYPE_INT32; + qCritical() << "Unsupported fact type" << factType; + break; + } + return paramType; +} + void ParameterLoader::_tryCacheHashLoad(int uasId, QVariant hash_value) { uint32_t crc32_value = 0; @@ -637,7 +673,7 @@ void ParameterLoader::_tryCacheHashLoad(int uasId, QVariant hash_value) foreach(int id, cache_map[component].keys()) { const QString &name = cache_map[component][id].first; const QVariant &value = cache_map[component][id].second.second; - const int mavType = cache_map[component][id].second.first; + const int mavType = factType2MavParamType(cache_map[component][id].second.first); _parameterUpdate(uasId, component, name, count, id, mavType, value); } } -- 2.22.0