From 68c75ff0e5e3c9abfddfbcdb29995ea89f8befdd Mon Sep 17 00:00:00 2001 From: Hendrik Langer Date: Tue, 4 Aug 2020 14:02:09 +0200 Subject: [PATCH] serial callbacks in frontend --- raspberry/roberto/Serial.py | 4 ++++ raspberry/roberto/views/websocket/routes.py | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/raspberry/roberto/Serial.py b/raspberry/roberto/Serial.py index 1f2534c..5cab0d3 100644 --- a/raspberry/roberto/Serial.py +++ b/raspberry/roberto/Serial.py @@ -62,3 +62,7 @@ class Serial(object): def add_callback(cmd, callback): self._callbacks[cmd] = callback + + def del_callback(cmd, callback): + if cmd in self._callbacks: + del self._callbacks[cmd] diff --git a/raspberry/roberto/views/websocket/routes.py b/raspberry/roberto/views/websocket/routes.py index d345e1a..07eba6f 100644 --- a/raspberry/roberto/views/websocket/routes.py +++ b/raspberry/roberto/views/websocket/routes.py @@ -97,6 +97,8 @@ def disconnect(): print("Received Disconnect message from %s" % sid) leave_room(ROOM) webrtccamera.disconnect_client(sid, ROOM) + from roberto import serial + serial.del_callback('B', display_battery) @socketio.on('connect', namespace='/webrtc') def connect(): @@ -104,6 +106,8 @@ def connect(): print("Received Connect message from %s" % sid) join_room(ROOM) webrtccamera.connect_client(sid, ROOM) + from roberto import serial + serial.add_callback('B', display_battery) @socketio.on_error_default def default_error_handler(e): @@ -113,3 +117,6 @@ def default_error_handler(e): keys.sort() for key in request: print('%s: %s' % (key, repr(request[key]))) + +def display_battery(val): + socketio.emit('battery', data=val, room=ROOM, namespace='/webrtc')