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: 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.transport = transport
self.channels = [] self.channels = []
self.lora_config = None self.lora_config = None
@ -243,6 +243,7 @@ class MeshtDevice:
self.device_uuid = device_uuid self.device_uuid = device_uuid
self.skip_init = skip_init self.skip_init = skip_init
self.test_client = test_client self.test_client = test_client
self.udp_packet = udp_packet
async def start(self): async def start(self):
await self.transport.start() await self.transport.start()
@ -284,6 +285,11 @@ class MeshtDevice:
if self.test_client: if self.test_client:
parseBytesToProtobuf(data) parseBytesToProtobuf(data)
return {}, b"" 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 = pb.decode(data, FROMRADIO_SCHEMA)
fr["device_uuid"] = self.device_uuid 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 from protobuf_decoder.protobuf_decoder import Parser
## ##
packet = "nP712mDRlbdujxpSd4bUMBiNR/WQj5t4qXfxKA==" packet = "Ddg4d54VeDZ3nhgIKlwHxTE8NDD8eGEQJZ+dr51uXyYBbmqDz2eNhawRUqCrHOxVpvneHflbRZdM+TgRdQP37qZZd9A8r/HjeoSlrg78d8kXYbK/HtV7sct/4nw9ockVYGxvxeyM5gCyUjVE0aO1PXEXlmlIB1hGeAeQAXiYAdgB"
data = base64.b64decode(packet) data = base64.b64decode(packet)
res = Parser().parse(data.hex()) res = Parser().parse(data.hex())
print(res.to_dict()) print(res.to_dict(), "\n\n")
print(pb.decode(data, USER_SCHEMA)) 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')) #print(base64.b64decode('BtJrAGXS0BJzm9890X0uD1VawYhZ+woD5O6UI3oXUjmB'))

2
service.py

@ -89,7 +89,7 @@ class MeshMultiListener(MeshArgsParse):
logger.info("Found ws transport") logger.info("Found ws transport")
from transport_ws import WSTransport from transport_ws import WSTransport
transport = WSTransport(device_config["port"], device_config["uuid"]) 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 #set default mesh
self.defaultDeviceUUID = self.json_config[0]["uuid"] self.defaultDeviceUUID = self.json_config[0]["uuid"]

Loading…
Cancel
Save