From 1a44fe3c8e877487ac9d40db1011e177091e4193 Mon Sep 17 00:00:00 2001 From: David Carley Date: Tue, 13 Sep 2022 00:24:31 +0000 Subject: [PATCH] Fixed the controller UI from hanging after estop --- src/js/app.js | 9 ++++++--- src/js/console.js | 9 +++++++-- src/py/bbctrl/Comm.py | 2 +- src/py/bbctrl/Log.py | 4 +++- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/js/app.js b/src/js/app.js index 23afaa1..bc5b872 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -327,9 +327,12 @@ module.exports = new Vue({ return; } - if ("log" in e.data) { - if (e.data.log.msg !== "Switch not found") { - this.$broadcast("log", e.data.log); + if (e.data.log && e.data.log.msg !== "Switch not found") { + this.$broadcast("log", e.data.log); + + if (Object.keys(e.data).length === 1) { + // If there's only log data, we're done + return; } } diff --git a/src/js/console.js b/src/js/console.js index 90cf8bf..ccaf5eb 100644 --- a/src/js/console.js +++ b/src/js/console.js @@ -2,8 +2,8 @@ function _msg_equal(a, b) { return a.level == b.level - && a.source == b.source - && a.where == b.where + && a.source == b.source + && a.where == b.where && a.msg == b.msg; } @@ -43,6 +43,11 @@ module.exports = { messages.pop(); } } + + if (messages[0].repeat > 1) { + return; + } + msg.ts = Date.now(); // Write message to browser console for debugging diff --git a/src/py/bbctrl/Comm.py b/src/py/bbctrl/Comm.py index cbed8fd..9bd1bca 100644 --- a/src/py/bbctrl/Comm.py +++ b/src/py/bbctrl/Comm.py @@ -133,7 +133,7 @@ class Comm(object): if level == 'error': self.comm_error() # Treat machine alarmed warning as an error - if level == 'warning' and 'code' in msg and msg['code'] == 11: + if level == 'warning' and 'code' in msg and msg['code'] == 12: self.comm_error() def _log_motor_flags(self, update): diff --git a/src/py/bbctrl/Log.py b/src/py/bbctrl/Log.py index f034650..81651b5 100644 --- a/src/py/bbctrl/Log.py +++ b/src/py/bbctrl/Log.py @@ -126,7 +126,9 @@ class Log(object): def _log(self, msg, level=INFO, prefix='', where=None): if not msg: return - hdr = '%s:%s:' % ('DIMWE'[level], prefix) + timestamp = datetime.datetime.now().strftime("%H:%M:%S") + + hdr = '%s:%s:%s:' % ('DIMWE'[level], prefix, timestamp) s = hdr + ('\n' + hdr).join(msg.split('\n')) if self.f is not None: