QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
APMParameterMetaData.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QHash>
4#include <QtCore/QJsonObject>
5#include "ParameterMetaData.h"
6
8{
9public:
10 explicit APMParameterMetaData(QObject *parent = nullptr);
11 ~APMParameterMetaData() override;
12
13protected:
14 void parseParameterJson(const QJsonObject &json) override;
15 FactMetaData *_lookupMetaData(const QString &name, FactMetaData::ValueType_t type) override;
16 FactMetaData *_createDefaultMetaData(const QString &name, FactMetaData::ValueType_t type) override;
17 void _postProcessMetaData(const QString &name, FactMetaData *metaData) override;
18
19private:
20 struct RawParamData {
21 QString group;
22 QJsonObject fields;
23 };
24
25 void _correctGroupMemberships();
26 static QString _groupFromParameterName(const QString &name);
27 static QList<ValueDescPair> _sortedNumericPairs(const QJsonObject &obj, const QString &paramName);
28 static void _applyEnumValues(FactMetaData *metaData, const QJsonObject &valuesObj);
29 static void _applyBitmask(FactMetaData *metaData, const QJsonObject &bitmaskObj);
30
31 QHash<QString, RawParamData> _rawParams;
32};
FactMetaData * _lookupMetaData(const QString &name, FactMetaData::ValueType_t type) override
void parseParameterJson(const QJsonObject &json) override
void _postProcessMetaData(const QString &name, FactMetaData *metaData) override
FactMetaData * _createDefaultMetaData(const QString &name, FactMetaData::ValueType_t type) override
Holds the meta data associated with a Fact.