From 1f0302bd66abeeded90180abdcdfecf6d3a94651 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Mon, 13 Mar 2023 12:35:39 +0000 Subject: [PATCH] BME280: Check read status and throw error on fail. --- .../modules/breakout_bme280/breakout_bme280.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/micropython/modules/breakout_bme280/breakout_bme280.cpp b/micropython/modules/breakout_bme280/breakout_bme280.cpp index e3103e5a..61c52b73 100644 --- a/micropython/modules/breakout_bme280/breakout_bme280.cpp +++ b/micropython/modules/breakout_bme280/breakout_bme280.cpp @@ -48,11 +48,15 @@ mp_obj_t BreakoutBME280_read(mp_obj_t self_in) { breakout_bme280_BreakoutBME280_obj_t *self = MP_OBJ_TO_PTR2(self_in, breakout_bme280_BreakoutBME280_obj_t); BME280::bme280_reading result = self->breakout->read_forced(); - mp_obj_t tuple[3]; - tuple[0] = mp_obj_new_float(result.temperature); - tuple[1] = mp_obj_new_float(result.pressure); - tuple[2] = mp_obj_new_float(result.humidity); - return mp_obj_new_tuple(3, tuple); + if(result.status) { + mp_obj_t tuple[3]; + tuple[0] = mp_obj_new_float(result.temperature); + tuple[1] = mp_obj_new_float(result.pressure); + tuple[2] = mp_obj_new_float(result.humidity); + return mp_obj_new_tuple(3, tuple); + } + + mp_raise_msg(&mp_type_RuntimeError, "BME280: read failed."); } mp_obj_t BreakoutBME280_configure(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {