refactored

This commit is contained in:
2026-03-25 05:40:50 +01:00
parent 0ed01e0164
commit 7c1e65253b
9 changed files with 15 additions and 12 deletions
-28
View File
@@ -1,28 +0,0 @@
from msg_container import MsgContainer
from msg_listener import MsgListener
import re
class AsciiListener(MsgListener):
def __init__(self, name: str, filter: str):
super().__init__()
self.name = name
self.filter = filter
def is_msg(self, msg: MsgContainer):
res = False
try:
res = re.match(bytes(self.filter, encoding="utf-8"), msg.data) is not None
except UnicodeDecodeError:
pass
return res
def on_recv(self, msg: MsgContainer):
print(f"{self.name}: {msg}")
class NmeaListener(AsciiListener):
def __init__(self, name: str, tid: str, msg_type: str):
if tid == "--":
AsciiListener.__init__(self, name, filter=f"^\\$..{msg_type}.*")
else:
AsciiListener.__init__(self, name, filter=f"^\\${tid}{msg_type}.*")
-31
View File
@@ -1,31 +0,0 @@
from msg_container import MsgContainer
from msg_listener import MsgListener
from msg_talker import MsgTalker
from struct import pack
class NmeaPacketizer(MsgListener, MsgTalker):
def __init__(self):
MsgListener.__init__(self)
MsgTalker.__init__(self)
self.packet = b''
self.wait_sync = True
def on_recv(self, msg: MsgContainer):
name = msg.name
data = msg.data
for n in range (len(data)):
d = data[n]
if d == 13 or d == 10:
timestamp = msg.timestamp
self.wait_sync = False
if len(self.packet) > 0:
self.call_listener(MsgContainer(name, timestamp, self.packet))
self.wait_sync = True
self.packet = b''
elif not self.wait_sync:
self.packet += pack('B', d)
def is_msg(self, msg: MsgContainer):
return True