From 0f2edfd82e1133da83b7e3b00455ad3e25a30b79 Mon Sep 17 00:00:00 2001 From: make-ing Date: Tue, 20 Oct 2015 18:12:30 +0200 Subject: [PATCH] added setPause() method --- src/octoprint/util/comm_acc2.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index cdeaf43a..387b955e 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -71,6 +71,7 @@ class MachineCom(object): self._status_timer = None self._acc_line_buffer = [] self._cmd = None + self._pauseWaitStartTime = None self._pauseWaitTimeLost = 0.0 self._commandQueue = Queue.Queue() self._send_event = CountedEvent(max=20) @@ -651,6 +652,28 @@ class MachineCom(object): eventManager().fire(Events.PRINT_CANCELLED, payload) + def setPause(self, pause): + if not self._currentFile: + return + + payload = { + "file": self._currentFile.getFilename(), + "filename": os.path.basename(self._currentFile.getFilename()), + "origin": self._currentFile.getFileLocation() + } + + if not pause and self.isPaused(): + if self._pauseWaitStartTime: + self._pauseWaitTimeLost = self._pauseWaitTimeLost + (time.time() - self._pauseWaitStartTime) + self._pauseWaitStartTime = None + self.sendCommand('~') + eventManager().fire(Events.PRINT_RESUMED, payload) + elif pause and self.isPrinting(): + if not self._pauseWaitStartTime: + self._pauseWaitStartTime = time.time() + self.sendCommand('!') + eventManager().fire(Events.PRINT_PAUSED, payload) + def getStateString(self): if self._state == self.STATE_NONE: return "Offline"