From 84dfb7c5167dad271f65b373d06fa3879ca6c439 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sat, 2 Dec 2017 23:49:53 +0100 Subject: [PATCH] Register prometheus callback only once --- src/widget_battery.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/widget_battery.c b/src/widget_battery.c index cc9bec0..9ef0a6e 100644 --- a/src/widget_battery.c +++ b/src/widget_battery.c @@ -6,6 +6,7 @@ #define WIDGET_BATTERY_ADC_PIN 35 +static bool metrics_registered=false; // Returns millivolts - Huzzah32 has a 1:1 voltage divider on I35 (A13) // so it returns half of the battery voltage. Calibrate the function by @@ -64,7 +65,9 @@ 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); + if (!metrics_registered) + mgos_prometheus_metrics_add_handler(prometheus_battery_metrics_fn, NULL); + metrics_registered=true; break; case EV_WIDGET_DRAW: case EV_WIDGET_REDRAW: