improved handling of total time in oven

MAX31855-EH
Sebastian Steuer 2013-11-24 15:27:29 +01:00
rodzic aad897fb75
commit 24c551238b
1 zmienionych plików z 6 dodań i 4 usunięć

Wyświetl plik

@ -21,6 +21,7 @@ class Oven (threading.Thread):
self.profile = None self.profile = None
self.start_time = 0 self.start_time = 0
self.runtime = 0 self.runtime = 0
self.totaltime = 0
self.power = 0.0 self.power = 0.0
self.state = Oven.STATE_IDLE self.state = Oven.STATE_IDLE
self.temp_sensor = TempSensor(self) self.temp_sensor = TempSensor(self)
@ -29,6 +30,7 @@ class Oven (threading.Thread):
def run_profile(self, profile): def run_profile(self, profile):
self.profile = profile self.profile = profile
self.totaltime = 300.0
self.state = Oven.STATE_RUNNING self.state = Oven.STATE_RUNNING
self.start_time = datetime.datetime.now() self.start_time = datetime.datetime.now()
log.info("Starting") log.info("Starting")
@ -40,12 +42,12 @@ class Oven (threading.Thread):
while True: while True:
if self.state == Oven.STATE_RUNNING: if self.state == Oven.STATE_RUNNING:
self.runtime = (datetime.datetime.now() - self.start_time).total_seconds() self.runtime = (datetime.datetime.now() - self.start_time).total_seconds()
log.info("running at %.1f deg C, power %.2f (%.1fs/%.0f)"%(self.temp_sensor.temperature,self.power,self.runtime,300.0)) log.info("running at %.1f deg C, power %.2f (%.1fs/%.0f)"%(self.temp_sensor.temperature,self.power,self.runtime,self.totaltime))
if self.temp_sensor.temperature < 250: if self.temp_sensor.temperature < 250:
self.power = 1.0 self.power = 1.0
else: else:
self.power = 0.0 self.power = 0.0
if self.runtime > 300: if self.runtime >= self.totaltime:
self.power = 0.0 self.power = 0.0
self.state = Oven.STATE_IDLE self.state = Oven.STATE_IDLE
elif self.state == Oven.STATE_ABORT: elif self.state == Oven.STATE_ABORT:
@ -61,7 +63,7 @@ class Oven (threading.Thread):
'temperature': self.temp_sensor.temperature, 'temperature': self.temp_sensor.temperature,
'state': self.state, 'state': self.state,
'power': self.power, 'power': self.power,
'totaltime': 300 'totaltime': self.totaltime
} }
return state return state