]> granicus.if.org Git - sysstat/commitdiff
sadf: A_PWR_BAT: Display batteries stats in RAW format
authorSebastien GODARD <sysstat@users.noreply.github.com>
Wed, 28 Dec 2022 17:20:35 +0000 (18:20 +0100)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Wed, 28 Dec 2022 17:20:35 +0000 (18:20 +0100)
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
activity.c
raw_stats.c
raw_stats.h

index 23a25209f849e6850b050c9b177c70573c52c515..939d13fb17179f6aca678875b0e987b07513f51d 100644 (file)
@@ -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,
index 45abda17e8da9ea9cd66dc222085fbf4f2a8b8c3..77cdf37aa0106c84a9e1d9cf5f09e5025cc846bd 100644 (file)
@@ -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");
+       }
+}
index fee355bc256c5ea2fc03bb32b04bff99a9de213d..6c21afdb30d54a3aa7b392993dda83019da55567 100644 (file)
@@ -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 */