#include "sensor.h" #include #include SensorStore globalSensors; SensorStore::SensorStore(QObject *parent): QObject(parent) { sensors_.push_back(Sensor(Sensor::TYPE_DOOR,1,0,"Front door")); sensors_.push_back(Sensor(Sensor::TYPE_DOOR,0,0,"Bedroom door")); } void SensorStore::store(QJsonObject& json) { QJsonArray sensorsArray; for(const Sensor& sensor : sensors_) { QJsonObject sensorObject; sensor.store(sensorObject); sensorsArray.append(sensorObject); } json["Sensors"] = sensorsArray; } void SensorStore::load(const QJsonObject& json) { knownSensors_.clear(); QJsonArray sensorsArray = json["Sensors"].toArray(); for(const QJsonValue& value : sensorsArray) { knownSensors_.push_back(Sensor(value.toObject())); } } std::vector SensorStore::allGroups() const { std::vector groups; for(const Sensor& sensor : sensors_) { if(!sensor.groupName.isEmpty()) { bool found = false; for(const QString& group : groups) { if(group == sensor.groupName) { found = true; break; } } if(!found) groups.push_back(sensor.groupName); } } return groups; } void SensorStore::sensorGotState(const Sensor& sensor, sensor_update_type_t type) { bool inSensors = false; qDebug()<<"Sensor update for id"< 0 && sensors_[i].type < 128 && QDateTime::currentDateTime() > sensors_[i].lastSeen.addSecs(1800)) { sensorDeleted(sensors_[i]); stateChenged(sensors_); sensors_.erase(sensors_.begin()+i); } } }