QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
PX4ParameterMetaData.h
Go to the documentation of this file.
1#pragma once
2
3
4#include "MAVLinkLib.h"
5#include "FactMetaData.h"
6
7#include <QtCore/QObject>
8#include <QtCore/QLoggingCategory>
9
10Q_DECLARE_LOGGING_CATEGORY(PX4ParameterMetaDataLog)
11
12//#define GENERATE_PARAMETER_JSON
13
14
15class PX4ParameterMetaData : public QObject
16{
17 Q_OBJECT
18
19public:
20 PX4ParameterMetaData(QObject* parent = nullptr);
21
22 void loadParameterFactMetaDataFile (const QString& metaDataFile);
23 FactMetaData* getMetaDataForFact (const QString& name, MAV_TYPE vehicleType, FactMetaData::ValueType_t type);
24
25 static void getParameterMetaDataVersionInfo(const QString& metaDataFile, int& majorVersion, int& minorVersion);
26
27private:
28 enum {
29 XmlStateNone,
30 XmlStateFoundParameters,
31 XmlStateFoundVersion,
32 XmlStateFoundGroup,
33 XmlStateFoundParameter,
34 XmlStateDone
35 };
36
37 QVariant _stringToTypedVariant(const QString& string, FactMetaData::ValueType_t type, bool* convertOk);
38 static void _outputFileWarning(const QString& metaDataFile, const QString& error1, const QString& error2);
39
40#ifdef GENERATE_PARAMETER_JSON
41 void _generateParameterJson();
42#endif
43
44 bool _parameterMetaDataLoaded = false;
45 FactMetaData::NameToMetaDataMap_t _mapParameterName2FactMetaData;
46
47 static constexpr const char* kInvalidConverstion = "Internal Error: No support for string parameters";
48
49};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
QMap< QString, FactMetaData * > NameToMetaDataMap_t
Loads and holds parameter fact meta data for PX4 stack.