Files
UvosSmartHomeInterface/src/sensors/sensor.cpp
2022-04-15 13:28:47 +02:00

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);
}
}
}