From a69a8b460ebb7e6d54e73f5e334d9f916b1d6d79 Mon Sep 17 00:00:00 2001 From: iz1kga Date: Wed, 12 May 2021 08:54:36 +0200 Subject: [PATCH] nodeDB Update, SNR, Hoplimit, LastHeard and added lastReceived --- .vscode/launch.json | 8 ++++++++ meshtastic/__init__.py | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/.vscode/launch.json b/.vscode/launch.json index 78d32a0..16a9ded 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -93,5 +93,13 @@ "justMyCode": true, "args": ["--debug", "--sendtext", "pytest"] } + { + "name": "meshtastic showNodes", + "type": "python", + "request": "launch", + "module": "meshtastic", + "justMyCode": true, + "args": ["--debug", "--nodes"] + } ] } diff --git a/meshtastic/__init__.py b/meshtastic/__init__.py index 7dd2630..dd82ab8 100644 --- a/meshtastic/__init__.py +++ b/meshtastic/__init__.py @@ -993,6 +993,7 @@ def _onTextReceive(iface, asDict): asDict["decoded"]["text"] = asBytes.decode("utf-8") except Exception as ex: logging.error(f"Malformatted utf8 in text message: {ex}") + _receiveInfoUpdate(iface, asDict) def _onPositionReceive(iface, asDict): @@ -1012,6 +1013,14 @@ def _onNodeInfoReceive(iface, asDict): n["user"] = p # We now have a node ID, make sure it is uptodate in that table iface.nodes[p["id"]] = n + _receiveInfoUpdate(iface, asDict) + + +def _receiveInfoUpdate(iface, asDict): + iface._getOrCreateByNum(asDict["from"])["lastReceived"] = asDict + iface._getOrCreateByNum(asDict["from"])["lastHeard"] = asDict.get("rxTime") + iface._getOrCreateByNum(asDict["from"])["snr"] = asDict.get("rxSnr") + iface._getOrCreateByNum(asDict["from"])["hopLimit"] = asDict.get("hopLimit") """Well known message payloads can register decoders for automatic protobuf parsing"""