Commit 186bf9f9 authored by Käppler's avatar Käppler
Browse files

co2_sensor: Remove state 'INVALID'

Ongoing investigation showed that the sensor
does report 0 ppm only after startup, i.e.
in 'BOOTUP' state. We check for this condition
in `hasSensprSettled()` already, so there is no
need for this state anymore.
parent 239daba6
Pipeline #3297 passed with stage
in 1 minute and 39 seconds
......@@ -33,7 +33,6 @@ namespace sensor {
* INITIAL -> initial state
* BOOTUP -> state after initializing the sensor, i.e. after scd.begin()
* READY -> sensor does output valid information (> 0 ppm) and no other condition takes place
* INVALID -> sensor does output invalid CO2 measurements (== 0 ppm)
* NEEDS_CALIBRATION -> sensor measurements are too low (< 250 ppm)
* PREPARE_CALIBRATION -> forced calibration was initiated, waiting for stable measurements
*/
......@@ -41,7 +40,6 @@ namespace sensor {
INITIAL,
BOOTUP,
READY,
INVALID,
NEEDS_CALIBRATION,
PREPARE_CALIBRATION_UNSTABLE,
PREPARE_CALIBRATION_STABLE
......@@ -50,7 +48,6 @@ namespace sensor {
"INITIAL",
"BOOTUP",
"READY",
"INVALID",
"NEEDS_CALIBRATION",
"PREPARE_CALIBRATION_UNSTABLE",
"PREPARE_CALIBRATION_STABLE" };
......@@ -210,12 +207,7 @@ namespace sensor {
Serial.println(" s.");
scd30.setMeasurementInterval(config::measurement_timestep); // [s]
}
if (co2 == 0) {
// NOTE: Data is available, but it's sometimes erroneous: the sensor outputs
// zero ppm but non-zero temperature and non-zero humidity.
Serial.println(F("Invalid sensor data - CO2 concentration supposedly 0 ppm"));
switchState(INVALID);
} else if ((current_state == PREPARE_CALIBRATION_UNSTABLE) || (current_state == PREPARE_CALIBRATION_STABLE)) {
if ((current_state == PREPARE_CALIBRATION_UNSTABLE) || (current_state == PREPARE_CALIBRATION_STABLE)) {
// Check for pre-calibration states first, because we do not want to
// leave them before calibration is done.
bool ready_for_calibration = countStableMeasurements();
......@@ -253,9 +245,6 @@ namespace sensor {
case READY:
displayCO2OnLedRing();
break;
case INVALID:
led_effects::showWaitingLED(color::red);
break;
case NEEDS_CALIBRATION:
led_effects::showWaitingLED(color::magenta);
break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment