From 084d302b43f08d2eb303ec2c5ea9bab815751f6f Mon Sep 17 00:00:00 2001 From: "Ryan J. Dillon" Date: Tue, 22 Dec 2020 15:29:11 +0100 Subject: [PATCH] Prevent CPU overload on idle condition --- lib/oven.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/oven.py b/lib/oven.py index 0e53292..3ff9dc3 100644 --- a/lib/oven.py +++ b/lib/oven.py @@ -98,7 +98,9 @@ class Oven (threading.Thread): pid = 0 while True: - if self.state == Oven.STATE_RUNNING: + if self.state == Oven.STATE_IDLE: + time.sleep(1) + elif self.state == Oven.STATE_RUNNING: if self.simulate: self.runtime += 0.5 else: @@ -137,13 +139,14 @@ class Oven (threading.Thread): if(self.temp_sensor.temperature + config.thermocouple_offset >= config.emergency_shutoff_temp): log.info("emergency!!! temperature too high, shutting down") self.reset() - - #Capture the last temperature value. This must be done before set_heat, since there is a sleep in there now. + + # Capture the last temperature value. This must be done before set_heat, + # since there is a sleep in there now. last_temp = self.temp_sensor.temperature + config.thermocouple_offset - + self.set_heat(pid) - if self.runtime >= self.totaltime: + if self.runtime > self.totaltime: log.info("schedule ended, shutting down") self.reset()