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 return text
def formatTemperatureString(self, temp, target): 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: if (temp - 2 < target < temp + 2) or round(target, 0) == 0:
return str(round(temp, 1)) + "°C" # °C →" return str(round(temp, 1)) + "°C" # °C →"
return str(round(temp)) + " °C\n(" + str(round(target)) + ")" return str(round(temp)) + " °C\n(" + str(round(target)) + ")"

View File

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

View File

@ -116,7 +116,7 @@ class ScreenPanel:
self.labels[label]['l'].set_text(text) self.labels[label]['l'].set_text(text)
def update_temp(self, dev, temp, target, name=None): 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: if name is None:
self.labels[dev].set_label(self._gtk.formatTemperatureString(temp, target)) self.labels[dev].set_label(self._gtk.formatTemperatureString(temp, target))
else: else:

View File

@ -49,9 +49,9 @@ class ExtrudePanel(ScreenPanel):
limit = 5 limit = 5
for i, extruder in enumerate(self._printer.get_tools()): for i, extruder in enumerate(self._printer.get_tools()):
if self._printer.extrudercount > 1: 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: 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) self.labels[extruder].connect("clicked", self.change_extruder, extruder)
if extruder == self.current_extruder: if extruder == self.current_extruder:
self.labels[extruder].get_style_context().add_class("button_active") 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) self.labels["dist" + str(i)].set_active(False)
def change_extruder(self, widget, extruder): def change_extruder(self, widget, extruder):
if extruder == self.current_extruder: logging.info("Changing extruder to %s", extruder)
return 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)) 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 # When printing start in temp_delta mode and only select tools
state = self._printer.get_state() state = self._printer.get_state()
logging.info(state) logging.info(state)
selection = []
if "extruder" in self._printer.get_tools():
selection.append("extruder")
if state not in ["printing", "paused"]: if state not in ["printing", "paused"]:
self.show_preheat = True self.show_preheat = True
selection = self._printer.get_tools() + self._printer.get_heaters() selection.extend(self._printer.get_heaters())
else: else:
self.show_preheat = False self.show_preheat = False
selection = self._printer.get_tools()
# Select heaters # Select heaters
for h in selection: for h in selection: