From 4a4e552ccab7616dad03655363e800268b8f1de0 Mon Sep 17 00:00:00 2001 From: shuguo Date: Fri, 13 Apr 2018 09:34:00 +0800 Subject: [PATCH] gnrc_lwmac: enable duty-cycle printing. --- sys/include/net/gnrc/lwmac/types.h | 10 +-------- sys/net/gnrc/link_layer/lwmac/lwmac.c | 21 ++++++++++--------- .../gnrc/link_layer/lwmac/lwmac_internal.c | 2 +- 3 files changed, 13 insertions(+), 20 deletions(-) diff --git a/sys/include/net/gnrc/lwmac/types.h b/sys/include/net/gnrc/lwmac/types.h index 2185a4ee9b6b..e728a71cfeb2 100644 --- a/sys/include/net/gnrc/lwmac/types.h +++ b/sys/include/net/gnrc/lwmac/types.h @@ -90,14 +90,6 @@ extern "C" { */ #define GNRC_LWMAC_RADIO_IS_ON (0x04) -/** - * @brief Enable/disable duty-cycle record and print out. - * Set "1" to enable, set "0" to disable. - */ -#ifndef GNRC_LWMAC_ENABLE_DUTYCYLE_RECORD -#define GNRC_LWMAC_ENABLE_DUTYCYLE_RECORD (0U) -#endif - /** * @brief The default largest number of parallel timeouts in LWMAC */ @@ -204,7 +196,7 @@ typedef struct lwmac { uint8_t lwmac_info; /**< LWMAC's internal informations (flags) */ gnrc_lwmac_timeout_t timeouts[GNRC_LWMAC_TIMEOUT_COUNT]; /**< Store timeouts used for protocol */ -#if (GNRC_LWMAC_ENABLE_DUTYCYLE_RECORD == 1) +#if (GNRC_MAC_ENABLE_DUTYCYCLE_RECORD == 1) /* Parameters for recording duty-cycle */ uint32_t last_radio_on_time_ticks; /**< The last time in ticks when radio is on */ uint32_t radio_off_time_ticks; /**< The time in ticks when radio is off */ diff --git a/sys/net/gnrc/link_layer/lwmac/lwmac.c b/sys/net/gnrc/link_layer/lwmac/lwmac.c index 646a05982726..e5ba479e5287 100644 --- a/sys/net/gnrc/link_layer/lwmac/lwmac.c +++ b/sys/net/gnrc/link_layer/lwmac/lwmac.c @@ -266,14 +266,6 @@ void lwmac_set_state(gnrc_netif_t *netif, gnrc_lwmac_state_t newstate) case GNRC_LWMAC_TRANSMITTING: { /* Enable duty cycling again */ rtt_handler(GNRC_LWMAC_EVENT_RTT_RESUME, netif); -#if (GNRC_LWMAC_ENABLE_DUTYCYLE_RECORD == 1) - /* Output duty-cycle ratio */ - uint64_t duty; - duty = (uint64_t) rtt_get_counter(); - duty = ((uint64_t) netif->mac.prot.lwmac.awake_duration_sum_ticks) * 100 / - (duty - (uint64_t)netif->mac.prot.lwmac.system_start_time_ticks); - printf("[LWMAC]: achieved duty-cycle: %lu %% \n", (uint32_t)duty); -#endif break; } case GNRC_LWMAC_SLEEPING: { @@ -880,7 +872,16 @@ static void _lwmac_msg_handler(gnrc_netif_t *netif, msg_t *msg) lwmac_schedule_update(netif); break; } - +#if (GNRC_MAC_ENABLE_DUTYCYCLE_RECORD == 1) + case GNRC_MAC_TYPE_GET_DUTYCYCLE: { + /* Output LWMAC's radio duty-cycle ratio */ + uint64_t duty = (uint64_t) rtt_get_counter(); + duty = ((uint64_t) netif->mac.prot.lwmac.awake_duration_sum_ticks) * 100 / + (duty - (uint64_t)netif->mac.prot.lwmac.system_start_time_ticks); + printf("[LWMAC]: achieved radio duty-cycle: %u %% \n", (unsigned) duty); + break; + } +#endif default: { #if ENABLE_DEBUG DEBUG("[LWMAC]: unknown message type 0x%04x" @@ -933,7 +934,7 @@ static void _lwmac_init(gnrc_netif_t *netif) /* Start duty cycling */ lwmac_set_state(netif, GNRC_LWMAC_START); -#if (GNRC_LWMAC_ENABLE_DUTYCYLE_RECORD == 1) +#if (GNRC_MAC_ENABLE_DUTYCYCLE_RECORD == 1) /* Start duty cycle recording */ netif->mac.prot.lwmac.system_start_time_ticks = rtt_get_counter(); netif->mac.prot.lwmac.last_radio_on_time_ticks = netif->mac.prot.lwmac.system_start_time_ticks; diff --git a/sys/net/gnrc/link_layer/lwmac/lwmac_internal.c b/sys/net/gnrc/link_layer/lwmac/lwmac_internal.c index 181b1c029719..f28ec6468997 100644 --- a/sys/net/gnrc/link_layer/lwmac/lwmac_internal.c +++ b/sys/net/gnrc/link_layer/lwmac/lwmac_internal.c @@ -191,7 +191,7 @@ void _gnrc_lwmac_set_netdev_state(gnrc_netif_t *netif, netopt_state_t devstate) &devstate, sizeof(devstate)); -#if (GNRC_LWMAC_ENABLE_DUTYCYLE_RECORD == 1) +#if (GNRC_MAC_ENABLE_DUTYCYCLE_RECORD == 1) if (devstate == NETOPT_STATE_IDLE) { if (!(netif->mac.prot.lwmac.lwmac_info & GNRC_LWMAC_RADIO_IS_ON)) { netif->mac.prot.lwmac.last_radio_on_time_ticks = rtt_get_counter();