diff --git a/src/dht.c b/src/dht.c index 7cfe8fd..b7b8b94 100644 --- a/src/dht.c +++ b/src/dht.c @@ -19,36 +19,17 @@ struct dht_sensor { static struct dht_sensor *s_dht_sensor[MAX_DHT]; static int s_num_dht = 0; -static void print_chunk(struct mg_connection *nc, char *name, char *fmt, ...) { - char chunk[500]; - int chunklen=0; - va_list ap; - - snprintf(chunk, sizeof(chunk), "%s%s", name, fmt[0]=='{' ? "" : " "); - va_start(ap, fmt); - vsnprintf(chunk+strlen(chunk), sizeof(chunk)-strlen(chunk), fmt, ap); - va_end(ap); - strncat(chunk, "\n", sizeof(chunk)); - chunklen=strlen(chunk); - LOG(LL_DEBUG, ("Chunk '%s' with length %d", chunk, chunklen)); - mg_printf(nc, "%X\r\n%s\r\n", chunklen, chunk); - -} - static void dht_prometheus_metrics(struct mg_connection *nc, void *user_data) { int i; - // BUG -- repeated HELP and TYPE makes Prometheus parser bork :( - mgos_prometheus_metrics_printf(nc, GAUGE, - "temperature", "Temperature in celcius", - "{sensor=\"0\",type=\"DHT\"} %f", s_dht_sensor[0]->temp); - mgos_prometheus_metrics_printf(nc, GAUGE, - "humidity", "Relative humidity percentage", - "{sensor=\"0\",type=\"DHT\"} %f", s_dht_sensor[0]->humidity); + for (i=0; itemp); + mgos_prometheus_metrics_printf(nc, GAUGE, + "humidity", "Relative humidity percentage", + "{sensor=\"%d\",type=\"DHT\"} %f", i, s_dht_sensor[i]->humidity); - for (i=1; itemp); - print_chunk(nc, "humidity", "{sensor=\"%d\",type=\"DHT\"} %f", i, s_dht_sensor[i]->humidity); } (void) user_data; diff --git a/src/veml6075.c b/src/veml6075.c index 3604f34..f022456 100644 --- a/src/veml6075.c +++ b/src/veml6075.c @@ -8,28 +8,13 @@ static struct mgos_veml6075 *s_veml6075; -static void print_chunk(struct mg_connection *nc, char *name, char *fmt, ...) { - char chunk[500]; - int chunklen=0; - va_list ap; - - snprintf(chunk, sizeof(chunk), "%s%s", name, fmt[0]=='{' ? "" : " "); - va_start(ap, fmt); - vsnprintf(chunk+strlen(chunk), sizeof(chunk)-strlen(chunk), fmt, ap); - va_end(ap); - strncat(chunk, "\n", sizeof(chunk)); - chunklen=strlen(chunk); -// LOG(LL_DEBUG, ("Chunk '%s' with length %d", chunk, chunklen)); - mg_printf(nc, "%X\r\n%s\r\n", chunklen, chunk); -} - static void veml6075_prometheus_metrics(struct mg_connection *nc, void *user_data) { - // BUG -- repeated HELP and TYPE makes Prometheus parser bork :( mgos_prometheus_metrics_printf(nc, GAUGE, "UV", "Ultra Violet light intensity, in sensor counts", "{band=\"UVA\",type=\"VEML6075\", sensor=\"0\"} %f", mgos_veml6075_getUVA(s_veml6075)); - print_chunk(nc, "UV", "{band=\"UVB\",type=\"VEML6075\", sensor=\"0\"} %f", mgos_veml6075_getUVB(s_veml6075)); - + mgos_prometheus_metrics_printf(nc, GAUGE, + "UV", "Ultra Violet light intensity, in sensor counts", + "{band=\"UVB\",type=\"VEML6075\", sensor=\"0\"} %f", mgos_veml6075_getUVB(s_veml6075)); mgos_prometheus_metrics_printf(nc, GAUGE, "UVIndex", "2: Low, 5.5 Moderate, 7.5 High, 10.5 Very High, else Extreme", "{sensor=\"0\",type=\"VEML6075\"} %f", mgos_veml6075_getUVIndex(s_veml6075));