From 72f757a913917c09ebe4cfb592cdf4cb8dc1e56e Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Mon, 27 Nov 2017 22:59:26 +0100 Subject: [PATCH] Add prometheus hook for battery voltage --- src/widget_battery.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/widget_battery.c b/src/widget_battery.c index b54e71d..b95f943 100644 --- a/src/widget_battery.c +++ b/src/widget_battery.c @@ -2,6 +2,7 @@ #include "mgos_adc.h" #include "tft.h" #include "mongoose-touch.h" +#include "mgos_prometheus_metrics.h" #define WIDGET_BATTERY_ADC_PIN 35 @@ -40,6 +41,15 @@ static void widget_battery_render(struct widget_t *w, void *ev_data) { (void) ev_data; } +static void prometheus_battery_metrics_fn(struct mg_connection *nc, void *user_data) { + mgos_prometheus_metrics_printf(nc, GAUGE, + "battery_mvolts", "Battery voltage in mV", + "%d", widget_battery_getvoltage()); + + (void) user_data; +} + + void widget_battery_ev(int ev, struct widget_t *w, void *ev_data) { if (!w) return; @@ -48,6 +58,7 @@ void widget_battery_ev(int ev, struct widget_t *w, void *ev_data) { case EV_WIDGET_CREATE: LOG(LL_INFO, ("Monitoring LiPo voltage on gpio=%d", WIDGET_BATTERY_ADC_PIN)); mgos_adc_enable(WIDGET_BATTERY_ADC_PIN); + mgos_prometheus_metrics_add_handler(prometheus_battery_metrics_fn, NULL); case EV_WIDGET_DRAW: case EV_WIDGET_REDRAW: case EV_WIDGET_TIMER: