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 aftertimeout
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
-