- removed name property from Msg container

- added source property to MsgContainer
This commit is contained in:
2026-03-29 11:01:41 +02:00
parent af94c39b3e
commit f7b1b18b2f
8 changed files with 25 additions and 48 deletions
+7 -31
View File
@@ -1,10 +1,8 @@
import struct
import time
from msg.container import MsgContainer
from msg.listener import MsgListener
from msg.talker import MsgTalker
from ubx.ubx import UBX_SYNC_WORD, frame_parse, frame_create
from ubx.listener import UbxListener
from ubx.ubx import UBX_SYNC_WORD, frame_parse
UBX_PKT_DEBUG = False
def ubx_pkt_debug(s: str):
@@ -12,10 +10,9 @@ def ubx_pkt_debug(s: str):
print(s)
class UbxPacketizer(MsgListener, MsgTalker):
def __init__(self, name: str, sync_bytes: bytes = UBX_SYNC_WORD):
def __init__(self, sync_bytes: bytes = UBX_SYNC_WORD):
MsgListener.__init__(self)
MsgTalker.__init__(self)
self.name = name
self.sync_bytes = sync_bytes
self.packet = b''
self.wait_sync = True
@@ -30,15 +27,15 @@ class UbxPacketizer(MsgListener, MsgTalker):
def is_msg(self, msg: MsgContainer):
return True
def on_recv(self, rx_data: MsgContainer):
for d in rx_data.data:
def on_recv(self, msg: MsgContainer):
for d in msg.data:
if d == self.sync_bytes[self.sync_count]:
self.d_save += struct.pack('B', d)
self.sync_count += 1
if self.sync_count == len(self.sync_bytes):
ubx_pkt_debug(f"{self.name}:UBX-sync")
ubx_pkt_debug(f"{msg.source.name}:UBX-sync")
if len(self.packet) > 0:
ubx_pkt_debug(f"{self.name}:Remaining packet: {self.packet}")
ubx_pkt_debug(f"{msg.source.name}:Remaining packet: {self.packet}")
self.sync_count = 0
self.d_save = b''
self.packet = b''
@@ -53,27 +50,6 @@ class UbxPacketizer(MsgListener, MsgTalker):
data, hdr = frame_parse(self.packet)
if data is not None:
if hdr.length == len(data):
self.call_listener(MsgContainer(self.packet, self.name))
self.call_listener(MsgContainer(self.packet, msg.source))
self.packet = b''
self.wait_sync = True
if __name__ == "__main__":
UBX_PKT_DEBUG = True
class MySink(MsgListener):
def __init__(self):
MsgListener.__init__(self)
def on_recv(self, msg: MsgContainer):
print(msg)
def is_msg(self, msg: MsgContainer):
return True
ubx_rx = UbxListener('test', 1, 2)
pkt = UbxPacketizer()
pkt.register_listener(ubx_rx)
pkt.reset()
frame = frame_create(_class=1, _id=2, _data=b'Hallo' + b'\xb5' + b',\x62Welt') + frame_create(_class=1, _id=2, _data=b',') + frame_create(_class=1, _id=2, _data=b'UBX') + frame_create(_class=1, _id=2, _data=b'World')
pkt.on_recv(MsgContainer('test', 31101970.0208, frame))