From 1f7a715794561fc85bc519f6a17ae4561851f02a Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 16 Apr 2015 12:59:31 -0700 Subject: [PATCH] Assume param dups are not fatal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If we get a dup, clear the default value since we can’t trust it --- .../PX4/PX4ParameterLoader.cc | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/AutoPilotPlugins/PX4/PX4ParameterLoader.cc b/src/AutoPilotPlugins/PX4/PX4ParameterLoader.cc index 4be3a4e21..3309b1634 100644 --- a/src/AutoPilotPlugins/PX4/PX4ParameterLoader.cc +++ b/src/AutoPilotPlugins/PX4/PX4ParameterLoader.cc @@ -145,7 +145,7 @@ void PX4ParameterLoader::loadParameterFactMetaData(void) qWarning() << "Badly formed XML"; return; } - if (intVersion <= 1) { + if (intVersion <= 2) { // We can't read these old files qDebug() << "Parameter version stamp too old, skipping load" << parameterFilename; return; @@ -218,18 +218,22 @@ void PX4ParameterLoader::loadParameterFactMetaData(void) metaData = new FactMetaData(foundType); Q_CHECK_PTR(metaData); metaData->setGroup(factGroup); - if (!_mapParameterName2FactMetaData.contains(name)) { + if (_mapParameterName2FactMetaData.contains(name)) { + // We can't trust the default value since we have dups + qDebug() << "Duplicate parameter found:" << name; + _mapParameterName2FactMetaData[name]->clearDefaultValue(); + } else { _mapParameterName2FactMetaData[name] = metaData; - } - - if (xml.attributes().hasAttribute("default")) { - bool convertOk; - QVariant varDefault = _stringToTypedVariant(strDefault, metaData->type(), &convertOk); - if (convertOk) { - metaData->setDefaultValue(varDefault); - } else { - // Non-fatal - qDebug() << "Parameter meta data with bad default value, name:" << name << " type:" << type << " default:" << strDefault; + + if (xml.attributes().hasAttribute("default")) { + bool convertOk; + QVariant varDefault = _stringToTypedVariant(strDefault, metaData->type(), &convertOk); + if (convertOk) { + metaData->setDefaultValue(varDefault); + } else { + // Non-fatal + qDebug() << "Parameter meta data with bad default value, name:" << name << " type:" << type << " default:" << strDefault; + } } } -- 2.22.0