From 1f8fca2f5a75b2d9a3151d338620e0c3be33a849 Mon Sep 17 00:00:00 2001 From: Sebastien GODARD Date: Wed, 28 Dec 2022 18:20:35 +0100 Subject: [PATCH] sadf: A_PWR_BAT: Display batteries stats in RAW format Signed-off-by: Sebastien GODARD --- activity.c | 2 +- raw_stats.c | 39 +++++++++++++++++++++++++++++++++++++++ raw_stats.h | 2 ++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/activity.c b/activity.c index 23a2520..939d13f 100644 --- a/activity.c +++ b/activity.c @@ -2030,7 +2030,7 @@ struct activity pwr_bat_act = { .f_xml_print = xml_print_pwr_bat_stats, .f_json_print = json_print_pwr_bat_stats, .f_svg_print = svg_print_pwr_bat_stats, - .f_raw_print = NULL, // FIXME + .f_raw_print = raw_print_pwr_bat_stats, .f_pcp_print = NULL, // FIXME .f_count_new = NULL, .item_list = NULL, diff --git a/raw_stats.c b/raw_stats.c index 45abda1..77cdf37 100644 --- a/raw_stats.c +++ b/raw_stats.c @@ -29,6 +29,7 @@ #include "raw_stats.h" extern uint64_t flags; +extern char bat_status[][16]; /* *************************************************************************** @@ -1793,3 +1794,41 @@ __print_funct_t raw_print_psimem_stats(struct activity *a, char *timestr, int cu pval((unsigned long long) psip->full_mem_total, (unsigned long long) psic->full_mem_total); printf("\n"); } + +/* + * ************************************************************************** + * Display batteries statistics in raw format. + * + * IN: + * @a Activity structure with statistics. + * @timestr Time for current statistics sample. + * @curr Index in array for current sample statistics. + *************************************************************************** + */ +__print_funct_t raw_print_pwr_bat_stats(struct activity *a, char *timestr, int curr) +{ + int i; + struct stats_pwr_bat *spbc, *spbp; + + for (i = 0; i < a->nr[curr]; i++) { + spbc = (struct stats_pwr_bat *) ((char *) a->buf[curr] + i * a->msize); + spbp = (struct stats_pwr_bat *) ((char *) a->buf[!curr] + i * a->msize); + + printf("%s; %s; %d;", timestr, pfield(a->hdr_line, FIRST), (int) spbc->bat_id); + printf(" %s; %u; %u;", pfield(NULL, 0), + (unsigned int) spbp->capacity, (unsigned int) spbc->capacity); + printf(" status; %d", (int) spbc->status); + + if (DISPLAY_DEBUG_MODE(flags)) { + if (spbc->status >= BAT_STS_NR) { + cprintf_s(IS_DEBUG, " [%s]", "UNDEFINED"); + } + else { + cprintf_s(IS_COMMENT, " [%s]", + bat_status[(unsigned int) spbc->status]); + } + } + + printf(";\n"); + } +} diff --git a/raw_stats.h b/raw_stats.h index fee355b..6c21afd 100644 --- a/raw_stats.h +++ b/raw_stats.h @@ -98,5 +98,7 @@ __print_funct_t raw_print_psiio_stats (struct activity *, char *, int); __print_funct_t raw_print_psimem_stats (struct activity *, char *, int); +__print_funct_t raw_print_pwr_bat_stats + (struct activity *, char *, int); #endif /* _RAW_STATS_H */ -- 2.40.0