Commit 3dff49a8 authored by Nate Weibley's avatar Nate Weibley

Perform translation between QGC Fact data type and mavlink param type

parent 010cfb79
...@@ -602,6 +602,42 @@ void ParameterLoader::_writeLocalParamCache() ...@@ -602,6 +602,42 @@ void ParameterLoader::_writeLocalParamCache()
ds << cache_map; 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) void ParameterLoader::_tryCacheHashLoad(int uasId, QVariant hash_value)
{ {
uint32_t crc32_value = 0; uint32_t crc32_value = 0;
...@@ -637,7 +673,7 @@ void ParameterLoader::_tryCacheHashLoad(int uasId, QVariant hash_value) ...@@ -637,7 +673,7 @@ void ParameterLoader::_tryCacheHashLoad(int uasId, QVariant hash_value)
foreach(int id, cache_map[component].keys()) { foreach(int id, cache_map[component].keys()) {
const QString &name = cache_map[component][id].first; const QString &name = cache_map[component][id].first;
const QVariant &value = cache_map[component][id].second.second; 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); _parameterUpdate(uasId, component, name, count, id, mavType, value);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment