Browse Source

udp packet hack

main
gsd 4 months ago
parent
commit
943515aaf8
  1. 8
      mesht_device.py
  2. 12
      packet_test.py
  3. 2
      service.py

8
mesht_device.py

@ -232,7 +232,7 @@ class Channel:
class MeshtDevice:
def __init__(self, transport, device_uuid, skip_init = False, test_client = False):
def __init__(self, transport, device_uuid, skip_init = False, test_client = False, udp_packet = False):
self.transport = transport
self.channels = []
self.lora_config = None
@ -243,6 +243,7 @@ class MeshtDevice:
self.device_uuid = device_uuid
self.skip_init = skip_init
self.test_client = test_client
self.udp_packet = udp_packet
async def start(self):
await self.transport.start()
@ -284,6 +285,11 @@ class MeshtDevice:
if self.test_client:
parseBytesToProtobuf(data)
return {}, b""
if self.udp_packet:
#mqtt или udp пакеты мы ЖЕСТКО перекодируем словно так и надо
dec = pb.decode(data, MESHPACKET_SCHEMA)
data = pb.encode({"packet": dec}, FROMRADIO_SCHEMA)
fr = pb.decode(data, FROMRADIO_SCHEMA)
fr["device_uuid"] = self.device_uuid

12
packet_test.py

@ -5,12 +5,18 @@ from mesht_device import FROMRADIO_SCHEMA, NODEINFO_SCHEMA, USER_SCHEMA, MESHPAC
from protobuf_decoder.protobuf_decoder import Parser
##
packet = "nP712mDRlbdujxpSd4bUMBiNR/WQj5t4qXfxKA=="
packet = "Ddg4d54VeDZ3nhgIKlwHxTE8NDD8eGEQJZ+dr51uXyYBbmqDz2eNhawRUqCrHOxVpvneHflbRZdM+TgRdQP37qZZd9A8r/HjeoSlrg78d8kXYbK/HtV7sct/4nw9ockVYGxvxeyM5gCyUjVE0aO1PXEXlmlIB1hGeAeQAXiYAdgB"
data = base64.b64decode(packet)
res = Parser().parse(data.hex())
print(res.to_dict())
print(pb.decode(data, USER_SCHEMA))
print(res.to_dict(), "\n\n")
dec = pb.decode(data, MESHPACKET_SCHEMA)
print(dec, "\n\n")
enc = pb.encode({"packet": dec}, FROMRADIO_SCHEMA)
decTwice = pb.decode(enc, FROMRADIO_SCHEMA)
print(decTwice)
###
#print(base64.b64decode('BtJrAGXS0BJzm9890X0uD1VawYhZ+woD5O6UI3oXUjmB'))

2
service.py

@ -89,7 +89,7 @@ class MeshMultiListener(MeshArgsParse):
logger.info("Found ws transport")
from transport_ws import WSTransport
transport = WSTransport(device_config["port"], device_config["uuid"])
self.devices.append(MeshtDevice(transport, device_config['uuid'], True, True))
self.devices.append(MeshtDevice(transport, device_config['uuid'], True, False, True))
#set default mesh
self.defaultDeviceUUID = self.json_config[0]["uuid"]

Loading…
Cancel
Save