aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArksine <arksine.code@gmail.com>2020-02-14 14:22:37 -0500
committerKevinOConnor <kevin@koconnor.net>2020-02-14 17:25:08 -0500
commitb23346a521b4b6e671ceecd85ce04ef5a03a644b (patch)
tree88bae3da1b018ec65ec9983bb2cfbf6dad6f4dc5
parent9a65a4569b487d0196526924d5873f37b8ab66ba (diff)
downloadkutter-b23346a521b4b6e671ceecd85ce04ef5a03a644b.tar.gz
kutter-b23346a521b4b6e671ceecd85ce04ef5a03a644b.tar.xz
kutter-b23346a521b4b6e671ceecd85ce04ef5a03a644b.zip
bme280: handle read timeout exceptions
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
-rw-r--r--klippy/extras/bme280.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/klippy/extras/bme280.py b/klippy/extras/bme280.py
index a5f1bf6f..0809ac6d 100644
--- a/klippy/extras/bme280.py
+++ b/klippy/extras/bme280.py
@@ -111,13 +111,20 @@ class BME280:
meas = self.os_temp << 5 | self.os_pres << 2 | MODE
self.write_register('CTRL_MEAS', meas)
- # wait until results are ready
- status = self.read_register('STATUS', 1)[0]
- while status & STATUS_MEASURING:
- self.reactor.pause(self.reactor.monotonic() + self.max_sample_time)
+ try:
+ # wait until results are ready
status = self.read_register('STATUS', 1)[0]
+ while status & STATUS_MEASURING:
+ self.reactor.pause(
+ self.reactor.monotonic() + self.max_sample_time)
+ status = self.read_register('STATUS', 1)[0]
+
+ data = self.read_register('PRESSURE_MSB', 8)
+ except Exception:
+ logging.exception("BME280: Error reading data")
+ self.temp = self.pressure = self.humidity = .0
+ return self.reactor.NEVER
- data = self.read_register('PRESSURE_MSB', 8)
pressure_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4)
temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4)
humid_raw = (data[6] << 8) | data[7]