moonraker: rework Klippy init sequence
Stop polling Klippy after it it has exited the "startup" state. When this has been detected, emit a "klippy_startup" event. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
a0b5275cc9
commit
9d7dac3425
|
@ -358,8 +358,10 @@ class Server:
|
||||||
else:
|
else:
|
||||||
logging.info("GCode Output Subscribed")
|
logging.info("GCode Output Subscribed")
|
||||||
self.init_list.append("gcode_output_sub")
|
self.init_list.append("gcode_output_sub")
|
||||||
if "klippy_ready" in self.init_list or \
|
if (
|
||||||
not self.klippy_connection.is_connected():
|
"startup_complete" in self.init_list or
|
||||||
|
not self.klippy_connection.is_connected()
|
||||||
|
):
|
||||||
# Either Klippy is ready or the connection dropped
|
# Either Klippy is ready or the connection dropped
|
||||||
# during initialization. Exit initialization
|
# during initialization. Exit initialization
|
||||||
self.init_attempts = 0
|
self.init_attempts = 0
|
||||||
|
@ -395,10 +397,15 @@ class Server:
|
||||||
if send_id:
|
if send_id:
|
||||||
self.init_list.append("identified")
|
self.init_list.append("identified")
|
||||||
self.send_event("server:klippy_identified")
|
self.send_event("server:klippy_identified")
|
||||||
if self.klippy_state == "ready":
|
if self.klippy_state != "startup":
|
||||||
|
self.init_list.append('startup_complete')
|
||||||
|
self.send_event("server:klippy_started", self.klippy_state)
|
||||||
|
if self.klippy_state != "ready":
|
||||||
|
msg = result.get('state_message', "Klippy Not Ready")
|
||||||
|
logging.info("\n" + msg)
|
||||||
|
return
|
||||||
await self._verify_klippy_requirements()
|
await self._verify_klippy_requirements()
|
||||||
logging.info("Klippy ready")
|
logging.info("Klippy ready")
|
||||||
self.init_list.append('klippy_ready')
|
|
||||||
# register methods with klippy
|
# register methods with klippy
|
||||||
for method in self.klippy_reg_methods:
|
for method in self.klippy_reg_methods:
|
||||||
try:
|
try:
|
||||||
|
@ -406,10 +413,6 @@ class Server:
|
||||||
except ServerError:
|
except ServerError:
|
||||||
logging.exception(f"Unable to register method '{method}'")
|
logging.exception(f"Unable to register method '{method}'")
|
||||||
self.send_event("server:klippy_ready")
|
self.send_event("server:klippy_ready")
|
||||||
elif self.init_attempts % LOG_ATTEMPT_INTERVAL == 0 and \
|
|
||||||
self.init_attempts <= MAX_LOG_ATTEMPTS:
|
|
||||||
msg = result.get('state_message', "Klippy Not Ready")
|
|
||||||
logging.info("\n" + msg)
|
|
||||||
|
|
||||||
async def _verify_klippy_requirements(self) -> None:
|
async def _verify_klippy_requirements(self) -> None:
|
||||||
result = await self.klippy_apis.get_object_list(default=None)
|
result = await self.klippy_apis.get_object_list(default=None)
|
||||||
|
|
Loading…
Reference in New Issue