lena_pi/LenaPi/EnergySaver.cpp
2021-08-28 14:08:02 +02:00

51 lines
869 B
C++

#include "EnergySaver.h"
#include <QDebug>
#include <QProcess>
#include <iostream>
void EnergySaver::init(int interval)
{
EnergySaver* saver = instance();
saver->initTimer(interval*1000);
saver->restartTimer();
}
EnergySaver *EnergySaver::instance()
{
static EnergySaver* inst;
if (inst == nullptr)
{
inst = new EnergySaver();
}
return inst;
}
void EnergySaver::restartTimer()
{
if(mTimer.isActive()){
mTimer.stop();
}
mTimer.start();
}
void EnergySaver::initTimer(int interval)
{
connect(&mTimer, &QTimer::timeout, this, &EnergySaver::onTimeout);
mTimer.setInterval(interval);
mTimer.setSingleShot(true);
}
void EnergySaver::onTimeout()
{
std::cout << "Shutting down.";
#ifndef _DEBUG
QProcess p;
p.start("/usr/local/sbin/do_shutdown.sh");
p.waitForFinished();
#endif
}