From 1b07be070b48c3f60b17ea8e8b19f1f52864ece3 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Fri, 17 Aug 2018 10:20:12 -0400 Subject: heater_fan: Allow multiple heaters to be defined for a heater_fan Support the case where a single cooling fan is used with multiple extruders. Signed-off-by: Kevin O'Connor --- klippy/extras/heater_fan.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'klippy/extras/heater_fan.py') diff --git a/klippy/extras/heater_fan.py b/klippy/extras/heater_fan.py index 1e67c5a2..94b2679e 100644 --- a/klippy/extras/heater_fan.py +++ b/klippy/extras/heater_fan.py @@ -12,20 +12,23 @@ class PrinterHeaterFan: self.printer = config.get_printer() self.heater_name = config.get("heater", "extruder0") self.heater_temp = config.getfloat("heater_temp", 50.0) + self.heaters = [] self.fan = fan.PrinterFan(config, default_shutdown_speed=1.) self.mcu = self.fan.mcu_fan.get_mcu() self.fan_speed = config.getfloat("fan_speed", 1., minval=0., maxval=1.) def printer_state(self, state): if state == 'ready': pheater = self.printer.lookup_object('heater') - self.heater = pheater.lookup_heater(self.heater_name) + self.heaters = [pheater.lookup_heater(n.strip()) + for n in self.heater_name.split(',')] reactor = self.printer.get_reactor() reactor.register_timer(self.callback, reactor.NOW) def callback(self, eventtime): - current_temp, target_temp = self.heater.get_temp(eventtime) power = 0. - if target_temp or current_temp > self.heater_temp: - power = self.fan_speed + for heater in self.heaters: + current_temp, target_temp = heater.get_temp(eventtime) + if target_temp or current_temp > self.heater_temp: + power = self.fan_speed print_time = self.mcu.estimated_print_time(eventtime) + PIN_MIN_TIME self.fan.set_speed(print_time, power) return eventtime + 1. -- cgit v1.2.3-70-g09d2