Timer
Overview
Functions to check if time expired
// typedefs typedef struct te_timer_t te_timer_t; // structs struct te_timer_t; // global functions te_errno te_timer_start(te_timer_t* timer, unsigned int timeout_s); te_errno te_timer_restart(te_timer_t* timer, unsigned int timeout_s); te_errno te_timer_stop(te_timer_t* timer); te_errno te_timer_expired(te_timer_t* timer); // macros #define TE_TIMER_INIT
Detailed Documentation
Functions to check if time expired
Example of usage
Let’s assume we need to do some routine until certain time has expired
#include "te_timer.h" te_timer_t timer = TE_TIMER_INIT; te_errno rc; CHECK_RC(te_timer_start(&timer, 3)); do { VSLEEP(1, "repeat some routine until the timer expires"); } while ((rc = te_timer_expired(&timer)) == 0); CHECK_RC(te_timer_stop(&timer)); if (rc != TE_ETIMEDOUT) CHECK_RC(rc);
Typedefs
typedef struct te_timer_t te_timer_t
Timer context
Global Functions
te_errno te_timer_start(te_timer_t* timer, unsigned int timeout_s)
Start timer
Parameters:
timer |
Timer handle |
timeout_s |
Timeout for triggering timer |
Returns:
Status code
te_errno te_timer_restart(te_timer_t* timer, unsigned int timeout_s)
Restart already running or expired timer with a new timeout.
Parameters:
timer |
Timer handle. |
timeout_s |
Timeout for triggering timer. |
Returns:
Status code.
te_errno te_timer_stop(te_timer_t* timer)
Stop the timer and free its resources.
Parameters:
timer |
Timer handle. |
Returns:
Status code.
te_errno te_timer_expired(te_timer_t* timer)
Check whether timeout has expired or not.
It does not stop the timer if it expires, so te_timer_stop() should be called to free timer’s resources.
Parameters:
timer |
Timer handle |
0 |
Time has not expired yet |
TE_ETIMEDOUT |
Time has expired |
Others |
Internal error, there is no way to use this timer any more |
Returns:
Status code
Macros
#define TE_TIMER_INIT
On-stack timer context initializer