@@ -116,10 +116,16 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
116116 }
117117
118118 // Read SCD4x measurement
119- uint16_t error = _scd->readMeasurement (_co2, _temperature, _humidity);
120- if (error != 0 || _co2 == 0 ) {
119+ uint16_t co2 = 0 ;
120+ float temperature = 0 ;
121+ float humidity = 0 ;
122+ int16_t error = _scd->readMeasurement (co2, temperature, humidity);
123+ if (error != 0 || co2 == 0 ) {
121124 return false ;
122125 }
126+ _CO2.CO2 = co2;
127+ _temperature.temperature = temperature;
128+ _humidity.relative_humidity = humidity;
123129 _lastRead = millis ();
124130 return true ;
125131 }
@@ -139,7 +145,7 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
139145 return false ;
140146 }
141147
142- tempEvent-> temperature = _temperature;
148+ tempEvent = & _temperature;
143149 return true ;
144150 }
145151
@@ -158,7 +164,7 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
158164 return false ;
159165 }
160166
161- humidEvent-> relative_humidity = _humidity;
167+ humidEvent = & _humidity;
162168 return true ;
163169 }
164170
@@ -177,16 +183,16 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
177183 return false ;
178184 }
179185
180- co2Event-> CO2 = ( float )_co2 ;
186+ co2Event = &_CO2 ;
181187 return true ;
182188 }
183189
184190protected:
185- SensirionI2cScd4x *_scd = nullptr ; // /< SCD4x driver object
186- uint16_t _co2 = 0 ; // /< SCD4x co2 reading
187- float _temperature; // /< SCD4x temperature reading
188- float _humidity; // /< SCD4x humidity reading
189- ulong _lastRead; // /< Last time the sensor was read
191+ SensirionI2cScd4x *_scd = nullptr ; // /< SCD4x driver object
192+ sensors_event_t _temperature = { 0 }; // /< Temperature
193+ sensors_event_t _humidity = { 0 }; // /< Relative Humidity
194+ sensors_event_t _CO2 = { 0 }; // /< CO2
195+ ulong _lastRead = 0 ; // /< Last time the sensor was read
190196};
191197
192198#endif // WipperSnapper_I2C_Driver_SCD4X_H
0 commit comments