50 lines
1.0 KiB
C++
50 lines
1.0 KiB
C++
#include "sensor.h"
|
|
|
|
#include <QDebug>
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
|