Files
NmeaClient/receiver/nmea_receiver.py
T
2026-03-16 11:06:18 +01:00

29 lines
735 B
Python

from msg_container import MsgContainer
from msg_sink import MsgSink
import re
class AsciiReceiver(MsgSink):
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 NmeaReceiver(AsciiReceiver):
def __init__(self, name: str, tid: str, msg_type: str):
if tid == "--":
AsciiReceiver.__init__(self, name, filter=f"^\\$..{msg_type}.*")
else:
AsciiReceiver.__init__(self, name, filter=f"^\\${tid}{msg_type}.*")