From bb9027981ba39576548626ea960b6ee2a6fe3f67 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sat, 5 Dec 2015 19:17:02 -0800 Subject: [PATCH] Hack in APM meta data --- src/FactSystem/Fact.cc | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/FactSystem/Fact.cc b/src/FactSystem/Fact.cc index f3740f4aa..f3a617614 100644 --- a/src/FactSystem/Fact.cc +++ b/src/FactSystem/Fact.cc @@ -25,6 +25,7 @@ /// @author Don Gagne #include "Fact.h" +#include "QGCMAVLink.h" #include @@ -168,7 +169,7 @@ QString Fact::enumStringValue(void) const { if (_metaData) { int enumIndex = this->enumIndex(); - if (enumIndex > 0 && enumIndex < _metaData->enumStrings().count()) { + if (enumIndex >= 0 && enumIndex < _metaData->enumStrings().count()) { return _metaData->enumStrings()[enumIndex]; } } else { @@ -364,6 +365,41 @@ QString Fact::group(void) const void Fact::setMetaData(FactMetaData* metaData) { + static QStringList apmFlightModeParamList; + static QStringList apmFlightModeEnumStrings; + static QVariantList apmFlightModeEnumValues; + + static QStringList apmChannelOptParamList; + static QStringList apmChannelOptEnumStrings; + static QVariantList apmChannelOptEnumValues; + + // FIXME: Hack to stuff enums into APM parameters, wating on real APM metadata + + if (apmFlightModeEnumStrings.count() == 0) { + apmFlightModeParamList << "FLTMODE1" << "FLTMODE2" << "FLTMODE3" << "FLTMODE4" << "FLTMODE5" << "FLTMODE6"; + apmFlightModeEnumStrings << "Stabilize" << "Acro" << "AltHold" << "Auto" << "Guided" << "Loiter" << "RTL" << "Circle" + << "Land" << "Drift" << "Sport" << "Flip" << "AutoTune" << "PosHold" << "Brake"; + for (int i=0; isetEnumInfo(apmFlightModeEnumStrings, apmFlightModeEnumValues); + } else if (apmChannelOptParamList.contains(name())) { + metaData->setEnumInfo(apmChannelOptEnumStrings, apmChannelOptEnumValues); + } + _metaData = metaData; emit valueChanged(cookedValue()); } -- 2.22.0