diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-09-12 18:46:25 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-09-12 21:31:27 -0400 |
commit | 094b9de69e0438a5bbb6f6e67b19d842e0395717 (patch) | |
tree | 3c806cf49a17827a4cfd7caacd07c2ac04afd752 /klippy/gcode.py | |
parent | 91691afdcf30e021c3f080af7097a9c4a68e5332 (diff) | |
download | kutter-094b9de69e0438a5bbb6f6e67b19d842e0395717.tar.gz kutter-094b9de69e0438a5bbb6f6e67b19d842e0395717.tar.xz kutter-094b9de69e0438a5bbb6f6e67b19d842e0395717.zip |
gcode: Send proactive state messages
Send a g-code info message on printer state changes.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/gcode.py')
-rw-r--r-- | klippy/gcode.py | 15 |
1 files changed, 11 insertions, 4 deletions
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 = [] |