Files
TowerOptoSifAndSpectral/source/CaptureThread/Scheduler.cpp
DESKTOP-4HD0KC3\ZhangZhuo 1269e520e2 张卓修改没提交的代码
2025-03-10 10:03:01 +08:00

94 lines
1.9 KiB
C++

#include "Scheduler.h"
Scheduler::Scheduler(QObject* parent /*= nullptr*/)
{
m_iFlagIsOnRestart = 0;
m_GrabTimer = new QTimer(this);
connect(m_GrabTimer, &QTimer::timeout, this, &Scheduler::OnTimeCounter);
connect(this, &Scheduler::SignalSelfStart, this, &Scheduler::StartAsPlanned);
}
Scheduler::~Scheduler()
{
if (m_GrabTimer != NULL)
{
m_GrabTimer->stop();
delete m_GrabTimer;
}
}
void Scheduler::SetAcqTimeParams(AcqTimeSettings struAcqTime)
{
m_struAcqTime = struAcqTime;
}
void Scheduler::Preheating()
{
qDebug() << "Start Preheating";
//QThread::msleep(5000);
#ifdef _DEBUG
QThread::msleep(5000);
#else
QThread::msleep(900000);//NEED TO CHANGE BEFOR HAND TO CUSTOMER
#endif
qDebug() << "Preheating Finished";
}
void Scheduler::SelfStart()
{
emit SignalSelfStart();
}
void Scheduler::StartAsPlanned()
{
bool bStopWait = false;
while (!bStopWait)
{
QThread::msleep(10000);
QTime qtTime = QTime::currentTime();
if (m_struAcqTime.qtStartTime <= qtTime && qtTime < m_struAcqTime.qtStopTime)
{
bStopWait = true;
}
}
int iIntervalInMS = m_struAcqTime.qtInterval.hour() * 3600 * 1000 + m_struAcqTime.qtInterval.minute() * 60 * 1000 + m_struAcqTime.qtInterval.second() * 1000;
m_GrabTimer->start(iIntervalInMS);
QThread::msleep(5000);
qDebug() << "it's time to start work.";
emit SignalGrabOnce();
//this->OnTimeCounter();
//emit &QTimer::timeout;
}
int Scheduler::OnTimeCounter()
{
QTime qtTime = QTime::currentTime();
if (m_struAcqTime.qtStartTime <= qtTime && qtTime < m_struAcqTime.qtStopTime)
{
if (m_iFlagIsOnRestart)
{
}
qDebug() << "it's time to work...work work.";
emit SignalGrabOnce();
return 0;
}
else
{
if (!m_iFlagIsOnRestart)
{
m_iFlagIsOnRestart = 1;
}
emit SignalZeroHoldCurrent();
system("gpio write 1 0");//É豸¶Ïµç
qDebug() << "gpio write 1 0......"<<endl;
qDebug() << "Non working time. Idling......";
return 0;
}
}