Browse Source

routing support

main
gsd 4 months ago
parent
commit
df186b7553
  1. 35
      protobufs_extra/routing_proto.py
  2. 3
      service.py

35
protobufs_extra/routing_proto.py

@ -0,0 +1,35 @@
ROUTING_ERROR_ENUM = {
0: "NONE",
1: "NO_ROUTE",
2: "GOT_NAK",
3: "TIMEOUT",
4: "NO_INTERFACE",
5: "MAX_RETRANSMIT",
6: "NO_CHANNEL",
7: "TOO_LARGE",
8: "NO_RESPONSE",
9: "DUTY_CYCLE_LIMIT",
32: "BAD_REQUEST",
33: "NOT_AUTHORIZED",
34: "PKI_FAILED",
35: "PKI_UNKNOWN_PUBKEY",
36: "ADMIN_BAD_SESSION_KEY",
37: "ADMIN_PUBLIC_KEY_UNAUTHORIZED",
38: "RATE_LIMIT_EXCEEDED",
39: "PKI_SEND_FAIL_PUBLIC_KEY"
}
ROUTE_DISCOVERY_SCHEME = [
("repeated", "fixed32", "route", 1),
("repeated", "int32", "snr_towards", 2),
("repeated", "fixed32", "route_back", 3),
("repeated", "int32", "snr_back", 4)
]
ROUTING_SCHEME = [
("oneof", "variant", [
(ROUTE_DISCOVERY_SCHEME, "route_request", 1),
(ROUTE_DISCOVERY_SCHEME, "route_reply", 2),
("int32", "error_reason", 3)
])
]

3
service.py

@ -15,6 +15,7 @@ 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 *
from protobufs_extra.position_proto import *
from protobufs_extra.routing_proto import *
import pb
#fs imports
@ -154,6 +155,8 @@ class MongoDriver(MeshArgsParse):
v["decoded_payload_object"] = pb.decode(v["payload"], TELEMETRY_SCHEME)
elif v.get("portnum", 0) == 3:
v["decoded_payload_object"] = pb.decode(v["payload"], POSITION_SCHEME)
elif v.get("portnum", 0) == 5:
v["decoded_payload_object"] = pb.decode(v["payload"], ROUTING_SCHEME)
except:
traceback.print_exc()
pass

Loading…
Cancel
Save