#include "sensor.h" #include SensorStore globalSensors; SensorStore::SensorStore(QObject *parent): QObject(parent) { sensors_.push_back(Sensor(0,1,0,"Front door")); sensors_.push_back(Sensor(0,0,0,"Bedroom door")); } void SensorStore::sensorGotState(const Sensor& sensor) { bool exsisting = false; for(unsigned i = 0; i < sensors_.size(); ++i) { if(sensor.type == sensors_[i].type && sensor.id == sensors_[i].id) { sensors_[i].updateSeen(); if(sensors_[i].field != sensor.field) { sensors_[i].field = sensor.field; sensorChangedState(sensor); stateChenged(sensors_); } exsisting = true; break; } } if(!exsisting) { sensors_.push_back(sensor); sensorChangedState(sensor); stateChenged(sensors_); } for(unsigned i = 0; i < sensors_.size(); ++i) { if(sensors_[i].type > 0 && sensors_[i].type < 128 && QDateTime::currentDateTime() > sensors_[i].lastSeen.addSecs(1800)) { sensorDeleted(sensors_[i]); stateChenged(sensors_); sensors_.erase(sensors_.begin()+i); } } }