Skip to content

Commit 66fe637

Browse files
committed
Update SCD4x to sensor event types + zero inits
1 parent 3997149 commit 66fe637

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

src/components/i2c/drivers/WipperSnapper_I2C_Driver_SCD30.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,11 @@ class WipperSnapper_I2C_Driver_SCD30 : public WipperSnapper_I2C_Driver {
161161
}
162162

163163
protected:
164-
Adafruit_SCD30 *_scd = nullptr; ///< SCD30 driver object
165-
ulong _lastRead = 0; ///< Last time the sensor was read
166-
sensors_event_t _temperature; ///< Temperature
167-
sensors_event_t _humidity; ///< Relative Humidity
168-
sensors_event_t _CO2; ///< CO2
164+
Adafruit_SCD30 *_scd = nullptr; ///< SCD30 driver object
165+
ulong _lastRead = 0; ///< Last time the sensor was read
166+
sensors_event_t _temperature = {0}; ///< Temperature
167+
sensors_event_t _humidity = {0}; ///< Relative Humidity
168+
sensors_event_t _CO2 = {0}; ///< CO2
169169
};
170170

171171
#endif // WipperSnapper_I2C_Driver_SCD30

src/components/i2c/drivers/WipperSnapper_I2C_Driver_SCD4X.h

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

184190
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
190196
};
191197

192198
#endif // WipperSnapper_I2C_Driver_SCD4X_H

0 commit comments

Comments
 (0)