diff options
author | Daniel Friesel <derf@finalrewind.org> | 2022-05-15 16:14:44 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2022-05-15 16:14:44 +0200 |
commit | 14e405f5152c99e3e2db9948a8cee780e1af04a3 (patch) | |
tree | 0fc3186d18e7307a2a0f3f10f5ef3b14021f88f9 | |
parent | c257eb1d7f455d79b8e59e0cb5081925ede83296 (diff) |
scd4x.read(): indicate whether read was successful
-rw-r--r-- | include/driver/scd4x.h | 2 | ||||
-rw-r--r-- | src/app/datalogger/main.cc | 21 | ||||
-rw-r--r-- | src/driver/scd4x.cc | 12 |
3 files changed, 21 insertions, 14 deletions
diff --git a/include/driver/scd4x.h b/include/driver/scd4x.h index d99c4fc..0a2924b 100644 --- a/include/driver/scd4x.h +++ b/include/driver/scd4x.h @@ -25,7 +25,7 @@ class SCD4x { void startLowPower(); - void read(); + bool read(); }; extern SCD4x scd4x; diff --git a/src/app/datalogger/main.cc b/src/app/datalogger/main.cc index bf34b10..5800b1b 100644 --- a/src/app/datalogger/main.cc +++ b/src/app/datalogger/main.cc @@ -189,14 +189,17 @@ void loop(void) #endif #ifdef CONFIG_driver_scd4x - scd4x.read(); - kout << dec << "CO₂: " << scd4x.co2 << " ppm" << endl; - kout << "Temperature: "; - kout.printf_float(((175.0 * scd4x.rawTemperature) / 65536) - 45); - kout << " °c" << endl; - kout << "Humidity: "; - kout.printf_float((100.0 * scd4x.rawHumidity) / 65536); - kout << " %" << endl; + if (scd4x.read()) { + kout << dec << "CO₂: " << scd4x.co2 << " ppm" << endl; + kout << "Temperature: "; + kout.printf_float(((175.0 * scd4x.rawTemperature) / 65536) - 45); + kout << " °c" << endl; + kout << "Humidity: "; + kout.printf_float((100.0 * scd4x.rawHumidity) / 65536); + kout << " %" << endl; + } else { + kout << "SCD4x error" << endl; + } #endif #ifdef CONFIG_driver_veml6075 @@ -301,7 +304,9 @@ int main(void) #endif #ifdef CONFIG_driver_mpu9250 + kout << "MPU9250 init" << endl; mpu9250.init(); + kout << "MPU9250 nineAxis" << endl; mpu9250.nineAxis(); #endif 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; |