diff --git a/panels/splash_screen.py b/panels/splash_screen.py index 459d136f..84268947 100644 --- a/panels/splash_screen.py +++ b/panels/splash_screen.py @@ -82,7 +82,7 @@ class SplashScreenPanel(ScreenPanel): self.clear_action_bar() printer = self._screen.connected_printer - if printer is not None: + if printer is not None and not self._screen.shutdown: printer_cfg = self._config.get_printer_config(printer) if printer_cfg is not None: power_devices = printer_cfg.get("power_devices", "") diff --git a/screen.py b/screen.py index e1f85092..88dc1b51 100644 --- a/screen.py +++ b/screen.py @@ -80,6 +80,7 @@ class KlipperScreen(Gtk.Window): init_printer_timeout = None dpms_timeout = None screensaver_timeout = None + reinit_count = 0 def __init__(self, args, version): self.version = version @@ -922,8 +923,10 @@ class KlipperScreen(Gtk.Window): return False else: # Moonraker is ready, set a loop to init the printer + self.reinit_count += 1 self.init_printer_timeout = GLib.timeout_add_seconds(3, self.init_printer) + self.shutdown = False powerdevs = self.apiclient.send_request("machine/device_power/devices") if powerdevs is not False: self.printer.configure_power_devices(powerdevs['result']) @@ -931,7 +934,8 @@ class KlipperScreen(Gtk.Window): if state['result']['klippy_connected'] is False: self.panels['splash_screen'].update_text( _("Moonraker: connected") + - ("\n\nKlipper: %s\n\n") % state['result']['klippy_state']) + ("\n\nKlipper: %s\n\n") % state['result']['klippy_state'] + + _("Retry #%s") % self.reinit_count) return False printer_info = self.apiclient.get_printer_info() @@ -985,6 +989,7 @@ class KlipperScreen(Gtk.Window): logging.info("Printer initialized") GLib.source_remove(self.init_printer_timeout) + self.reinit_count = 0 return False def printer_ready(self):