aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/pause_resume.py
diff options
context:
space:
mode:
authorArksine <arksine.code@gmail.com>2020-06-19 07:35:31 -0400
committerKevinOConnor <kevin@koconnor.net>2020-06-24 19:07:33 -0400
commita342770ac5aab76e43280b7ae037e772873bc716 (patch)
tree4988a9370ed7dc79a9264180d3b6c3b22fe3478f /klippy/extras/pause_resume.py
parenta31dd0ff0e3b38eeffa5d456967fd70a1d033087 (diff)
downloadkutter-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.py26
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)