/** * CES Target Timer * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLTE, 2016-04-14 */ #include "targettimer.h" #include TargetTimer::TargetTimer(int participantId, int targetParticipantId, int preWarningInterval, int timeToEffectInterval) { m_participantId = participantId; m_targetParticipantId = targetParticipantId; m_preWarningInterval = preWarningInterval; m_timeToEffectInterval = timeToEffectInterval; timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(MyTimerSlot())); // msec } void TargetTimer::startTimer() { qDebug() << "TargetTimer::startTimer"; if (timer->isActive()) return; if (m_timerState == NOT_ACTIVE) { timer->setSingleShot(true); timer->start(m_preWarningInterval); m_timerState = TIMER1_ACTIVE; } } void TargetTimer::stopTimer() { qDebug() << "TargetTimer::stopTimer"; timer->stop(); } void TargetTimer::MyTimerSlot() { qDebug() << "TimerSlot m_participantId=" << m_participantId; if (m_timerState == TIMER1_ACTIVE) { qDebug() << "m_timerState == TIMER1_ACTIVE"; emit preWarningTimeout(m_participantId, m_targetParticipantId); timer->setSingleShot(true); timer->start(m_timeToEffectInterval - m_preWarningInterval); m_timerState = TIMER2_ACTIVE; } else if (m_timerState == TIMER2_ACTIVE) { qDebug() << "m_timerState == TIMER2_ACTIVE"; emit timeToEffectTimeout(m_participantId, m_targetParticipantId); m_timerState = BOTH_EXPIRED; } }