basic support for extruder_stepper

This commit is contained in:
alfrix 2022-06-21 13:51:09 -03:00 committed by Alfredo Monclus
parent c6df1b667c
commit 5a02ac75ae
5 changed files with 19 additions and 18 deletions

View File

@ -291,6 +291,11 @@ class KlippyGtk:
return text
def formatTemperatureString(self, temp, target):
if temp is None:
logging.debug("Temp is none")
return
if target is None:
target = 0
if (temp - 2 < target < temp + 2) or round(target, 0) == 0:
return str(round(temp, 1)) + "°C" # °C →"
return str(round(temp)) + " °C\n(" + str(round(target)) + ")"

View File

@ -19,7 +19,6 @@ class Printer:
"shutdown": None
}
tools = []
toolcount = 0
extrudercount = 0
tempdevcount = 0
fancount = 0
@ -38,7 +37,6 @@ class Printer:
self.power_devices = None
self.state_callbacks = None
self.tools = None
self.toolcount = None
self.extrudercount = None
self.tempdevcount = None
self.fancount = None
@ -51,7 +49,6 @@ class Printer:
def reinit(self, printer_info, data):
logging.debug("Moonraker object status: %s" % data)
self.config = data['configfile']['config']
self.toolcount = 0
self.extrudercount = 0
self.tempdevcount = 0
self.fancount = 0
@ -69,19 +66,15 @@ class Printer:
for x in self.config.keys():
if x[0:8] == "extruder":
self.tools.append(x)
self.tools = sorted(self.tools)
self.extrudercount += 1
if x.startswith('extruder_stepper'):
continue
self.devices[x] = {
"temperature": 0,
"target": 0
}
self.tools.append(x)
self.tools = sorted(self.tools)
self.toolcount += 1
if "shared_heater" in self.config[x]:
continue
self.extrudercount += 1
if x == 'heater_bed' or x.startswith('heater_generic ') or x.startswith('temperature_sensor ') \
or x.startswith('temperature_fan '):
self.devices[x] = {
@ -104,7 +97,6 @@ class Printer:
self.process_update(data)
logging.info("Klipper version: %s", self.klipper['version'])
logging.info("# Toolcount: %s", str(self.toolcount))
logging.info("# Extruders: %s", str(self.extrudercount))
logging.info("# Temperature devices: %s", str(self.tempdevcount))
logging.info("# Fans: %s", str(self.fancount))

View File

@ -116,7 +116,7 @@ class ScreenPanel:
self.labels[label]['l'].set_text(text)
def update_temp(self, dev, temp, target, name=None):
if dev in self.labels:
if dev in self.labels and temp is not None:
if name is None:
self.labels[dev].set_label(self._gtk.formatTemperatureString(temp, target))
else:

View File

@ -49,9 +49,9 @@ class ExtrudePanel(ScreenPanel):
limit = 5
for i, extruder in enumerate(self._printer.get_tools()):
if self._printer.extrudercount > 1:
self.labels[extruder] = self._gtk.ButtonImage("extruder-%s" % i, _("Tool") + " %s" % str(i))
self.labels[extruder] = self._gtk.ButtonImage("extruder-%s" % i, "")
else:
self.labels[extruder] = self._gtk.ButtonImage("extruder", _("Tool"))
self.labels[extruder] = self._gtk.ButtonImage("extruder", "")
self.labels[extruder].connect("clicked", self.change_extruder, extruder)
if extruder == self.current_extruder:
self.labels[extruder].get_style_context().add_class("button_active")
@ -218,8 +218,10 @@ class ExtrudePanel(ScreenPanel):
self.labels["dist" + str(i)].set_active(False)
def change_extruder(self, widget, extruder):
if extruder == self.current_extruder:
return
logging.info("Changing extruder to %s", extruder)
for tool in self._printer.get_tools():
self.labels[tool].get_style_context().remove_class("button_active")
self.labels[extruder].get_style_context().add_class("button_active")
self._screen._ws.klippy.gcode_script("T%s" % self._printer.get_tool_number(extruder))

View File

@ -27,12 +27,14 @@ class TemperaturePanel(ScreenPanel):
# When printing start in temp_delta mode and only select tools
state = self._printer.get_state()
logging.info(state)
selection = []
if "extruder" in self._printer.get_tools():
selection.append("extruder")
if state not in ["printing", "paused"]:
self.show_preheat = True
selection = self._printer.get_tools() + self._printer.get_heaters()
selection.extend(self._printer.get_heaters())
else:
self.show_preheat = False
selection = self._printer.get_tools()
# Select heaters
for h in selection: