Browse Source

protoparser

main
gsd 4 months ago
parent
commit
c808997e0e
  1. 3
      requirements.txt
  2. 13
      service.py

3
requirements.txt

@ -3,4 +3,5 @@ uvicorn[standard]==0.34.3
fastapi==0.115.12
pymongo==4.16.0
pydantic==2.11.7
aiohttp==3.12.13
aiohttp==3.12.13
protobuf-decoder==0.4.0

13
service.py

@ -158,6 +158,9 @@ class MongoDriver(MeshArgsParse):
from tileManager import TileManager
self.tileManager = TileManager(self)
from protobuf_decoder.protobuf_decoder import Parser
self.protoParser = Parser()
async def dbSaveRadio(self, new_from_radio):
from_radio = copy.deepcopy(new_from_radio)
for k, v in from_radio.items():
@ -195,6 +198,16 @@ class MongoDriver(MeshArgsParse):
except:
traceback.print_exc()
try:
if v.get("portnum", 0) in []:
pass
else:
to_parse = ' '.join(f'{byte:02x}' for byte in v["payload"])
res = self.protoParser.parse(to_parse)
logger.debug(res.to_dict())
except:
pass
if "user" in v:
v.update(v["user"])
del v["user"]

Loading…
Cancel
Save