From d1612e426a897bb4a6d3c200f692d56a00d0659d Mon Sep 17 00:00:00 2001 From: Nicanor Romero Venier Date: Thu, 3 Sep 2015 17:07:33 +0200 Subject: [PATCH] Added hook for recieved lines --- src/octoprint/util/comm.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/octoprint/util/comm.py b/src/octoprint/util/comm.py index 44eae0ba..21f0b7ff 100644 --- a/src/octoprint/util/comm.py +++ b/src/octoprint/util/comm.py @@ -269,6 +269,7 @@ class MachineCom(object): sending=self._pluginManager.get_hooks("octoprint.comm.protocol.gcode.sending"), sent=self._pluginManager.get_hooks("octoprint.comm.protocol.gcode.sent") ) + self._recieved_message_hooks = self._pluginManager.get_hooks("octoprint.comm.protocol.gcode.recieved") self._printer_action_hooks = self._pluginManager.get_hooks("octoprint.comm.protocol.action") self._gcodescript_hooks = self._pluginManager.get_hooks("octoprint.comm.protocol.scripts") @@ -1399,9 +1400,6 @@ class MachineCom(object): self._errorValue = get_exception_string() self.close(is_error=True) return None - if ret == '': - #self._log("Recv: TIMEOUT") - return '' try: self._log("Recv: %s" % sanitize_ascii(ret)) @@ -1409,6 +1407,14 @@ class MachineCom(object): self._log("WARN: While reading last line: %s" % e) self._log("Recv: %r" % ret) + for name, hook in self._recieved_message_hooks.items(): + try: + ret = hook(self, ret) + except: + self._logger.exception("Error while processing hook {name}:".format(**locals())) + if ret is None: + return "" + return ret def _getNext(self):