event/timeout.h

Provides functionality to trigger events after timeout.

event_timeout intentionally does’t extend event structures in order to support events that are integrated in larger structs intrusively.

Example:

1
2
3
4
5
6
event_timeout_t event_timeout;

printf("posting timed callback with timeout 1sec\n");
event_timeout_init(&event_timeout, &queue, (event_t*)&event);
event_timeout_set(&event_timeout, 1000000);
[...]

Event Timeout API

void event_timeout_init(event_timeout_t * event_timeout, event_queue_t * queue, event.h::event_t * event)

Initialize timeout event object.

Parameters

event_timeout:event_timeout object to initialize
queue:queue that the timed-out event will be added to
event:event to add to queue after timeout

void event_timeout_set(event_timeout_t * event_timeout, uint32_t timeout)

Set a timeout.

This will make the event as configured in event_timeout be triggered after timeout microseconds.

Note

: the used event_timeout struct must stay valid until after the timeout event has been processed!

Parameters

event_timeout:event_timout context object to use
timeout:timeout in microseconds

void event_timeout_clear(event_timeout_t * event_timeout)

Clear a timeout event.

Calling this function will cancel the timeout by removing its underlying timer. If the timer has already fired before calling this function, the connected event will be put already into the given event queue and this function does not have any effect.

Parameters

event_timeout:event_timeout context object to use

struct event_timeout_t

Timeout Event structure.

xtimer.h::xtimer_t timer

xtimer object used for timeout

event_queue_t * queue

event queue to post event to

event.h::event_t * event

event to post after timeout