Merge branch 'develop'

This commit is contained in:
张开科 2024-09-29 15:12:12 +08:00
commit 482d926ce1
4 changed files with 45 additions and 39 deletions

View File

@ -263,14 +263,14 @@ class KlipperScreenConfig:
{"screen_blanking": {
"section": "main", "name": _("Screen Power Off Time"), "type": "dropdown",
"tooltip": _("Timeout for screen black-out or power-off"),
"value": "3600", "callback": screen.set_screenblanking_timeout, "options": [
"value": "off", "callback": screen.set_screenblanking_timeout, "options": [
{"name": _("Never"), "value": "off"}]
}},
{"screen_blanking_printing": {
"section": "main", "name": _("Screen Power Off Time") + " (" + _("Printing") + ")",
"type": "dropdown",
"tooltip": _("Timeout for screen black-out or power-off during printing"),
"value": "3600", "callback": screen.set_screenblanking_printing_timeout, "options": [
"value": "off", "callback": screen.set_screenblanking_printing_timeout, "options": [
{"name": _("Never"), "value": "off"}]
}},
{"24htime": {"section": "main", "name": _("24 Hour Time"), "type": "binary",
@ -279,15 +279,15 @@ class KlipperScreenConfig:
{"font_size": {
"section": "main", "name": _("Font Size"), "type": "dropdown",
"tooltip": _("Inversely affects the icon size"),
"value": "medium", "callback": screen.restart_ks, "options": [
{"name": _("Small"), "value": "small"},
{"name": _("Medium") + " " + _("(default)"), "value": "medium"},
"value": "small", "callback": screen.restart_ks, "options": [
{"name": _("Small") + " " + _("(default)"),"value": "small"},
{"name": _("Medium"), "value": "medium"},
{"name": _("Large"), "value": "large"},
{"name": _("Extra Large"), "value": "extralarge"},
{"name": _("Maximum"), "value": "max"}]}},
{"confirm_estop": {"section": "main", "name": _("Confirm Emergency Stop"), "type": "binary",
"tooltip": _("Asks for confirmation before stopping"),
"value": "False"}},
"value": "True"}},
{"only_heaters": {"section": "main", "name": _("Hide sensors in Temp."), "type": "binary",
"tooltip": _("Show only devices that are able to be set"),
"value": "False", "callback": screen.reload_panels}},

View File

@ -129,9 +129,9 @@ class Panel(ScreenPanel):
# The minimum is 1, but least 2 values are needed to create a scale
max_velocity = max(int(float(printer_cfg["max_velocity"])), 2)
if "max_z_velocity" in printer_cfg:
max_z_velocity = max(int(float(printer_cfg["max_z_velocity"])), 2)
self.max_z_velocity = max(int(float(printer_cfg["max_z_velocity"])), 2)
else:
max_z_velocity = max_velocity
self.max_z_velocity = max_velocity
configurable_options = [
{
@ -184,7 +184,7 @@ class Panel(ScreenPanel):
"type": "scale",
"tooltip": _("Only for the move panel"),
"value": "10",
"range": [1, max_z_velocity],
"range": [1, self.max_z_velocity],
"step": 1,
}
},
@ -249,14 +249,22 @@ class Panel(ScreenPanel):
direction = "-" if direction == "+" else "+"
dist = f"{direction}{self.distance}"
config_key = "move_speed_z" if axis == "Z" else "move_speed_xy"
config_key = "move_speed_z" if axis == "z" else "move_speed_xy"
if axis == "z":
pos_z_text = self.labels["pos_z"].get_text()
pos_z_match = re.search(r"Z:\s*([-+]?\d*\.\d+|\d+)", pos_z_text)
if pos_z_match:
z_value = float(pos_z_match.group(1))
if direction == "-" and z_value < float(self.distance):
self._screen.show_popup_message(_("Z axis cannot move to negative values"))
return
speed = (
None
if self.ks_printer_cfg is None
else self.ks_printer_cfg.getint(config_key, None)
)
if speed is None:
speed = self._config.get_config()["main"].getint(config_key, 20)
speed = self._config.get_config()["main"].getint(config_key, self.max_z_velocity)
speed = 60 * max(1, speed)
script = f"{KlippyGcodes.MOVE_RELATIVE}\nG0 {axis}{dist} F{speed}"
self._screen._send_action(widget, "printer.gcode.script", {"script": script})

View File

@ -12,11 +12,6 @@ class Panel(ScreenPanel):
self.printers = self.settings = self.langs = {}
self.menu = ['settings_menu']
options = self._config.get_configurable_options().copy()
options.append({"printers": {
"name": _("Printer Connections"),
"type": "menu",
"menu": "printers"
}})
options.append({"lang": {
"name": _("Language"),
"type": "menu",
@ -40,18 +35,4 @@ class Panel(ScreenPanel):
}
self.add_option("lang", self.langs, lang, self.langs[lang])
self.labels['printers_menu'] = self._gtk.ScrolledWindow()
self.labels['printers'] = Gtk.Grid()
self.labels['printers_menu'].add(self.labels['printers'])
for printer in self._config.get_printers():
pname = list(printer)[0]
self.printers[pname] = {
"name": pname,
"section": f"printer {pname}",
"type": "printer",
"moonraker_host": printer[pname]['moonraker_host'],
"moonraker_port": printer[pname]['moonraker_port'],
}
self.add_option("printers", self.printers, pname, self.printers[pname])
self.content.add(self.labels['settings_menu'])

View File

@ -26,10 +26,24 @@ class Panel(ScreenPanel):
self.target_clicks = 10
self.grid = Gtk.Grid(column_spacing=10, row_spacing=5)
sysinfo = screen.printer.system_info
logging.info(sysinfo)
self.sysinfo = screen.printer.system_info
if not self.sysinfo:
logging.debug("Asking for info")
self.sysinfo = screen.apiclient.send_request("machine/system_info")
if 'system_info' in self.sysinfo:
screen.printer.system_info = self.sysinfo['system_info']
self.sysinfo = self.sysinfo['system_info']
logging.debug(self.sysinfo)
if self.sysinfo:
self.content.add(self.create_layout())
else:
self.content.add(Gtk.Label(label=_("No info available"), vexpand=True))
self.cpu_count = int(sysinfo["cpu_info"]["cpu_count"])
def back(self):
if not self.sysinfo:
self._screen.panels_reinit.append("system")
return False
def create_layout(self):
self.labels["cpu_usage"] = Gtk.Label(label="", xalign=0)
self.grid.attach(self.labels["cpu_usage"], 0, self.current_row, 1, 1)
self.scales["cpu_usage"] = Gtk.ProgressBar(
@ -49,9 +63,9 @@ class Panel(ScreenPanel):
self.grid.attach(Gtk.Separator(), 0, self.current_row, 2, 1)
self.current_row += 1
self.machine_info(sysinfo)
self.machine_info()
self.current_row += 1
self.populate_info(sysinfo)
self.populate_info()
scroll = self._gtk.ScrolledWindow()
scroll.add(self.grid)
@ -77,6 +91,7 @@ class Panel(ScreenPanel):
self.add_option(
"model", self.models, model_name, self.models[model_name]
)
return scroll
def change_model(self, widget, event):
self.model_config.generate_config(event)
def on_model_click(self, widget, event):
@ -107,7 +122,7 @@ class Panel(ScreenPanel):
label = Gtk.Label(label=text, use_markup=True, xalign=0, wrap=True)
self.grid.attach(label, column, self.current_row, 1, 1)
self.current_row += 1
def machine_info(self, sysinfo):
def machine_info(self):
self.add_label_to_grid(self.prettify("device"), 0, bold=True)
self.current_row -= 1
self.add_label_to_grid("Maker: CreatBot", 1)
@ -120,8 +135,8 @@ class Panel(ScreenPanel):
event_box.add(label)
self.add_label_to_grid(f"Name: {self._screen.connecting_to_printer}", 1)
def populate_info(self, sysinfo):
for category, data in sysinfo.items():
def populate_info(self):
for category, data in self.sysinfo.items():
if category == "python":
self.add_label_to_grid(self.prettify(category), 0, bold=True)
self.current_row -= 1
@ -139,7 +154,7 @@ class Panel(ScreenPanel):
"service_state",
"instance_ids",
)
or not sysinfo[category]
or not self.sysinfo[category]
):
continue
@ -175,6 +190,8 @@ class Panel(ScreenPanel):
self.add_label_to_grid(f"{self.prettify(key)}: {value}", 1)
def process_update(self, action, data):
if not self.sysinfo:
return
if action == "notify_proc_stat_update":
self.labels["cpu_usage"].set_label(
f'CPU: {data["system_cpu_usage"]["cpu"]:.0f}%'