Contiki 2.6

Callback timer

The ctimer module provides a timer mechanism that calls a specified C function when a ctimer expires. More...

Files

file  ctimer.c
 

Callback timer implementation.


file  ctimer.h
 

Header file for the callback timer.


Functions

void ctimer_init (void)
 Initialize the callback timer library.
void ctimer_set (struct ctimer *c, clock_time_t t, void(*f)(void *), void *ptr)
 Set a callback timer.
void ctimer_reset (struct ctimer *c)
 Reset a callback timer with the same interval as was previously set.
void ctimer_restart (struct ctimer *c)
 Restart a callback timer from the current point in time.
void ctimer_stop (struct ctimer *c)
 Stop a pending callback timer.
int ctimer_expired (struct ctimer *c)
 Check if a callback timer has expired.

Detailed Description

The ctimer module provides a timer mechanism that calls a specified C function when a ctimer expires.


Function Documentation

int ctimer_expired ( struct ctimer *  c)

Check if a callback timer has expired.

Parameters:
cA pointer to the callback timer
Returns:
Non-zero if the timer has expired, zero otherwise.

This function tests if a callback timer has expired and returns true or false depending on its status.

Definition at line 158 of file ctimer.c.

References etimer_expired(), list_head(), and NULL.

void ctimer_init ( void  )

Initialize the callback timer library.

This function initializes the callback timer library and should be called from the system boot up code.

Definition at line 92 of file ctimer.c.

References list_init(), NULL, and process_start().

Referenced by main().

void ctimer_reset ( struct ctimer *  c)

Reset a callback timer with the same interval as was previously set.

Parameters:
cA pointer to the callback timer.

This function resets the callback timer with the same interval that was given to the callback timer with the ctimer_set() function. The start point of the interval is the exact time that the callback timer last expired. Therefore, this function will cause the timer to be stable over time, unlike the ctimer_restart() function.

See also:
ctimer_restart()

Definition at line 120 of file ctimer.c.

References etimer_reset(), list_add(), list_remove(), PROCESS_CONTEXT_BEGIN, and PROCESS_CONTEXT_END.

void ctimer_restart ( struct ctimer *  c)

Restart a callback timer from the current point in time.

Parameters:
cA pointer to the callback timer.

This function restarts the callback timer with the same interval that was given to the ctimer_set() function. The callback 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 ctimer_reset() function instead.
See also:
ctimer_reset()

Definition at line 133 of file ctimer.c.

References etimer_restart(), list_add(), list_remove(), PROCESS_CONTEXT_BEGIN, and PROCESS_CONTEXT_END.

void ctimer_set ( struct ctimer *  c,
clock_time_t  t,
void(*)(void *)  f,
void *  ptr 
)

Set a callback timer.

Parameters:
cA pointer to the callback timer.
tThe interval before the timer expires.
fA function to be called when the timer expires.
ptrAn opaque pointer that will be supplied as an argument to the callback function.

This function is used to set a callback timer for a time sometime in the future. When the callback timer expires, the callback function f will be called with ptr as argument.

Examples:
example-multihop.c.

Definition at line 100 of file ctimer.c.

References etimer_set(), list_add(), list_remove(), PROCESS_CONTEXT_BEGIN, PROCESS_CONTEXT_END, and PROCESS_CURRENT.

Referenced by ipolite_send(), packetqueue_enqueue_packetbuf(), polite_send(), and stbroadcast_set_timer().

void ctimer_stop ( struct ctimer *  c)

Stop a pending callback timer.

Parameters:
cA pointer to the pending callback timer.

This function stops a callback timer that has previously been set with ctimer_set(), ctimer_reset(), or ctimer_restart(). After this function has been called, the callback timer will be expired and will not call the callback function.

Definition at line 146 of file ctimer.c.

References etimer_stop(), list_remove(), and NULL.

Referenced by ipolite_cancel(), ipolite_close(), packetqueue_dequeue(), polite_cancel(), polite_close(), and stbroadcast_cancel().