Commit 236327b8 authored by Valentin Platzgummer's avatar Valentin Platzgummer

files from 6485d280 checked out

parent e5b570c5
...@@ -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 QJsonObject jsonArray) void FactGroup::_loadFromJsonArray(const QJsonArray 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 QJsonObject jsonArray); void _loadFromJsonArray (const QJsonArray 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;
} }
QJsonObject factArray; QJsonArray 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 QJsonObject jsonArray, QMap<QString, QString>& defineMap, QObject* metaDataParent) QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonArray(const QJsonArray 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 QJsonObject& rgValueDescription = jsonObject[_enumValuesArrayJsonKey].toArray(); const QJsonArray& 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 QJsonObject& rgValueDescription = jsonObject[_enumBitmaskArrayJsonKey].toArray(); const QJsonArray& 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 QJsonObject jsonArray, DefineMap_t& defineMap, QObject* metaDataParent); static QMap<QString, FactMetaData*> createMapFromJsonArray(const QJsonArray 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);
......
/****************************************************************************
*
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#include "FactGroup.h"
#include "JsonHelper.h"
#include <QJsonDocument>
#include <QJsonParseError>
#include <QJsonArray>
#include <QDebug>
#include <QFile>
#include <QQmlEngine>
FactGroup::FactGroup(int updateRateMsecs, const QString& metaDataFile, QObject* parent, bool ignoreCamelCase)
: QObject(parent)
, _updateRateMSecs(updateRateMsecs)
, _ignoreCamelCase(ignoreCamelCase)
{
_setupTimer();
_nameToFactMetaDataMap = FactMetaData::createMapFromJsonFile(metaDataFile, this);
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
}
FactGroup::FactGroup(int updateRateMsecs, QObject* parent, bool ignoreCamelCase)
: QObject(parent)
, _updateRateMSecs(updateRateMsecs)
, _ignoreCamelCase(ignoreCamelCase)
{
_setupTimer();
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
}
void FactGroup::_loadFromJsonArray(const QJsonArray jsonArray)
{
QMap<QString, QString> defineMap;
_nameToFactMetaDataMap = FactMetaData::createMapFromJsonArray(jsonArray, defineMap, this);
}
void FactGroup::_setupTimer()
{
if (_updateRateMSecs > 0) {
connect(&_updateTimer, &QTimer::timeout, this, &FactGroup::_updateAllValues);
_updateTimer.setSingleShot(false);
_updateTimer.setInterval(_updateRateMSecs);
_updateTimer.start();
}
}
bool FactGroup::factExists(const QString& name)
{
if (name.contains(".")) {
QStringList parts = name.split(".");
if (parts.count() != 2) {
qWarning() << "Only single level of hierarchy supported";
return false;
}
FactGroup * factGroup = getFactGroup(parts[0]);
if (!factGroup) {
qWarning() << "Unknown FactGroup" << parts[0];
return false;
}
return factGroup->factExists(parts[1]);
}
QString camelCaseName = _ignoreCamelCase ? name : _camelCase(name);
return _nameToFactMap.contains(camelCaseName);
}
Fact* FactGroup::getFact(const QString& name)
{
if (name.contains(".")) {
QStringList parts = name.split(".");
if (parts.count() != 2) {
qWarning() << "Only single level of hierarchy supported";
return nullptr;
}
FactGroup * factGroup = getFactGroup(parts[0]);
if (!factGroup) {
qWarning() << "Unknown FactGroup" << parts[0];
return nullptr;
}
return factGroup->getFact(parts[1]);
}
Fact* fact = nullptr;
QString camelCaseName = _ignoreCamelCase ? name : _camelCase(name);
if (_nameToFactMap.contains(camelCaseName)) {
fact = _nameToFactMap[camelCaseName];
QQmlEngine::setObjectOwnership(fact, QQmlEngine::CppOwnership);
} else {
qWarning() << "Unknown Fact" << camelCaseName;
}
return fact;
}
FactGroup* FactGroup::getFactGroup(const QString& name)
{
FactGroup* factGroup = nullptr;
QString camelCaseName = _ignoreCamelCase ? name : _camelCase(name);
if (_nameToFactGroupMap.contains(camelCaseName)) {
factGroup = _nameToFactGroupMap[camelCaseName];
QQmlEngine::setObjectOwnership(factGroup, QQmlEngine::CppOwnership);
} else {
qWarning() << "Unknown FactGroup" << camelCaseName;
}
return factGroup;
}
void FactGroup::_addFact(Fact* fact, const QString& name)
{
if (_nameToFactMap.contains(name)) {
qWarning() << "Duplicate Fact" << name;
return;
}
fact->setSendValueChangedSignals(_updateRateMSecs == 0);
if (_nameToFactMetaDataMap.contains(name)) {
fact->setMetaData(_nameToFactMetaDataMap[name], true /* setDefaultFromMetaData */);
}
_nameToFactMap[name] = fact;
_factNames.append(name);
emit factNamesChanged();
}
void FactGroup::_addFactGroup(FactGroup* factGroup, const QString& name)
{
if (_nameToFactGroupMap.contains(name)) {
qWarning() << "Duplicate FactGroup" << name;
return;
}
_nameToFactGroupMap[name] = factGroup;
emit factGroupNamesChanged();
}
void FactGroup::_updateAllValues(void)
{
for(Fact* fact: _nameToFactMap) {
fact->sendDeferredValueChangedSignal();
}
}
void FactGroup::setLiveUpdates(bool liveUpdates)
{
if (_updateTimer.interval() == 0) {
return;
}
if (liveUpdates) {
_updateTimer.stop();
} else {
_updateTimer.start();
}
for(Fact* fact: _nameToFactMap) {
fact->setSendValueChangedSignals(liveUpdates);
}
}
QString FactGroup::_camelCase(const QString& text)
{
return text[0].toLower() + text.right(text.length() - 1);
}
void FactGroup::handleMessage(Vehicle* /* vehicle */, mavlink_message_t& /* message */)
{
// Default implementation does nothing
}
void FactGroup::_setTelemetryAvailable (bool telemetryAvailable)
{
if (telemetryAvailable != _telemetryAvailable) {
_telemetryAvailable = telemetryAvailable;
emit telemetryAvailableChanged(_telemetryAvailable);
}
}
This diff is collapsed.
This diff is collapsed.
...@@ -61,7 +61,7 @@ CorridorScanComplexItem::CorridorScanComplexItem(PlanMasterController* masterCon ...@@ -61,7 +61,7 @@ CorridorScanComplexItem::CorridorScanComplexItem(PlanMasterController* masterCon
setDirty(false); setDirty(false);
} }
void CorridorScanComplexItem::save(QJsonObject& planItems) void CorridorScanComplexItem::save(QJsonArray& 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 (QJsonObject& planItems) final; void save (QJsonArray& 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)
{ {
QJsonObject items; QJsonArray 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(QJsonObject& missionItems) void FixedWingLandingComplexItem::save(QJsonArray& 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 (QJsonObject& missionItems) final; void save (QJsonArray& 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;
} }
QJsonObject jsonPolygonArray = json[_jsonPolygonsKey].toArray(); QJsonArray 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);
} }
QJsonObject jsonCircleArray = json[_jsonCirclesKey].toArray(); QJsonArray 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;
QJsonObject jsonPolygonArray; QJsonArray 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;
QJsonObject jsonCircleArray; QJsonArray 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 (QJsonObject& /*missionItems*/) { }; void save (QJsonArray& /*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
QJsonObject jsonArray = jsonValue.toArray(); QJsonArray 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;
QJsonObject complexArray(json[_jsonComplexItemsKey].toArray()); QJsonArray 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
QJsonObject itemArray(json[_jsonItemsKey].toArray()); QJsonArray 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 QJsonObject rgMissionItems(json[_jsonItemsKey].toArray()); const QJsonArray 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
QJsonObject rgJsonMissionItems; QJsonArray 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;
QJsonObject rgParams = {param1(), param2(), param3(), param4(), QJsonArray 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;
} }
QJsonObject rgParams = { QJsonArray 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;
} }
QJsonObject rgParam = json[_jsonParamsKey].toArray(); QJsonArray 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;
} }
QJsonObject rgParams = convertedJson[_jsonParamsKey].toArray(); QJsonArray 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;
QJsonObject badCoordinateArray; QJsonArray 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;
QJsonObject badCoordinateArray_second; QJsonArray 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;
QJsonObject badCoordinateArray2; QJsonArray badCoordinateArray2;
badCoordinateArray2 << 1 << 2; badCoordinateArray2 << 1 << 2;
QJsonObject badCoordinateArray_third; QJsonArray 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;
QJsonObject rgParam = badObject[MissionItem::_jsonParamsKey].toArray(); QJsonArray 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;
QJsonObject coordinateArray; QJsonArray 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);
QJsonObject rgParams = { 10, 20, 30, 40 }; QJsonArray 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;
QJsonObject coordinateArray; QJsonArray 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;
QJsonObject coordinateArray; QJsonArray 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);
QJsonObject rgParams = { 10, 20, 30, 40 }; QJsonArray 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) {
QJsonObject rgParams = { NAN, NAN, NAN, NAN, NAN, NAN, NAN }; QJsonArray rgParams = { NAN, NAN, NAN, NAN, NAN, NAN, NAN };
jsonObject.insert(MissionItem::_jsonParamsKey, rgParams); jsonObject.insert(MissionItem::_jsonParamsKey, rgParams);
} else { } else {
QJsonObject rgParams = { 10, 20, 30, 40, -10, -20, -30 }; QJsonArray 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(QJsonObject& missionItems) void MissionSettingsItem::save(QJsonArray& 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 (QJsonObject& missionItems) final; void save (QJsonArray& 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;
QJsonObject rgPoints; QJsonArray 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(QJsonObject& missionItems) void SimpleMissionItem::save(QJsonArray& 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 (QJsonObject& missionItems) final; void save (QJsonArray& 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(QJsonObject& missionItems) void StructureScanComplexItem::save(QJsonArray& 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 (QJsonObject& missionItems) final; void save (QJsonArray& 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();
QJsonObject items; QJsonArray 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
QJsonObject missionItemsJsonArray; QJsonArray 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);
QJsonObject missionItemsJsonArray = innerObject[_jsonItemsKey].toArray(); QJsonArray 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 (QJsonObject& planItems) override = 0; void save (QJsonArray& 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 (QJsonObject& missionItems) final { Q_UNUSED(missionItems); } void save (QJsonArray& 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(QJsonObject& missionItems) void VTOLLandingComplexItem::save(QJsonArray& 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 (QJsonObject& missionItems) final; void save (QJsonArray& 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(QJsonObject& missionItems) = 0; virtual void save(QJsonArray& 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 QJsonObject &types); QSet<int> json2QGCGeoCodeType(const QJsonArray &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 QJsonObject &types) { QSet<int> JasonMonger::json2QGCGeoCodeType(const QJsonArray &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;
QJsonObject results = object.value(QStringLiteral("results")).toArray(); QJsonArray 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"))) {
QJsonObject ac = geocode.value(QStringLiteral("address_components")).toArray(); QJsonArray 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 QJsonObject& dataArray = coordinateJson.toArray(); const QJsonArray& 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();
QJsonObject stepArray = jsonObject["step"].toArray(); QJsonArray stepArray = jsonObject["step"].toArray();
QJsonObject profileArray = jsonObject["profile"].toArray(); QJsonArray 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) {
QJsonObject carpetArray = jsonObject["carpet"].toArray(); QJsonArray carpetArray = jsonObject["carpet"].toArray();
for (int i=0; i<carpetArray.count(); i++) { for (int i=0; i<carpetArray.count(); i++) {
QJsonObject rowArray = carpetArray[i].toArray(); QJsonArray 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 QJsonObject& swArray = boundsObject[_jsonSouthWestKey].toArray(); const QJsonArray& swArray = boundsObject[_jsonSouthWestKey].toArray();
const QJsonObject& neArray = boundsObject[_jsonNorthEastKey].toArray(); const QJsonArray& 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 QJsonObject& carpetArray = dataObject[_jsonCarpetKey].toArray(); const QJsonArray& 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 QJsonObject& row = carpetArray[i].toArray(); const QJsonArray& 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;
} }
QJsonObject rgParameters = jsonObj[_jsonParametersKey].toArray(); QJsonArray 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;
} }
QJsonObject rgSupportedTypes = jsonObj[_jsonSupportedCompMetadataTypesKey].toArray(); QJsonArray 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;
} }
QJsonObject releases = doc.array(); QJsonArray 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();
QJsonObject rgFirmware = json[_manifestFirmwareJsonKey].toArray(); QJsonArray 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"));
QJsonObject bootloaderArray = firmwareJson[_manifestBootloaderStrJsonKey].toArray(); QJsonArray 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());
} }
QJsonObject usbidArray = firmwareJson[_manifestUSBIDJsonKey].toArray(); QJsonArray 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 },
}; };
QJsonObject rgBoardInfo = json[_jsonBoardInfoKey].toArray(); QJsonArray 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 },
}; };
QJsonObject rgBoardFallback = json[_jsonBoardDescriptionFallbackKey].toArray(); QJsonArray 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