ESP8266_swiss_army_board/src/app/NonBlockingDelay.cpp

25 lines
578 B
C++

/**
* Author : Anatole SCHRAMM-HENRY
* Created on : 03/04/2022
* Licence : MIT
*
* Dead simple object implementing a non blocking delay using the Arduino framework.
*/
#include "NonBlockingDelay.h"
NonBlockingDelay::NonBlockingDelay(const unsigned long delay, unsigned long tickReference) : _delay(delay), _tickReference(tickReference){}
void NonBlockingDelay::reset()
{
_tickReference = millis();
}
NonBlockingDelay::operator bool()
{
bool isTimeElapsed(millis() - _tickReference > _delay);
if(isTimeElapsed)
reset();
return isTimeElapsed;
}