QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
CompInfoActuators.cc
Go to the documentation of this file.
1#include "CompInfoActuators.h"
2#include "JsonParsing.h"
5#include "Vehicle.h"
6
7#include <QtCore/QJsonDocument>
8
9QGC_LOGGING_CATEGORY(CompInfoActuatorsLog, "ComponentInformation.CompInfoActuators")
10
11CompInfoActuators::CompInfoActuators(uint8_t compId_, Vehicle* vehicle_, QObject* parent)
12 : CompInfo(COMP_METADATA_TYPE_ACTUATORS, compId_, vehicle_, parent)
13{
14
15}
16
17void CompInfoActuators::setJson(const QString& metadataJsonFileName)
18{
19 if (metadataJsonFileName.isEmpty()) {
20 return;
21 }
22
23 QString errorString;
24 QJsonDocument jsonDoc;
25 if (!JsonParsing::isJsonFile(metadataJsonFileName, jsonDoc, errorString)) {
26 qCWarning(CompInfoActuatorsLog) << "Metadata json file open failed: compid:" << compId << errorString;
27 vehicle->setActuatorsMetadata(compId, metadataJsonFileName, QJsonDocument());
28 return;
29 }
30
31 QString schemaError;
32 if (!JsonSchemaValidator::validate(jsonDoc, QStringLiteral(":/json/component_metadata/actuators.schema.json"), schemaError)) {
33 qCWarning(CompInfoActuatorsLog) << "Metadata json schema validation failed: compid:" << compId << schemaError;
34 }
35
36 vehicle->setActuatorsMetadata(compId, metadataJsonFileName, jsonDoc);
37}
QString errorString
#define QGC_LOGGING_CATEGORY(name, categoryStr)
void setJson(const QString &metadataJsonFileName) override
Base class for all CompInfo types.
Definition CompInfo.h:15
Vehicle *const vehicle
Definition CompInfo.h:37
const uint8_t compId
Definition CompInfo.h:38
void setActuatorsMetadata(uint8_t compid, const QString &metadataJsonFileName, const QJsonDocument &metadataJson)
Definition Vehicle.cc:1265
bool isJsonFile(const QByteArray &bytes, QJsonDocument &jsonDoc, QString &errorString)
Determines whether an in-memory byte buffer contains parseable JSON content.
bool validate(const QJsonDocument &doc, const QString &schemaResourcePath, QString &errorString)