1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

sys/trickle: migrate to ZTIMER_MSEC

This commit is contained in:
Hauke Petersen 2021-04-13 14:19:42 +02:00
parent 13eb3f05c5
commit c5d1a34b83
3 changed files with 23 additions and 2 deletions

View File

@ -142,7 +142,9 @@ endif
ifneq (,$(filter trickle,$(USEMODULE)))
USEMODULE += random
USEMODULE += xtimer
ifeq (,$(filter ztimer_msec,$(USEMODULE)))
USEMODULE += xtimer
endif
endif
ifneq (,$(filter eui_provider,$(USEMODULE)))

View File

@ -32,8 +32,13 @@
extern "C" {
#endif
#include "xtimer.h"
#include "thread.h"
#if IS_USED(MODULE_ZTIMER_MSEC)
#include "ztimer.h"
#else
#include "xtimer.h"
#endif
/**
* @brief Trickle callback function with arguments
@ -59,8 +64,13 @@ typedef struct {
trickle_callback_t callback; /**< callback function and parameter that
trickle calls after each interval */
msg_t msg; /**< the msg_t to use for intervals */
#if IS_USED(MODULE_ZTIMER_MSEC)
ztimer_t msg_timer; /**< timer to send a msg_t to the target
thread for a new interval */
#else
xtimer_t msg_timer; /**< xtimer to send a msg_t to the target
thread for a new interval */
#endif
} trickle_t;
/**

View File

@ -53,9 +53,14 @@ void trickle_interval(trickle_t *trickle)
/* old_interval == trickle->I / 2 */
trickle->t = random_uint32_range(old_interval, trickle->I);
#if IS_USED(MODULE_ZTIMER_MSEC)
ztimer_set_msg(ZTIMER_MSEC, &trickle->msg_timer, (trickle->t + diff),
&trickle->msg, trickle->pid);
#else
uint64_t msg_time = (trickle->t + diff) * US_PER_MS;
xtimer_set_msg64(&trickle->msg_timer, msg_time, &trickle->msg,
trickle->pid);
#endif
}
void trickle_reset_timer(trickle_t *trickle)
@ -88,7 +93,11 @@ void trickle_start(kernel_pid_t pid, trickle_t *trickle, uint16_t msg_type,
void trickle_stop(trickle_t *trickle)
{
#if IS_USED(MODULE_ZTIMER_MSEC)
ztimer_remove(ZTIMER_MSEC, &trickle->msg_timer);
#else
xtimer_remove(&trickle->msg_timer);
#endif
}
void trickle_increment_counter(trickle_t *trickle)