Files
UvosSmartHomeInterface/alarmtime.cpp
2017-11-02 20:17:05 +01:00

57 lines
1.0 KiB
C++

#include "alarmtime.h"
AlarmTime::AlarmTime(const QTime time, QObject *parent) : QObject(parent), time_(time)
{
connect(&timer, SIGNAL(timeout()), this, SLOT(doTick()));
timer.setInterval(500);
}
AlarmTime::~AlarmTime()
{
abort();
}
void AlarmTime::run()
{
abort();
loop.reset(new QEventLoop);
timer.start();
qDebug()<<"Start Alarm Time Manager\n";
loop->exec();
}
void AlarmTime::abort()
{
timer.stop();
if (!loop.isNull()){
loop->quit();
}
qDebug()<<"Stop Alarm Time Manager\n";
}
void AlarmTime::doTick()
{
if(time_.hour() == QTime::currentTime().hour() && time_.minute() == QTime::currentTime().minute() && triggerd_==false )
{
qDebug()<<"Trigger\n";
triggerd_=true;
trigger();
}
else if( time_.hour() != QTime::currentTime().hour() ) triggerd_=false;
}
void AlarmTime::changeTime(QTime time)
{
time_=time;
qDebug()<<"Time Changed\n";
}
void AlarmTime::runOrAbort(int state)
{
state ? run() : abort();
}