From a267e4004e0fab4a5d331972ccc60c090c2bfa50 Mon Sep 17 00:00:00 2001 From: jens Date: Tue, 19 Oct 2021 11:42:52 +0200 Subject: [PATCH] - improved tempsensor exception --- components/atemperatureSensor.py | 5 +++++ components/sensor/tempSensor_max31865.py | 4 +++- tasks/tempsensor.py | 6 +++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/components/atemperatureSensor.py b/components/atemperatureSensor.py index 8bca594..7fd3775 100644 --- a/components/atemperatureSensor.py +++ b/components/atemperatureSensor.py @@ -2,6 +2,11 @@ import abc from utils.value import AttributeChange +class TemperatureSensorException(Exception): + def __init__(self, error_txt): + Exception.__init__(self, error_txt) + + class ATemperatureSensor(AttributeChange): def __init__(self): AttributeChange.__init__(self) diff --git a/components/sensor/tempSensor_max31865.py b/components/sensor/tempSensor_max31865.py index bbd71ad..72b5353 100755 --- a/components/sensor/tempSensor_max31865.py +++ b/components/sensor/tempSensor_max31865.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 import time -from components import ATemperatureSensor +from components import ATemperatureSensor, TemperatureSensorException import spidev @@ -38,6 +38,8 @@ class TempSensor_max31865(ATemperatureSensor): lsb = self.read_reg(0x02) if lsb & 0x01 == 0x00: digits = (256*msb + lsb) >> 1 + else + raise TemperatureSensorException("Could not read sensor!") self.write_reg(0x00, 0xA3) return digits diff --git a/tasks/tempsensor.py b/tasks/tempsensor.py index 04d59a5..cc276c5 100644 --- a/tasks/tempsensor.py +++ b/tasks/tempsensor.py @@ -2,7 +2,7 @@ import asyncio from tasks import ATask from ws.message import MsgIo from utils.value import ChangedFloat -from components import ATemperatureSensor +from components import ATemperatureSensor, TemperatureSensorException class TempSensorTask(ATask): @@ -30,6 +30,6 @@ class TempSensorTask(ATask): while True: try: self.temp = self.sensor.temperature() - except Exception: - pass + except TemperatureSensorException as e: + print(e) await asyncio.sleep(self.interval)