- send() uses bytes no Msg

This commit is contained in:
2026-03-23 15:42:24 +01:00
parent f24224623e
commit 4427995ed6
5 changed files with 41 additions and 5 deletions
+1 -1
View File
@@ -2,5 +2,5 @@ from abc import ABC
from msg_container import MsgContainer
class ABackend(ABC):
def send(self, name: str, msg: MsgContainer):
def send(self, name: str, data: bytes):
pass
+2 -2
View File
@@ -28,9 +28,9 @@ class NetworkBackend(ABackend):
self.thread = Thread(target=self.event_loop)
self.loop_enable = True
def send(self, name: str, msg: MsgContainer):
def send(self, name: str, data: bytes):
sock = self.find_by_name(name)
sock['queue'].put(msg)
sock['queue'].put(data)
if sock is not None:
self.sel.modify(sock['sock'], selectors.EVENT_READ + selectors.EVENT_WRITE, None)
+10
View File
@@ -13,3 +13,13 @@ https://content.u-blox.com/sites/default/files/documents/ZED-X20P-00B_DataSheet_
https://content.u-blox.com/sites/default/files/documents/ZED-X20P_IntegrationManual_UBXDOC-963802114-12901.pdf?utm_content=UBXDOC-963802114-12901
## Interface spec
https://content.u-blox.com/sites/default/files/documents/u-blox-20-HPG-2.00_InterfaceDescription_UBXDOC-304424225-19888.pdf?utm_content=UBXDOC-304424225-19888
# Real time Kinematics
## ESA Article
https://gssc.esa.int/navipedia/index.php?title=Real_Time_Kinematics
# RTCM 3.0
## Overview
https://www.geopp.de/pdf/gppigs06_rtcm_f.pdf
## Cheat sheet
https://www.use-snip.com/kb/knowledge-base/an-rtcm-message-cheat-sheet/
+26
View File
@@ -0,0 +1,26 @@
from msg_container import MsgContainer
from ubx.ubx import frame_parse, frame_parse_hdr, frame_create
from ubx.msg import UbxMsg
from transceiver import Transceiver
from ubx_receiver import UbxReceiver
from threading import BoundedSemaphore
class Query(UbxReceiver):
def __init__(self, transceiver: Transceiver, parser: UbxMsg, mclass: int|None = None, mid: int|None = None):
UbxReceiver.__init__(self, parser, mclass, mid)
self.transceiver = transceiver
self.sema = BoundedSemaphore()
self.msg = UbxMsg()
def on_recv(self, msg: MsgContainer):
if self.is_msg(msg):
data, hdr = frame_parse(msg.data)
msg_parsed = self.parser.from_bytes(data)
self.msg = msg_parsed
self.sema.release()
def query(self, data: bytes):
frame = frame_create(0x01, 0x35, b'')
self.transceiver.send(frame)
self.sema.acquire()
print(self.msg)
+2 -2
View File
@@ -11,6 +11,6 @@ class Transceiver(MsgSource):
def on_recv(self, msg: MsgContainer):
self.call_sinks(msg)
def send(self, msg: MsgContainer):
self.backend.send(self.name, msg)
def send(self, data: bytes):
self.backend.send(self.name, data)