- UbxReceiver: added catch all

This commit is contained in:
2026-03-17 20:01:39 +01:00
parent 39f3e688b0
commit ce0fa22c58
2 changed files with 11 additions and 5 deletions
+6 -3
View File
@@ -16,7 +16,7 @@ from nmea.GGA import Gga
from nmea.RMC import Rmc from nmea.RMC import Rmc
from threading import Thread from threading import Thread
from queue import Queue from queue import Queue
from ubx.ubx import frame_create
class NetworkBackend(ABackend): class NetworkBackend(ABackend):
def __init__(self, servers: list[dict]): def __init__(self, servers: list[dict]):
@@ -145,9 +145,10 @@ if __name__ == "__main__":
Gga(grm, 'GN'), Gga(grm, 'GN'),
] ]
ubx_rx_list = [ ubx_rx_list = [
UbxReceiver('UBX-NAV-SIG', 0x01, 0x43), # UbxReceiver('UBX-NAV-SIG', 0x01, 0x43),
UbxReceiver('UBX-ACK-ACK', 0x05, 0x01), UbxReceiver('UBX-ACK-ACK', 0x05, 0x01),
UbxReceiver('UBX-ACK-NACK', 0x05, 0x00), UbxReceiver('UBX-ACK-NACK', 0x05, 0x00),
UbxReceiver('default'),
] ]
# Topology # Topology
@@ -190,7 +191,9 @@ if __name__ == "__main__":
while True: while True:
try: try:
for grm in [" neo-f9p", "zed-x20p"]: for grm in [" neo-f9p", "zed-x20p"]:
transceiver[grm].send(b'Hallo') # Poll UBX-NAV-CLOCK (0x01 0x22)
frame = frame_create(0x01, 0x22, b'')
transceiver[grm].send(frame)
except ValueError: except ValueError:
break break
+5 -2
View File
@@ -3,7 +3,7 @@ from msg_sink import MsgSink
from ubx.ubx import frame_parse, frame_parse_hdr from ubx.ubx import frame_parse, frame_parse_hdr
class UbxReceiver(MsgSink): class UbxReceiver(MsgSink):
def __init__(self, name: str, mclass: int, mid: int): def __init__(self, name: str, mclass: int|None = None, mid: int|None = None):
MsgSink.__init__(self) MsgSink.__init__(self)
self.name = name self.name = name
self.mclass = mclass self.mclass = mclass
@@ -16,5 +16,8 @@ class UbxReceiver(MsgSink):
def is_msg(self, msg: MsgContainer): def is_msg(self, msg: MsgContainer):
hdr = frame_parse_hdr(msg.data) hdr = frame_parse_hdr(msg.data)
if hdr is not None: if hdr is not None:
return self.mclass == hdr.mclass and self.mid == hdr.mid if self.mclass is not None and self.mid is not None:
return self.mclass == hdr.mclass and self.mid == hdr.mid
else:
return True
return False return False