Event timers provides a way to generate timed events.
An event timer will post an event to the process that set the timer when the event timer expires.
An event timer is declared as a struct
etimer
and all access to the event timer is made by a pointer to the declared event timer.
Data Structures | |
struct | etimer |
A timer. More... | |
Files | |
file | etimer.c |
Event timer library implementation. | |
file | etimer.h |
Event timer header file. | |
Functions | |
static void | add_timer (struct etimer *timer) |
PROCESS (etimer_process,"Event timer") | |
PROCESS_NAME (etimer_process) | |
PROCESS_THREAD (etimer_process, ev, data) | |
static void | update_time (void) |
Variables | |
static clock_time_t | next_expiration |
static struct etimer * | timerlist |
Functions called from application programs | |
void | etimer_set (struct etimer *et, clock_time_t interval) |
Set an event timer. More... | |
void | etimer_reset (struct etimer *et) |
Reset an event timer with the same interval as was previously set. More... | |
void | etimer_restart (struct etimer *et) |
Restart an event timer from the current point in time. More... | |
void | etimer_adjust (struct etimer *et, int td) |
Adjust the expiration time for an event timer. More... | |
int | etimer_expired (struct etimer *et) |
Check if an event timer has expired. More... | |
clock_time_t | etimer_expiration_time (struct etimer *et) |
Get the expiration time for the event timer. More... | |
clock_time_t | etimer_start_time (struct etimer *et) |
Get the start time for the event timer. More... | |
void | etimer_stop (struct etimer *et) |
Stop a pending event timer. More... | |
Functions called from timer interrupts, by the system | |
void | etimer_request_poll (void) |
Make the event timer aware that the clock has changed. More... | |
int | etimer_pending (void) |
Check if there are any non-expired event timers. More... | |
clock_time_t | etimer_next_expiration_time (void) |
Get next event timer expiration time. More... | |
|
static |
References etimer_request_poll(), next, NULL, p, PROCESS_CURRENT, PROCESS_NONE, timer, timerlist, and update_time().
Referenced by etimer_reset(), etimer_restart(), and etimer_set().
void etimer_adjust | ( | struct etimer * | et, |
int | td | ||
) |
Adjust the expiration time for an event timer.
et | A pointer to the event timer. |
td | The time difference to adjust the expiration time with. This function is used to adjust the time the event timer will expire. It can be used to synchronize periodic timers without the need to restart the timer or change the timer interval. \note This function should only be used for small adjustments. For large adjustments use etimer_set() instead. \note A periodic timer will drift unless the etimer_reset() function is used. |
References timer::start, timer, and update_time().
clock_time_t etimer_expiration_time | ( | struct etimer * | et | ) |
Get the expiration time for the event timer.
et | A pointer to the event timer |
This function returns the expiration time for an event timer.
References timer::interval, timer::start, and timer.
Referenced by schedule_dao().
CCIF int etimer_expired | ( | struct etimer * | et | ) |
Check if an event timer has expired.
et | A pointer to the event timer |
This function tests if an event timer has expired and returns true or false depending on its status.
References p, and PROCESS_NONE.
Referenced by ctimer_expired(), eventhandler(), handle_dao_timer(), PROCESS_THREAD(), schedule_dao(), start_periodic_tcp_timer(), and while().
clock_time_t etimer_next_expiration_time | ( | void | ) |
Get next event timer expiration time.
This functions returns next expiration time of all pending event timers.
References etimer_pending(), and next_expiration.
int etimer_pending | ( | void | ) |
Check if there are any non-expired event timers.
This function checks if there are any active event timers that have not expired.
References NULL.
Referenced by _TC3_Handler(), clock_irq_callback(), and etimer_next_expiration_time().
void etimer_request_poll | ( | void | ) |
Make the event timer aware that the clock has changed.
This function is used to inform the event timer module that the system clock has been updated. Typically, this function would be called from the timer interrupt handler when the clock has ticked.
References etimer_process, and process_poll().
Referenced by _TC3_Handler(), add_timer(), clock_irq_callback(), and PROCESS_THREAD().
CCIF void etimer_reset | ( | struct etimer * | et | ) |
Reset an event timer with the same interval as was previously set.
et | A pointer to the event timer. This function resets the event timer with the same interval that was given to the event timer with the etimer_set() function. The start point of the interval is the exact time that the event timer last expired. Therefore, this function will cause the timer to be stable over time, unlike the etimer_restart() function. |
References add_timer(), timer, and timer_reset().
Referenced by ctimer_reset(), PROCESS_THREAD(), and uip_ds6_periodic().
void etimer_restart | ( | struct etimer * | et | ) |
Restart an event timer from the current point in time.
et | A pointer to the event timer. This function restarts the event timer with the same interval that was given to the etimer_set() function. The event timer will start at the current time. \note A periodic timer will drift if this function is used to reset it. For periodic timers, use the etimer_reset() function instead. |
References add_timer(), timer, and timer_restart().
Referenced by ctimer_restart(), eventhandler(), PROCESS_THREAD(), and start_periodic_tcp_timer().
CCIF void etimer_set | ( | struct etimer * | et, |
clock_time_t | interval | ||
) |
Set an event timer.
et | A pointer to the event timer |
interval | The interval before the timer expires. This function is used to set an event timer for a time sometime in the future. When the event timer expires, the event PROCESS_EVENT_TIMER will be posted to the process that called the etimer_set() function. |
References add_timer(), timer, and timer_set().
Referenced by ctimer_set(), PROCESS_THREAD(), servreg_hack_register(), start_timeout_timer(), uip_ds6_init(), uip_ds6_send_rs(), and while().
clock_time_t etimer_start_time | ( | struct etimer * | et | ) |
Get the start time for the event timer.
et | A pointer to the event timer |
This function returns the start time (when the timer was last set) for an event timer.
References timer::start, and timer.
void etimer_stop | ( | struct etimer * | et | ) |
Stop a pending event timer.
et | A pointer to the pending event timer. This function stops an event timer that has previously been set with etimer_set() or etimer_reset(). After this function has been called, the event timer will not emit any event when it expires. |
References next, NULL, p, PROCESS_NONE, and update_time().
Referenced by ctimer_stop(), removesocket(), and uip_ds6_send_rs().
PROCESS | ( | etimer_process | , |
"Event timer" | |||
) |
PROCESS_NAME | ( | etimer_process | ) |
PROCESS_THREAD | ( | etimer_process | , |
ev | , | ||
data | |||
) |
|
static |
References clock_time(), timer::interval, next, next_expiration, NULL, timer::start, timer, and timerlist.
Referenced by add_timer(), etimer_adjust(), etimer_stop(), and PROCESS_THREAD().
|
static |
Referenced by etimer_next_expiration_time(), and update_time().
|
static |
Referenced by add_timer(), PROCESS_THREAD(), and update_time().