diff options
author | Arksine <arksine.code@gmail.com> | 2020-06-19 07:35:31 -0400 |
---|---|---|
committer | KevinOConnor <kevin@koconnor.net> | 2020-06-24 19:07:33 -0400 |
commit | a342770ac5aab76e43280b7ae037e772873bc716 (patch) | |
tree | 4988a9370ed7dc79a9264180d3b6c3b22fe3478f /klippy/extras/pause_resume.py | |
parent | a31dd0ff0e3b38eeffa5d456967fd70a1d033087 (diff) | |
download | kutter-a342770ac5aab76e43280b7ae037e772873bc716.tar.gz kutter-a342770ac5aab76e43280b7ae037e772873bc716.tar.xz kutter-a342770ac5aab76e43280b7ae037e772873bc716.zip |
pause_resume: Add CANCEL_PRINT gcode
Register API endpoints for "pause_resume/pause", "pause_resume/resume" and "pause_resume/cancel".
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Diffstat (limited to 'klippy/extras/pause_resume.py')
-rw-r--r-- | klippy/extras/pause_resume.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/klippy/extras/pause_resume.py b/klippy/extras/pause_resume.py index 65086fe2..d734a994 100644 --- a/klippy/extras/pause_resume.py +++ b/klippy/extras/pause_resume.py @@ -17,8 +17,29 @@ class PauseResume: self.gcode.register_command("PAUSE", self.cmd_PAUSE) self.gcode.register_command("RESUME", self.cmd_RESUME) self.gcode.register_command("CLEAR_PAUSE", self.cmd_CLEAR_PAUSE) + self.gcode.register_command("CANCEL_PRINT", self.cmd_CANCEL_PRINT) + webhooks = self.printer.lookup_object('webhooks') + webhooks.register_endpoint( + "pause_resume/cancel", self._handle_web_request) + webhooks.register_endpoint( + "pause_resume/pause", self._handle_web_request) + webhooks.register_endpoint( + "pause_resume/resume", self._handle_web_request) def handle_ready(self): self.v_sd = self.printer.lookup_object('virtual_sdcard', None) + def _handle_web_request(self, web_request): + if web_request.get_method() != 'POST': + raise web_request.error("Invalid Request Method") + path = web_request.get_path() + if path == "pause_resume/cancel": + script = "CANCEL_PRINT" + elif path == "pause_resume/pause": + script = "PAUSE" + elif path == "pause_resume/resume": + script = "RESUME" + else: + raise web_request.error("Invalid Path") + self.gcode.run_script(script) def get_status(self, eventtime): return { 'is_paused': self.is_paused @@ -60,6 +81,11 @@ class PauseResume: gcmd.respond_info("action:resumed") def cmd_CLEAR_PAUSE(self, gcmd): self.is_paused = self.pause_command_sent = False + def cmd_CANCEL_PRINT(self, gcmd): + self.cmd_PAUSE(gcmd) + if not self.sd_paused: + gcmd.respond_info("action:cancel") + self.cmd_CLEAR_PAUSE(gcmd) def load_config(config): return PauseResume(config) |