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):
|
def preheat(self):
|
||||||
self.labels["preheat_grid"] = self._gtk.HomogeneousGrid()
|
self.labels["preheat_grid"] = self._gtk.HomogeneousGrid()
|
||||||
for i, option in enumerate(self.preheat_options):
|
for i, option in enumerate(self.preheat_options):
|
||||||
self.labels[option] = self._gtk.Button(option, "color%d" % ((i % 4)+1))
|
if option != "cooldown":
|
||||||
self.labels[option].connect("clicked", self.set_temperature, option)
|
self.labels[option] = self._gtk.Button(option, "color%d" % ((i % 4)+1))
|
||||||
self.labels['preheat_grid'].attach(self.labels[option], (i % 2), int(i/2), 1, 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 = Gtk.ScrolledWindow()
|
||||||
scroll.set_property("overlay-scrolling", False)
|
scroll.set_property("overlay-scrolling", False)
|
||||||
scroll.set_hexpand(True)
|
scroll.set_hexpand(True)
|
||||||
@ -226,35 +227,34 @@ class TemperaturePanel(ScreenPanel):
|
|||||||
self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), 0)
|
self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), 0)
|
||||||
logging.info("Setting %s to %d" % (heater, 0))
|
logging.info("Setting %s to %d" % (heater, 0))
|
||||||
self._printer.set_dev_stat(heater, "target", 0)
|
self._printer.set_dev_stat(heater, "target", 0)
|
||||||
return
|
else:
|
||||||
|
for heater in self.active_heaters:
|
||||||
for heater in self.active_heaters:
|
MAX_TEMP = int(float(self._printer.get_config_section(heater)['max_temp']))
|
||||||
MAX_TEMP = int(float(self._printer.get_config_section(heater)['max_temp']))
|
if heater.startswith('extruder'):
|
||||||
if heater.startswith('extruder'):
|
target = self.preheat_options[setting]["extruder"]
|
||||||
target = self.preheat_options[setting]["extruder"]
|
if target > 0 and target <= MAX_TEMP:
|
||||||
if target > 0 and target <= MAX_TEMP:
|
self._screen._ws.klippy.set_tool_temp(self._printer.get_tool_number(heater), target)
|
||||||
self._screen._ws.klippy.set_tool_temp(self._printer.get_tool_number(heater), target)
|
elif heater.startswith('heater_bed'):
|
||||||
elif heater.startswith('heater_bed'):
|
target = self.preheat_options[setting]["bed"]
|
||||||
target = self.preheat_options[setting]["bed"]
|
if target > 0 and target <= MAX_TEMP:
|
||||||
if target > 0 and target <= MAX_TEMP:
|
self._screen._ws.klippy.set_bed_temp(target)
|
||||||
self._screen._ws.klippy.set_bed_temp(target)
|
elif heater.startswith('heater_generic '):
|
||||||
elif heater.startswith('heater_generic '):
|
target = self.preheat_options[setting]["heater_generic"]
|
||||||
target = self.preheat_options[setting]["heater_generic"]
|
if target > 0 and target <= MAX_TEMP:
|
||||||
if target > 0 and target <= MAX_TEMP:
|
self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), target)
|
||||||
self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), target)
|
elif heater.startswith('temperature_fan '):
|
||||||
elif heater.startswith('temperature_fan '):
|
target = self.preheat_options[setting]["temperature_fan"]
|
||||||
target = self.preheat_options[setting]["temperature_fan"]
|
if target > 0 and target <= MAX_TEMP:
|
||||||
if target > 0 and target <= MAX_TEMP:
|
self._screen._ws.klippy.set_temp_fan_temp(" ".join(heater.split(" ")[1:]), target)
|
||||||
self._screen._ws.klippy.set_temp_fan_temp(" ".join(heater.split(" ")[1:]), target)
|
else:
|
||||||
else:
|
logging.info("Unknown heater: %s" % heater)
|
||||||
logging.info("Unknown heater: %s" % heater)
|
self._screen.show_popup_message(_("Unknown Heater") + " " + heater)
|
||||||
self._screen.show_popup_message(_("Unknown Heater") + " " + heater)
|
if target <= MAX_TEMP:
|
||||||
if target <= MAX_TEMP:
|
if target > 0:
|
||||||
if target > 0:
|
self._printer.set_dev_stat(heater, "target", int(target))
|
||||||
self._printer.set_dev_stat(heater, "target", int(target))
|
logging.info("Setting %s to %d" % (heater, target))
|
||||||
logging.info("Setting %s to %d" % (heater, target))
|
else:
|
||||||
else:
|
self._screen.show_popup_message(_("Can't set above the maximum:") + (" %s" % MAX_TEMP))
|
||||||
self._screen.show_popup_message(_("Can't set above the maximum:") + (" %s" % MAX_TEMP))
|
|
||||||
if self.preheat_options[setting]['gcode']:
|
if self.preheat_options[setting]['gcode']:
|
||||||
# This small delay is needed to properly update the target if the user configured something above
|
# 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
|
# and then changed the target again using the preheat gcode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user