Add support for the water level interface
This commit is contained in:
parent
00f084c8b9
commit
44fe52f9d0
@ -847,9 +847,7 @@ ParamType *ThingManager::unpackParamType(const QVariantMap ¶mTypeMap, QObjec
|
||||
paramType->setAllowedValues(paramTypeMap.value("allowedValues").toList());
|
||||
paramType->setInputType(stringToInputType(paramTypeMap.value("inputType").toString()));
|
||||
paramType->setReadOnly(paramTypeMap.value("readOnly").toBool());
|
||||
QPair<Types::Unit, QString> unit = stringToUnit(paramTypeMap.value("unit").toString());
|
||||
paramType->setUnit(unit.first);
|
||||
paramType->setUnitString(unit.second);
|
||||
paramType->setUnit(stringToUnit(paramTypeMap.value("unit").toString()));
|
||||
return paramType;
|
||||
}
|
||||
|
||||
@ -865,10 +863,7 @@ StateType *ThingManager::unpackStateType(const QVariantMap &stateTypeMap, QObjec
|
||||
stateType->setType(stateTypeMap.value("type").toString());
|
||||
stateType->setMinValue(stateTypeMap.value("minValue"));
|
||||
stateType->setMaxValue(stateTypeMap.value("maxValue"));
|
||||
|
||||
QPair<Types::Unit, QString> unit = stringToUnit(stateTypeMap.value("unit").toString());
|
||||
stateType->setUnit(unit.first);
|
||||
stateType->setUnitString(unit.second);
|
||||
stateType->setUnit(stringToUnit(stateTypeMap.value("unit").toString()));
|
||||
|
||||
QMetaEnum metaEnum = QMetaEnum::fromType<Types::IOType>();
|
||||
Types::IOType ioType = static_cast<Types::IOType>(metaEnum.keyToValue(stateTypeMap.value("ioType").toByteArray()));
|
||||
@ -1035,117 +1030,121 @@ ThingClass::SetupMethod ThingManager::stringToSetupMethod(const QString &setupMe
|
||||
return ThingClass::SetupMethodJustAdd;
|
||||
}
|
||||
|
||||
QPair<Types::Unit, QString> ThingManager::stringToUnit(const QString &unitString)
|
||||
Types::Unit ThingManager::stringToUnit(const QString &unitString)
|
||||
{
|
||||
if (unitString == "UnitNone") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitNone, "");
|
||||
} else if (unitString == "UnitSeconds") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitSeconds, "s");
|
||||
} else if (unitString == "UnitMinutes") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMinutes, "m");
|
||||
} else if (unitString == "UnitHours") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitHours, "h");
|
||||
} else if (unitString == "UnitUnixTime") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitUnixTime, "datetime");
|
||||
} else if (unitString == "UnitMeterPerSecond") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMeterPerSecond, "m/s");
|
||||
} else if (unitString == "UnitKiloMeterPerHour") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitKiloMeterPerHour, "km/h");
|
||||
} else if (unitString == "UnitDegree") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitDegree, "°");
|
||||
} else if (unitString == "UnitRadiant") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitRadiant, "rad");
|
||||
} else if (unitString == "UnitDegreeCelsius") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitDegreeCelsius, "°C");
|
||||
} else if (unitString == "UnitDegreeKelvin") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitDegreeKelvin, "°K");
|
||||
} else if (unitString == "UnitMired") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMired, "mir");
|
||||
} else if (unitString == "UnitMilliBar") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMilliBar, "mbar");
|
||||
} else if (unitString == "UnitBar") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitBar, "bar");
|
||||
} else if (unitString == "UnitPascal") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitPascal, "Pa");
|
||||
} else if (unitString == "UnitHectoPascal") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitHectoPascal, "hPa");
|
||||
} else if (unitString == "UnitAtmosphere") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitAtmosphere, "atm");
|
||||
} else if (unitString == "UnitLumen") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitLumen, "lm");
|
||||
} else if (unitString == "UnitLux") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitLux, "lx");
|
||||
} else if (unitString == "UnitCandela") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitCandela, "cd");
|
||||
} else if (unitString == "UnitMilliMeter") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMilliMeter, "mm");
|
||||
} else if (unitString == "UnitCentiMeter") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitCentiMeter, "cm");
|
||||
} else if (unitString == "UnitMeter") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMeter, "m");
|
||||
} else if (unitString == "UnitKiloMeter") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitKiloMeter, "km");
|
||||
} else if (unitString == "UnitGram") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitGram, "g");
|
||||
} else if (unitString == "UnitKiloGram") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitKiloGram, "kg");
|
||||
} else if (unitString == "UnitDezibel") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitDezibel, "db");
|
||||
} else if (unitString == "UnitBpm") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitBpm, "bpm");
|
||||
} else if (unitString == "UnitKiloByte") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitKiloByte, "kB");
|
||||
} else if (unitString == "UnitMegaByte") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMegaByte, "MB");
|
||||
} else if (unitString == "UnitGigaByte") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitGigaByte, "GB");
|
||||
} else if (unitString == "UnitTeraByte") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitTeraByte, "TB");
|
||||
} else if (unitString == "UnitMilliWatt") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMilliWatt, "mW");
|
||||
} else if (unitString == "UnitWatt") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitWatt, "W");
|
||||
} else if (unitString == "UnitKiloWatt") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitKiloWatt, "kW");
|
||||
} else if (unitString == "UnitKiloWattHour") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitKiloWattHour, "kWh");
|
||||
} else if (unitString == "UnitEuroPerMegaWattHour") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitEuroPerMegaWattHour, "€/MWh");
|
||||
} else if (unitString == "UnitEuroCentPerKiloWattHour") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitEuroCentPerKiloWattHour, "ct/kWh");
|
||||
} else if (unitString == "UnitPercentage") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitPercentage, "%");
|
||||
} else if (unitString == "UnitPartsPerMillion") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitPartsPerMillion, "ppm");
|
||||
} else if (unitString == "UnitEuro") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitEuro, "€");
|
||||
} else if (unitString == "UnitDollar") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitDollar, "$");
|
||||
} else if (unitString == "UnitHerz") { // legacy
|
||||
return QPair<Types::Unit, QString>(Types::UnitHertz, "Hz");
|
||||
} else if (unitString == "UnitHertz") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitHertz, "Hz");
|
||||
} else if (unitString == "UnitAmpere") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitAmpere, "A");
|
||||
} else if (unitString == "UnitMilliAmpere") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMilliAmpere, "mA");
|
||||
} else if (unitString == "UnitVolt") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitVolt, "V");
|
||||
} else if (unitString == "UnitMilliVolt") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMilliVolt, "mV");
|
||||
} else if (unitString == "UnitVoltAmpere") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitVoltAmpere, "VA");
|
||||
} else if (unitString == "UnitVoltAmpereReactive") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitVoltAmpereReactive, "VAR");
|
||||
} else if (unitString == "UnitAmpereHour") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitAmpereHour, "Ah");
|
||||
} else if (unitString == "UnitMicroSiemensPerCentimeter") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitMicroSiemensPerCentimeter, "µS/cm");
|
||||
} else if (unitString == "UnitDuration") {
|
||||
return QPair<Types::Unit, QString>(Types::UnitDuration, "s");
|
||||
}
|
||||
QMetaEnum metaEnum = QMetaEnum::fromType<Types::Unit>();
|
||||
Types::Unit unit = static_cast<Types::Unit>(metaEnum.keyToValue(unitString.toUtf8()));
|
||||
return unit;
|
||||
|
||||
return QPair<Types::Unit, QString>(Types::UnitNone, "");
|
||||
// if (unitString == "UnitNone") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitNone, "");
|
||||
// } else if (unitString == "UnitSeconds") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitSeconds, "s");
|
||||
// } else if (unitString == "UnitMinutes") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMinutes, "m");
|
||||
// } else if (unitString == "UnitHours") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitHours, "h");
|
||||
// } else if (unitString == "UnitUnixTime") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitUnixTime, "datetime");
|
||||
// } else if (unitString == "UnitMeterPerSecond") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMeterPerSecond, "m/s");
|
||||
// } else if (unitString == "UnitKiloMeterPerHour") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitKiloMeterPerHour, "km/h");
|
||||
// } else if (unitString == "UnitDegree") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitDegree, "°");
|
||||
// } else if (unitString == "UnitRadiant") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitRadiant, "rad");
|
||||
// } else if (unitString == "UnitDegreeCelsius") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitDegreeCelsius, "°C");
|
||||
// } else if (unitString == "UnitDegreeKelvin") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitDegreeKelvin, "°K");
|
||||
// } else if (unitString == "UnitMired") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMired, "mir");
|
||||
// } else if (unitString == "UnitMilliBar") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMilliBar, "mbar");
|
||||
// } else if (unitString == "UnitBar") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitBar, "bar");
|
||||
// } else if (unitString == "UnitPascal") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitPascal, "Pa");
|
||||
// } else if (unitString == "UnitHectoPascal") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitHectoPascal, "hPa");
|
||||
// } else if (unitString == "UnitAtmosphere") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitAtmosphere, "atm");
|
||||
// } else if (unitString == "UnitLumen") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitLumen, "lm");
|
||||
// } else if (unitString == "UnitLux") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitLux, "lx");
|
||||
// } else if (unitString == "UnitCandela") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitCandela, "cd");
|
||||
// } else if (unitString == "UnitMilliMeter") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMilliMeter, "mm");
|
||||
// } else if (unitString == "UnitCentiMeter") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitCentiMeter, "cm");
|
||||
// } else if (unitString == "UnitMeter") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMeter, "m");
|
||||
// } else if (unitString == "UnitKiloMeter") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitKiloMeter, "km");
|
||||
// } else if (unitString == "UnitGram") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitGram, "g");
|
||||
// } else if (unitString == "UnitKiloGram") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitKiloGram, "kg");
|
||||
// } else if (unitString == "UnitDezibel") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitDezibel, "db");
|
||||
// } else if (unitString == "UnitBpm") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitBpm, "bpm");
|
||||
// } else if (unitString == "UnitKiloByte") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitKiloByte, "kB");
|
||||
// } else if (unitString == "UnitMegaByte") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMegaByte, "MB");
|
||||
// } else if (unitString == "UnitGigaByte") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitGigaByte, "GB");
|
||||
// } else if (unitString == "UnitTeraByte") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitTeraByte, "TB");
|
||||
// } else if (unitString == "UnitMilliWatt") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMilliWatt, "mW");
|
||||
// } else if (unitString == "UnitWatt") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitWatt, "W");
|
||||
// } else if (unitString == "UnitKiloWatt") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitKiloWatt, "kW");
|
||||
// } else if (unitString == "UnitKiloWattHour") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitKiloWattHour, "kWh");
|
||||
// } else if (unitString == "UnitEuroPerMegaWattHour") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitEuroPerMegaWattHour, "€/MWh");
|
||||
// } else if (unitString == "UnitEuroCentPerKiloWattHour") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitEuroCentPerKiloWattHour, "ct/kWh");
|
||||
// } else if (unitString == "UnitPercentage") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitPercentage, "%");
|
||||
// } else if (unitString == "UnitPartsPerMillion") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitPartsPerMillion, "ppm");
|
||||
// } else if (unitString == "UnitEuro") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitEuro, "€");
|
||||
// } else if (unitString == "UnitDollar") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitDollar, "$");
|
||||
// } else if (unitString == "UnitHerz") { // legacy
|
||||
// return QPair<Types::Unit, QString>(Types::UnitHertz, "Hz");
|
||||
// } else if (unitString == "UnitHertz") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitHertz, "Hz");
|
||||
// } else if (unitString == "UnitAmpere") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitAmpere, "A");
|
||||
// } else if (unitString == "UnitMilliAmpere") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMilliAmpere, "mA");
|
||||
// } else if (unitString == "UnitVolt") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitVolt, "V");
|
||||
// } else if (unitString == "UnitMilliVolt") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMilliVolt, "mV");
|
||||
// } else if (unitString == "UnitVoltAmpere") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitVoltAmpere, "VA");
|
||||
// } else if (unitString == "UnitVoltAmpereReactive") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitVoltAmpereReactive, "VAR");
|
||||
// } else if (unitString == "UnitAmpereHour") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitAmpereHour, "Ah");
|
||||
// } else if (unitString == "UnitMicroSiemensPerCentimeter") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitMicroSiemensPerCentimeter, "µS/cm");
|
||||
// } else if (unitString == "UnitDuration") {
|
||||
// return QPair<Types::Unit, QString>(Types::UnitDuration, "s");
|
||||
// }
|
||||
|
||||
// return QPair<Types::Unit, QString>(Types::UnitNone, "");
|
||||
}
|
||||
|
||||
Types::InputType ThingManager::stringToInputType(const QString &inputTypeString)
|
||||
|
||||
@ -165,7 +165,7 @@ private:
|
||||
|
||||
static Thing::ThingError errorFromString(const QByteArray &thingErrorString);
|
||||
static ThingClass::SetupMethod stringToSetupMethod(const QString &setupMethodString);
|
||||
static QPair<Types::Unit, QString> stringToUnit(const QString &unitString);
|
||||
static Types::Unit stringToUnit(const QString &unitString);
|
||||
static Types::InputType stringToInputType(const QString &inputTypeString);
|
||||
|
||||
private:
|
||||
|
||||
@ -135,16 +135,6 @@ void ParamType::setInputType(const Types::InputType &inputType)
|
||||
m_inputType = inputType;
|
||||
}
|
||||
|
||||
QString ParamType::unitString() const
|
||||
{
|
||||
return m_unitString;
|
||||
}
|
||||
|
||||
void ParamType::setUnitString(const QString &unitString)
|
||||
{
|
||||
m_unitString = unitString;
|
||||
}
|
||||
|
||||
Types::Unit ParamType::unit() const
|
||||
{
|
||||
return m_unit;
|
||||
|
||||
@ -51,7 +51,6 @@ class ParamType : public QObject
|
||||
Q_PROPERTY(QVariant maxValue READ maxValue CONSTANT)
|
||||
Q_PROPERTY(Types::InputType inputType READ inputType CONSTANT)
|
||||
Q_PROPERTY(Types::Unit unit READ unit CONSTANT)
|
||||
Q_PROPERTY(QString unitString READ unitString CONSTANT)
|
||||
Q_PROPERTY(QVariantList allowedValues READ allowedValues CONSTANT)
|
||||
Q_PROPERTY(bool readOnly READ readOnly CONSTANT)
|
||||
|
||||
@ -89,9 +88,6 @@ public:
|
||||
Types::Unit unit() const;
|
||||
void setUnit(const Types::Unit &unit);
|
||||
|
||||
QString unitString() const;
|
||||
void setUnitString(const QString &unitString);
|
||||
|
||||
QVariantList allowedValues() const;
|
||||
void setAllowedValues(const QList<QVariant> allowedValues);
|
||||
|
||||
@ -109,7 +105,6 @@ private:
|
||||
QVariant m_maxValue;
|
||||
Types::InputType m_inputType;
|
||||
Types::Unit m_unit;
|
||||
QString m_unitString;
|
||||
QVariantList m_allowedValues;
|
||||
bool m_readOnly;
|
||||
};
|
||||
|
||||
@ -96,8 +96,6 @@ QVariant ParamTypes::data(const QModelIndex &index, int role) const
|
||||
return paramType->maxValue();
|
||||
} else if (role == InputTypeRole) {
|
||||
return paramType->inputType();
|
||||
} else if (role == UnitStringRole) {
|
||||
return paramType->unitString();
|
||||
} else if (role == AllowedValuesRole) {
|
||||
return paramType->allowedValues();
|
||||
} else if (role == ReadOnlyRole) {
|
||||
@ -134,7 +132,6 @@ QHash<int, QByteArray> ParamTypes::roleNames() const
|
||||
roles[MinValueRole] = "minValue";
|
||||
roles[MaxValueRole] = "maxValue";
|
||||
roles[InputTypeRole] = "inputType";
|
||||
roles[UnitStringRole] = "unitString";
|
||||
roles[AllowedValuesRole] = "allowedValues";
|
||||
roles[ReadOnlyRole] = "readOnly";
|
||||
return roles;
|
||||
|
||||
@ -49,7 +49,6 @@ public:
|
||||
MinValueRole,
|
||||
MaxValueRole,
|
||||
InputTypeRole,
|
||||
UnitStringRole,
|
||||
AllowedValuesRole,
|
||||
ReadOnlyRole
|
||||
};
|
||||
|
||||
@ -120,16 +120,6 @@ void StateType::setUnit(const Types::Unit &unit)
|
||||
m_unit = unit;
|
||||
}
|
||||
|
||||
QString StateType::unitString() const
|
||||
{
|
||||
return m_unitString;
|
||||
}
|
||||
|
||||
void StateType::setUnitString(const QString &unitString)
|
||||
{
|
||||
m_unitString = unitString;
|
||||
}
|
||||
|
||||
QVariant StateType::minValue() const
|
||||
{
|
||||
return m_minValue;
|
||||
|
||||
@ -49,7 +49,6 @@ class StateType : public QObject
|
||||
Q_PROPERTY(QVariantList allowedValues READ allowedValues CONSTANT)
|
||||
Q_PROPERTY(Types::Unit unit READ unit CONSTANT)
|
||||
Q_PROPERTY(Types::IOType ioType READ ioType CONSTANT)
|
||||
Q_PROPERTY(QString unitString READ unitString CONSTANT)
|
||||
Q_PROPERTY(QVariant minValue READ minValue CONSTANT)
|
||||
Q_PROPERTY(QVariant maxValue READ maxValue CONSTANT)
|
||||
|
||||
@ -84,9 +83,6 @@ public:
|
||||
Types::IOType ioType() const;
|
||||
void setIOType(Types::IOType ioType);
|
||||
|
||||
QString unitString() const;
|
||||
void setUnitString(const QString &unitString);
|
||||
|
||||
QVariant minValue() const;
|
||||
void setMinValue(const QVariant &minValue);
|
||||
|
||||
@ -103,7 +99,6 @@ private:
|
||||
QVariantList m_allowedValues;
|
||||
Types::Unit m_unit = Types::UnitNone;
|
||||
Types::IOType m_ioType = Types::IOTypeNone;
|
||||
QString m_unitString;
|
||||
QVariant m_minValue;
|
||||
QVariant m_maxValue;
|
||||
};
|
||||
|
||||
@ -83,8 +83,6 @@ QVariant StateTypes::data(const QModelIndex &index, int role) const
|
||||
return stateType->type();
|
||||
case RoleDefaultValue:
|
||||
return stateType->defaultValue();
|
||||
case RoleUnitString:
|
||||
return stateType->unitString();
|
||||
case RoleUnit:
|
||||
return stateType->unit();
|
||||
case RoleIOType:
|
||||
|
||||
@ -94,6 +94,9 @@ QString Types::toUiUnit(Types::Unit unit) const
|
||||
case Types::UnitBar:
|
||||
uiUnit = Types::UnitPoundsPerSquareInch;
|
||||
break;
|
||||
case Types::UnitLiter:
|
||||
uiUnit = Types::UnitFluidOunce;
|
||||
break;
|
||||
default:
|
||||
uiUnit = unit;
|
||||
}
|
||||
@ -223,6 +226,16 @@ QString Types::toUiUnit(Types::Unit unit) const
|
||||
return "mph";
|
||||
case Types::UnitPoundsPerSquareInch:
|
||||
return "psi";
|
||||
case Types::UnitNewton:
|
||||
return "N";
|
||||
case Types::UnitNewtonMeter:
|
||||
return "Nm";
|
||||
case Types::UnitRpm:
|
||||
return "rpm";
|
||||
case Types::UnitMilligramPerLiter:
|
||||
return "mg/l";
|
||||
case Types::UnitLiter:
|
||||
return "l";
|
||||
}
|
||||
|
||||
return "";
|
||||
@ -254,6 +267,8 @@ QVariant Types::toUiValue(const QVariant &value, Types::Unit unit) const
|
||||
return value.toDouble() * 0.01450377;
|
||||
case Types::UnitBar: // To pounds per square inch (psi)
|
||||
return value.toDouble() * 14.50377;
|
||||
case Types::UnitLiter: // To fl. oz
|
||||
return value.toDouble() * 33.814;
|
||||
default:
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -107,6 +107,11 @@ public:
|
||||
UnitAmpereHour,
|
||||
UnitMicroSiemensPerCentimeter,
|
||||
UnitDuration,
|
||||
UnitNewton,
|
||||
UnitNewtonMeter,
|
||||
UnitRpm,
|
||||
UnitMilligramPerLiter,
|
||||
UnitLiter,
|
||||
|
||||
// Those do not exist in nymea:core at this point, Adding them for easier conversion to imperial
|
||||
UnitDegreeFahrenheit,
|
||||
@ -117,7 +122,8 @@ public:
|
||||
UnitMile,
|
||||
UnitFootPerSecond,
|
||||
UnitMilePerHour,
|
||||
UnitPoundsPerSquareInch
|
||||
UnitPoundsPerSquareInch,
|
||||
UnitFluidOunce
|
||||
};
|
||||
Q_ENUM(Unit)
|
||||
|
||||
|
||||
@ -305,6 +305,8 @@ ApplicationWindow {
|
||||
return Qt.resolvedUrl("images/sensors/windspeed.svg")
|
||||
case "watersensor":
|
||||
return Qt.resolvedUrl("images/sensors/water.svg")
|
||||
case "waterlevelsensor":
|
||||
return Qt.resolvedUrl("images/sensors/water.svg")
|
||||
case "o2sensor":
|
||||
return Qt.resolvedUrl("images/sensors/o2.svg")
|
||||
case "phsensor":
|
||||
|
||||
@ -87,6 +87,7 @@ Item {
|
||||
"windspeedsensor": "blue",
|
||||
"ventilation": "lightblue",
|
||||
"watersensor": "aqua",
|
||||
"waterlevelsensor": "aqua",
|
||||
"phsensor": "green",
|
||||
"o2sensor": "lightblue",
|
||||
"orpsensor": "yellow",
|
||||
|
||||
@ -317,6 +317,7 @@ MainPageTile {
|
||||
ListElement { ifaceName: "closablesensor"; stateName: "closed" }
|
||||
ListElement { ifaceName: "lightsensor"; stateName: "lightIntensity" }
|
||||
ListElement { ifaceName: "watersensor"; stateName: "waterDetected" }
|
||||
ListElement { ifaceName: "waterlevelsensor"; stateName: "waterLevel" }
|
||||
ListElement { ifaceName: "cosensor"; stateName: "co" }
|
||||
ListElement { ifaceName: "co2sensor"; stateName: "co2" }
|
||||
ListElement { ifaceName: "gassensor"; stateName: "gas" }
|
||||
|
||||
@ -81,6 +81,8 @@ MainPageTile {
|
||||
return sensorsComponent;
|
||||
case "cleaningrobot":
|
||||
return buttonComponent;
|
||||
case "ventilation":
|
||||
return ventilationComponent;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -140,6 +142,57 @@ MainPageTile {
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: ventilationComponent
|
||||
RowLayout {
|
||||
property Thing thing: null
|
||||
readonly property State powerState: thing.stateByName("power")
|
||||
readonly property State flowRateState: thing.stateByName("flowRate")
|
||||
|
||||
ThrottledSlider {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins / 2
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
opacity: flowRateState ? 1 : 0
|
||||
enabled: opacity > 0
|
||||
from: 0
|
||||
to: 100
|
||||
value: flowRateState ? flowRateState.value : 0
|
||||
onMoved: {
|
||||
var actionType = thing.thingClass.actionTypes.findByName("flowRate");
|
||||
var params = [];
|
||||
var powerParam = {}
|
||||
powerParam["paramTypeId"] = actionType.paramTypes.get(0).id;
|
||||
powerParam["value"] = value;
|
||||
params.push(powerParam)
|
||||
engine.thingManager.executeAction(thing.id, actionType.id, params);
|
||||
}
|
||||
}
|
||||
|
||||
ItemDelegate {
|
||||
Layout.preferredWidth: Style.iconSize
|
||||
Layout.preferredHeight: width
|
||||
Layout.rightMargin: app.margins / 2
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
padding: 0; topPadding: 0; bottomPadding: 0
|
||||
|
||||
contentItem: ColorIcon {
|
||||
name: "../images/ventilation.svg"
|
||||
color: powerState.value === true ? Style.accentColor : Style.iconColor
|
||||
}
|
||||
onClicked: {
|
||||
var actionType = thing.thingClass.actionTypes.findByName("power");
|
||||
var params = [];
|
||||
var powerParam = {}
|
||||
powerParam["paramTypeId"] = actionType.paramTypes.get(0).id;
|
||||
powerParam["value"] = !powerState.value;
|
||||
params.push(powerParam)
|
||||
engine.thingManager.executeAction(thing.id, actionType.id, params);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: sensorsComponent
|
||||
RowLayout {
|
||||
@ -209,6 +262,15 @@ MainPageTile {
|
||||
if (thing.thingClass.interfaces.indexOf("o2sensor") >= 0) {
|
||||
tmp.push({iface: "o2sensor", state: "o2saturation"})
|
||||
}
|
||||
if (thing.thingClass.interfaces.indexOf("closablesensor") >= 0) {
|
||||
tmp.push({iface: "closablesensor", state: "closed"})
|
||||
}
|
||||
if (thing.thingClass.interfaces.indexOf("watersensor") >= 0) {
|
||||
tmp.push({iface: "watersensor", state: "waterDetected"})
|
||||
}
|
||||
if (thing.thingClass.interfaces.indexOf("waterlevelsensor") >= 0) {
|
||||
tmp.push({iface: "waterlevelsensor", state: "waterLevel"})
|
||||
}
|
||||
|
||||
if (thing.thingClass.interfaces.indexOf("weather") >= 0) {
|
||||
tmp.push({iface: "temperaturesensor", state: "temperature"});
|
||||
|
||||
@ -89,6 +89,7 @@ ThingsListPageBase {
|
||||
ListElement { interfaceName: "heating"; stateName: "power" }
|
||||
ListElement { interfaceName: "thermostat"; stateName: "targetTemperature" }
|
||||
ListElement { interfaceName: "watersensor"; stateName: "waterDetected" }
|
||||
ListElement { interfaceName: "waterlevelsensor"; stateName: "waterLevel" }
|
||||
ListElement { interfaceName: "o2sensor"; stateName: "o2saturation" }
|
||||
ListElement { interfaceName: "phsensor"; stateName: "ph" }
|
||||
ListElement { interfaceName: "orpsensor"; stateName: "orp" }
|
||||
|
||||
@ -56,7 +56,7 @@ ThingPageBase {
|
||||
Repeater {
|
||||
model: ListModel {
|
||||
Component.onCompleted: {
|
||||
var supportedInterfaces = ["temperaturesensor", "humiditysensor", "pressuresensor", "moisturesensor", "lightsensor", "conductivitysensor", "noisesensor", "cosensor", "co2sensor", "gassensor", "presencesensor", "daylightsensor", "closablesensor", "watersensor", "phsensor", "o2sensor", "orpsensor"]
|
||||
var supportedInterfaces = ["temperaturesensor", "humiditysensor", "pressuresensor", "moisturesensor", "lightsensor", "conductivitysensor", "noisesensor", "cosensor", "co2sensor", "gassensor", "presencesensor", "daylightsensor", "closablesensor", "watersensor", "phsensor", "o2sensor", "orpsensor", "waterlevelsensor"]
|
||||
for (var i = 0; i < supportedInterfaces.length; i++) {
|
||||
if (root.thingClass.interfaces.indexOf(supportedInterfaces[i]) >= 0) {
|
||||
append({name: supportedInterfaces[i]});
|
||||
@ -92,6 +92,7 @@ ThingPageBase {
|
||||
"daylightsensor": "daylight",
|
||||
"closablesensor": "closed",
|
||||
"watersensor": "waterDetected",
|
||||
"waterlevelsensor": "waterLevel",
|
||||
"phsensor": "ph",
|
||||
"o2sensor": "o2saturation",
|
||||
"orpsensor": "orp"
|
||||
|
||||
79
nymea-app/ui/images/connections/usb-c.svg
Normal file
79
nymea-app/ui/images/connections/usb-c.svg
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4874"
|
||||
height="96"
|
||||
viewBox="0 0 96 96.000001"
|
||||
width="96"
|
||||
version="1.1"
|
||||
sodipodi:docname="usb-c.svg"
|
||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
|
||||
<defs
|
||||
id="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1464"
|
||||
inkscape:window-height="933"
|
||||
id="namedview8"
|
||||
showgrid="true"
|
||||
inkscape:zoom="7.2916667"
|
||||
inkscape:cx="48"
|
||||
inkscape:cy="47.006967"
|
||||
inkscape:window-x="72"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4874">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid835" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata4879">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<rect
|
||||
id="rect4782"
|
||||
style="color:#000000;fill:none"
|
||||
transform="rotate(90)"
|
||||
height="96"
|
||||
width="96"
|
||||
y="-96"
|
||||
x="-2.7465821e-06" />
|
||||
<rect
|
||||
id="rect4174"
|
||||
style="color:#000000;fill:#808080"
|
||||
height="4"
|
||||
width="32"
|
||||
y="46.005001"
|
||||
x="32" />
|
||||
<rect
|
||||
style="fill:none;stroke:#808080;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect837"
|
||||
width="63.615005"
|
||||
height="20"
|
||||
x="16.192497"
|
||||
y="38"
|
||||
rx="10"
|
||||
ry="10" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
3
nymea-app/ui/images/ethernet-cable.svg
Normal file
3
nymea-app/ui/images/ethernet-cable.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="11" height="33" viewBox="0 0 11 33" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.0907 0V9.16026H7.50284V33H2.59371L2.59368 9.16026H0.00582314V0H10.0907ZM3.00574 5H7.00574V1H3.00574V5Z" fill="#737373"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 277 B |
Reference in New Issue
Block a user