Browse Source

Add typeToString method

QGC4.4
DonLakeFlyer 5 years ago
parent
commit
d2bfb99ac6
  1. 84
      src/FactSystem/FactMetaData.cc
  2. 4
      src/FactSystem/FactMetaData.h

84
src/FactSystem/FactMetaData.cc

@ -84,6 +84,40 @@ const FactMetaData::AppSettingsTranslation_s FactMetaData::_rgAppSettingsTransla @@ -84,6 +84,40 @@ const FactMetaData::AppSettingsTranslation_s FactMetaData::_rgAppSettingsTransla
{ "g", "lbs", FactMetaData::UnitWeight, UnitsSettings::WeightUnitsLbs, FactMetaData::_gramsToPunds, FactMetaData::_poundsToGrams },
};
const char* FactMetaData::_rgKnownTypeStrings[] = {
"Uint8",
"Int8",
"Uint16",
"Int16",
"Uint32",
"Int32",
"Uint64",
"Int64",
"Float",
"Double",
"String",
"Bool",
"ElapsedSeconds",
"Custom",
};
const FactMetaData::ValueType_t FactMetaData::_rgKnownValueTypes[] = {
valueTypeUint8,
valueTypeInt8,
valueTypeUint16,
valueTypeInt16,
valueTypeUint32,
valueTypeInt32,
valueTypeUint64,
valueTypeInt64,
valueTypeFloat,
valueTypeDouble,
valueTypeString,
valueTypeBool,
valueTypeElapsedTimeInSeconds,
valueTypeCustom,
};
const char* FactMetaData::_decimalPlacesJsonKey = "decimalPlaces";
const char* FactMetaData::_nameJsonKey = "name";
const char* FactMetaData::_typeJsonKey = "type";
@ -880,44 +914,11 @@ void FactMetaData::setRawUnits(const QString& rawUnits) @@ -880,44 +914,11 @@ void FactMetaData::setRawUnits(const QString& rawUnits)
FactMetaData::ValueType_t FactMetaData::stringToType(const QString& typeString, bool& unknownType)
{
QStringList knownTypeStrings;
QList<ValueType_t> knownTypes;
unknownType = false;
knownTypeStrings << QStringLiteral("Uint8")
<< QStringLiteral("Int8")
<< QStringLiteral("Uint16")
<< QStringLiteral("Int16")
<< QStringLiteral("Uint32")
<< QStringLiteral("Int32")
<< QStringLiteral("Uint64")
<< QStringLiteral("Int64")
<< QStringLiteral("Float")
<< QStringLiteral("Double")
<< QStringLiteral("String")
<< QStringLiteral("Bool")
<< QStringLiteral("ElapsedSeconds")
<< QStringLiteral("Custom");
knownTypes << valueTypeUint8
<< valueTypeInt8
<< valueTypeUint16
<< valueTypeInt16
<< valueTypeUint32
<< valueTypeInt32
<< valueTypeUint64
<< valueTypeInt64
<< valueTypeFloat
<< valueTypeDouble
<< valueTypeString
<< valueTypeBool
<< valueTypeElapsedTimeInSeconds
<< valueTypeCustom;
for (int i=0; i<knownTypeStrings.count(); i++) {
if (knownTypeStrings[i].compare(typeString, Qt::CaseInsensitive) == 0) {
return knownTypes[i];
for (size_t i=0; i<sizeof(_rgKnownTypeStrings)/sizeof(_rgKnownTypeStrings[0]); i++) {
if (typeString.compare(_rgKnownTypeStrings[i], Qt::CaseInsensitive) == 0) {
return _rgKnownValueTypes[i];
}
}
@ -926,6 +927,17 @@ FactMetaData::ValueType_t FactMetaData::stringToType(const QString& typeString, @@ -926,6 +927,17 @@ FactMetaData::ValueType_t FactMetaData::stringToType(const QString& typeString,
return valueTypeDouble;
}
QString FactMetaData::typeToString(ValueType_t type)
{
for (size_t i=0; i<sizeof(_rgKnownTypeStrings)/sizeof(_rgKnownTypeStrings[0]); i++) {
if (type == _rgKnownValueTypes[i]) {
return _rgKnownTypeStrings[i];
}
}
return QStringLiteral("UnknownType%1").arg(type);
}
size_t FactMetaData::typeToSize(ValueType_t type)
{
switch (type) {

4
src/FactSystem/FactMetaData.h

@ -194,6 +194,7 @@ public: @@ -194,6 +194,7 @@ public:
static const int kUnknownDecimalPlaces = -1; ///< Number of decimal places to specify is not known
static ValueType_t stringToType(const QString& typeString, bool& unknownType);
static QString typeToString(ValueType_t type);
static size_t typeToSize(ValueType_t type);
static const char* qgcFileType;
@ -342,6 +343,9 @@ private: @@ -342,6 +343,9 @@ private:
static const AppSettingsTranslation_s _rgAppSettingsTranslations[];
static const char* _rgKnownTypeStrings[];
static const ValueType_t _rgKnownValueTypes[];
static const char* _nameJsonKey;
static const char* _decimalPlacesJsonKey;
static const char* _typeJsonKey;

Loading…
Cancel
Save