From 298998b112a095054bc70fbee945888d70ca1aa7 Mon Sep 17 00:00:00 2001 From: Mateusz Lubecki Date: Fri, 12 Mar 2021 11:53:26 +0100 Subject: [PATCH] quality factors in telemetry for BME sensor --- src/packet_tx_handler.c | 10 ++++++++++ src/wx_handler.c | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/packet_tx_handler.c b/src/packet_tx_handler.c index 22883a4..b7380c9 100644 --- a/src/packet_tx_handler.c +++ b/src/packet_tx_handler.c @@ -241,6 +241,16 @@ void packet_tx_handler(void) { case BME280_QF_HUMIDITY_DEGRADED: case BME280_QF_GEN_DEGRADED: humidity_qf = HUMIDITY_QF_DEGRADATED; break; } + + switch (rte_wx_bme280_qf) { + case BME280_QF_FULL: + case BME280_QF_HUMIDITY_DEGRADED: pressure_qf = PRESSURE_QF_FULL; break; + case BME280_QF_UKNOWN: + case BME280_QF_NOT_AVAILABLE: pressure_qf = PRESSURE_QF_NOT_AVALIABLE; break; + case BME280_QF_PRESSURE_DEGRADED: + case BME280_QF_GEN_DEGRADED: pressure_qf = PRESSURE_QF_DEGRADATED; break; + } + } #else pressure_qf = PRESSURE_QF_NOT_AVALIABLE; diff --git a/src/wx_handler.c b/src/wx_handler.c index ed211be..607f23e 100644 --- a/src/wx_handler.c +++ b/src/wx_handler.c @@ -148,7 +148,7 @@ void wx_get_all_measurements(void) { // converting raw values to temperature bme280_get_temperature(&rte_wx_temperature_ms, bme280_get_adc_t(), &rte_wx_bme280_qf); - // if modbus RTU is enabled but the quality factor for RTU-pressure is set to non FULL + // if modbus RTU is enabled but the quality factor for RTU-pressure is set to NOT_AVALIABLE if ((modbus_qf & MODBUS_QF_PRESSURE_FULL) == 0 && (modbus_qf & MODBUS_QF_PRESSURE_DEGR) == 0) { // converting raw values to pressure bme280_get_pressure(&rte_wx_pressure, bme280_get_adc_p(), &rte_wx_bme280_qf); @@ -157,7 +157,7 @@ void wx_get_all_measurements(void) { ; } - // if modbus RTU is enabled but the quality factor for RTU-humidity is set to non FULL + // if modbus RTU is enabled but the quality factor for RTU-humidity is set to NOT_AVALIABLE if ((modbus_qf & MODBUS_QF_HUMIDITY_FULL) == 0 && (modbus_qf & MODBUS_QF_HUMIDITY_DEGR) == 0) { // converting raw values to humidity bme280_get_humidity(&rte_wx_humidity, bme280_get_adc_h(), &rte_wx_bme280_qf);