Temp_panel: Do not set temp if not defined or out of range (#449)

This commit is contained in:
Alfredo Monclus 2022-01-22 07:43:03 -03:00 committed by GitHub
parent efa6344964
commit 1065676018
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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'])