Skip to content
Snippets Groups Projects
Unverified Commit a5a4bb07 authored by Nicolas Tsiftes's avatar Nicolas Tsiftes Committed by GitHub
Browse files

Merge pull request #1587 from nfi/contrib/simple-energest

Updated simple-energest to use 64 bit values (same as energest)
parents 7a30a131 03fd71dd
No related branches found
No related tags found
No related merge requests found
...@@ -52,22 +52,29 @@ ...@@ -52,22 +52,29 @@
#define LOG_MODULE "Energest" #define LOG_MODULE "Energest"
#define LOG_LEVEL LOG_LEVEL_INFO #define LOG_LEVEL LOG_LEVEL_INFO
static unsigned long last_tx, last_rx, last_time, last_cpu, last_lpm, last_deep_lpm; static uint64_t last_tx, last_rx, last_time, last_cpu, last_lpm, last_deep_lpm;
static unsigned long delta_tx, delta_rx, delta_time, delta_cpu, delta_lpm, delta_deep_lpm;
static unsigned long curr_tx, curr_rx, curr_time, curr_cpu, curr_lpm, curr_deep_lpm;
PROCESS(simple_energest_process, "Simple Energest"); PROCESS(simple_energest_process, "Simple Energest");
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static unsigned long static uint64_t
to_permil(unsigned long delta_metric, unsigned long delta_time) to_permil(uint64_t delta_metric, uint64_t delta_time)
{ {
return (1000ul * (delta_metric)) / delta_time; return (1000ul * delta_metric) / delta_time;
}
/*---------------------------------------------------------------------------*/
static void
log_energest(const char *name, uint64_t delta, uint64_t delta_time)
{
LOG_INFO("%-12s: %10"PRIu64"/%10"PRIu64" (%"PRIu64" permil)\n",
name, delta, delta_time, to_permil(delta, delta_time));
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void static void
simple_energest_step(void) simple_energest_step(void)
{ {
static unsigned count = 0; static unsigned count = 0;
uint64_t curr_tx, curr_rx, curr_time, curr_cpu, curr_lpm, curr_deep_lpm;
uint64_t delta_time;
energest_flush(); energest_flush();
...@@ -78,12 +85,18 @@ simple_energest_step(void) ...@@ -78,12 +85,18 @@ simple_energest_step(void)
curr_tx = energest_type_time(ENERGEST_TYPE_TRANSMIT); curr_tx = energest_type_time(ENERGEST_TYPE_TRANSMIT);
curr_rx = energest_type_time(ENERGEST_TYPE_LISTEN); curr_rx = energest_type_time(ENERGEST_TYPE_LISTEN);
delta_time = curr_time - last_time; delta_time = MAX(curr_time - last_time, 1);
delta_cpu = curr_cpu - last_cpu;
delta_lpm = curr_lpm - last_lpm; LOG_INFO("--- Period summary #%u (%"PRIu64" seconds)\n",
delta_deep_lpm = curr_deep_lpm - last_deep_lpm; count++, delta_time / ENERGEST_SECOND);
delta_tx = curr_tx - last_tx; LOG_INFO("Total time : %10"PRIu64"\n", delta_time);
delta_rx = curr_rx - last_rx; log_energest("CPU", curr_cpu - last_cpu, delta_time);
log_energest("LPM", curr_lpm - last_lpm, delta_time);
log_energest("Deep LPM", curr_deep_lpm - last_deep_lpm, delta_time);
log_energest("Radio Tx", curr_tx - last_tx, delta_time);
log_energest("Radio Rx", curr_rx - last_rx, delta_time);
log_energest("Radio total", curr_tx - last_tx + curr_rx - last_rx,
delta_time);
last_time = curr_time; last_time = curr_time;
last_cpu = curr_cpu; last_cpu = curr_cpu;
...@@ -91,15 +104,6 @@ simple_energest_step(void) ...@@ -91,15 +104,6 @@ simple_energest_step(void)
last_deep_lpm = curr_deep_lpm; last_deep_lpm = curr_deep_lpm;
last_tx = curr_tx; last_tx = curr_tx;
last_rx = curr_rx; last_rx = curr_rx;
LOG_INFO("--- Period summary #%u (%lu seconds)\n", count++, delta_time/ENERGEST_SECOND);
LOG_INFO("Total time : %10lu\n", delta_time);
LOG_INFO("CPU : %10lu/%10lu (%lu permil)\n", delta_cpu, delta_time, to_permil(delta_cpu, delta_time));
LOG_INFO("LPM : %10lu/%10lu (%lu permil)\n", delta_lpm, delta_time, to_permil(delta_lpm, delta_time));
LOG_INFO("Deep LPM : %10lu/%10lu (%lu permil)\n", delta_deep_lpm, delta_time, to_permil(delta_deep_lpm, delta_time));
LOG_INFO("Radio Tx : %10lu/%10lu (%lu permil)\n", delta_tx, delta_time, to_permil(delta_tx, delta_time));
LOG_INFO("Radio Rx : %10lu/%10lu (%lu permil)\n", delta_rx, delta_time, to_permil(delta_rx, delta_time));
LOG_INFO("Radio total : %10lu/%10lu (%lu permil)\n", delta_tx+delta_rx, delta_time, to_permil(delta_tx+delta_rx, delta_time));
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
PROCESS_THREAD(simple_energest_process, ev, data) PROCESS_THREAD(simple_energest_process, ev, data)
...@@ -123,8 +127,8 @@ simple_energest_init(void) ...@@ -123,8 +127,8 @@ simple_energest_init(void)
last_time = ENERGEST_GET_TOTAL_TIME(); last_time = ENERGEST_GET_TOTAL_TIME();
last_cpu = energest_type_time(ENERGEST_TYPE_CPU); last_cpu = energest_type_time(ENERGEST_TYPE_CPU);
last_lpm = energest_type_time(ENERGEST_TYPE_LPM); last_lpm = energest_type_time(ENERGEST_TYPE_LPM);
curr_tx = energest_type_time(ENERGEST_TYPE_TRANSMIT);
last_deep_lpm = energest_type_time(ENERGEST_TYPE_DEEP_LPM); last_deep_lpm = energest_type_time(ENERGEST_TYPE_DEEP_LPM);
last_tx = energest_type_time(ENERGEST_TYPE_TRANSMIT);
last_rx = energest_type_time(ENERGEST_TYPE_LISTEN); last_rx = energest_type_time(ENERGEST_TYPE_LISTEN);
process_start(&simple_energest_process, NULL); process_start(&simple_energest_process, NULL);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment