sys: enhance trickle docu
This commit is contained in:
parent
b7eecca93c
commit
1a967ab23a
@ -12,10 +12,15 @@
|
|||||||
/**
|
/**
|
||||||
* @defgroup sys_trickle Trickle Timer
|
* @defgroup sys_trickle Trickle Timer
|
||||||
* @ingroup sys
|
* @ingroup sys
|
||||||
* @{
|
|
||||||
* @file
|
|
||||||
* @brief Implementation of a generic Trickle Algorithm (RFC 6206)
|
* @brief Implementation of a generic Trickle Algorithm (RFC 6206)
|
||||||
*
|
*
|
||||||
|
* @see https://tools.ietf.org/html/rfc6206
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Trickle timer interface definition
|
||||||
|
*
|
||||||
* @author Eric Engel <eric.engel@fu-berlin.de>
|
* @author Eric Engel <eric.engel@fu-berlin.de>
|
||||||
* @author Cenk Gündoğan <cenk.guendogan@haw-hamburg.de>
|
* @author Cenk Gündoğan <cenk.guendogan@haw-hamburg.de>
|
||||||
*/
|
*/
|
||||||
@ -31,29 +36,31 @@
|
|||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief a generic callback function with arguments that is called by
|
* @brief Trickle callback function with arguments
|
||||||
* trickle periodically
|
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void (*func)(void *); /**< callback function pointer */
|
void (*func)(void *); /**< callback function pointer */
|
||||||
void *args; /**< callback function arguments */
|
void *args; /**< callback function arguments */
|
||||||
} trickle_callback_t;
|
} trickle_callback_t;
|
||||||
|
|
||||||
/** @brief all state variables for a trickle timer */
|
/**
|
||||||
|
* @brief all state variables of a trickle timer
|
||||||
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t k; /**< redundancy constant */
|
uint8_t k; /**< redundancy constant */
|
||||||
uint8_t Imax; /**< maximum interval size, described as doublings */
|
uint8_t Imax; /**< maximum interval size,
|
||||||
|
described as of Imin doublings */
|
||||||
uint16_t c; /**< counter */
|
uint16_t c; /**< counter */
|
||||||
uint32_t Imin; /**< minimum interval size */
|
uint32_t Imin; /**< minimum interval size */
|
||||||
uint32_t I; /**< current interval size */
|
uint32_t I; /**< current interval size */
|
||||||
uint32_t t; /**< time within the current interval */
|
uint32_t t; /**< time within the current interval */
|
||||||
kernel_pid_t pid; /**< pid of trickles target thread */
|
kernel_pid_t pid; /**< pid of trickles target thread */
|
||||||
trickle_callback_t callback; /**< the callback function and parameter that trickle is calling
|
trickle_callback_t callback; /**< callback function and parameter that
|
||||||
after each interval */
|
trickle calls after each interval */
|
||||||
msg_t msg; /**< the msg_t to use for intervals */
|
msg_t msg; /**< the msg_t to use for intervals */
|
||||||
uint64_t msg_time; /**< interval in ms */
|
uint64_t msg_time; /**< interval in ms */
|
||||||
xtimer_t msg_timer; /**< xtimer to send a msg_t to the target thread
|
xtimer_t msg_timer; /**< xtimer to send a msg_t to the target
|
||||||
for a new interval */
|
thread for a new interval */
|
||||||
} trickle_t;
|
} trickle_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -106,7 +113,7 @@ void trickle_increment_counter(trickle_t *trickle);
|
|||||||
void trickle_interval(trickle_t *trickle);
|
void trickle_interval(trickle_t *trickle);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief is called after the callback interval is over and calls the callback function
|
* @brief is called after the interval is over and executes callback function
|
||||||
*
|
*
|
||||||
* @param[in] trickle trickle timer
|
* @param[in] trickle trickle timer
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user