From 610ad4cdcdb582d1de99e17594c3af25b797502f Mon Sep 17 00:00:00 2001 From: Andrew de Quincey Date: Sat, 1 May 2021 17:32:21 +0100 Subject: [PATCH] calculate bad percent in temperature thread to prevent threading/boundary issues --- lib/oven.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/oven.py b/lib/oven.py index 526d474..adfe692 100644 --- a/lib/oven.py +++ b/lib/oven.py @@ -100,6 +100,7 @@ class TempSensorReal(TempSensor): self.bad_count = 0 self.ok_count = 0 self.bad_stamp = 0 + self.bad_percent = 0 if config.max31855: log.info("init MAX31855") @@ -126,7 +127,8 @@ class TempSensorReal(TempSensor): temps = [] while True: # reset error counter if time is up - if (time.time() - self.bad_stamp) > (self.time_step * 4): + if (time.time() - self.bad_stamp) > (self.time_step * 2): + self.bad_percent = (self.bad_count / (self.bad_count + self.ok_count)) * 100 self.bad_count = 0 self.ok_count = 0 self.bad_stamp = time.time() @@ -244,7 +246,7 @@ class Oven(threading.Thread): log.info("emergency!!! unknown thermocouple error, shutting down") self.reset() - if self.board.temp_sensor.bad_count / (self.board.temp_sensor.bad_count + self.board.temp_sensor.ok_count) > 0.3: + if self.board.temp_sensor.bad_percent > 30: log.info("emergency!!! too many errors in a short period, shutting down") self.reset()