From 239daba63ae2c65a444c6cb32118ecc6f4f4c7ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20K=C3=A4ppler?= <michael_kaeppler@web.de>
Date: Fri, 30 Apr 2021 00:09:21 +0200
Subject: [PATCH] co2_sensor: Do not report new data in all cases

Log every measurement to the serial console, but
return only `true` in `processData()`(thus starting
further processing like CSV, MQTT, LORAWAN) if
the data is reliable (stable measurements, CO2 > 0)
or the sensor measures too low CO2 values (< 250).

The latter condition should be reported, because
the user can then initiate a manual calibration procedure.
---
 ampel-firmware/co2_sensor.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp
index efeec4e..637ec0a 100644
--- a/ampel-firmware/co2_sensor.cpp
+++ b/ampel-firmware/co2_sensor.cpp
@@ -291,7 +291,9 @@ namespace sensor {
 
     showState();
 
-    return freshData;
+    // Report data for further processing only if the data is reliable
+    // (state 'READY') or manual calibration is necessary (state 'NEEDS_CALIBRATION').
+    return freshData && (current_state == READY || current_state == NEEDS_CALIBRATION);
   }
 
   /*****************************************************************
-- 
GitLab