Add possibility to define custom code for cooling (#579)
These changes allow to define custom code to be run when using the cooldown preset. Here an example in the configuration: ``` [preheat cooldown] gcode: M107 ```
This commit is contained in:
parent
618c9ac0e8
commit
3ea0b09863
@ -83,9 +83,10 @@ class TemperaturePanel(ScreenPanel):
|
||||
def preheat(self):
|
||||
self.labels["preheat_grid"] = self._gtk.HomogeneousGrid()
|
||||
for i, option in enumerate(self.preheat_options):
|
||||
self.labels[option] = self._gtk.Button(option, "color%d" % ((i % 4)+1))
|
||||
self.labels[option].connect("clicked", self.set_temperature, option)
|
||||
self.labels['preheat_grid'].attach(self.labels[option], (i % 2), int(i/2), 1, 1)
|
||||
if option != "cooldown":
|
||||
self.labels[option] = self._gtk.Button(option, "color%d" % ((i % 4)+1))
|
||||
self.labels[option].connect("clicked", self.set_temperature, option)
|
||||
self.labels['preheat_grid'].attach(self.labels[option], (i % 2), int(i/2), 1, 1)
|
||||
scroll = Gtk.ScrolledWindow()
|
||||
scroll.set_property("overlay-scrolling", False)
|
||||
scroll.set_hexpand(True)
|
||||
@ -226,35 +227,34 @@ class TemperaturePanel(ScreenPanel):
|
||||
self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), 0)
|
||||
logging.info("Setting %s to %d" % (heater, 0))
|
||||
self._printer.set_dev_stat(heater, "target", 0)
|
||||
return
|
||||
|
||||
for heater in self.active_heaters:
|
||||
MAX_TEMP = int(float(self._printer.get_config_section(heater)['max_temp']))
|
||||
if heater.startswith('extruder'):
|
||||
target = self.preheat_options[setting]["extruder"]
|
||||
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"]
|
||||
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"]
|
||||
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"]
|
||||
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)
|
||||
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))
|
||||
else:
|
||||
for heater in self.active_heaters:
|
||||
MAX_TEMP = int(float(self._printer.get_config_section(heater)['max_temp']))
|
||||
if heater.startswith('extruder'):
|
||||
target = self.preheat_options[setting]["extruder"]
|
||||
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"]
|
||||
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"]
|
||||
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"]
|
||||
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)
|
||||
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']:
|
||||
# This small delay is needed to properly update the target if the user configured something above
|
||||
# and then changed the target again using the preheat gcode
|
||||
|
Loading…
x
Reference in New Issue
Block a user