From 5466f4965159df88480c69ae6340215f7f46cace Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sun, 18 Sep 2016 20:12:31 -0700 Subject: [PATCH] Use new FactMetaData json load support --- qgroundcontrol.qrc | 1 + src/FactSystem/FactGroup.cc | 127 +------------------ src/FactSystem/FactGroup.h | 11 -- src/QmlControls/QGroundControlQmlGlobal.cc | 77 +++++------ src/QmlControls/QGroundControlQmlGlobal.h | 6 +- src/QmlControls/QGroundControlQmlGlobal.json | 48 +++++++ src/Vehicle/BatteryFact.json | 86 ++++++------- src/Vehicle/GPSFact.json | 70 +++++----- src/Vehicle/VehicleFact.json | 116 ++++++++--------- src/Vehicle/VibrationFact.json | 70 +++++----- src/Vehicle/WindFact.json | 47 ++++--- src/ui/preferences/GeneralSettings.qml | 2 +- 12 files changed, 271 insertions(+), 390 deletions(-) create mode 100644 src/QmlControls/QGroundControlQmlGlobal.json diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index 612ff56d9..9780befa8 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -189,5 +189,6 @@ src/Vehicle/GPSFact.json src/Vehicle/WindFact.json src/Vehicle/VibrationFact.json + src/QmlControls/QGroundControlQmlGlobal.json diff --git a/src/FactSystem/FactGroup.cc b/src/FactSystem/FactGroup.cc index 29c265a38..f7d594ff3 100644 --- a/src/FactSystem/FactGroup.cc +++ b/src/FactSystem/FactGroup.cc @@ -20,17 +20,6 @@ QGC_LOGGING_CATEGORY(FactGroupLog, "FactGroupLog") -const char* FactGroup::_decimalPlacesJsonKey = "decimalPlaces"; -const char* FactGroup::_nameJsonKey = "name"; -const char* FactGroup::_propertiesJsonKey = "properties"; -const char* FactGroup::_versionJsonKey = "version"; -const char* FactGroup::_typeJsonKey = "type"; -const char* FactGroup::_shortDescriptionJsonKey = "shortDescription"; -const char* FactGroup::_unitsJsonKey = "units"; -const char* FactGroup::_defaultValueJsonKey = "defaultValue"; -const char* FactGroup::_minJsonKey = "min"; -const char* FactGroup::_maxJsonKey = "max"; - FactGroup::FactGroup(int updateRateMsecs, const QString& metaDataFile, QObject* parent) : QObject(parent) , _updateRateMSecs(updateRateMsecs) @@ -121,119 +110,5 @@ void FactGroup::_updateAllValues(void) void FactGroup::_loadMetaData(const QString& jsonFilename) { - if (jsonFilename.isEmpty()) { - return; - } - - qCDebug(FactGroupLog) << "Loading" << jsonFilename; - - QFile jsonFile(jsonFilename); - if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { - qWarning() << "Unable to open file" << jsonFilename << jsonFile.errorString(); - return; - } - - QByteArray bytes = jsonFile.readAll(); - jsonFile.close(); - QJsonParseError jsonParseError; - QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError); - if (jsonParseError.error != QJsonParseError::NoError) { - qWarning() << "Unable to open json document" << jsonFilename << jsonParseError.errorString(); - return; - } - - QJsonObject json = doc.object(); - - int version = json.value(_versionJsonKey).toInt(); - if (version != 1) { - qWarning() << "Invalid version" << version; - return; - } - - QJsonValue jsonValue = json.value(_propertiesJsonKey); - if (!jsonValue.isArray()) { - qWarning() << "properties object not array"; - return; - } - - QJsonArray jsonArray = jsonValue.toArray(); - foreach(QJsonValue property, jsonArray) { - if (!property.isObject()) { - qWarning() << "properties object should contain only objects"; - return; - } - QJsonObject jsonObject = property.toObject(); - - // Make sure we have the required keys - QString errorString; - QStringList requiredKeys; - requiredKeys << _nameJsonKey << _typeJsonKey << _shortDescriptionJsonKey; - if (!JsonHelper::validateRequiredKeys(jsonObject, requiredKeys, errorString)) { - qWarning() << errorString; - return; - } - - // Validate key types - - QStringList keys; - QList types; - keys << _nameJsonKey << _decimalPlacesJsonKey << _typeJsonKey << _shortDescriptionJsonKey << _unitsJsonKey << _defaultValueJsonKey << _minJsonKey << _maxJsonKey; - types << QJsonValue::String << QJsonValue::Double << QJsonValue::String << QJsonValue::String << QJsonValue::String << QJsonValue::Double << QJsonValue::Double << QJsonValue::Double; - if (!JsonHelper::validateKeyTypes(jsonObject, keys, types, errorString)) { - qWarning() << errorString; - return; - } - - QString name = jsonObject.value(_nameJsonKey).toString(); - if (_nameToFactMetaDataMap.contains(name)) { - qWarning() << "Duplicate property name" << name; - continue; - } - - bool unknownType; - FactMetaData::ValueType_t type = FactMetaData::stringToType(jsonObject.value(_typeJsonKey).toString(), unknownType); - if (unknownType) { - qWarning() << "Unknown type" << jsonObject.value(_typeJsonKey).toString(); - return; - } - - QStringList enumValues, enumStrings; - if (!JsonHelper::parseEnum(jsonObject, enumStrings, enumValues, errorString)) { - qWarning() << errorString; - return; - } - - FactMetaData* metaData = new FactMetaData(type, this); - - metaData->setDecimalPlaces(jsonObject.value(_decimalPlacesJsonKey).toInt(0)); - metaData->setShortDescription(jsonObject.value(_shortDescriptionJsonKey).toString()); - metaData->setRawUnits(jsonObject.value(_unitsJsonKey).toString()); - - if (jsonObject.contains(_defaultValueJsonKey)) { - metaData->setRawDefaultValue(jsonObject.value(_defaultValueJsonKey).toDouble()); - } - if (jsonObject.contains(_minJsonKey)) { - metaData->setRawMin(jsonObject.value(_minJsonKey).toDouble()); - } - if (jsonObject.contains(_maxJsonKey)) { - metaData->setRawMax(jsonObject.value(_maxJsonKey).toDouble()); - } - - for (int i=0; iconvertAndValidateRaw(enumValues[i], false /* validate */, enumVariant, errorString)) { - metaData->addEnumInfo(enumStrings[i], enumVariant); - } else { - qWarning() << "Invalid enum value, name:" << metaData->name() - << " type:" << metaData->type() << " value:" << enumValues[i] - << " error:" << errorString; - delete metaData; - return; - } - } - - _nameToFactMetaDataMap[name] = metaData; - } + _nameToFactMetaDataMap = FactMetaData::createMapFromJsonFile(jsonFilename, this); } diff --git a/src/FactSystem/FactGroup.h b/src/FactSystem/FactGroup.h index 07144205b..a56c12f30 100644 --- a/src/FactSystem/FactGroup.h +++ b/src/FactSystem/FactGroup.h @@ -57,17 +57,6 @@ private: QMap _nameToFactMetaDataMap; QTimer _updateTimer; - - static const char* _propertiesJsonKey; - static const char* _nameJsonKey; - static const char* _decimalPlacesJsonKey; - static const char* _typeJsonKey; - static const char* _versionJsonKey; - static const char* _shortDescriptionJsonKey; - static const char* _unitsJsonKey; - static const char* _defaultValueJsonKey; - static const char* _minJsonKey; - static const char* _maxJsonKey; }; #endif diff --git a/src/QmlControls/QGroundControlQmlGlobal.cc b/src/QmlControls/QGroundControlQmlGlobal.cc index f4d20aaf4..b48247b45 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.cc +++ b/src/QmlControls/QGroundControlQmlGlobal.cc @@ -19,20 +19,17 @@ static const char* kQmlGlobalKeyName = "QGCQml"; -SettingsFact* QGroundControlQmlGlobal::_offlineEditingFirmwareTypeFact = NULL; -FactMetaData* QGroundControlQmlGlobal::_offlineEditingFirmwareTypeMetaData = NULL; -SettingsFact* QGroundControlQmlGlobal::_offlineEditingVehicleTypeFact = NULL; -FactMetaData* QGroundControlQmlGlobal::_offlineEditingVehicleTypeMetaData = NULL; -SettingsFact* QGroundControlQmlGlobal::_offlineEditingCruiseSpeedFact = NULL; -SettingsFact* QGroundControlQmlGlobal::_offlineEditingHoverSpeedFact = NULL; SettingsFact* QGroundControlQmlGlobal::_distanceUnitsFact = NULL; FactMetaData* QGroundControlQmlGlobal::_distanceUnitsMetaData = NULL; SettingsFact* QGroundControlQmlGlobal::_areaUnitsFact = NULL; FactMetaData* QGroundControlQmlGlobal::_areaUnitsMetaData = NULL; SettingsFact* QGroundControlQmlGlobal::_speedUnitsFact = NULL; FactMetaData* QGroundControlQmlGlobal::_speedUnitsMetaData = NULL; +SettingsFact* QGroundControlQmlGlobal::_offlineEditingFirmwareTypeFact = NULL; +SettingsFact* QGroundControlQmlGlobal::_offlineEditingVehicleTypeFact = NULL; +SettingsFact* QGroundControlQmlGlobal::_offlineEditingCruiseSpeedFact = NULL; +SettingsFact* QGroundControlQmlGlobal::_offlineEditingHoverSpeedFact = NULL; SettingsFact* QGroundControlQmlGlobal::_batteryPercentRemainingAnnounceFact = NULL; -FactMetaData* QGroundControlQmlGlobal::_batteryPercentRemainingAnnounceMetaData = NULL; const char* QGroundControlQmlGlobal::_virtualTabletJoystickKey = "VirtualTabletJoystick"; const char* QGroundControlQmlGlobal::_baseFontPointSizeKey = "BaseDeviceFontPointSize"; @@ -229,20 +226,21 @@ void QGroundControlQmlGlobal::setBaseFontPointSize(qreal size) } } -Fact* QGroundControlQmlGlobal::offlineEditingFirmwareType(void) +SettingsFact* QGroundControlQmlGlobal::_createSettingsFact(const QString& name) { - if (!_offlineEditingFirmwareTypeFact) { - QStringList enumStrings; - QVariantList enumValues; + SettingsFact* fact; + FactMetaData* metaData = nameToMetaDataMap()[name]; - _offlineEditingFirmwareTypeFact = new SettingsFact(QString(), "OfflineEditingFirmwareType", FactMetaData::valueTypeUint32, (uint32_t)MAV_AUTOPILOT_ARDUPILOTMEGA); - _offlineEditingFirmwareTypeMetaData = new FactMetaData(FactMetaData::valueTypeUint32); + fact = new SettingsFact(QString(), name, metaData->type(), metaData->rawDefaultValue()); + fact->setMetaData(metaData); - enumStrings << tr("ArduPilot Firmware") << tr("PX4 Pro Firmware") << tr("Mavlink Generic Firmware"); - enumValues << QVariant::fromValue((uint32_t)MAV_AUTOPILOT_ARDUPILOTMEGA) << QVariant::fromValue((uint32_t)MAV_AUTOPILOT_PX4) << QVariant::fromValue((uint32_t)MAV_AUTOPILOT_GENERIC); + return fact; +} - _offlineEditingFirmwareTypeMetaData->setEnumInfo(enumStrings, enumValues); - _offlineEditingFirmwareTypeFact->setMetaData(_offlineEditingFirmwareTypeMetaData); +Fact* QGroundControlQmlGlobal::offlineEditingFirmwareType(void) +{ + if (!_offlineEditingFirmwareTypeFact) { + _offlineEditingFirmwareTypeFact = _createSettingsFact(QStringLiteral("OfflineEditingFirmwareType")); } return _offlineEditingFirmwareTypeFact; @@ -251,19 +249,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingFirmwareType(void) Fact* QGroundControlQmlGlobal::offlineEditingVehicleType(void) { if (!_offlineEditingVehicleTypeFact) { - QStringList enumStrings; - QVariantList enumValues; - - _offlineEditingVehicleTypeFact = new SettingsFact(QString(), "OfflineEditingVehicleType", FactMetaData::valueTypeUint32, (uint32_t)MAV_TYPE_FIXED_WING); - _offlineEditingVehicleTypeMetaData = new FactMetaData(FactMetaData::valueTypeUint32); - - enumStrings << tr("Fixedwing") << tr("Multicopter") << tr("VTOL") << tr("Rover") << tr("Sub"); - enumValues << QVariant::fromValue((uint32_t)MAV_TYPE_FIXED_WING) << QVariant::fromValue((uint32_t)MAV_TYPE_QUADROTOR) - << QVariant::fromValue((uint32_t)MAV_TYPE_VTOL_DUOROTOR) << QVariant::fromValue((uint32_t)MAV_TYPE_GROUND_ROVER) - << QVariant::fromValue((uint32_t)MAV_TYPE_SUBMARINE); - - _offlineEditingVehicleTypeMetaData->setEnumInfo(enumStrings, enumValues); - _offlineEditingVehicleTypeFact->setMetaData(_offlineEditingVehicleTypeMetaData); + _offlineEditingVehicleTypeFact = _createSettingsFact(QStringLiteral("OfflineEditingVehicleType")); } return _offlineEditingVehicleTypeFact; @@ -272,7 +258,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingVehicleType(void) Fact* QGroundControlQmlGlobal::offlineEditingCruiseSpeed(void) { if (!_offlineEditingCruiseSpeedFact) { - _offlineEditingCruiseSpeedFact = new SettingsFact(QString(), "OfflineEditingCruiseSpeed", FactMetaData::valueTypeDouble, 16.0); + _offlineEditingCruiseSpeedFact = _createSettingsFact(QStringLiteral("OfflineEditingCruiseSpeed")); } return _offlineEditingCruiseSpeedFact; } @@ -280,7 +266,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingCruiseSpeed(void) Fact* QGroundControlQmlGlobal::offlineEditingHoverSpeed(void) { if (!_offlineEditingHoverSpeedFact) { - _offlineEditingHoverSpeedFact = new SettingsFact(QString(), "OfflineEditingHoverSpeed", FactMetaData::valueTypeDouble, 4.0); + _offlineEditingHoverSpeedFact = _createSettingsFact(QStringLiteral("OfflineEditingHoverSpeed")); } return _offlineEditingHoverSpeedFact; } @@ -288,6 +274,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingHoverSpeed(void) Fact* QGroundControlQmlGlobal::distanceUnits(void) { if (!_distanceUnitsFact) { + // Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading. QStringList enumStrings; QVariantList enumValues; @@ -308,6 +295,7 @@ Fact* QGroundControlQmlGlobal::distanceUnits(void) Fact* QGroundControlQmlGlobal::areaUnits(void) { if (!_areaUnitsFact) { + // Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading. QStringList enumStrings; QVariantList enumValues; @@ -328,6 +316,7 @@ Fact* QGroundControlQmlGlobal::areaUnits(void) Fact* QGroundControlQmlGlobal::speedUnits(void) { if (!_speedUnitsFact) { + // Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading. QStringList enumStrings; QVariantList enumValues; @@ -347,19 +336,7 @@ Fact* QGroundControlQmlGlobal::speedUnits(void) Fact* QGroundControlQmlGlobal::batteryPercentRemainingAnnounce(void) { if (!_batteryPercentRemainingAnnounceFact) { - QStringList enumStrings; - QVariantList enumValues; - - _batteryPercentRemainingAnnounceFact = new SettingsFact(QString(), "batteryPercentRemainingAnnounce", FactMetaData::valueTypeUint32, 30); - _batteryPercentRemainingAnnounceMetaData = new FactMetaData(FactMetaData::valueTypeUint32); - - _batteryPercentRemainingAnnounceMetaData->setDecimalPlaces(0); - _batteryPercentRemainingAnnounceMetaData->setShortDescription(tr("Percent announce")); - _batteryPercentRemainingAnnounceMetaData->setRawUnits("%"); - _batteryPercentRemainingAnnounceMetaData->setRawMin(0); - _batteryPercentRemainingAnnounceMetaData->setRawMax(100); - - _batteryPercentRemainingAnnounceFact->setMetaData(_batteryPercentRemainingAnnounceMetaData); + _batteryPercentRemainingAnnounceFact = _createSettingsFact(QStringLiteral("batteryPercentRemainingAnnounce")); } return _batteryPercentRemainingAnnounceFact; @@ -372,3 +349,13 @@ bool QGroundControlQmlGlobal::linesIntersect(QPointF line1A, QPointF line1B, QPo return QLineF(line1A, line1B).intersect(QLineF(line2A, line2B), &intersectPoint) == QLineF::BoundedIntersection && intersectPoint != line1A && intersectPoint != line1B; } + +QMap& QGroundControlQmlGlobal::nameToMetaDataMap(void) { + static QMap map; + + if (map.isEmpty()) { + map = FactMetaData::createMapFromJsonFile(":/json/QGroundControlQmlGlobal.json", NULL); + } + + return map; +} diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h index 487c13b82..1f10653ff 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.h +++ b/src/QmlControls/QGroundControlQmlGlobal.h @@ -229,6 +229,9 @@ signals: void flightMapZoomChanged (double flightMapZoom); private: + static SettingsFact* _createSettingsFact(const QString& name); + static QMap& nameToMetaDataMap(void); + FlightMapSettings* _flightMapSettings; HomePositionManager* _homePositionManager; LinkManager* _linkManager; @@ -245,9 +248,7 @@ private: // These are static so they are available to C++ code as well as Qml static SettingsFact* _offlineEditingFirmwareTypeFact; - static FactMetaData* _offlineEditingFirmwareTypeMetaData; static SettingsFact* _offlineEditingVehicleTypeFact; - static FactMetaData* _offlineEditingVehicleTypeMetaData; static SettingsFact* _offlineEditingCruiseSpeedFact; static SettingsFact* _offlineEditingHoverSpeedFact; static SettingsFact* _distanceUnitsFact; @@ -257,7 +258,6 @@ private: static SettingsFact* _speedUnitsFact; static FactMetaData* _speedUnitsMetaData; static SettingsFact* _batteryPercentRemainingAnnounceFact; - static FactMetaData* _batteryPercentRemainingAnnounceMetaData; static const char* _virtualTabletJoystickKey; static const char* _baseFontPointSizeKey; diff --git a/src/QmlControls/QGroundControlQmlGlobal.json b/src/QmlControls/QGroundControlQmlGlobal.json new file mode 100644 index 000000000..f32ee0b63 --- /dev/null +++ b/src/QmlControls/QGroundControlQmlGlobal.json @@ -0,0 +1,48 @@ +[ +{ + "name": "OfflineEditingFirmwareType", + "shortDescription": "Offline editing firmware type", + "type": "uint32", + "enumStrings": "ArduPilot Firmware,PX4 Pro Firmware,Mavlink Generic Firmware", + "enumValues": "3,12,0", + "defaultValue": 3 +}, +{ + "name": "OfflineEditingVehicleType", + "shortDescription": "Offline editing vehicle type", + "type": "uint32", + "enumStrings": "Fixedwing,Multicopter,VTOL,Rover,Sub", + "enumValues": "1,2,19,10,12", + "defaultValue": 1 +}, +{ + "name": "OfflineEditingCruiseSpeed", + "shortDescription": "Offline editing cruise speed", + "longDescription": "This value defines the cruising speed for forward flight vehicles for use in calculating mission duration when not connected to a vehicle.", + "type": "double", + "defaultValue": 16.0, + "min": 1.0, + "units": "m/s", + "decimalPlaces": 2 +}, +{ + "name": "OfflineEditingHoverSpeed", + "shortDescription": "Offline editing hover speed", + "longDescription": "This value defines the cruising speed for multi-rotor vehicles for use in calculating mission duration when not connected to a vehicle.", + "type": "double", + "defaultValue": 4.0, + "min": 1.0, + "units": "m/s", + "decimalPlaces": 2 +}, +{ + "name": "batteryPercentRemainingAnnounce", + "shortDescription": "Announce battery remaining percent", + "longDescription": "QGroundControl will announce the remaining battery percent when it falls below the specified percentage.", + "type": "uint32", + "defaultValue": 30, + "units": "%", + "min": 0, + "max": 100 +} +] diff --git a/src/Vehicle/BatteryFact.json b/src/Vehicle/BatteryFact.json index 3c3b86133..b915bc4b2 100644 --- a/src/Vehicle/BatteryFact.json +++ b/src/Vehicle/BatteryFact.json @@ -1,47 +1,43 @@ +[ { - "version": 1, - - "properties": [ - { - "name": "voltage", - "shortDescription": "Voltage", - "type": "double", - "decimalPlaces": 2, - "units": "v" - }, - { - "name": "percentRemaining", - "shortDescription": "Percent", - "type": "int32", - "decimalPlaces": 0, - "units": "%" - }, - { - "name": "mahConsumed", - "shortDescription": "Consumed", - "type": "int32", - "decimalPlaces": 0, - "units": "mAh" - }, - { - "name": "current", - "shortDescription": "Current", - "type": "int32", - "decimalPlaces": 0, - "units": "mA" - }, - { - "name": "temperature", - "shortDescription": "Temperature", - "type": "int32", - "decimalPlaces": 2, - "units": "C" - }, - { - "name": "cellCount", - "shortDescription": "Cell Count", - "type": "int32", - "decimalPlaces": 0 - } - ] + "name": "voltage", + "shortDescription": "Voltage", + "type": "double", + "decimalPlaces": 2, + "units": "v" +}, +{ + "name": "percentRemaining", + "shortDescription": "Percent", + "type": "int32", + "decimalPlaces": 0, + "units": "%" +}, +{ + "name": "mahConsumed", + "shortDescription": "Consumed", + "type": "int32", + "decimalPlaces": 0, + "units": "mAh" +}, +{ + "name": "current", + "shortDescription": "Current", + "type": "int32", + "decimalPlaces": 0, + "units": "mA" +}, +{ + "name": "temperature", + "shortDescription": "Temperature", + "type": "int32", + "decimalPlaces": 2, + "units": "C" +}, +{ + "name": "cellCount", + "shortDescription": "Cell Count", + "type": "int32", + "decimalPlaces": 0 } +] diff --git a/src/Vehicle/GPSFact.json b/src/Vehicle/GPSFact.json index a8b2cb5bf..938e3dd37 100644 --- a/src/Vehicle/GPSFact.json +++ b/src/Vehicle/GPSFact.json @@ -1,39 +1,35 @@ +[ { - "version": 1, - - "properties": [ - { - "name": "hdop", - "shortDescription": "HDOP", - "type": "double", - "decimalPlaces": 1 - }, - { - "name": "vdop", - "shortDescription": "VDOP", - "type": "double", - "decimalPlaces": 1 - }, - { - "name": "courseOverGround", - "shortDescription": "Course Over Ground", - "type": "double", - "decimalPlaces": 1, - "units": "deg" - }, - { - "name": "lock", - "shortDescription": "GPS Lock", - "type": "uint32", - "enumStrings": "None,None,2D Lock,3D Lock,3D DGPS Lock,3D RTK GPS Lock (float),3D RTK GPS Lock (fixed)", - "enumValues": "0,1,2,3,4,5,6", - "decimalPlaces": 0 - }, - { - "name": "count", - "shortDescription": "Sat Count", - "type": "double", - "decimalPlaces": 0 - } - ] + "name": "hdop", + "shortDescription": "HDOP", + "type": "double", + "decimalPlaces": 1 +}, +{ + "name": "vdop", + "shortDescription": "VDOP", + "type": "double", + "decimalPlaces": 1 +}, +{ + "name": "courseOverGround", + "shortDescription": "Course Over Ground", + "type": "double", + "decimalPlaces": 1, + "units": "deg" +}, +{ + "name": "lock", + "shortDescription": "GPS Lock", + "type": "uint32", + "enumStrings": "None,None,2D Lock,3D Lock,3D DGPS Lock,3D RTK GPS Lock (float),3D RTK GPS Lock (fixed)", + "enumValues": "0,1,2,3,4,5,6", + "decimalPlaces": 0 +}, +{ + "name": "count", + "shortDescription": "Sat Count", + "type": "double", + "decimalPlaces": 0 } +] diff --git a/src/Vehicle/VehicleFact.json b/src/Vehicle/VehicleFact.json index d9053665d..308b54ba2 100644 --- a/src/Vehicle/VehicleFact.json +++ b/src/Vehicle/VehicleFact.json @@ -1,62 +1,58 @@ +[ { - "version": 1, - - "properties": [ - { - "name": "roll", - "shortDescription": "Roll", - "type": "double", - "decimalPlaces": 1, - "units": "deg" - }, - { - "name": "pitch", - "shortDescription": "Pitch", - "type": "double", - "decimalPlaces": 1, - "units": "deg" - }, - { - "name": "heading", - "shortDescription": "Heading", - "type": "double", - "decimalPlaces": 0, - "units": "deg" - }, - { - "name": "groundSpeed", - "shortDescription": "Ground Speed", - "type": "double", - "decimalPlaces": 1, - "units": "m/s" - }, - { - "name": "airSpeed", - "shortDescription": "Air Speed", - "type": "double", - "decimalPlaces": 1, - "units": "m/s" - }, - { - "name": "climbRate", - "shortDescription": "Climb Rate", - "type": "double", - "decimalPlaces": 1, - "units": "m/s" - }, - { - "name": "altitudeRelative", - "shortDescription": "Altitude-rel", - "type": "double", - "decimalPlaces": 1, - "units": "m" - }, - { - "name": "altitudeAMSL", - "shortDescription": "Altitude", - "type": "double", - "decimalPlaces": 1, - "units": "m" - } - ] + "name": "roll", + "shortDescription": "Roll", + "type": "double", + "decimalPlaces": 1, + "units": "deg" +}, +{ + "name": "pitch", + "shortDescription": "Pitch", + "type": "double", + "decimalPlaces": 1, + "units": "deg" +}, +{ + "name": "heading", + "shortDescription": "Heading", + "type": "double", + "decimalPlaces": 0, + "units": "deg" +}, +{ + "name": "groundSpeed", + "shortDescription": "Ground Speed", + "type": "double", + "decimalPlaces": 1, + "units": "m/s" +}, +{ + "name": "airSpeed", + "shortDescription": "Air Speed", + "type": "double", + "decimalPlaces": 1, + "units": "m/s" +}, +{ + "name": "climbRate", + "shortDescription": "Climb Rate", + "type": "double", + "decimalPlaces": 1, + "units": "m/s" +}, +{ + "name": "altitudeRelative", + "shortDescription": "Altitude-rel", + "type": "double", + "decimalPlaces": 1, + "units": "m" +}, +{ + "name": "altitudeAMSL", + "shortDescription": "Altitude", + "type": "double", + "decimalPlaces": 1, + "units": "m" } +] diff --git a/src/Vehicle/VibrationFact.json b/src/Vehicle/VibrationFact.json index c7185584a..e56b5ea5c 100644 --- a/src/Vehicle/VibrationFact.json +++ b/src/Vehicle/VibrationFact.json @@ -1,39 +1,35 @@ +[ { - "version": 1, - - "properties": [ - { - "name": "xAxis", - "shortDescription": "Vibe xAxis", - "type": "double", - "decimalPlaces": 1 - }, - { - "name": "yAxis", - "shortDescription": "Vibe yAxis", - "type": "double", - "decimalPlaces": 1 - }, - { - "name": "zAxis", - "shortDescription": "Vibe zAxis", - "type": "double", - "decimalPlaces": 1 - }, - { - "name": "clipCount1", - "shortDescription": "Clip Count (1)", - "type": "uint32" - }, - { - "name": "clipCount2", - "shortDescription": "Clip Count (2)", - "type": "uint32" - }, - { - "name": "clipCount3", - "shortDescription": "Clip Count (3)", - "type": "uint32" - } - ] + "name": "xAxis", + "shortDescription": "Vibe xAxis", + "type": "double", + "decimalPlaces": 1 +}, +{ + "name": "yAxis", + "shortDescription": "Vibe yAxis", + "type": "double", + "decimalPlaces": 1 +}, +{ + "name": "zAxis", + "shortDescription": "Vibe zAxis", + "type": "double", + "decimalPlaces": 1 +}, +{ + "name": "clipCount1", + "shortDescription": "Clip Count (1)", + "type": "uint32" +}, +{ + "name": "clipCount2", + "shortDescription": "Clip Count (2)", + "type": "uint32" +}, +{ + "name": "clipCount3", + "shortDescription": "Clip Count (3)", + "type": "uint32" } +] diff --git a/src/Vehicle/WindFact.json b/src/Vehicle/WindFact.json index d9cec3de7..ce2029406 100644 --- a/src/Vehicle/WindFact.json +++ b/src/Vehicle/WindFact.json @@ -1,27 +1,24 @@ +[ { - "version": 1, - - "properties": [ - { - "name": "direction", - "shortDescription": "Wind Direction", - "type": "double", - "decimalPlaces": 1, - "units": "deg" - }, - { - "name": "speed", - "shortDescription": "Wind Spd", - "type": "double", - "decimalPlaces": 1, - "units": "m/s" - }, - { - "name": "verticalSpeed", - "shortDescription": "Wind Spd (vert)", - "type": "double", - "decimalPlaces": 1, - "units": "m/s" - } - ] + "name": "direction", + "shortDescription": "Wind Direction", + "type": "double", + "decimalPlaces": 1, + "units": "deg" +}, +{ + "name": "speed", + "shortDescription": "Wind Spd", + "type": "double", + "decimalPlaces": 1, + "units": "m/s" +}, +{ + "name": "verticalSpeed", + "shortDescription": "Wind Spd (vert)", + "type": "double", + "decimalPlaces": 1, + "units": "m/s" } +] + diff --git a/src/ui/preferences/GeneralSettings.qml b/src/ui/preferences/GeneralSettings.qml index e04ce20e7..893c57262 100644 --- a/src/ui/preferences/GeneralSettings.qml +++ b/src/ui/preferences/GeneralSettings.qml @@ -408,7 +408,7 @@ QGCView { spacing: ScreenTools.defaultFontPixelWidth QGCLabel { anchors.baseline: paletteCombo.baseline - text: qsTr("Style:") + text: qsTr("UI Style:") width: _labelWidth } QGCComboBox { -- 2.22.0