Commit e5b570c5 authored by Valentin Platzgummer's avatar Valentin Platzgummer

temp, QVariant compile error

parent 6485d280
...@@ -37,7 +37,7 @@ FactGroup::FactGroup(int updateRateMsecs, QObject* parent, bool ignoreCamelCase) ...@@ -37,7 +37,7 @@ FactGroup::FactGroup(int updateRateMsecs, QObject* parent, bool ignoreCamelCase)
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
} }
void FactGroup::_loadFromJsonArray(const QJsonArray jsonArray) void FactGroup::_loadFromJsonArray(const QJsonObject jsonArray)
{ {
QMap<QString, QString> defineMap; QMap<QString, QString> defineMap;
_nameToFactMetaDataMap = FactMetaData::createMapFromJsonArray(jsonArray, defineMap, this); _nameToFactMetaDataMap = FactMetaData::createMapFromJsonArray(jsonArray, defineMap, this);
......
...@@ -64,7 +64,7 @@ protected slots: ...@@ -64,7 +64,7 @@ protected slots:
protected: protected:
void _addFact (Fact* fact, const QString& name); void _addFact (Fact* fact, const QString& name);
void _addFactGroup (FactGroup* factGroup, const QString& name); void _addFactGroup (FactGroup* factGroup, const QString& name);
void _loadFromJsonArray (const QJsonArray jsonArray); void _loadFromJsonArray (const QJsonObject jsonArray);
void _setTelemetryAvailable (bool telemetryAvailable); void _setTelemetryAvailable (bool telemetryAvailable);
int _updateRateMSecs; ///< Update rate for Fact::valueChanged signals, 0: immediate update int _updateRateMSecs; ///< Update rate for Fact::valueChanged signals, 0: immediate update
......
...@@ -1448,7 +1448,7 @@ QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonFile(const QString& ...@@ -1448,7 +1448,7 @@ QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonFile(const QString&
return metaDataMap; return metaDataMap;
} }
QJsonArray factArray; QJsonObject factArray;
QMap<QString /* define name */, QString /* define value */> defineMap; QMap<QString /* define name */, QString /* define value */> defineMap;
QList<JsonHelper::KeyValidateInfo> keyInfoList = { QList<JsonHelper::KeyValidateInfo> keyInfoList = {
...@@ -1466,7 +1466,7 @@ QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonFile(const QString& ...@@ -1466,7 +1466,7 @@ QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonFile(const QString&
return createMapFromJsonArray(factArray, defineMap, metaDataParent); return createMapFromJsonArray(factArray, defineMap, metaDataParent);
} }
QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonArray(const QJsonArray jsonArray, QMap<QString, QString>& defineMap, QObject* metaDataParent) QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonArray(const QJsonObject jsonArray, QMap<QString, QString>& defineMap, QObject* metaDataParent)
{ {
QMap<QString, FactMetaData*> metaDataMap; QMap<QString, FactMetaData*> metaDataMap;
for (int i=0; i<jsonArray.count(); i++) { for (int i=0; i<jsonArray.count(); i++) {
...@@ -1554,7 +1554,7 @@ bool FactMetaData::_parseValuesArray(const QJsonObject& jsonObject, QStringList& ...@@ -1554,7 +1554,7 @@ bool FactMetaData::_parseValuesArray(const QJsonObject& jsonObject, QStringList&
{ _enumValuesArrayValueJsonKey, QJsonValue::Double, true }, { _enumValuesArrayValueJsonKey, QJsonValue::Double, true },
}; };
const QJsonArray& rgValueDescription = jsonObject[_enumValuesArrayJsonKey].toArray(); const QJsonObject& rgValueDescription = jsonObject[_enumValuesArrayJsonKey].toArray();
for (int i=0; i<rgValueDescription.count(); i++) { for (int i=0; i<rgValueDescription.count(); i++) {
if (rgValueDescription[i].type() != QJsonValue::Object) { if (rgValueDescription[i].type() != QJsonValue::Object) {
errorString = QStringLiteral("Value at index %1 in \"values\" array is not an object.").arg(i); errorString = QStringLiteral("Value at index %1 in \"values\" array is not an object.").arg(i);
...@@ -1589,7 +1589,7 @@ bool FactMetaData::_parseBitmaskArray(const QJsonObject& jsonObject, QStringList ...@@ -1589,7 +1589,7 @@ bool FactMetaData::_parseBitmaskArray(const QJsonObject& jsonObject, QStringList
{ _enumBitmaskArrayIndexJsonKey, QJsonValue::Double, true }, { _enumBitmaskArrayIndexJsonKey, QJsonValue::Double, true },
}; };
const QJsonArray& rgValueDescription = jsonObject[_enumBitmaskArrayJsonKey].toArray(); const QJsonObject& rgValueDescription = jsonObject[_enumBitmaskArrayJsonKey].toArray();
for (int i=0; i<rgValueDescription.count(); i++) { for (int i=0; i<rgValueDescription.count(); i++) {
if (rgValueDescription[i].type() != QJsonValue::Object) { if (rgValueDescription[i].type() != QJsonValue::Object) {
errorString = QStringLiteral("Value at index %1 in \"values\" array is not an object.").arg(i); errorString = QStringLiteral("Value at index %1 in \"values\" array is not an object.").arg(i);
......
...@@ -57,7 +57,7 @@ public: ...@@ -57,7 +57,7 @@ public:
typedef QMap<QString, QString> DefineMap_t; typedef QMap<QString, QString> DefineMap_t;
static QMap<QString, FactMetaData*> createMapFromJsonFile(const QString& jsonFilename, QObject* metaDataParent); static QMap<QString, FactMetaData*> createMapFromJsonFile(const QString& jsonFilename, QObject* metaDataParent);
static QMap<QString, FactMetaData*> createMapFromJsonArray(const QJsonArray jsonArray, DefineMap_t& defineMap, QObject* metaDataParent); static QMap<QString, FactMetaData*> createMapFromJsonArray(const QJsonObject jsonArray, DefineMap_t& defineMap, QObject* metaDataParent);
static FactMetaData* createFromJsonObject(const QJsonObject& json, QMap<QString, QString>& defineMap, QObject* metaDataParent); static FactMetaData* createFromJsonObject(const QJsonObject& json, QMap<QString, QString>& defineMap, QObject* metaDataParent);
......
This diff is collapsed.
This diff is collapsed.
...@@ -4,12 +4,17 @@ ...@@ -4,12 +4,17 @@
#include "geometry/SafeArea.h" #include "geometry/SafeArea.h"
#include "geometry/snake.h" #include "geometry/snake.h"
#include "JsonHelper.h"
#include "QGCApplication.h" #include "QGCApplication.h"
#include "QGCLoggingCategory.h" #include "QGCLoggingCategory.h"
#include "QGCQGeoCoordinate.h" #include "QGCQGeoCoordinate.h"
QGC_LOGGING_CATEGORY(AreaDataLog, "AreaDataLog") QGC_LOGGING_CATEGORY(AreaDataLog, "AreaDataLog")
const char *originJsonKey = "Origin";
const char *areaListJsonKey = "AreaList";
const char *initializedJsonKey = "Initialized";
AreaData::AreaData(QObject *parent) : QObject(parent) {} AreaData::AreaData(QObject *parent) : QObject(parent) {}
AreaData::~AreaData() {} AreaData::~AreaData() {}
...@@ -270,6 +275,41 @@ bool AreaData::operator!=(const AreaData &other) const { ...@@ -270,6 +275,41 @@ bool AreaData::operator!=(const AreaData &other) const {
return !(*this == other); return !(*this == other);
} }
bool AreaData::load(const QJsonObject &obj, QString &guiErrorString) {
qWarning() << "AreaData::load impl. missing";
return true;
}
bool AreaData::save(QJsonObject &obj) const {
// QJsonObject temp;
// QJsonValue jsonOrigin;
// JsonHelper::saveGeoCoordinate(_origin, true, jsonOrigin);
// temp[originJsonKey] = jsonOrigin;
// temp[initializedJsonKey] = _initialized;
// QJsonObject jsonAreaList;
// for (int i = 0; i < _areaList.count(); ++i) {
// auto const &qobj = _areaList[i];
// auto const &area = qobject_cast<const GeoArea *>(qobj);
// QJsonObject jsonArea;
// if (area->saveToJson(jsonArea)) {
// QJsonObject jsonObj;
// jsonObj[area->objectName()] = jsonArea;
// jsonAreaList.append(jsonObj);
// } else {
// qDebug(AreaListLog) << "save(): not able to save area: "
// << area->objectName();
// _processError(tr("Not able to save area: ") + area->objectName());
// return false;
// }
// }
// temp[areaListJsonKey] = jsonAreaList;
// obj = std::move(temp);
return true;
}
void AreaData::_setOrigin(const QGeoCoordinate &origin) { void AreaData::_setOrigin(const QGeoCoordinate &origin) {
if (this->_origin != origin) { if (this->_origin != origin) {
this->_origin = origin; this->_origin = origin;
......
#pragma once #pragma once
#include <QGeoCoordinate> #include <QGeoCoordinate>
#include <QJsonObject>
#include <QObject> #include <QObject>
#include <QString>
#include "QmlObjectListModel.h" #include "QmlObjectListModel.h"
...@@ -72,6 +74,9 @@ public: ...@@ -72,6 +74,9 @@ public:
bool operator==(const AreaData &other) const; bool operator==(const AreaData &other) const;
bool operator!=(const AreaData &other) const; bool operator!=(const AreaData &other) const;
bool load(const QJsonObject &obj, QString &guiErrorString);
bool save(QJsonObject &obj) const;
QString errorString() const; // Contains a message about the last error. QString errorString() const; // Contains a message about the last error.
bool showErrorMessages() const; bool showErrorMessages() const;
......
#include "CircularGenerator.h" #include "CircularGenerator.h"
#include "JsonHelper.h"
#include "QGCLoggingCategory.h" #include "QGCLoggingCategory.h"
#include "SettingsFact.h" #include "SettingsFact.h"
...@@ -29,9 +30,7 @@ const char *CircularGenerator::settingsGroup = "CircularGenerator"; ...@@ -29,9 +30,7 @@ const char *CircularGenerator::settingsGroup = "CircularGenerator";
const char *CircularGenerator::distanceName = "TransectDistance"; const char *CircularGenerator::distanceName = "TransectDistance";
const char *CircularGenerator::deltaAlphaName = "DeltaAlpha"; const char *CircularGenerator::deltaAlphaName = "DeltaAlpha";
const char *CircularGenerator::minLengthName = "MinLength"; const char *CircularGenerator::minLengthName = "MinLength";
const char *CircularGenerator::refPointLatitudeName = "ReferencePointLat"; const char *CircularGenerator::refPointName = "ReferencePoint";
const char *CircularGenerator::refPointLongitudeName = "ReferencePointLong";
const char *CircularGenerator::refPointAltitudeName = "ReferencePointAlt";
CircularGenerator::CircularGenerator(QObject *parent) CircularGenerator::CircularGenerator(QObject *parent)
: CircularGenerator(nullptr, parent) {} : CircularGenerator(nullptr, parent) {}
...@@ -184,6 +183,55 @@ void CircularGenerator::setReference(const QGeoCoordinate &reference) { ...@@ -184,6 +183,55 @@ void CircularGenerator::setReference(const QGeoCoordinate &reference) {
} }
} }
bool CircularGenerator::save(QJsonObject &obj) const {
// QJsonObject temp;
// bool ok = false;
// auto variant = _distance.rawValue();
// auto val = variant.toDouble(ok);
// if (!ok) {
// qCDebug(CircularGeneratorLog)
// << "save(): not able to save distance. Not a double: "
// << variant.typeName();
// return false;
// } else {
// temp[distanceName] = val;
// }
// variant = _deltaAlpha.rawValue();
// val = variant.toDouble(ok);
// if (!ok) {
// qCDebug(CircularGeneratorLog)
// << "save(): not able to save deltaAlpha. Not a double: "
// << variant.typeName();
// return false;
// } else {
// temp[deltaAlphaName] = val;
// }
// variant = _minLength.rawValue();
// val = variant.toDouble(ok);
// if (!ok) {
// qCDebug(CircularGeneratorLog)
// << "save(): not able to save minLength. Not a double: "
// << variant.typeName();
// return false;
// } else {
// temp[minLengthName] = val;
// }
// QJsonObject jsonReference;
// JsonHelper::saveGeoCoordinate(_reference, true, jsonReference);
// temp[refPointName] = jsonReference;
// obj = std::move(temp);
return true;
}
bool CircularGenerator::load(const QJsonObject &obj, QString &guiErrorMessage) {
qWarning() << "CircularGenerator::load() impl. missing";
return true;
}
void CircularGenerator::resetReferenceIfInvalid() { void CircularGenerator::resetReferenceIfInvalid() {
if (!this->_reference.isValid()) { if (!this->_reference.isValid()) {
resetReference(); resetReference();
......
...@@ -35,13 +35,22 @@ public: ...@@ -35,13 +35,22 @@ public:
void setReference(const QGeoCoordinate &reference); void setReference(const QGeoCoordinate &reference);
//!
//! \brief save Saves the generator.
//! \param obj Json object for saveing.
//! \return Returns true on success, false either.
//!
//! Saves distance, alpha and minLength.
//! \note This methode does not save the data.
//!
virtual bool save(QJsonObject &obj) const override;
virtual bool load(const QJsonObject &obj, QString &guiErrorMessage) override;
static const char *settingsGroup; static const char *settingsGroup;
static const char *distanceName; static const char *distanceName;
static const char *deltaAlphaName; static const char *deltaAlphaName;
static const char *minLengthName; static const char *minLengthName;
static const char *refPointLongitudeName; static const char *refPointName;
static const char *refPointLatitudeName;
static const char *refPointAltitudeName;
signals: signals:
void referenceChanged(); void referenceChanged();
......
#pragma once #pragma once
#include <QJsonObject>
#include <QObject> #include <QObject>
#include <QString>
#include <functional> #include <functional>
#include <memory> #include <memory>
...@@ -27,6 +29,9 @@ public: ...@@ -27,6 +29,9 @@ public:
virtual QString editorQml() = 0; virtual QString editorQml() = 0;
virtual QString mapVisualQml() = 0; virtual QString mapVisualQml() = 0;
virtual bool save(QJsonObject &obj) const = 0;
virtual bool load(const QJsonObject &obj, QString &guiErrorMessage) = 0;
virtual QString name() = 0; virtual QString name() = 0;
virtual QString abbreviation() = 0; virtual QString abbreviation() = 0;
......
...@@ -149,6 +149,52 @@ bool LinearGenerator::get(Generator &generator) { ...@@ -149,6 +149,52 @@ bool LinearGenerator::get(Generator &generator) {
} }
} }
bool LinearGenerator::save(QJsonObject &obj) const {
// QJsonObject temp;
// bool ok = false;
// auto variant = _distance.rawValue();
// auto val = variant.toDouble(ok);
// if (!ok) {
// qCDebug(LinearGeneratorLog)
// << "save(): not able to save distance. Not a double: "
// << variant.typeName();
// return false;
// } else {
// temp[distanceName] = val;
// }
// variant = _alpha.rawValue();
// val = variant.toDouble(ok);
// if (!ok) {
// qCDebug(LinearGeneratorLog)
// << "save(): not able to save alpha. Not a double: "
// << variant.typeName();
// return false;
// } else {
// temp[alphaName] = val;
// }
// variant = _minLength.rawValue();
// val = variant.toDouble(ok);
// if (!ok) {
// qCDebug(LinearGeneratorLog)
// << "save(): not able to save minLength. Not a double: "
// << variant.typeName();
// return false;
// } else {
// temp[minLengthName] = val;
// }
// obj = std::move(temp);
return true;
}
bool LinearGenerator::load(const QJsonObject &obj, QString &guiErrorString) {
qWarning() << "LinearGenerator::load() impl. missing";
return true;
}
Fact *LinearGenerator::distance() { return &_distance; } Fact *LinearGenerator::distance() { return &_distance; }
Fact *LinearGenerator::alpha() { return &_alpha; } Fact *LinearGenerator::alpha() { return &_alpha; }
......
...@@ -27,6 +27,17 @@ public: ...@@ -27,6 +27,17 @@ public:
virtual bool get(Generator &generator) override; virtual bool get(Generator &generator) override;
//!
//! \brief save Saves the generator.
//! \param obj Json object for saveing.
//! \return Returns true on success, false either.
//!
//! Saves distance, alpha and minLength.
//! \note This methode does not save the data.
//!
virtual bool save(QJsonObject &obj) const override;
virtual bool load(const QJsonObject &obj, QString &guiErrorString) override;
Fact *distance(); Fact *distance();
Fact *alpha(); Fact *alpha();
Fact *minLength(); Fact *minLength();
......
...@@ -33,6 +33,10 @@ const char *MeasurementComplexItem::jsonComplexItemTypeValue = ...@@ -33,6 +33,10 @@ const char *MeasurementComplexItem::jsonComplexItemTypeValue =
const char *MeasurementComplexItem::variantName = "Variant"; const char *MeasurementComplexItem::variantName = "Variant";
const char *MeasurementComplexItem::altitudeName = "Altitude"; const char *MeasurementComplexItem::altitudeName = "Altitude";
const QString MeasurementComplexItem::name(tr("Measurement")); const QString MeasurementComplexItem::name(tr("Measurement"));
const char *areaDataName = "AreaDataName";
const char *variantNamesName = "VariantNames";
const char *generatorsName = "Generators";
const char *variantsName = "Variants";
MeasurementComplexItem::MeasurementComplexItem( MeasurementComplexItem::MeasurementComplexItem(
PlanMasterController *masterController, bool flyView, PlanMasterController *masterController, bool flyView,
...@@ -208,10 +212,7 @@ QString MeasurementComplexItem::mapVisualQML() const { ...@@ -208,10 +212,7 @@ QString MeasurementComplexItem::mapVisualQML() const {
return QStringLiteral("MeasurementItemMapVisual.qml"); return QStringLiteral("MeasurementItemMapVisual.qml");
} }
void MeasurementComplexItem::save(QJsonArray &planItems) { void MeasurementComplexItem::save(QJsonObject &planItems) {
qWarning() << "MeasurementComplexItem::save(): area data save missing.";
qWarning() << "MeasurementComplexItem::save(): mission item save missing.";
if (idle()) { if (idle()) {
QJsonObject saveObject; QJsonObject saveObject;
...@@ -221,10 +222,60 @@ void MeasurementComplexItem::save(QJsonArray &planItems) { ...@@ -221,10 +222,60 @@ void MeasurementComplexItem::save(QJsonArray &planItems) {
saveObject[ComplexMissionItem::jsonComplexItemTypeKey] = saveObject[ComplexMissionItem::jsonComplexItemTypeKey] =
jsonComplexItemTypeValue; jsonComplexItemTypeValue;
// Variant and altitude.
saveObject[variantName] = double(_variant.rawValue().toUInt()); saveObject[variantName] = double(_variant.rawValue().toUInt());
saveObject[altitudeName] = double(_altitude.rawValue().toUInt()); saveObject[altitudeName] = double(_altitude.rawValue().toUInt());
// Variant names.
QJsonObject jsonVariantNames;
for (auto const &name : _variantNames) {
jsonVariantNames.append(name);
}
saveObject[variantNamesName] = jsonVariantNames;
// AreaData.
// QJsonObject jsonAreaData;
// if (!_pAreaData->save(jsonAreaData)) {
// qCDebug(MeasurementComplexItemLog)
// << "save(): not able to save area data";
// return;
// }
// saveObject[areaDataName] = jsonAreaData;
// Generators.
// QJsonArray generatorArray;
// for (int i = 0; i < _generatorList.size(); ++i) {
// auto const gen = _generatorList[i];
// auto const &name = _generatorNameList[i];
// QJsonObject innerObj;
// if (!gen->save(innerObj)) {
// qCDebug(MeasurementComplexItemLog)
// << "save(): not able to save generator: " << name;
// return;
// } else {
// QJsonObject outerObj;
// outerObj[name] = innerObj;
// generatorArray.append(outerObj);
// }
// }
// saveObject[generatorsName] = generatorArray;
// Route Variants
QJsonObject variantsArray;
for (auto const &route : _variantVector) {
QJsonValue variant;
if (!(route.size() == 0)) {
JsonHelper::saveGeoCoordinateArray(route, true, variant);
} else {
JsonHelper::saveGeoCoordinateArray(_route, true, variant);
}
variantsArray.append(variant);
}
saveObject[variantsName] = variantsArray;
planItems.append(saveObject); planItems.append(saveObject);
} else {
qCDebug(MeasurementComplexItemLog) << "save(): called while not idle.";
} }
} }
......
#pragma once #pragma once
#include <QFutureWatcher> #include <QFutureWatcher>
#include <QJsonArray>
#include <QVector> #include <QVector>
#include <memory> #include <memory>
...@@ -84,7 +85,7 @@ public: ...@@ -84,7 +85,7 @@ public:
virtual void setDirty(bool dirty) override final; virtual void setDirty(bool dirty) override final;
virtual void setCoordinate(const QGeoCoordinate &coordinate) override final; virtual void setCoordinate(const QGeoCoordinate &coordinate) override final;
virtual void setSequenceNumber(int sequenceNumber) override final; virtual void setSequenceNumber(int sequenceNumber) override final;
virtual void save(QJsonArray &missionItems) override final; virtual void save(QJsonObject &missionItems) override final;
virtual double amslEntryAlt(void) const override final; virtual double amslEntryAlt(void) const override final;
virtual double amslExitAlt(void) const override final; virtual double amslExitAlt(void) const override final;
virtual double minAMSLAltitude(void) const override final; virtual double minAMSLAltitude(void) const override final;
......
...@@ -61,7 +61,7 @@ CorridorScanComplexItem::CorridorScanComplexItem(PlanMasterController* masterCon ...@@ -61,7 +61,7 @@ CorridorScanComplexItem::CorridorScanComplexItem(PlanMasterController* masterCon
setDirty(false); setDirty(false);
} }
void CorridorScanComplexItem::save(QJsonArray& planItems) void CorridorScanComplexItem::save(QJsonObject& planItems)
{ {
QJsonObject saveObject; QJsonObject saveObject;
......
...@@ -37,7 +37,7 @@ public: ...@@ -37,7 +37,7 @@ public:
// Overrides from TransectStyleComplexItem // Overrides from TransectStyleComplexItem
QString patternName (void) const final { return name; } QString patternName (void) const final { return name; }
void save (QJsonArray& planItems) final; void save (QJsonObject& planItems) final;
bool specifiesCoordinate (void) const final; bool specifiesCoordinate (void) const final;
double timeBetweenShots (void) final; double timeBetweenShots (void) final;
......
...@@ -81,7 +81,7 @@ void FWLandingPatternTest::_testDirty(void) ...@@ -81,7 +81,7 @@ void FWLandingPatternTest::_testDirty(void)
void FWLandingPatternTest::_testSaveLoad(void) void FWLandingPatternTest::_testSaveLoad(void)
{ {
QJsonArray items; QJsonObject items;
_fwItem->save(items); _fwItem->save(items);
......
...@@ -60,7 +60,7 @@ FixedWingLandingComplexItem::FixedWingLandingComplexItem(PlanMasterController* m ...@@ -60,7 +60,7 @@ FixedWingLandingComplexItem::FixedWingLandingComplexItem(PlanMasterController* m
setDirty(false); setDirty(false);
} }
void FixedWingLandingComplexItem::save(QJsonArray& missionItems) void FixedWingLandingComplexItem::save(QJsonObject& missionItems)
{ {
QJsonObject saveObject = _save(); QJsonObject saveObject = _save();
......
...@@ -44,7 +44,7 @@ public: ...@@ -44,7 +44,7 @@ public:
QString mapVisualQML (void) const final { return QStringLiteral("FWLandingPatternMapVisual.qml"); } QString mapVisualQML (void) const final { return QStringLiteral("FWLandingPatternMapVisual.qml"); }
// Overrides from VisualMissionItem // Overrides from VisualMissionItem
void save (QJsonArray& missionItems) final; void save (QJsonObject& missionItems) final;
static const QString name; static const QString name;
......
...@@ -152,7 +152,7 @@ bool GeoFenceController::load(const QJsonObject& json, QString& errorString) ...@@ -152,7 +152,7 @@ bool GeoFenceController::load(const QJsonObject& json, QString& errorString)
return false; return false;
} }
QJsonArray jsonPolygonArray = json[_jsonPolygonsKey].toArray(); QJsonObject jsonPolygonArray = json[_jsonPolygonsKey].toArray();
for (const QJsonValue jsonPolygonValue: jsonPolygonArray) { for (const QJsonValue jsonPolygonValue: jsonPolygonArray) {
if (jsonPolygonValue.type() != QJsonValue::Object) { if (jsonPolygonValue.type() != QJsonValue::Object) {
errorString = tr("GeoFence polygon not stored as object"); errorString = tr("GeoFence polygon not stored as object");
...@@ -166,7 +166,7 @@ bool GeoFenceController::load(const QJsonObject& json, QString& errorString) ...@@ -166,7 +166,7 @@ bool GeoFenceController::load(const QJsonObject& json, QString& errorString)
_polygons.append(fencePolygon); _polygons.append(fencePolygon);
} }
QJsonArray jsonCircleArray = json[_jsonCirclesKey].toArray(); QJsonObject jsonCircleArray = json[_jsonCirclesKey].toArray();
for (const QJsonValue jsonCircleValue: jsonCircleArray) { for (const QJsonValue jsonCircleValue: jsonCircleArray) {
if (jsonCircleValue.type() != QJsonValue::Object) { if (jsonCircleValue.type() != QJsonValue::Object) {
errorString = tr("GeoFence circle not stored as object"); errorString = tr("GeoFence circle not stored as object");
...@@ -200,7 +200,7 @@ void GeoFenceController::save(QJsonObject& json) ...@@ -200,7 +200,7 @@ void GeoFenceController::save(QJsonObject& json)
{ {
json[JsonHelper::jsonVersionKey] = _jsonCurrentVersion; json[JsonHelper::jsonVersionKey] = _jsonCurrentVersion;
QJsonArray jsonPolygonArray; QJsonObject jsonPolygonArray;
for (int i=0; i<_polygons.count(); i++) { for (int i=0; i<_polygons.count(); i++) {
QJsonObject jsonPolygon; QJsonObject jsonPolygon;
QGCFencePolygon* fencePolygon = _polygons.value<QGCFencePolygon*>(i); QGCFencePolygon* fencePolygon = _polygons.value<QGCFencePolygon*>(i);
...@@ -209,7 +209,7 @@ void GeoFenceController::save(QJsonObject& json) ...@@ -209,7 +209,7 @@ void GeoFenceController::save(QJsonObject& json)
} }
json[_jsonPolygonsKey] = jsonPolygonArray; json[_jsonPolygonsKey] = jsonPolygonArray;
QJsonArray jsonCircleArray; QJsonObject jsonCircleArray;
for (int i=0; i<_circles.count(); i++) { for (int i=0; i<_circles.count(); i++) {
QJsonObject jsonCircle; QJsonObject jsonCircle;
QGCFenceCircle* fenceCircle = _circles.value<QGCFenceCircle*>(i); QGCFenceCircle* fenceCircle = _circles.value<QGCFenceCircle*>(i);
......
...@@ -82,7 +82,7 @@ public: ...@@ -82,7 +82,7 @@ public:
QString mapVisualQML(void) const final { return QStringLiteral("FWLandingPatternMapVisual.qml"); } QString mapVisualQML(void) const final { return QStringLiteral("FWLandingPatternMapVisual.qml"); }
// Overrides from VisualMissionItem // Overrides from VisualMissionItem
void save (QJsonArray& /*missionItems*/) { }; void save (QJsonObject& /*missionItems*/) { };
static const QString name; static const QString name;
......
...@@ -55,7 +55,7 @@ void MissionCommandList::_loadMavCmdInfoJson(const QString& jsonFilename, bool b ...@@ -55,7 +55,7 @@ void MissionCommandList::_loadMavCmdInfoJson(const QString& jsonFilename, bool b
} }
// Iterate over MissionCommandUIInfo objects // Iterate over MissionCommandUIInfo objects
QJsonArray jsonArray = jsonValue.toArray(); QJsonObject jsonArray = jsonValue.toArray();
for(QJsonValue info: jsonArray) { for(QJsonValue info: jsonArray) {
if (!info.isObject()) { if (!info.isObject()) {
qWarning() << jsonFilename << "mavCmdArray should contain objects"; qWarning() << jsonFilename << "mavCmdArray should contain objects";
......
...@@ -744,7 +744,7 @@ bool MissionController::_loadJsonMissionFileV1(const QJsonObject &json, ...@@ -744,7 +744,7 @@ bool MissionController::_loadJsonMissionFileV1(const QJsonObject &json,
// Read complex items // Read complex items
QList<SurveyComplexItem *> surveyItems; QList<SurveyComplexItem *> surveyItems;
QJsonArray complexArray(json[_jsonComplexItemsKey].toArray()); QJsonObject complexArray(json[_jsonComplexItemsKey].toArray());
qCDebug(MissionControllerLog) qCDebug(MissionControllerLog)
<< "Json load: complex item count" << complexArray.count(); << "Json load: complex item count" << complexArray.count();
for (int i = 0; i < complexArray.count(); i++) { for (int i = 0; i < complexArray.count(); i++) {
...@@ -771,7 +771,7 @@ bool MissionController::_loadJsonMissionFileV1(const QJsonObject &json, ...@@ -771,7 +771,7 @@ bool MissionController::_loadJsonMissionFileV1(const QJsonObject &json,
int nextSimpleItemIndex = 0; int nextSimpleItemIndex = 0;
int nextComplexItemIndex = 0; int nextComplexItemIndex = 0;
int nextSequenceNumber = 1; // Start with 1 since home is in 0 int nextSequenceNumber = 1; // Start with 1 since home is in 0
QJsonArray itemArray(json[_jsonItemsKey].toArray()); QJsonObject itemArray(json[_jsonItemsKey].toArray());
MissionSettingsItem *settingsItem = _addMissionSettings(visualItems); MissionSettingsItem *settingsItem = _addMissionSettings(visualItems);
if (json.contains(_jsonPlannedHomePositionKey)) { if (json.contains(_jsonPlannedHomePositionKey)) {
...@@ -932,7 +932,7 @@ bool MissionController::_loadJsonMissionFileV2(const QJsonObject &json, ...@@ -932,7 +932,7 @@ bool MissionController::_loadJsonMissionFileV2(const QJsonObject &json,
// Read mission items // Read mission items
int nextSequenceNumber = 1; // Start with 1 since home is in 0 int nextSequenceNumber = 1; // Start with 1 since home is in 0
const QJsonArray rgMissionItems(json[_jsonItemsKey].toArray()); const QJsonObject rgMissionItems(json[_jsonItemsKey].toArray());
for (int i = 0; i < rgMissionItems.count(); i++) { for (int i = 0; i < rgMissionItems.count(); i++) {
// Convert to QJsonObject // Convert to QJsonObject
const QJsonValue &itemValue = rgMissionItems[i]; const QJsonValue &itemValue = rgMissionItems[i];
...@@ -1335,7 +1335,7 @@ void MissionController::save(QJsonObject &json) { ...@@ -1335,7 +1335,7 @@ void MissionController::save(QJsonObject &json) {
// Save the visual items // Save the visual items
QJsonArray rgJsonMissionItems; QJsonObject rgJsonMissionItems;
for (int i = 0; i < _visualItems->count(); i++) { for (int i = 0; i < _visualItems->count(); i++) {
VisualMissionItem *visualItem = VisualMissionItem *visualItem =
qobject_cast<VisualMissionItem *>(_visualItems->get(i)); qobject_cast<VisualMissionItem *>(_visualItems->get(i));
......
...@@ -147,7 +147,7 @@ void MissionItem::save(QJsonObject &json) const { ...@@ -147,7 +147,7 @@ void MissionItem::save(QJsonObject &json) const {
json[_jsonAutoContinueKey] = autoContinue(); json[_jsonAutoContinueKey] = autoContinue();
json[_jsonDoJumpIdKey] = _sequenceNumber; json[_jsonDoJumpIdKey] = _sequenceNumber;
QJsonArray rgParams = {param1(), param2(), param3(), param4(), QJsonObject rgParams = {param1(), param2(), param3(), param4(),
param5(), param6(), param7()}; param5(), param6(), param7()};
json[_jsonParamsKey] = rgParams; json[_jsonParamsKey] = rgParams;
} }
...@@ -206,7 +206,7 @@ bool MissionItem::_convertJsonV1ToV2(const QJsonObject &json, ...@@ -206,7 +206,7 @@ bool MissionItem::_convertJsonV1ToV2(const QJsonObject &json,
VisualMissionItem::jsonTypeSimpleItemValue; VisualMissionItem::jsonTypeSimpleItemValue;
} }
QJsonArray rgParams = { QJsonObject rgParams = {
json[_jsonParam1Key].toDouble(), json[_jsonParam2Key].toDouble(), json[_jsonParam1Key].toDouble(), json[_jsonParam2Key].toDouble(),
json[_jsonParam3Key].toDouble(), json[_jsonParam4Key].toDouble()}; json[_jsonParam3Key].toDouble(), json[_jsonParam4Key].toDouble()};
v2Json[_jsonParamsKey] = rgParams; v2Json[_jsonParamsKey] = rgParams;
...@@ -241,7 +241,7 @@ bool MissionItem::_convertJsonV2ToV3(QJsonObject &json, QString &errorString) { ...@@ -241,7 +241,7 @@ bool MissionItem::_convertJsonV2ToV3(QJsonObject &json, QString &errorString) {
return false; return false;
} }
QJsonArray rgParam = json[_jsonParamsKey].toArray(); QJsonObject rgParam = json[_jsonParamsKey].toArray();
rgParam.append(coordinate.latitude()); rgParam.append(coordinate.latitude());
rgParam.append(coordinate.longitude()); rgParam.append(coordinate.longitude());
rgParam.append(coordinate.altitude()); rgParam.append(coordinate.altitude());
...@@ -283,7 +283,7 @@ bool MissionItem::load(const QJsonObject &json, int sequenceNumber, ...@@ -283,7 +283,7 @@ bool MissionItem::load(const QJsonObject &json, int sequenceNumber,
return false; return false;
} }
QJsonArray rgParams = convertedJson[_jsonParamsKey].toArray(); QJsonObject rgParams = convertedJson[_jsonParamsKey].toArray();
if (rgParams.count() != 7) { if (rgParams.count() != 7) {
errorString = tr("%1 key must contains 7 values").arg(_jsonParamsKey); errorString = tr("%1 key must contains 7 values").arg(_jsonParamsKey);
return false; return false;
......
...@@ -342,7 +342,7 @@ void MissionItemTest::_testLoadFromJsonV2(void) ...@@ -342,7 +342,7 @@ void MissionItemTest::_testLoadFromJsonV2(void)
QVERIFY(!errorString.isEmpty()); QVERIFY(!errorString.isEmpty());
qDebug() << errorString; qDebug() << errorString;
QJsonArray badCoordinateArray; QJsonObject badCoordinateArray;
badCoordinateArray << -10.0 << -20.0 ; badCoordinateArray << -10.0 << -20.0 ;
badObject = jsonObject; badObject = jsonObject;
badObject.remove("coordinate"); badObject.remove("coordinate");
...@@ -351,7 +351,7 @@ void MissionItemTest::_testLoadFromJsonV2(void) ...@@ -351,7 +351,7 @@ void MissionItemTest::_testLoadFromJsonV2(void)
QVERIFY(!errorString.isEmpty()); QVERIFY(!errorString.isEmpty());
qDebug() << errorString; qDebug() << errorString;
QJsonArray badCoordinateArray_second; QJsonObject badCoordinateArray_second;
badCoordinateArray_second << -10.0 << -20.0 << true; badCoordinateArray_second << -10.0 << -20.0 << true;
badObject = jsonObject; badObject = jsonObject;
badObject.remove("coordinate"); badObject.remove("coordinate");
...@@ -360,9 +360,9 @@ void MissionItemTest::_testLoadFromJsonV2(void) ...@@ -360,9 +360,9 @@ void MissionItemTest::_testLoadFromJsonV2(void)
QVERIFY(!errorString.isEmpty()); QVERIFY(!errorString.isEmpty());
qDebug() << errorString; qDebug() << errorString;
QJsonArray badCoordinateArray2; QJsonObject badCoordinateArray2;
badCoordinateArray2 << 1 << 2; badCoordinateArray2 << 1 << 2;
QJsonArray badCoordinateArray_third; QJsonObject badCoordinateArray_third;
badCoordinateArray_third << -10.0 << -20.0 << badCoordinateArray2; badCoordinateArray_third << -10.0 << -20.0 << badCoordinateArray2;
badObject = jsonObject; badObject = jsonObject;
badObject.remove("coordinate"); badObject.remove("coordinate");
...@@ -412,7 +412,7 @@ void MissionItemTest::_testLoadFromJsonV3(void) ...@@ -412,7 +412,7 @@ void MissionItemTest::_testLoadFromJsonV3(void)
// Incorrect param count // Incorrect param count
badObject = jsonObject; badObject = jsonObject;
QJsonArray rgParam = badObject[MissionItem::_jsonParamsKey].toArray(); QJsonObject rgParam = badObject[MissionItem::_jsonParamsKey].toArray();
rgParam.removeFirst(); rgParam.removeFirst();
badObject[MissionItem::_jsonParamsKey] = rgParam; badObject[MissionItem::_jsonParamsKey] = rgParam;
QCOMPARE(missionItem.load(badObject, _seq, errorString), false); QCOMPARE(missionItem.load(badObject, _seq, errorString), false);
...@@ -450,7 +450,7 @@ void MissionItemTest::_testSimpleLoadFromJson(void) ...@@ -450,7 +450,7 @@ void MissionItemTest::_testSimpleLoadFromJson(void)
SimpleMissionItem simpleMissionItem(_masterController, false /* flyView */, false /* forLoad */, nullptr); SimpleMissionItem simpleMissionItem(_masterController, false /* flyView */, false /* forLoad */, nullptr);
QString errorString; QString errorString;
QJsonArray coordinateArray; QJsonObject coordinateArray;
QJsonObject jsonObject; QJsonObject jsonObject;
coordinateArray << -10.0 << -20.0 <<-30.0; coordinateArray << -10.0 << -20.0 <<-30.0;
...@@ -460,7 +460,7 @@ void MissionItemTest::_testSimpleLoadFromJson(void) ...@@ -460,7 +460,7 @@ void MissionItemTest::_testSimpleLoadFromJson(void)
jsonObject.insert(VisualMissionItem::jsonTypeKey, VisualMissionItem::jsonTypeSimpleItemValue); jsonObject.insert(VisualMissionItem::jsonTypeKey, VisualMissionItem::jsonTypeSimpleItemValue);
jsonObject.insert(MissionItem::_jsonCoordinateKey, coordinateArray); jsonObject.insert(MissionItem::_jsonCoordinateKey, coordinateArray);
QJsonArray rgParams = { 10, 20, 30, 40 }; QJsonObject rgParams = { 10, 20, 30, 40 };
jsonObject.insert(MissionItem::_jsonParamsKey, rgParams); jsonObject.insert(MissionItem::_jsonParamsKey, rgParams);
QVERIFY(simpleMissionItem.load(jsonObject, _seq, errorString)); QVERIFY(simpleMissionItem.load(jsonObject, _seq, errorString));
...@@ -489,7 +489,7 @@ void MissionItemTest::_testSaveToJson(void) ...@@ -489,7 +489,7 @@ void MissionItemTest::_testSaveToJson(void)
QJsonObject MissionItemTest::_createV1Json(void) QJsonObject MissionItemTest::_createV1Json(void)
{ {
QJsonObject jsonObject; QJsonObject jsonObject;
QJsonArray coordinateArray; QJsonObject coordinateArray;
coordinateArray << -10.0 << -20.0 <<-30.0; coordinateArray << -10.0 << -20.0 <<-30.0;
jsonObject.insert(MissionItem::_jsonAutoContinueKey, true); jsonObject.insert(MissionItem::_jsonAutoContinueKey, true);
...@@ -508,7 +508,7 @@ QJsonObject MissionItemTest::_createV1Json(void) ...@@ -508,7 +508,7 @@ QJsonObject MissionItemTest::_createV1Json(void)
QJsonObject MissionItemTest::_createV2Json(void) QJsonObject MissionItemTest::_createV2Json(void)
{ {
QJsonObject jsonObject; QJsonObject jsonObject;
QJsonArray coordinateArray; QJsonObject coordinateArray;
coordinateArray << -10.0 << -20.0 <<-30.0; coordinateArray << -10.0 << -20.0 <<-30.0;
jsonObject.insert(MissionItem::_jsonAutoContinueKey, true); jsonObject.insert(MissionItem::_jsonAutoContinueKey, true);
...@@ -517,7 +517,7 @@ QJsonObject MissionItemTest::_createV2Json(void) ...@@ -517,7 +517,7 @@ QJsonObject MissionItemTest::_createV2Json(void)
jsonObject.insert(VisualMissionItem::jsonTypeKey, VisualMissionItem::jsonTypeSimpleItemValue); jsonObject.insert(VisualMissionItem::jsonTypeKey, VisualMissionItem::jsonTypeSimpleItemValue);
jsonObject.insert(MissionItem::_jsonCoordinateKey, coordinateArray); jsonObject.insert(MissionItem::_jsonCoordinateKey, coordinateArray);
QJsonArray rgParams = { 10, 20, 30, 40 }; QJsonObject rgParams = { 10, 20, 30, 40 };
jsonObject.insert(MissionItem::_jsonParamsKey, rgParams); jsonObject.insert(MissionItem::_jsonParamsKey, rgParams);
return jsonObject; return jsonObject;
...@@ -533,10 +533,10 @@ QJsonObject MissionItemTest::_createV3Json(bool allNaNs) ...@@ -533,10 +533,10 @@ QJsonObject MissionItemTest::_createV3Json(bool allNaNs)
jsonObject.insert(VisualMissionItem::jsonTypeKey, VisualMissionItem::jsonTypeSimpleItemValue); jsonObject.insert(VisualMissionItem::jsonTypeKey, VisualMissionItem::jsonTypeSimpleItemValue);
if (allNaNs) { if (allNaNs) {
QJsonArray rgParams = { NAN, NAN, NAN, NAN, NAN, NAN, NAN }; QJsonObject rgParams = { NAN, NAN, NAN, NAN, NAN, NAN, NAN };
jsonObject.insert(MissionItem::_jsonParamsKey, rgParams); jsonObject.insert(MissionItem::_jsonParamsKey, rgParams);
} else { } else {
QJsonArray rgParams = { 10, 20, 30, 40, -10, -20, -30 }; QJsonObject rgParams = { 10, 20, 30, 40, -10, -20, -30 };
jsonObject.insert(MissionItem::_jsonParamsKey, rgParams); jsonObject.insert(MissionItem::_jsonParamsKey, rgParams);
} }
......
...@@ -88,7 +88,7 @@ void MissionSettingsItem::setDirty(bool dirty) ...@@ -88,7 +88,7 @@ void MissionSettingsItem::setDirty(bool dirty)
} }
} }
void MissionSettingsItem::save(QJsonArray& missionItems) void MissionSettingsItem::save(QJsonObject& missionItems)
{ {
QList<MissionItem*> items; QList<MissionItem*> items;
......
...@@ -87,7 +87,7 @@ public: ...@@ -87,7 +87,7 @@ public:
void setDirty (bool dirty) final; void setDirty (bool dirty) final;
void setCoordinate (const QGeoCoordinate& coordinate) final; // Should only be called if the end user is moving void setCoordinate (const QGeoCoordinate& coordinate) final; // Should only be called if the end user is moving
void setSequenceNumber (int sequenceNumber) final; void setSequenceNumber (int sequenceNumber) final;
void save (QJsonArray& missionItems) final; void save (QJsonObject& missionItems) final;
double amslEntryAlt (void) const final { return _plannedHomePositionCoordinate.altitude(); } double amslEntryAlt (void) const final { return _plannedHomePositionCoordinate.altitude(); }
double amslExitAlt (void) const final { return amslEntryAlt(); } double amslExitAlt (void) const final { return amslEntryAlt(); }
double minAMSLAltitude (void) const final { return amslEntryAlt(); } double minAMSLAltitude (void) const final { return amslEntryAlt(); }
......
...@@ -128,7 +128,7 @@ void RallyPointController::save(QJsonObject& json) ...@@ -128,7 +128,7 @@ void RallyPointController::save(QJsonObject& json)
{ {
json[JsonHelper::jsonVersionKey] = _jsonCurrentVersion; json[JsonHelper::jsonVersionKey] = _jsonCurrentVersion;
QJsonArray rgPoints; QJsonObject rgPoints;
QJsonValue jsonPoint; QJsonValue jsonPoint;
for (int i=0; i<_points.count(); i++) { for (int i=0; i<_points.count(); i++) {
JsonHelper::saveGeoCoordinate(qobject_cast<RallyPoint*>(_points[i])->coordinate(), true /* writeAltitude */, jsonPoint); JsonHelper::saveGeoCoordinate(qobject_cast<RallyPoint*>(_points[i])->coordinate(), true /* writeAltitude */, jsonPoint);
......
...@@ -260,7 +260,7 @@ SimpleMissionItem::~SimpleMissionItem() ...@@ -260,7 +260,7 @@ SimpleMissionItem::~SimpleMissionItem()
{ {
} }
void SimpleMissionItem::save(QJsonArray& missionItems) void SimpleMissionItem::save(QJsonObject& missionItems)
{ {
QList<MissionItem*> items; QList<MissionItem*> items;
......
...@@ -127,7 +127,7 @@ public: ...@@ -127,7 +127,7 @@ public:
void setCoordinate (const QGeoCoordinate& coordinate) override; void setCoordinate (const QGeoCoordinate& coordinate) override;
void setSequenceNumber (int sequenceNumber) final; void setSequenceNumber (int sequenceNumber) final;
int lastSequenceNumber (void) const final; int lastSequenceNumber (void) const final;
void save (QJsonArray& missionItems) final; void save (QJsonObject& missionItems) final;
signals: signals:
void commandChanged (int command); void commandChanged (int command);
......
...@@ -177,7 +177,7 @@ void StructureScanComplexItem::setDirty(bool dirty) ...@@ -177,7 +177,7 @@ void StructureScanComplexItem::setDirty(bool dirty)
} }
} }
void StructureScanComplexItem::save(QJsonArray& missionItems) void StructureScanComplexItem::save(QJsonObject& missionItems)
{ {
QJsonObject saveObject; QJsonObject saveObject;
......
...@@ -94,7 +94,7 @@ public: ...@@ -94,7 +94,7 @@ public:
void setDirty (bool dirty) final; void setDirty (bool dirty) final;
void setCoordinate (const QGeoCoordinate& coordinate) final { Q_UNUSED(coordinate); } void setCoordinate (const QGeoCoordinate& coordinate) final { Q_UNUSED(coordinate); }
void setSequenceNumber (int sequenceNumber) final; void setSequenceNumber (int sequenceNumber) final;
void save (QJsonArray& missionItems) final; void save (QJsonObject& missionItems) final;
double amslEntryAlt (void) const final; double amslEntryAlt (void) const final;
double amslExitAlt (void) const final { return amslEntryAlt(); }; double amslExitAlt (void) const final { return amslEntryAlt(); };
double minAMSLAltitude (void) const final; double minAMSLAltitude (void) const final;
......
...@@ -110,7 +110,7 @@ void StructureScanComplexItemTest::_testSaveLoad(void) ...@@ -110,7 +110,7 @@ void StructureScanComplexItemTest::_testSaveLoad(void)
{ {
_initItem(); _initItem();
QJsonArray items; QJsonObject items;
_structureScanItem->save(items); _structureScanItem->save(items);
QString errorString; QString errorString;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
...@@ -171,7 +171,7 @@ void TransectStyleComplexItem::_save(QJsonObject& complexObject) ...@@ -171,7 +171,7 @@ void TransectStyleComplexItem::_save(QJsonObject& complexObject)
innerObject[_jsonVisualTransectPointsKey] = transectPointsJson; innerObject[_jsonVisualTransectPointsKey] = transectPointsJson;
// Save the interal mission items // Save the interal mission items
QJsonArray missionItemsJsonArray; QJsonObject missionItemsJsonArray;
QObject* missionItemParent = new QObject(); QObject* missionItemParent = new QObject();
QList<MissionItem*> missionItems; QList<MissionItem*> missionItems;
appendMissionItems(missionItems, missionItemParent); appendMissionItems(missionItems, missionItemParent);
...@@ -242,7 +242,7 @@ bool TransectStyleComplexItem::_load(const QJsonObject& complexObject, bool forP ...@@ -242,7 +242,7 @@ bool TransectStyleComplexItem::_load(const QJsonObject& complexObject, bool forP
// Load generated mission items // Load generated mission items
_loadedMissionItemsParent = new QObject(this); _loadedMissionItemsParent = new QObject(this);
QJsonArray missionItemsJsonArray = innerObject[_jsonItemsKey].toArray(); QJsonObject missionItemsJsonArray = innerObject[_jsonItemsKey].toArray();
for (const QJsonValue missionItemJson: missionItemsJsonArray) { for (const QJsonValue missionItemJson: missionItemsJsonArray) {
MissionItem* missionItem = new MissionItem(_loadedMissionItemsParent); MissionItem* missionItem = new MissionItem(_loadedMissionItemsParent);
if (!missionItem->load(missionItemJson.toObject(), 0 /* sequenceNumber */, errorString)) { if (!missionItem->load(missionItemJson.toObject(), 0 /* sequenceNumber */, errorString)) {
......
...@@ -86,7 +86,7 @@ public: ...@@ -86,7 +86,7 @@ public:
double greatestDistanceTo (const QGeoCoordinate &other) const final; double greatestDistanceTo (const QGeoCoordinate &other) const final;
// Overrides from VisualMissionItem // Overrides from VisualMissionItem
void save (QJsonArray& planItems) override = 0; void save (QJsonObject& planItems) override = 0;
bool specifiesCoordinate (void) const override = 0; bool specifiesCoordinate (void) const override = 0;
virtual void appendMissionItems (QList<MissionItem*>& items, QObject* missionItemParent) final; virtual void appendMissionItems (QList<MissionItem*>& items, QObject* missionItemParent) final;
virtual void applyNewAltitude (double newAltitude) final; virtual void applyNewAltitude (double newAltitude) final;
......
...@@ -88,7 +88,7 @@ public: ...@@ -88,7 +88,7 @@ public:
bool load (const QJsonObject& complexObject, int sequenceNumber, QString& errorString) final { Q_UNUSED(complexObject); Q_UNUSED(sequenceNumber); Q_UNUSED(errorString); return false; } bool load (const QJsonObject& complexObject, int sequenceNumber, QString& errorString) final { Q_UNUSED(complexObject); Q_UNUSED(sequenceNumber); Q_UNUSED(errorString); return false; }
// Overrides from VisualMissionItem // Overrides from VisualMissionItem
void save (QJsonArray& missionItems) final { Q_UNUSED(missionItems); } void save (QJsonObject& missionItems) final { Q_UNUSED(missionItems); }
bool specifiesCoordinate (void) const final { return true; } bool specifiesCoordinate (void) const final { return true; }
double additionalTimeDelay (void) const final { return 0; } double additionalTimeDelay (void) const final { return 0; }
......
...@@ -57,7 +57,7 @@ VTOLLandingComplexItem::VTOLLandingComplexItem(PlanMasterController* masterContr ...@@ -57,7 +57,7 @@ VTOLLandingComplexItem::VTOLLandingComplexItem(PlanMasterController* masterContr
setDirty(false); setDirty(false);
} }
void VTOLLandingComplexItem::save(QJsonArray& missionItems) void VTOLLandingComplexItem::save(QJsonObject& missionItems)
{ {
QJsonObject saveObject = _save(); QJsonObject saveObject = _save();
......
...@@ -35,7 +35,7 @@ public: ...@@ -35,7 +35,7 @@ public:
QString mapVisualQML (void) const final { return QStringLiteral("VTOLLandingPatternMapVisual.qml"); } QString mapVisualQML (void) const final { return QStringLiteral("VTOLLandingPatternMapVisual.qml"); }
// Overrides from VisualMissionItem // Overrides from VisualMissionItem
void save (QJsonArray& missionItems) final; void save (QJsonObject& missionItems) final;
static const QString name; static const QString name;
......
...@@ -177,7 +177,7 @@ public: ...@@ -177,7 +177,7 @@ public:
/// Save the item(s) in Json format /// Save the item(s) in Json format
/// @param missionItems Current set of mission items, new items should be appended to the end /// @param missionItems Current set of mission items, new items should be appended to the end
virtual void save(QJsonArray& missionItems) = 0; virtual void save(QJsonObject& missionItems) = 0;
/// @return The QML resource file which contains the control which visualizes the item on the map. /// @return The QML resource file which contains the control which visualizes the item on the map.
virtual QString mapVisualQML(void) const = 0; virtual QString mapVisualQML(void) const = 0;
......
...@@ -97,7 +97,7 @@ enum QGCGeoCodeType { ...@@ -97,7 +97,7 @@ enum QGCGeoCodeType {
class JasonMonger { class JasonMonger {
public: public:
JasonMonger(); JasonMonger();
QSet<int> json2QGCGeoCodeType(const QJsonArray &types); QSet<int> json2QGCGeoCodeType(const QJsonObject &types);
private: private:
int _getCode(const QString &key); int _getCode(const QString &key);
QMap<QString, int> _m; QMap<QString, int> _m;
...@@ -145,7 +145,7 @@ int JasonMonger::_getCode(const QString &key) { ...@@ -145,7 +145,7 @@ int JasonMonger::_getCode(const QString &key) {
return _m.value(key, GeoCodeTypeUnknown); return _m.value(key, GeoCodeTypeUnknown);
} }
QSet<int> JasonMonger::json2QGCGeoCodeType(const QJsonArray &types) { QSet<int> JasonMonger::json2QGCGeoCodeType(const QJsonObject &types) {
QSet<int> result; QSet<int> result;
for (int i=0; i<types.size(); ++i) { for (int i=0; i<types.size(); ++i) {
result |= _getCode(types[i].toString()); result |= _getCode(types[i].toString());
...@@ -204,7 +204,7 @@ void QGeoCodeReplyQGC::networkReplyFinished() ...@@ -204,7 +204,7 @@ void QGeoCodeReplyQGC::networkReplyFinished()
} }
QList<QGeoLocation> locations; QList<QGeoLocation> locations;
QJsonArray results = object.value(QStringLiteral("results")).toArray(); QJsonObject results = object.value(QStringLiteral("results")).toArray();
for (int i=0; i<results.size(); ++i) { for (int i=0; i<results.size(); ++i) {
if (!results[i].isObject()) if (!results[i].isObject())
continue; continue;
...@@ -218,7 +218,7 @@ void QGeoCodeReplyQGC::networkReplyFinished() ...@@ -218,7 +218,7 @@ void QGeoCodeReplyQGC::networkReplyFinished()
if (geocode.contains(QStringLiteral("address_components"))) { if (geocode.contains(QStringLiteral("address_components"))) {
QJsonArray ac = geocode.value(QStringLiteral("address_components")).toArray(); QJsonObject ac = geocode.value(QStringLiteral("address_components")).toArray();
for (int j=0; j<ac.size(); ++j) { for (int j=0; j<ac.size(); ++j) {
if (!ac[j].isObject()) if (!ac[j].isObject())
......
...@@ -223,7 +223,7 @@ void TerrainAirMapQuery::_requestFailed(void) ...@@ -223,7 +223,7 @@ void TerrainAirMapQuery::_requestFailed(void)
void TerrainAirMapQuery::_parseCoordinateData(const QJsonValue& coordinateJson) void TerrainAirMapQuery::_parseCoordinateData(const QJsonValue& coordinateJson)
{ {
QList<double> heights; QList<double> heights;
const QJsonArray& dataArray = coordinateJson.toArray(); const QJsonObject& dataArray = coordinateJson.toArray();
for (int i = 0; i < dataArray.count(); i++) { for (int i = 0; i < dataArray.count(); i++) {
heights.append(dataArray[i].toDouble()); heights.append(dataArray[i].toDouble());
} }
...@@ -234,8 +234,8 @@ void TerrainAirMapQuery::_parseCoordinateData(const QJsonValue& coordinateJson) ...@@ -234,8 +234,8 @@ void TerrainAirMapQuery::_parseCoordinateData(const QJsonValue& coordinateJson)
void TerrainAirMapQuery::_parsePathData(const QJsonValue& pathJson) void TerrainAirMapQuery::_parsePathData(const QJsonValue& pathJson)
{ {
QJsonObject jsonObject = pathJson.toArray()[0].toObject(); QJsonObject jsonObject = pathJson.toArray()[0].toObject();
QJsonArray stepArray = jsonObject["step"].toArray(); QJsonObject stepArray = jsonObject["step"].toArray();
QJsonArray profileArray = jsonObject["profile"].toArray(); QJsonObject profileArray = jsonObject["profile"].toArray();
double latStep = stepArray[0].toDouble(); double latStep = stepArray[0].toDouble();
double lonStep = stepArray[1].toDouble(); double lonStep = stepArray[1].toDouble();
...@@ -258,10 +258,10 @@ void TerrainAirMapQuery::_parseCarpetData(const QJsonValue& carpetJson) ...@@ -258,10 +258,10 @@ void TerrainAirMapQuery::_parseCarpetData(const QJsonValue& carpetJson)
QList<QList<double>> carpet; QList<QList<double>> carpet;
if (!_carpetStatsOnly) { if (!_carpetStatsOnly) {
QJsonArray carpetArray = jsonObject["carpet"].toArray(); QJsonObject carpetArray = jsonObject["carpet"].toArray();
for (int i=0; i<carpetArray.count(); i++) { for (int i=0; i<carpetArray.count(); i++) {
QJsonArray rowArray = carpetArray[i].toArray(); QJsonObject rowArray = carpetArray[i].toArray();
carpet.append(QList<double>()); carpet.append(QList<double>());
for (int j=0; j<rowArray.count(); j++) { for (int j=0; j<rowArray.count(); j++) {
......
...@@ -229,8 +229,8 @@ QByteArray TerrainTile::serialize(QByteArray input) ...@@ -229,8 +229,8 @@ QByteArray TerrainTile::serialize(QByteArray input)
QByteArray emptyArray; QByteArray emptyArray;
return emptyArray; return emptyArray;
} }
const QJsonArray& swArray = boundsObject[_jsonSouthWestKey].toArray(); const QJsonObject& swArray = boundsObject[_jsonSouthWestKey].toArray();
const QJsonArray& neArray = boundsObject[_jsonNorthEastKey].toArray(); const QJsonObject& neArray = boundsObject[_jsonNorthEastKey].toArray();
if (swArray.count() < 2 || neArray.count() < 2 ) { if (swArray.count() < 2 || neArray.count() < 2 ) {
qCDebug(TerrainTileLog) << "Incomplete bounding location"; qCDebug(TerrainTileLog) << "Incomplete bounding location";
QByteArray emptyArray; QByteArray emptyArray;
...@@ -251,7 +251,7 @@ QByteArray TerrainTile::serialize(QByteArray input) ...@@ -251,7 +251,7 @@ QByteArray TerrainTile::serialize(QByteArray input)
} }
// Carpet // Carpet
const QJsonArray& carpetArray = dataObject[_jsonCarpetKey].toArray(); const QJsonObject& carpetArray = dataObject[_jsonCarpetKey].toArray();
int gridSizeLat = carpetArray.count(); int gridSizeLat = carpetArray.count();
int gridSizeLon = carpetArray[0].toArray().count(); int gridSizeLon = carpetArray[0].toArray().count();
...@@ -289,7 +289,7 @@ QByteArray TerrainTile::serialize(QByteArray input) ...@@ -289,7 +289,7 @@ QByteArray TerrainTile::serialize(QByteArray input)
int valueIndex = 0; int valueIndex = 0;
for (int i = 0; i < gridSizeLat; i++) { for (int i = 0; i < gridSizeLat; i++) {
const QJsonArray& row = carpetArray[i].toArray(); const QJsonObject& row = carpetArray[i].toArray();
if (row.count() < gridSizeLon) { if (row.count() < gridSizeLon) {
qCDebug(TerrainTileLog) << "Expected row array of " << gridSizeLon << ", instead got " << row.count(); qCDebug(TerrainTileLog) << "Expected row array of " << gridSizeLon << ", instead got " << row.count();
QByteArray emptyArray; QByteArray emptyArray;
......
...@@ -68,7 +68,7 @@ void CompInfoParam::setJson(const QString& metadataJsonFileName, const QString& ...@@ -68,7 +68,7 @@ void CompInfoParam::setJson(const QString& metadataJsonFileName, const QString&
return; return;
} }
QJsonArray rgParameters = jsonObj[_jsonParametersKey].toArray(); QJsonObject rgParameters = jsonObj[_jsonParametersKey].toArray();
for (QJsonValue parameterValue: rgParameters) { for (QJsonValue parameterValue: rgParameters) {
QMap<QString, QString> emptyDefineMap; QMap<QString, QString> emptyDefineMap;
......
...@@ -58,7 +58,7 @@ void CompInfoVersion::setJson(const QString& metadataJsonFileName, const QString ...@@ -58,7 +58,7 @@ void CompInfoVersion::setJson(const QString& metadataJsonFileName, const QString
return; return;
} }
QJsonArray rgSupportedTypes = jsonObj[_jsonSupportedCompMetadataTypesKey].toArray(); QJsonObject rgSupportedTypes = jsonObj[_jsonSupportedCompMetadataTypesKey].toArray();
for (QJsonValue typeValue: rgSupportedTypes) { for (QJsonValue typeValue: rgSupportedTypes) {
_supportedTypes.append(static_cast<COMP_METADATA_TYPE>(typeValue.toInt())); _supportedTypes.append(static_cast<COMP_METADATA_TYPE>(typeValue.toInt()));
} }
......
...@@ -877,7 +877,7 @@ void FirmwareUpgradeController::_px4ReleasesGithubDownloadComplete(QString /*rem ...@@ -877,7 +877,7 @@ void FirmwareUpgradeController::_px4ReleasesGithubDownloadComplete(QString /*rem
qCWarning(FirmwareUpgradeLog) << "px4 releases json document is not an array" << localFile; qCWarning(FirmwareUpgradeLog) << "px4 releases json document is not an array" << localFile;
return; return;
} }
QJsonArray releases = doc.array(); QJsonObject releases = doc.array();
// The first release marked prerelease=false is stable // The first release marked prerelease=false is stable
// The first release marked prerelease=true is beta // The first release marked prerelease=true is beta
...@@ -941,7 +941,7 @@ void FirmwareUpgradeController::_ardupilotManifestDownloadComplete(QString remot ...@@ -941,7 +941,7 @@ void FirmwareUpgradeController::_ardupilotManifestDownloadComplete(QString remot
} }
QJsonObject json = doc.object(); QJsonObject json = doc.object();
QJsonArray rgFirmware = json[_manifestFirmwareJsonKey].toArray(); QJsonObject rgFirmware = json[_manifestFirmwareJsonKey].toArray();
for (int i=0; i<rgFirmware.count(); i++) { for (int i=0; i<rgFirmware.count(); i++) {
const QJsonObject& firmwareJson = rgFirmware[i].toObject(); const QJsonObject& firmwareJson = rgFirmware[i].toObject();
...@@ -966,12 +966,12 @@ void FirmwareUpgradeController::_ardupilotManifestDownloadComplete(QString remot ...@@ -966,12 +966,12 @@ void FirmwareUpgradeController::_ardupilotManifestDownloadComplete(QString remot
firmwareInfo.version = firmwareJson[_manifestMavFirmwareVersionJsonKey].toString(); firmwareInfo.version = firmwareJson[_manifestMavFirmwareVersionJsonKey].toString();
firmwareInfo.chibios = format == QStringLiteral("apj"); firmwareInfo.fmuv2 = platform.contains(QStringLiteral("fmuv2")); firmwareInfo.chibios = format == QStringLiteral("apj"); firmwareInfo.fmuv2 = platform.contains(QStringLiteral("fmuv2"));
QJsonArray bootloaderArray = firmwareJson[_manifestBootloaderStrJsonKey].toArray(); QJsonObject bootloaderArray = firmwareJson[_manifestBootloaderStrJsonKey].toArray();
for (int j=0; j<bootloaderArray.count(); j++) { for (int j=0; j<bootloaderArray.count(); j++) {
firmwareInfo.rgBootloaderPortString.append(bootloaderArray[j].toString()); firmwareInfo.rgBootloaderPortString.append(bootloaderArray[j].toString());
} }
QJsonArray usbidArray = firmwareJson[_manifestUSBIDJsonKey].toArray(); QJsonObject usbidArray = firmwareJson[_manifestUSBIDJsonKey].toArray();
for (int j=0; j<usbidArray.count(); j++) { for (int j=0; j<usbidArray.count(); j++) {
QStringList vidpid = usbidArray[j].toString().split('/'); QStringList vidpid = usbidArray[j].toString().split('/');
QString vid = vidpid[0]; QString vid = vidpid[0];
......
...@@ -110,7 +110,7 @@ void QGCSerialPortInfo::_loadJsonData(void) ...@@ -110,7 +110,7 @@ void QGCSerialPortInfo::_loadJsonData(void)
{ _jsonNameKey, QJsonValue::String, true }, { _jsonNameKey, QJsonValue::String, true },
}; };
QJsonArray rgBoardInfo = json[_jsonBoardInfoKey].toArray(); QJsonObject rgBoardInfo = json[_jsonBoardInfoKey].toArray();
for (int i=0; i<rgBoardInfo.count(); i++) { for (int i=0; i<rgBoardInfo.count(); i++) {
const QJsonValue& jsonValue = rgBoardInfo[i]; const QJsonValue& jsonValue = rgBoardInfo[i];
if (!jsonValue.isObject()) { if (!jsonValue.isObject()) {
...@@ -146,7 +146,7 @@ void QGCSerialPortInfo::_loadJsonData(void) ...@@ -146,7 +146,7 @@ void QGCSerialPortInfo::_loadJsonData(void)
{ _jsonAndroidOnlyKey, QJsonValue::Bool, false }, { _jsonAndroidOnlyKey, QJsonValue::Bool, false },
}; };
QJsonArray rgBoardFallback = json[_jsonBoardDescriptionFallbackKey].toArray(); QJsonObject rgBoardFallback = json[_jsonBoardDescriptionFallbackKey].toArray();
for (int i=0; i<rgBoardFallback.count(); i++) { for (int i=0; i<rgBoardFallback.count(); i++) {
const QJsonValue& jsonValue = rgBoardFallback[i]; const QJsonValue& jsonValue = rgBoardFallback[i];
if (!jsonValue.isObject()) { if (!jsonValue.isObject()) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment