Better error handling for SHTC3 reading

This commit is contained in:
rbaron 2023-07-15 11:07:35 +02:00
parent c70eb600a3
commit 9fdd15626a
2 changed files with 5 additions and 7 deletions

View file

@ -32,11 +32,10 @@ int prst_shtc3_read(prst_shtc3_read_t *out) {
// Reading in normal (not low power) mode can take up to 12.1 ms, according to // Reading in normal (not low power) mode can take up to 12.1 ms, according to
// the datasheet. // the datasheet.
k_msleep(15); k_msleep(20);
while (i2c_read_dt(&shtc3, buff, 6) != 0) { // Read response.
k_msleep(10); RET_IF_ERR(i2c_read_dt(&shtc3, buff, 6));
}
// Put the sensor in sleep mode. // Put the sensor in sleep mode.
RET_IF_ERR(write_cmd(PRST_SHTC3_CMD_SLEEP)); RET_IF_ERR(write_cmd(PRST_SHTC3_CMD_SLEEP));

View file

@ -134,7 +134,7 @@ void update_sensors_cb(zb_uint8_t arg) {
ZB_MILLISECONDS_TO_BEACON_INTERVAL(1000 * CONFIG_PRST_ZB_SLEEP_DURATION_SEC)); ZB_MILLISECONDS_TO_BEACON_INTERVAL(1000 * CONFIG_PRST_ZB_SLEEP_DURATION_SEC));
if (ret != RET_OK) { if (ret != RET_OK) {
prst_debug_counters_increment("sens_cb_schedule_err"); prst_debug_counters_increment("sens_cb_schedule_err");
zb_reset(0); __ASSERT(false, "Unable to schedule sensor update callback");
} }
__ASSERT(!prst_watchdog_feed(), "Failed to feed watchdog"); __ASSERT(!prst_watchdog_feed(), "Failed to feed watchdog");
@ -142,8 +142,7 @@ void update_sensors_cb(zb_uint8_t arg) {
prst_debug_counters_increment("sensors_read_before"); prst_debug_counters_increment("sensors_read_before");
if (prst_sensors_read_all(&sensors)) { if (prst_sensors_read_all(&sensors)) {
prst_debug_counters_increment("sensors_read_error"); prst_debug_counters_increment("sensors_read_error");
LOG_ERR("Unable to read sensors"); __ASSERT(false, "Unable to read sensors");
return;
} }
prst_debug_counters_increment("sensors_read_after"); prst_debug_counters_increment("sensors_read_after");