Files
NmeaClient/nmea/packetizer.py
T
jens 8208edfc46 - added stream talker
- added stream listener
2026-03-28 12:03:54 +01:00

25 lines
679 B
Python

from msg.container import MsgContainer
from msg.talker import MsgTalker
from stream.listener import StreamListener
from struct import pack
import time
class NmeaPacketizer(StreamListener, MsgTalker):
def __init__(self, name: str):
StreamListener.__init__(self)
MsgTalker.__init__(self)
self.name = name
self.packet = b''
self.wait_sync = True
def on_recv(self, rx_data: bytes):
for d in rx_data:
if d == 13 or d == 10:
self.wait_sync = False
if len(self.packet) > 0:
self.call_listener(MsgContainer(self.name, time.time(), self.packet))
self.wait_sync = True
self.packet = b''
elif not self.wait_sync:
self.packet += pack('B', d)