@@ -116,10 +116,16 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
116
116
}
117
117
118
118
// 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 ) {
121
124
return false ;
122
125
}
126
+ _CO2.CO2 = co2;
127
+ _temperature.temperature = temperature;
128
+ _humidity.relative_humidity = humidity;
123
129
_lastRead = millis ();
124
130
return true ;
125
131
}
@@ -139,7 +145,7 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
139
145
return false ;
140
146
}
141
147
142
- tempEvent-> temperature = _temperature;
148
+ tempEvent = & _temperature;
143
149
return true ;
144
150
}
145
151
@@ -158,7 +164,7 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
158
164
return false ;
159
165
}
160
166
161
- humidEvent-> relative_humidity = _humidity;
167
+ humidEvent = & _humidity;
162
168
return true ;
163
169
}
164
170
@@ -177,16 +183,16 @@ class WipperSnapper_I2C_Driver_SCD4X : public WipperSnapper_I2C_Driver {
177
183
return false ;
178
184
}
179
185
180
- co2Event-> CO2 = ( float )_co2 ;
186
+ co2Event = &_CO2 ;
181
187
return true ;
182
188
}
183
189
184
190
protected:
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
190
196
};
191
197
192
198
#endif // WipperSnapper_I2C_Driver_SCD4X_H
0 commit comments