summaryrefslogtreecommitdiff
path: root/src/driver/scd4x.cc
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2022-05-15 16:14:44 +0200
committerDaniel Friesel <derf@finalrewind.org>2022-05-15 16:14:44 +0200
commit14e405f5152c99e3e2db9948a8cee780e1af04a3 (patch)
tree0fc3186d18e7307a2a0f3f10f5ef3b14021f88f9 /src/driver/scd4x.cc
parentc257eb1d7f455d79b8e59e0cb5081925ede83296 (diff)
scd4x.read(): indicate whether read was successful
Diffstat (limited to 'src/driver/scd4x.cc')
-rw-r--r--src/driver/scd4x.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/driver/scd4x.cc b/src/driver/scd4x.cc
index 3ad34a0..365cde8 100644
--- a/src/driver/scd4x.cc
+++ b/src/driver/scd4x.cc
@@ -32,16 +32,18 @@ void SCD4x::startLowPower()
i2c.xmit(address, 2, txbuf, 0, rxbuf);
}
-void SCD4x::read()
+bool SCD4x::read()
{
txbuf[0] = 0xec;
txbuf[1] = 0x05;
- if (i2c.xmit(address, 2, txbuf, 9, rxbuf) == 0) {
- co2 = (rxbuf[0] << 8) + rxbuf[1];
- rawTemperature = ((rxbuf[3] << 8) + rxbuf[4]);
- rawHumidity = (rxbuf[6] << 8) + rxbuf[7];
+ if (i2c.xmit(address, 2, txbuf, 9, rxbuf)) {
+ return false;
}
+ co2 = (rxbuf[0] << 8) + rxbuf[1];
+ rawTemperature = ((rxbuf[3] << 8) + rxbuf[4]);
+ rawHumidity = (rxbuf[6] << 8) + rxbuf[7];
+ return true;
}
SCD4x scd4x;