From 094b9de69e0438a5bbb6f6e67b19d842e0395717 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Wed, 12 Sep 2018 18:46:25 -0400 Subject: gcode: Send proactive state messages Send a g-code info message on printer state changes. Signed-off-by: Kevin O'Connor --- klippy/gcode.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'klippy/gcode.py') diff --git a/klippy/gcode.py b/klippy/gcode.py index 04b1ca4c..58602304 100644 --- a/klippy/gcode.py +++ b/klippy/gcode.py @@ -106,8 +106,11 @@ class GCodeParser: self.dump_debug() if self.is_fileinput: self.printer.request_exit('error_exit') + self._respond_state("Shutdown") return if state != 'ready': + if state == 'disconnect': + self._respond_state("Disconnect") return self.is_printer_ready = True self.gcode_handlers = self.ready_gcode_handlers @@ -125,6 +128,7 @@ class GCodeParser: self.fan = self.printer.lookup_object('fan', None) if self.is_fileinput and self.fd_handle is None: self.fd_handle = self.reactor.register_fd(self.fd, self.process_data) + self._respond_state("Ready") def reset_last_position(self): self.last_position = self.position_with_transform() def dump_debug(self): @@ -287,6 +291,8 @@ class GCodeParser: self.respond('!! %s' % (lines[0].strip(),)) if self.is_fileinput: self.printer.request_exit('error_exit') + def _respond_state(self, state): + self.respond_info("Klipper state: %s" % (state,)) # Parameter parsing helpers class sentinel: pass def get_str(self, name, params, default=sentinel, parser=str, @@ -671,11 +677,12 @@ class GCodeParser: cmd_STATUS_when_not_ready = True cmd_STATUS_help = "Report the printer status" def cmd_STATUS(self, params): - msg = self.printer.get_state_message() if self.is_printer_ready: - self.respond_info(msg) - else: - self.respond_error(msg) + self._respond_state("Ready") + return + msg = self.printer.get_state_message() + self._respond_state("Not ready") + self.respond_error(msg) cmd_HELP_when_not_ready = True def cmd_HELP(self, params): cmdhelp = [] -- cgit v1.2.3-70-g09d2