2021-05-18 23:17:23 +00:00
|
|
|
#include <Arduino.h>
|
|
|
|
|
2021-03-12 19:01:47 +00:00
|
|
|
#include "Timer.h"
|
|
|
|
|
2021-03-27 21:02:43 +00:00
|
|
|
Timer::Timer() : _timeout_ms(0), _nextTimeout(0) {
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|
|
|
|
|
2021-03-27 21:02:43 +00:00
|
|
|
void Timer::setTimeout(const uint32_t timeout_ms) {
|
|
|
|
_timeout_ms = timeout_ms;
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|
|
|
|
|
2021-05-18 23:17:23 +00:00
|
|
|
uint32_t Timer::getTriggerTimeInSec() const {
|
2021-03-27 21:02:43 +00:00
|
|
|
return (_nextTimeout - millis()) / 1000;
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|
|
|
|
|
2021-03-12 22:21:45 +00:00
|
|
|
bool Timer::isActive() const {
|
2021-03-27 21:02:43 +00:00
|
|
|
return _nextTimeout != 0;
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|
|
|
|
|
2021-03-12 22:21:45 +00:00
|
|
|
void Timer::reset() {
|
2021-03-27 21:02:43 +00:00
|
|
|
_nextTimeout = 0;
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|
|
|
|
|
2021-03-12 22:21:45 +00:00
|
|
|
bool Timer::check() {
|
2021-03-27 21:02:43 +00:00
|
|
|
return millis() > _nextTimeout;
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|
|
|
|
|
2021-03-12 22:21:45 +00:00
|
|
|
void Timer::start() {
|
2021-03-27 21:02:43 +00:00
|
|
|
_nextTimeout = millis() + _timeout_ms;
|
2021-03-12 19:01:47 +00:00
|
|
|
}
|