From 18d8f835a93098743acf8969ce534e64c6011ae8 Mon Sep 17 00:00:00 2001 From: alfrix Date: Wed, 16 Nov 2022 16:07:48 -0300 Subject: [PATCH] always reinit printer on state changes --- ks_includes/KlippyWebsocket.py | 2 +- ks_includes/printer.py | 6 +++--- screen.py | 9 ++------- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/ks_includes/KlippyWebsocket.py b/ks_includes/KlippyWebsocket.py index 8fa8da9a..e6d4074a 100644 --- a/ks_includes/KlippyWebsocket.py +++ b/ks_includes/KlippyWebsocket.py @@ -260,7 +260,7 @@ class MoonrakerApi: ) def object_subscription(self, updates): - logging.debug(f"Sending printer.objects.subscribe: {updates}") + logging.debug("Sending printer.objects.subscribe") return self._ws.send_method( "printer.objects.subscribe", updates diff --git a/ks_includes/printer.py b/ks_includes/printer.py index 09b1b713..aa51f2bc 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -51,7 +51,6 @@ class Printer: self.output_pin_count = None def reinit(self, printer_info, data): - logging.debug(f"Moonraker object status: {data}") self.config = data['configfile']['config'] self.extrudercount = 0 self.tempdevcount = 0 @@ -164,8 +163,9 @@ class Printer: def change_state(self, state): if state not in list(self.state_callbacks): # disconnected, startup, ready, shutdown, error, paused, printing return - logging.debug(f"Changing state from '{self.state}' to '{state}'") - self.state = state + if state != self.state: + logging.debug(f"Changing state from '{self.state}' to '{state}'") + self.state = state if self.state_callbacks[state] is not None: logging.debug(f"Adding callback for state: {state}") Gdk.threads_add_idle( diff --git a/screen.py b/screen.py index 10591734..cd27ff2e 100644 --- a/screen.py +++ b/screen.py @@ -704,14 +704,15 @@ class KlipperScreen(Gtk.Window): if self.is_updating(): self.update_queue.append([callback]) else: + self.init_printer() callback() def state_disconnected(self, msg=None): logging.debug("### Going to disconnected") + self.printer.state = "disconnected" self.close_screensaver() msg = _("Klipper has disconnected") if msg is None else msg self.printer_initializing(msg) - self.init_printer() def state_error(self): self.close_screensaver() @@ -742,7 +743,6 @@ class KlipperScreen(Gtk.Window): # Do not return to main menu if completing a job, timeouts/user input will return if "job_status" in self._cur_panels: return - self.init_printer() self.printer_ready() def state_startup(self): @@ -915,11 +915,6 @@ class KlipperScreen(Gtk.Window): self.printer_initializing("Unable to get printer info from moonraker") return False - data = self.apiclient.send_request("printer/objects/query?" + "&".join(PRINTER_BASE_STATUS_OBJECTS)) - if data is False: - self.printer_initializing("Error getting printer object data") - return False - config = self.apiclient.send_request("printer/objects/query?configfile") if config is False: self.printer_initializing("Error getting printer configuration")