Browse Source

lite user scheme

main
gsd 4 months ago
parent
commit
0a2f7d76a7
  1. 36
      protobufs_extra/node_info_lite_proto.py
  2. 6
      service.py

36
protobufs_extra/node_info_lite_proto.py

@ -0,0 +1,36 @@
from telemetry_proto import DEVICE_METRICS_SCHEME
USER_LITE_SCHEME = [
("bytes", "macaddr", 1),
("string", "long_name", 2),
("string", "short_name", 3),
("int32", "hw_model", 4),
("bool", "is_licensed", 5),
("int32", "role", 6),
("bytes", "public_key", 7),
("scalar", "is_unmessagable", 9, "bool")
]
POSITION_LITE_SCHEME = [
("sfixed32", "latitude_i", 1),
("sfixed32", "longitude_i", 2),
("int32", "altitude", 3),
("fixed32", "time", 4),
("int32", "location_source", 5)
]
NODE_INFO_LITE_SCHEME = [
("uint32", "num", 1),
(USER_LITE_SCHEME, "user", 2),
(POSITION_LITE_SCHEME, "position", 3),
("float", "snr", 4),
("fixed32", "last_heard", 5),
(DEVICE_METRICS_SCHEME, "device_metrics", 6),
("uint32", "channel", 7),
("bool", "via_mqtt", 8),
("scalar", "hops_away", 9, "uint32"),
("bool", "is_favorite", 10),
("bool", "is_ignored", 11),
("uint32", "next_hop", 12),
("uint32", "bitfield", 13)
]

6
service.py

@ -11,6 +11,7 @@ from logger import logger
#mesh
from mesht_device import MeshtDevice, NODEINFO_SCHEMA
from protobufs_extra.node_info_lite_proto import NODE_INFO_LITE_SCHEME
from mesht_models import _wait_for_config_complete, PUB_CH
from mesht_models import NOT_CONNECTED, WAIT_CONFIG, AVAILABLE, ERR, RECONNECT
from protobufs_extra.telemetry_proto import *
@ -184,7 +185,10 @@ class MongoDriver(MeshArgsParse):
elif v.get("portnum", 0) == 70: #traceroute
v["decoded_payload_object"] = pb.decode(v["payload"], ROUTE_DISCOVERY_SCHEME)
elif v.get("portnum", 0) == 4: #nodeinfo
v["decoded_payload_object"] = pb.decode(v["payload"], NODEINFO_SCHEMA)
try:
v["decoded_payload_object"] = pb.decode(v["payload"], NODEINFO_SCHEMA)
except:
v["decoded_payload_object"] = pb.decode(v["payload"], NODE_INFO_LITE_SCHEME)
if "decoded_payload_object" in v:
print(v["decoded_payload_object"])

Loading…
Cancel
Save