From 0d3704197e8141ab8c1bf6159d013f02273b7894 Mon Sep 17 00:00:00 2001 From: Eugene Schava Date: Fri, 1 Mar 2019 17:53:47 +0200 Subject: [PATCH] MH-Z19 sensor has disabled auto-calibrating #1580 --- code/espurna/sensor.ino | 11 ++--------- code/espurna/sensors/MHZ19Sensor.h | 10 +++++++++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/code/espurna/sensor.ino b/code/espurna/sensor.ino index 454e90faa3..4c038e3d43 100644 --- a/code/espurna/sensor.ino +++ b/code/espurna/sensor.ino @@ -602,6 +602,8 @@ void _sensorLoad() { MHZ19Sensor * sensor = new MHZ19Sensor(); sensor->setRX(MHZ19_RX_PIN); sensor->setTX(MHZ19_TX_PIN); + if (getSetting("mhz19CalibrateAuto", 0).toInt() == 1) + sensor->setCalibrateAuto(true); _sensors.push_back(sensor); } #endif @@ -1140,15 +1142,6 @@ void _sensorConfigure() { #endif // PZEM004T_SUPPORT - #if MHZ19_SUPPORT - if (_sensors[i]->getID() == SENSOR_MHZ19_ID) { - MHZ19Sensor * sensor = (MHZ19Sensor *) _sensors[i]; - if (getSetting("mhz19CalibrateAuto", 0).toInt() == 1) { - sensor->calibrateAuto(true); - } - } - #endif // MHZ19_SUPPORT - } // Update filter sizes diff --git a/code/espurna/sensors/MHZ19Sensor.h b/code/espurna/sensors/MHZ19Sensor.h index 105adf2215..019cc2592b 100644 --- a/code/espurna/sensors/MHZ19Sensor.h +++ b/code/espurna/sensors/MHZ19Sensor.h @@ -78,7 +78,7 @@ class MHZ19Sensor : public BaseSensor { _serial = new SoftwareSerial(_pin_rx, _pin_tx, false, 32); _serial->enableIntTx(false); _serial->begin(9600); - calibrateAuto(false); + calibrateAuto(_calibrateAuto); _ready = true; _dirty = false; @@ -139,6 +139,13 @@ class MHZ19Sensor : public BaseSensor { _write(buffer); } + void setCalibrateAuto(boolean value) { + _calibrateAuto = value; + if (_ready) { + calibrateAuto(value); + } + } + protected: // --------------------------------------------------------------------- @@ -214,6 +221,7 @@ class MHZ19Sensor : public BaseSensor { double _co2 = 0; unsigned int _pin_rx; unsigned int _pin_tx; + bool _calibrateAuto = false; SoftwareSerial * _serial = NULL; };