printer: change how the tempstore is initialized and updated, to avoid unnecesary retries

This commit is contained in:
alfrix
2024-01-26 22:43:29 -03:00
parent 051a53ec22
commit 3c911ba7c7
4 changed files with 21 additions and 9 deletions

View File

@@ -654,6 +654,7 @@ class KlipperScreen(Gtk.Window):
self.show_panel("printer_select", _("Printer Select"), remove_all=True)
def websocket_disconnected(self, msg):
logging.debug("### websocket_disconnected")
self.printer_initializing(msg, remove=True)
self.printer.state = "disconnected"
self.connecting = True
@@ -663,6 +664,7 @@ class KlipperScreen(Gtk.Window):
def state_disconnected(self):
logging.debug("### Going to disconnected")
self.printer.stop_tempstore_updates()
self.close_screensaver()
self.initialized = False
self.reinit_count = 0
@@ -704,6 +706,7 @@ class KlipperScreen(Gtk.Window):
def state_shutdown(self):
self.close_screensaver()
self.printer.stop_tempstore_updates()
msg = self.printer.get_stat("webhooks", "state_message")
msg = msg if "ready" not in msg else ""
self.printer_initializing(_("Klipper has shutdown") + "\n\n" + msg, remove=True)
@@ -977,8 +980,6 @@ class KlipperScreen(Gtk.Window):
extra_items))
if data is False:
return self._init_printer("Error getting printer object data with extra items")
if len(self.printer.get_temp_devices()) > 0:
self.init_tempstore()
self.files.set_gcodes_path()
self.files.refresh_files()
@@ -992,6 +993,8 @@ class KlipperScreen(Gtk.Window):
return False
def init_tempstore(self):
if len(self.printer.get_temp_devices()) == 0:
return
tempstore = self.apiclient.send_request("server/temperature_store")
if tempstore and 'result' in tempstore and tempstore['result']:
self.printer.init_temp_store(tempstore['result'])