Skip to content

Commit 080d1da

Browse files
committed
Fix for SCD40, SCD41
1 parent 67ecbe6 commit 080d1da

File tree

2 files changed

+21
-25
lines changed

2 files changed

+21
-25
lines changed

src/components/i2c/drivers/drvDps310.h

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#ifndef DRV_DPS310_H
1717
#define DRV_DPS310_H
18-
#include "Wippersnapper_V2.h"
1918
#include "drvBase.h"
2019
#include <Adafruit_DPS310.h>
2120

@@ -64,22 +63,19 @@ class drvDps310 : public drvBase {
6463
// initialize DPS310
6564
_dps310 = new Adafruit_DPS310();
6665
if (!_dps310->begin_I2C((uint8_t)_address, _i2c)) {
67-
WS_DEBUG_PRINTLN("DPS310 not found");
68-
return false;
66+
return false;
6967
}
7068

7169
// init OK, perform sensor configuration
7270
_dps310->configureTemperature(DPS310_64HZ, DPS310_64SAMPLES);
7371
_dps310->configurePressure(DPS310_64HZ, DPS310_64SAMPLES);
7472
_dps_temp = _dps310->getTemperatureSensor();
7573
if (_dps_temp == NULL) {
76-
WS_DEBUG_PRINTLN("Temperature sensor not found");
77-
return false;
74+
return false;
7875
}
7976
_dps_pressure = _dps310->getPressureSensor();
8077
if (_dps_pressure == NULL) {
81-
WS_DEBUG_PRINTLN("Pressure sensor not found");
82-
return false;
78+
return false;
8379
}
8480
// Wait for the first reading to complete
8581
delay(1000);
@@ -97,8 +93,7 @@ class drvDps310 : public drvBase {
9793
/*******************************************************************************/
9894
bool getEventAmbientTemp(sensors_event_t *tempEvent) {
9995
if (!_dps310->temperatureAvailable()) {
100-
WS_DEBUG_PRINTLN("Temperature not available");
101-
return false;
96+
return false;
10297
}
10398

10499
_dps_temp->getEvent(tempEvent);
@@ -116,8 +111,7 @@ class drvDps310 : public drvBase {
116111
/*******************************************************************************/
117112
bool getEventPressure(sensors_event_t *pressureEvent) {
118113
if (!_dps310->pressureAvailable()) {
119-
WS_DEBUG_PRINTLN("Pressure not available");
120-
return false;
114+
return false;
121115
}
122116

123117
_dps_pressure->getEvent(pressureEvent);

src/components/i2c/drivers/drvScd4x.h

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#ifndef DRV_SCD4X_H
1818
#define DRV_SCD4X_H
1919

20+
#include "Wippersnapper_V2.h"
2021
#include "drvBase.h"
2122
#include <SensirionI2CScd4x.h>
2223
#include <Wire.h>
@@ -38,7 +39,8 @@ class drvScd4x : public drvBase {
3839
7-bit device address.
3940
*/
4041
/*******************************************************************************/
41-
drvScd4x(TwoWire *i2c, uint16_t sensorAddress, uint32_t mux_channel, const char* driver_name)
42+
drvScd4x(TwoWire *i2c, uint16_t sensorAddress, uint32_t mux_channel,
43+
const char *driver_name)
4244
: drvBase(i2c, sensorAddress, mux_channel, driver_name) {
4345
_i2c = i2c;
4446
_address = sensorAddress;
@@ -58,12 +60,16 @@ class drvScd4x : public drvBase {
5860
_scd->begin(*_i2c);
5961

6062
// stop previously started measurement
61-
if (_scd->stopPeriodicMeasurement())
63+
if (_scd->stopPeriodicMeasurement()) {
64+
WS_DEBUG_PRINTLN("Unable to L63");
6265
return false;
66+
}
6367

6468
// start measurements
65-
if (_scd->startPeriodicMeasurement())
69+
if (_scd->startPeriodicMeasurement()) {
70+
WS_DEBUG_PRINTLN("Unable to L69");
6671
return false;
72+
}
6773

6874
return true;
6975
}
@@ -82,13 +88,15 @@ class drvScd4x : public drvBase {
8288

8389
// Check if data is ready
8490
error = _scd->getDataReadyFlag(isDataReady);
85-
if (error || !isDataReady)
91+
if (error || !isDataReady) {
8692
return false;
93+
}
8794

8895
// Read SCD4x measurement
8996
error = _scd->readMeasurement(_co2, _temperature, _humidity);
90-
if (error || _co2 == 0)
97+
if (error || _co2 == 0) {
9198
return false;
99+
}
92100

93101
return true;
94102
}
@@ -104,9 +112,7 @@ class drvScd4x : public drvBase {
104112
/*******************************************************************************/
105113
bool getEventAmbientTemp(sensors_event_t *tempEvent) {
106114
// read all sensor measurements
107-
if (!readSensorMeasurements())
108-
return false;
109-
115+
readSensorMeasurements();
110116
tempEvent->temperature = _temperature;
111117
return true;
112118
}
@@ -122,9 +128,7 @@ class drvScd4x : public drvBase {
122128
/*******************************************************************************/
123129
bool getEventRelativeHumidity(sensors_event_t *humidEvent) {
124130
// read all sensor measurements
125-
if (!readSensorMeasurements())
126-
return false;
127-
131+
readSensorMeasurements();
128132
humidEvent->relative_humidity = _humidity;
129133
return true;
130134
}
@@ -140,9 +144,7 @@ class drvScd4x : public drvBase {
140144
/*******************************************************************************/
141145
bool getEventCO2(sensors_event_t *co2Event) {
142146
// read all sensor measurements
143-
if (!readSensorMeasurements())
144-
return false;
145-
147+
readSensorMeasurements();
146148
co2Event->CO2 = (float)_co2;
147149
return true;
148150
}

0 commit comments

Comments
 (0)