132 QString
group()
const {
return _group; }
134 QVariant
rawMax()
const {
return _rawMax; }
137 QVariant
rawMin()
const {
return _rawMin; }
144 QString
name()
const {
return _name; }
145 QString
label()
const {
return _label; }
184 void setBitmaskInfo(
const QStringList &strings,
const QVariantList &values);
185 void setEnumInfo(
const QStringList &strings,
const QVariantList &values);
225 bool clampValue(
const QVariant &cookedValue, QVariant &typedValue)
const;
241 static constexpr const char *
kDefaultCategory = QT_TRANSLATE_NOOP(
"FactMetaData",
"Other");
242 static constexpr const char *
kDefaultGroup = QT_TRANSLATE_NOOP(
"FactMetaData",
"Misc");
246 QVariant _minForType()
const {
return minForType(_type); };
247 QVariant _maxForType()
const {
return maxForType(_type); };
249 void _setAppSettingsTranslators();
253 void clamp(QVariant& variantValue)
const {
254 if (
cookedMin().value<T>() > variantValue.value<T>()) {
256 }
else if(variantValue.value<T>() >
cookedMax().value<T>()) {
262 bool isInCookedLimit(
const QVariant &variantValue)
const {
263 return ((
cookedMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <=
cookedMax().value<T>()));
267 bool isInRawLimit(
const QVariant &variantValue)
const {
268 return ((
rawMin().value<T>() <= variantValue.value<T>()) && (variantValue.value<T>() <=
rawMax().value<T>()));
271 bool isInRawMinLimit(
const QVariant &variantValue)
const;
272 bool isInRawMaxLimit(
const QVariant &variantValue)
const;
274 static bool _parseEnum(
const QString&
name,
const QJsonObject &jsonObject,
const DefineMap_t &defineMap, QStringList &rgDescriptions, QStringList &rgValues, QString &
errorString);
275 static bool _parseValuesArray(
const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<double> &rgValues, QString &
errorString);
276 static bool _parseBitmaskArray(
const QJsonObject &jsonObject, QStringList &rgDescriptions, QList<int> &rgValues, QString &
errorString);
279 static QVariant _defaultTranslator(
const QVariant &from) {
return from; }
280 static QVariant _degreesToRadians(
const QVariant °rees);
281 static QVariant _radiansToDegrees(
const QVariant &radians);
282 static QVariant _centiDegreesToDegrees(
const QVariant ¢iDegrees);
283 static QVariant _degreesToCentiDegrees(
const QVariant °rees);
284 static QVariant _centiCelsiusToCelsius(
const QVariant ¢iCelsius);
285 static QVariant _celsiusToCentiCelsius(
const QVariant &celsius);
286 static QVariant _userGimbalDegreesToMavlinkGimbalDegrees(
const QVariant &userGimbalDegrees);
287 static QVariant _mavlinkGimbalDegreesToUserGimbalDegrees(
const QVariant &mavlinkGimbalDegrees);
288 static QVariant _metersToFeet(
const QVariant &meters);
289 static QVariant _feetToMeters(
const QVariant &feet);
290 static QVariant _squareMetersToSquareKilometers(
const QVariant &squareMeters);
291 static QVariant _squareKilometersToSquareMeters(
const QVariant &squareKilometers);
292 static QVariant _squareMetersToHectares(
const QVariant &squareMeters);
293 static QVariant _hectaresToSquareMeters(
const QVariant &hectares);
294 static QVariant _squareMetersToSquareFeet(
const QVariant &squareMeters);
295 static QVariant _squareFeetToSquareMeters(
const QVariant &squareFeet);
296 static QVariant _squareMetersToAcres(
const QVariant &squareMeters);
297 static QVariant _acresToSquareMeters(
const QVariant &acres);
298 static QVariant _squareMetersToSquareMiles(
const QVariant &squareMeters);
299 static QVariant _squareMilesToSquareMeters(
const QVariant &squareMiles);
300 static QVariant _metersPerSecondToMilesPerHour(
const QVariant &metersPerSecond);
301 static QVariant _milesPerHourToMetersPerSecond(
const QVariant &milesPerHour);
302 static QVariant _metersPerSecondToKilometersPerHour(
const QVariant &metersPerSecond);
303 static QVariant _kilometersPerHourToMetersPerSecond(
const QVariant &kilometersPerHour);
304 static QVariant _metersPerSecondToKnots(
const QVariant &metersPerSecond);
305 static QVariant _knotsToMetersPerSecond(
const QVariant &knots);
306 static QVariant _percentToNorm(
const QVariant &percent);
307 static QVariant _normToPercent(
const QVariant &normalized);
308 static QVariant _centimetersToInches(
const QVariant ¢imeters);
309 static QVariant _inchesToCentimeters(
const QVariant &inches);
310 static QVariant _celsiusToFarenheit(
const QVariant &celsius);
311 static QVariant _farenheitToCelsius(
const QVariant &farenheit);
312 static QVariant _kilogramsToGrams(
const QVariant &kg);
313 static QVariant _ouncesToGrams(
const QVariant &oz);
314 static QVariant _poundsToGrams(
const QVariant &lbs);
315 static QVariant _gramsToKilograms(
const QVariant &g);
316 static QVariant _gramsToOunces(
const QVariant &g);
317 static QVariant _gramsToPunds(
const QVariant &g);
320 UnitHorizontalDistance = 0,
321 UnitVerticalDistance,
328 struct AppSettingsTranslation_s {
330 const char *cookedUnits =
nullptr;
331 UnitTypes unitType = UnitHorizontalDistance;
332 uint32_t unitOption = 0;
337 static const AppSettingsTranslation_s *_findAppSettingsUnitsTranslation(
const QString &
rawUnits, UnitTypes
type);
339 static void _loadJsonDefines(
const QJsonObject &jsonDefinesObject, QMap<QString, QString> &defineMap);
343 int _maxStringLength = 0;
344 QVariant _rawDefaultValue = 0;
345 bool _defaultValueAvailable =
false;
346 QStringList _bitmaskStrings;
347 QVariantList _bitmaskValues;
348 QStringList _enumStrings;
349 QVariantList _enumValues;
352 QString _longDescription;
353 QVariant _rawMax = _maxForType();
354 QVariant _rawMin = _minForType();
355 QVariant _rawUserMin;
356 QVariant _rawUserMax;
359 QString _shortDescription;
361 QString _cookedUnits;
362 Translator _rawTranslator = _defaultTranslator;
363 Translator _cookedTranslator = _defaultTranslator;
364 bool _vehicleRebootRequired =
false;
365 bool _qgcRebootRequired =
false;
366 double _rawIncrement = std::numeric_limits<double>::quiet_NaN();
367 bool _hasControl =
true;
368 bool _readOnly =
false;
369 bool _writeOnly =
false;
370 bool _volatile =
false;
374 static constexpr struct UnitConsts_s {
375 static constexpr const qreal secondsPerHour = 3600.0;
376 static constexpr const qreal knotsToKPH = 1.852;
377 static constexpr const qreal milesToMeters = 1609.344;
378 static constexpr const qreal feetToMeters = 0.3048;
379 static constexpr const qreal inchesToCentimeters = 2.54;
380 static constexpr const qreal ouncesToGrams = 28.3495;
381 static constexpr const qreal poundsToGrams = 453.592;
382 static constexpr const qreal acresToSquareMeters = 4046.86;
383 static constexpr const qreal squareMetersToAcres = 0.000247105;
384 static constexpr const qreal feetToSquareMeters = 0.0929;
385 static constexpr const qreal squareMetersToSquareFeet = 10.7639;
386 static constexpr const qreal squareMetersToSquareMiles = 3.86102e-7;
387 static constexpr const qreal squareMilesToSquareMeters = 2589988.11;
390 struct BuiltInTranslation_s {
392 const char *cookedUnits;
397 static const BuiltInTranslation_s _rgBuiltInTranslations[];
398 static const AppSettingsTranslation_s _rgAppSettingsTranslations[];
400 static constexpr const char *_jsonMetaDataDefinesName =
"QGC.MetaData.Defines";
401 static constexpr const char *_jsonMetaDataFactsName =
"QGC.MetaData.Facts";
402 static constexpr const char *_enumStringsJsonKey =
"enumStrings";
403 static constexpr const char *_enumValuesJsonKey =
"enumValues";
406 static constexpr const char *_enumValuesArrayJsonKey =
"values";
407 static constexpr const char *_enumBitmaskArrayJsonKey =
"bitmask";
408 static constexpr const char *_enumValuesArrayValueJsonKey =
"value";
409 static constexpr const char *_enumValuesArrayDescriptionJsonKey =
"description";
410 static constexpr const char *_enumBitmaskArrayIndexJsonKey =
"index";
411 static constexpr const char *_enumBitmaskArrayDescriptionJsonKey =
"description";
413 static constexpr const char *_rgKnownTypeStrings[] = {
430 static constexpr const ValueType_t _rgKnownValueTypes[] = {
447 static constexpr const char *_decimalPlacesJsonKey =
"decimalPlaces";
448 static constexpr const char *_maxStringLengthJsonKey =
"maxStringLength";
449 static constexpr const char *_commentJsonKey =
"comment";
450 static constexpr const char *_keywordsJsonKey =
"keywords";
451 static constexpr const char *_nameJsonKey =
"name";
452 static constexpr const char *_labelJsonKey =
"label";
453 static constexpr const char *_typeJsonKey =
"type";
454 static constexpr const char *_shortDescriptionJsonKey =
"shortDesc";
455 static constexpr const char *_longDescriptionJsonKey =
"longDesc";
456 static constexpr const char *_unitsJsonKey =
"units";
457 static constexpr const char *_defaultValueJsonKey =
"default";
458 static constexpr const char *_mobileDefaultValueJsonKey =
"mobileDefault";
459 static constexpr const char *_minJsonKey =
"min";
460 static constexpr const char *_maxJsonKey =
"max";
461 static constexpr const char *_userMinJsonKey =
"userMin";
462 static constexpr const char *_userMaxJsonKey =
"userMax";
463 static constexpr const char *_incrementJsonKey =
"increment";
464 static constexpr const char *_hasControlJsonKey =
"control";
465 static constexpr const char *_qgcRebootRequiredJsonKey =
"qgcRebootRequired";
466 static constexpr const char *_rebootRequiredJsonKey =
"rebootRequired";
467 static constexpr const char *_categoryJsonKey =
"category";
468 static constexpr const char *_groupJsonKey =
"group";
469 static constexpr const char *_volatileJsonKey =
"volatile";
470 static constexpr const char *_readOnlyJsonKey =
"readOnly";