From 1065676018aa9baa13cd5cc5696677695ce72a90 Mon Sep 17 00:00:00 2001 From: Alfredo Monclus Date: Sat, 22 Jan 2022 07:43:03 -0300 Subject: [PATCH] Temp_panel: Do not set temp if not defined or out of range (#449) --- panels/temperature.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/panels/temperature.py b/panels/temperature.py index 1fbafc21..aa2a2c56 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -205,23 +205,32 @@ class TemperaturePanel(ScreenPanel): return for heater in self.active_heaters: + MAX_TEMP = int(self._printer.get_config_section(heater)['max_temp']) if heater.startswith('extruder'): target = self.preheat_options[setting]["extruder"] - self._screen._ws.klippy.set_tool_temp(self._printer.get_tool_number(heater), target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_tool_temp(self._printer.get_tool_number(heater), target) elif heater.startswith('heater_bed'): target = self.preheat_options[setting]["bed"] - self._screen._ws.klippy.set_bed_temp(target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_bed_temp(target) elif heater.startswith('heater_generic '): target = self.preheat_options[setting]["heater_generic"] - self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), target) elif heater.startswith('temperature_fan '): target = self.preheat_options[setting]["temperature_fan"] - self._screen._ws.klippy.set_temp_fan_temp(" ".join(heater.split(" ")[1:]), target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_temp_fan_temp(" ".join(heater.split(" ")[1:]), target) else: logging.info("Unknown heater: %s" % heater) self._screen.show_popup_message(_("Unknown Heater") + heater) - self._printer.set_dev_stat(heater, "target", int(target)) - logging.info("Setting %s to %d" % (heater, target)) + if target <= MAX_TEMP: + if target > 0: + self._printer.set_dev_stat(heater, "target", int(target)) + logging.info("Setting %s to %d" % (heater, target)) + else: + self._screen.show_popup_message(_("Can't set above the maximum:") + (" %s" % MAX_TEMP)) if self.preheat_options[setting]['gcode']: self._screen._ws.klippy.gcode_script(self.preheat_options[setting]['gcode'])