126 QString
group()
const {
return _group; }
128 QVariant
rawMax()
const {
return _rawMax; }
131 QVariant
rawMin()
const {
return _rawMin; }
138 QString
name()
const {
return _name; }
139 QString
label()
const {
return _label; }
178 void setBitmaskInfo(
const QStringList &strings,
const QVariantList &values);
179 void setEnumInfo(
const QStringList &strings,
const QVariantList &values);
219 bool clampValue(
const QVariant &cookedValue, QVariant &typedValue)
const;
235 static constexpr const char *
kDefaultCategory = QT_TRANSLATE_NOOP(
"FactMetaData",
"Other");
236 static constexpr const char *
kDefaultGroup = QT_TRANSLATE_NOOP(
"FactMetaData",
"Misc");
240 QVariant _minForType()
const {
return minForType(_type); };
241 QVariant _maxForType()
const {
return maxForType(_type); };
243 void _setAppSettingsTranslators();
247 void clamp(QVariant& variantValue)
const {
248 if (
cookedMin().value<T>() > variantValue.value<T>()) {
250 }
else if(variantValue.value<T>() >
cookedMax().value<T>()) {
256 bool isInCookedLimit(
const QVariant &variantValue)
const {
257 return ((
cookedMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <=
cookedMax().value<T>()));
261 bool isInRawLimit(
const QVariant &variantValue)
const {
262 return ((
rawMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <=
rawMax().value<T>()));
265 bool isInRawMinLimit(
const QVariant &variantValue)
const;
266 bool isInRawMaxLimit(
const QVariant &variantValue)
const;
268 static bool _parseEnum(
const QString&
name,
const QJsonObject &jsonObject,
const DefineMap_t &defineMap, QStringList &rgDescriptions, QStringList &rgValues, QString &
errorString);
269 static bool _parseValuesArray(
const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<double> &rgValues, QString &
errorString);
270 static bool _parseBitmaskArray(
const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<int> &rgValues, QString &
errorString);
273 static QVariant _defaultTranslator(
const QVariant &from) {
return from; }
274 static QVariant _degreesToRadians(
const QVariant °rees);
275 static QVariant _radiansToDegrees(
const QVariant &radians);
276 static QVariant _centiDegreesToDegrees(
const QVariant ¢iDegrees);
277 static QVariant _degreesToCentiDegrees(
const QVariant °rees);
278 static QVariant _centiCelsiusToCelsius(
const QVariant ¢iCelsius);
279 static QVariant _celsiusToCentiCelsius(
const QVariant &celsius);
280 static QVariant _userGimbalDegreesToMavlinkGimbalDegrees(
const QVariant &userGimbalDegrees);
281 static QVariant _mavlinkGimbalDegreesToUserGimbalDegrees(
const QVariant &mavlinkGimbalDegrees);
282 static QVariant _metersToFeet(
const QVariant &meters);
283 static QVariant _feetToMeters(
const QVariant &feet);
284 static QVariant _squareMetersToSquareKilometers(
const QVariant &squareMeters);
285 static QVariant _squareKilometersToSquareMeters(
const QVariant &squareKilometers);
286 static QVariant _squareMetersToHectares(
const QVariant &squareMeters);
287 static QVariant _hectaresToSquareMeters(
const QVariant &hectares);
288 static QVariant _squareMetersToSquareFeet(
const QVariant &squareMeters);
289 static QVariant _squareFeetToSquareMeters(
const QVariant &squareFeet);
290 static QVariant _squareMetersToAcres(
const QVariant &squareMeters);
291 static QVariant _acresToSquareMeters(
const QVariant &acres);
292 static QVariant _squareMetersToSquareMiles(
const QVariant &squareMeters);
293 static QVariant _squareMilesToSquareMeters(
const QVariant &squareMiles);
294 static QVariant _metersPerSecondToMilesPerHour(
const QVariant &metersPerSecond);
295 static QVariant _milesPerHourToMetersPerSecond(
const QVariant &milesPerHour);
296 static QVariant _metersPerSecondToKilometersPerHour(
const QVariant &metersPerSecond);
297 static QVariant _kilometersPerHourToMetersPerSecond(
const QVariant &kilometersPerHour);
298 static QVariant _metersPerSecondToKnots(
const QVariant &metersPerSecond);
299 static QVariant _knotsToMetersPerSecond(
const QVariant &knots);
300 static QVariant _percentToNorm(
const QVariant &percent);
301 static QVariant _normToPercent(
const QVariant &normalized);
302 static QVariant _centimetersToInches(
const QVariant ¢imeters);
303 static QVariant _inchesToCentimeters(
const QVariant &inches);
304 static QVariant _celsiusToFarenheit(
const QVariant &celsius);
305 static QVariant _farenheitToCelsius(
const QVariant &farenheit);
306 static QVariant _kilogramsToGrams(
const QVariant &kg);
307 static QVariant _ouncesToGrams(
const QVariant &oz);
308 static QVariant _poundsToGrams(
const QVariant &lbs);
309 static QVariant _gramsToKilograms(
const QVariant &g);
310 static QVariant _gramsToOunces(
const QVariant &g);
311 static QVariant _gramsToPunds(
const QVariant &g);
314 UnitHorizontalDistance = 0,
315 UnitVerticalDistance,
322 struct AppSettingsTranslation_s {
324 const char *cookedUnits =
nullptr;
325 UnitTypes unitType = UnitHorizontalDistance;
326 uint32_t unitOption = 0;
331 static const AppSettingsTranslation_s *_findAppSettingsUnitsTranslation(
const QString &
rawUnits, UnitTypes
type);
333 static void _loadJsonDefines(
const QJsonObject &jsonDefinesObject, QMap<QString, QString> &defineMap);
337 QVariant _rawDefaultValue = 0;
338 bool _defaultValueAvailable =
false;
339 QStringList _bitmaskStrings;
340 QVariantList _bitmaskValues;
341 QStringList _enumStrings;
342 QVariantList _enumValues;
345 QString _longDescription;
346 QVariant _rawMax = _maxForType();
347 QVariant _rawMin = _minForType();
348 QVariant _rawUserMin;
349 QVariant _rawUserMax;
352 QString _shortDescription;
354 QString _cookedUnits;
355 Translator _rawTranslator = _defaultTranslator;
356 Translator _cookedTranslator = _defaultTranslator;
357 bool _vehicleRebootRequired =
false;
358 bool _qgcRebootRequired =
false;
359 double _rawIncrement = std::numeric_limits<double>::quiet_NaN();
360 bool _hasControl =
true;
361 bool _readOnly =
false;
362 bool _writeOnly =
false;
363 bool _volatile =
false;
367 static constexpr struct UnitConsts_s {
368 static constexpr const qreal secondsPerHour = 3600.0;
369 static constexpr const qreal knotsToKPH = 1.852;
370 static constexpr const qreal milesToMeters = 1609.344;
371 static constexpr const qreal feetToMeters = 0.3048;
372 static constexpr const qreal inchesToCentimeters = 2.54;
373 static constexpr const qreal ouncesToGrams = 28.3495;
374 static constexpr const qreal poundsToGrams = 453.592;
375 static constexpr const qreal acresToSquareMeters = 4046.86;
376 static constexpr const qreal squareMetersToAcres = 0.000247105;
377 static constexpr const qreal feetToSquareMeters = 0.0929;
378 static constexpr const qreal squareMetersToSquareFeet = 10.7639;
379 static constexpr const qreal squareMetersToSquareMiles = 3.86102e-7;
380 static constexpr const qreal squareMilesToSquareMeters = 2589988.11;
383 struct BuiltInTranslation_s {
385 const char *cookedUnits;
390 static const BuiltInTranslation_s _rgBuiltInTranslations[];
391 static const AppSettingsTranslation_s _rgAppSettingsTranslations[];
393 static constexpr const char *_jsonMetaDataDefinesName =
"QGC.MetaData.Defines";
394 static constexpr const char *_jsonMetaDataFactsName =
"QGC.MetaData.Facts";
395 static constexpr const char *_enumStringsJsonKey =
"enumStrings";
396 static constexpr const char *_enumValuesJsonKey =
"enumValues";
399 static constexpr const char *_enumValuesArrayJsonKey =
"values";
400 static constexpr const char *_enumBitmaskArrayJsonKey =
"bitmask";
401 static constexpr const char *_enumValuesArrayValueJsonKey =
"value";
402 static constexpr const char *_enumValuesArrayDescriptionJsonKey =
"description";
403 static constexpr const char *_enumBitmaskArrayIndexJsonKey =
"index";
404 static constexpr const char *_enumBitmaskArrayDescriptionJsonKey =
"description";
406 static constexpr const char *_rgKnownTypeStrings[] = {
423 static constexpr const ValueType_t _rgKnownValueTypes[] = {
440 static constexpr const char *_decimalPlacesJsonKey =
"decimalPlaces";
441 static constexpr const char *_nameJsonKey =
"name";
442 static constexpr const char *_labelJsonKey =
"label";
443 static constexpr const char *_typeJsonKey =
"type";
444 static constexpr const char *_shortDescriptionJsonKey =
"shortDesc";
445 static constexpr const char *_longDescriptionJsonKey =
"longDesc";
446 static constexpr const char *_unitsJsonKey =
"units";
447 static constexpr const char *_defaultValueJsonKey =
"default";
448 static constexpr const char *_mobileDefaultValueJsonKey =
"mobileDefault";
449 static constexpr const char *_minJsonKey =
"min";
450 static constexpr const char *_maxJsonKey =
"max";
451 static constexpr const char *_userMinJsonKey =
"userMin";
452 static constexpr const char *_userMaxJsonKey =
"userMax";
453 static constexpr const char *_incrementJsonKey =
"increment";
454 static constexpr const char *_hasControlJsonKey =
"control";
455 static constexpr const char *_qgcRebootRequiredJsonKey =
"qgcRebootRequired";
456 static constexpr const char *_rebootRequiredJsonKey =
"rebootRequired";
457 static constexpr const char *_categoryJsonKey =
"category";
458 static constexpr const char *_groupJsonKey =
"group";
459 static constexpr const char *_volatileJsonKey =
"volatile";
460 static constexpr const char *_readOnlyJsonKey =
"readOnly";