Move the sensor values to a own class SensorValue
This commit is contained in:
parent
61331e7da3
commit
c41a84b582
5 changed files with 108 additions and 49 deletions
|
@ -1,12 +1,15 @@
|
||||||
SET(REQUIRE_PLUGIN_QML TRUE PARENT_SCOPE)
|
SET(REQUIRE_PLUGIN_QML TRUE PARENT_SCOPE)
|
||||||
SET(REQUIRE_PLUGIN_SETTINGS TRUE PARENT_SCOPE)
|
SET(REQUIRE_PLUGIN_SETTINGS TRUE PARENT_SCOPE)
|
||||||
|
|
||||||
|
SET(QT_USE_QTDECLARATIVE TRUE)
|
||||||
|
|
||||||
SET( Plugin_NAME "sensors" )
|
SET( Plugin_NAME "sensors" )
|
||||||
|
|
||||||
|
|
||||||
SET( Plugin_SRCS
|
SET( Plugin_SRCS
|
||||||
sensor.cpp
|
sensor.cpp
|
||||||
sensorsplugin.cpp
|
sensorsplugin.cpp
|
||||||
|
sensorvalue.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
SET( Plugin_HDRS
|
SET( Plugin_HDRS
|
||||||
|
@ -15,6 +18,7 @@ SET( Plugin_HDRS
|
||||||
|
|
||||||
SET( Plugin_MOC_HDRS
|
SET( Plugin_MOC_HDRS
|
||||||
sensor.h
|
sensor.h
|
||||||
|
sensorvalue.h
|
||||||
)
|
)
|
||||||
|
|
||||||
SET( Plugin_PATH "com.telldus.sensors" )
|
SET( Plugin_PATH "com.telldus.sensors" )
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
#include "sensorvalue.h"
|
||||||
|
#include <telldus-core.h>
|
||||||
|
|
||||||
class Sensor::PrivateData {
|
class Sensor::PrivateData {
|
||||||
public:
|
public:
|
||||||
bool hasTemperature, hasHumidity;
|
bool hasTemperature, hasHumidity;
|
||||||
int id;
|
int id;
|
||||||
QString model, name, protocol, temperature, humidity;
|
QString model, name, protocol;
|
||||||
QDateTime lastUpdated;
|
QDateTime lastUpdated;
|
||||||
|
QMap<int, SensorValue *> values;
|
||||||
};
|
};
|
||||||
|
|
||||||
Sensor::Sensor(QObject *parent) :
|
Sensor::Sensor(QObject *parent) :
|
||||||
QObject(parent)
|
QObject(parent)
|
||||||
{
|
{
|
||||||
d = new PrivateData;
|
d = new PrivateData;
|
||||||
d->hasTemperature = false;
|
|
||||||
d->hasHumidity = false;
|
|
||||||
d->id = 0;
|
d->id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,19 +22,8 @@ Sensor::~Sensor() {
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Sensor::humidity() const {
|
|
||||||
return d->humidity;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sensor::setHumidity(const QString &humidity) {
|
|
||||||
d->humidity = humidity;
|
|
||||||
d->hasHumidity = true;
|
|
||||||
emit humidityChanged();
|
|
||||||
emit hasHumidityChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Sensor::hasHumidity() const {
|
bool Sensor::hasHumidity() const {
|
||||||
return d->hasHumidity;
|
return d->values.contains(TELLSTICK_HUMIDITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Sensor::id() const {
|
int Sensor::id() const {
|
||||||
|
@ -45,15 +35,6 @@ void Sensor::setId(int id) {
|
||||||
emit idChanged();
|
emit idChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime Sensor::lastUpdated() const {
|
|
||||||
return d->lastUpdated;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sensor::setLastUpdated(const QDateTime &lastUpdated) {
|
|
||||||
d->lastUpdated = lastUpdated;
|
|
||||||
emit lastUpdatedChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString Sensor::model() const {
|
QString Sensor::model() const {
|
||||||
return d->model;
|
return d->model;
|
||||||
}
|
}
|
||||||
|
@ -81,17 +62,28 @@ void Sensor::setProtocol(const QString &protocol) {
|
||||||
emit protocolChanged();
|
emit protocolChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Sensor::temperature() const {
|
|
||||||
return d->temperature;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sensor::setTemperature(const QString &temperature) {
|
|
||||||
d->temperature = temperature;
|
|
||||||
d->hasTemperature = true;
|
|
||||||
emit temperatureChanged();
|
|
||||||
emit hasTemperatureChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Sensor::hasTemperature() const {
|
bool Sensor::hasTemperature() const {
|
||||||
return d->hasTemperature;
|
return d->values.contains(TELLSTICK_TEMPERATURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
SensorValue * Sensor::sensorValue(int type) {
|
||||||
|
return (d->values.contains(type) ? d->values[type] : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sensor::setValue(int type, const QString &value, const QDateTime ×tamp) {
|
||||||
|
SensorValue *sensorValue;
|
||||||
|
if (d->values.contains(type)) {
|
||||||
|
sensorValue = d->values[type];
|
||||||
|
} else {
|
||||||
|
sensorValue = new SensorValue(this);
|
||||||
|
d->values[type] = sensorValue;
|
||||||
|
}
|
||||||
|
sensorValue->setValue(value);
|
||||||
|
sensorValue->setLastUpdated(timestamp);
|
||||||
|
|
||||||
|
if (type == TELLSTICK_TEMPERATURE) {
|
||||||
|
emit hasTemperatureChanged();
|
||||||
|
} else if (type == TELLSTICK_HUMIDITY) {
|
||||||
|
emit hasHumidityChanged();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,32 +6,26 @@
|
||||||
#include <QVariantMap>
|
#include <QVariantMap>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
|
||||||
|
class SensorValue;
|
||||||
|
|
||||||
class Sensor : public QObject
|
class Sensor : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(bool hasHumidity READ hasHumidity NOTIFY hasHumidityChanged)
|
Q_PROPERTY(bool hasHumidity READ hasHumidity NOTIFY hasHumidityChanged)
|
||||||
Q_PROPERTY(bool hasTemperature READ hasTemperature NOTIFY hasTemperatureChanged)
|
Q_PROPERTY(bool hasTemperature READ hasTemperature NOTIFY hasTemperatureChanged)
|
||||||
Q_PROPERTY(QString humidity READ humidity WRITE setHumidity NOTIFY humidityChanged)
|
|
||||||
Q_PROPERTY(int id READ id WRITE setId NOTIFY idChanged)
|
Q_PROPERTY(int id READ id WRITE setId NOTIFY idChanged)
|
||||||
Q_PROPERTY(QDateTime lastUpdated READ lastUpdated WRITE setLastUpdated NOTIFY lastUpdatedChanged)
|
|
||||||
Q_PROPERTY(QString model READ model WRITE setModel NOTIFY modelChanged)
|
Q_PROPERTY(QString model READ model WRITE setModel NOTIFY modelChanged)
|
||||||
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
|
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
|
||||||
Q_PROPERTY(QString protocol READ protocol WRITE setProtocol NOTIFY protocolChanged)
|
Q_PROPERTY(QString protocol READ protocol WRITE setProtocol NOTIFY protocolChanged)
|
||||||
Q_PROPERTY(QString temperature READ temperature WRITE setTemperature NOTIFY temperatureChanged)
|
|
||||||
public:
|
public:
|
||||||
explicit Sensor(QObject *parent = 0);
|
explicit Sensor(QObject *parent = 0);
|
||||||
~Sensor();
|
~Sensor();
|
||||||
|
|
||||||
QString humidity() const;
|
|
||||||
void setHumidity(const QString &humidity);
|
|
||||||
bool hasHumidity() const;
|
bool hasHumidity() const;
|
||||||
|
|
||||||
int id() const;
|
int id() const;
|
||||||
void setId(int id);
|
void setId(int id);
|
||||||
|
|
||||||
QDateTime lastUpdated() const;
|
|
||||||
void setLastUpdated(const QDateTime &lastUpdated);
|
|
||||||
|
|
||||||
QString model() const;
|
QString model() const;
|
||||||
void setModel(const QString &model);
|
void setModel(const QString &model);
|
||||||
|
|
||||||
|
@ -41,20 +35,18 @@ public:
|
||||||
QString protocol() const;
|
QString protocol() const;
|
||||||
void setProtocol(const QString &protocol);
|
void setProtocol(const QString &protocol);
|
||||||
|
|
||||||
QString temperature() const;
|
|
||||||
void setTemperature(const QString &temperature);
|
|
||||||
bool hasTemperature() const;
|
bool hasTemperature() const;
|
||||||
|
|
||||||
|
Q_INVOKABLE SensorValue *sensorValue(int type);
|
||||||
|
Q_INVOKABLE void setValue(int type, const QString &value, const QDateTime ×tamp);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void idChanged();
|
void idChanged();
|
||||||
void hasHumidityChanged();
|
void hasHumidityChanged();
|
||||||
void hasTemperatureChanged();
|
void hasTemperatureChanged();
|
||||||
void humidityChanged();
|
|
||||||
void lastUpdatedChanged();
|
|
||||||
void modelChanged();
|
void modelChanged();
|
||||||
void nameChanged();
|
void nameChanged();
|
||||||
void protocolChanged();
|
void protocolChanged();
|
||||||
void temperatureChanged();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class PrivateData;
|
class PrivateData;
|
||||||
|
|
35
telldus-gui/Plugins/Sensors/sensorvalue.cpp
Normal file
35
telldus-gui/Plugins/Sensors/sensorvalue.cpp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#include "sensorvalue.h"
|
||||||
|
|
||||||
|
class SensorValue::PrivateData {
|
||||||
|
public:
|
||||||
|
QString value;
|
||||||
|
QDateTime lastUpdated;
|
||||||
|
};
|
||||||
|
|
||||||
|
SensorValue::SensorValue(QObject *parent) :
|
||||||
|
QObject(parent)
|
||||||
|
{
|
||||||
|
d = new PrivateData;
|
||||||
|
}
|
||||||
|
|
||||||
|
SensorValue::~SensorValue() {
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDateTime SensorValue::lastUpdated() const {
|
||||||
|
return d->lastUpdated;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SensorValue::setLastUpdated(const QDateTime &lastUpdated) {
|
||||||
|
d->lastUpdated = lastUpdated;
|
||||||
|
emit lastUpdatedChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SensorValue::value() const {
|
||||||
|
return d->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SensorValue::setValue(const QString &value) {
|
||||||
|
d->value = value;
|
||||||
|
emit valueChanged();
|
||||||
|
}
|
36
telldus-gui/Plugins/Sensors/sensorvalue.h
Normal file
36
telldus-gui/Plugins/Sensors/sensorvalue.h
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#ifndef SENSORVALUE_H
|
||||||
|
#define SENSORVALUE_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QMetaType>
|
||||||
|
#include <QVariantMap>
|
||||||
|
#include <QDateTime>
|
||||||
|
|
||||||
|
class SensorValue : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QDateTime lastUpdated READ lastUpdated WRITE setLastUpdated NOTIFY lastUpdatedChanged)
|
||||||
|
Q_PROPERTY(QString value READ value WRITE setValue NOTIFY valueChanged)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit SensorValue(QObject *parent = 0);
|
||||||
|
~SensorValue();
|
||||||
|
|
||||||
|
QDateTime lastUpdated() const;
|
||||||
|
void setLastUpdated(const QDateTime &lastUpdated);
|
||||||
|
|
||||||
|
QString value() const;
|
||||||
|
void setValue(const QString &model);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void lastUpdatedChanged();
|
||||||
|
void valueChanged();
|
||||||
|
|
||||||
|
private:
|
||||||
|
class PrivateData;
|
||||||
|
PrivateData *d;
|
||||||
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_METATYPE(SensorValue*)
|
||||||
|
|
||||||
|
#endif // SENSORVALUE_H
|
Loading…
Add table
Add a link
Reference in a new issue