- send() uses bytes no Msg
This commit is contained in:
+1
-1
@@ -2,5 +2,5 @@ from abc import ABC
|
|||||||
from msg_container import MsgContainer
|
from msg_container import MsgContainer
|
||||||
|
|
||||||
class ABackend(ABC):
|
class ABackend(ABC):
|
||||||
def send(self, name: str, msg: MsgContainer):
|
def send(self, name: str, data: bytes):
|
||||||
pass
|
pass
|
||||||
|
|||||||
+2
-2
@@ -28,9 +28,9 @@ class NetworkBackend(ABackend):
|
|||||||
self.thread = Thread(target=self.event_loop)
|
self.thread = Thread(target=self.event_loop)
|
||||||
self.loop_enable = True
|
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 = self.find_by_name(name)
|
||||||
sock['queue'].put(msg)
|
sock['queue'].put(data)
|
||||||
if sock is not None:
|
if sock is not None:
|
||||||
self.sel.modify(sock['sock'], selectors.EVENT_READ + selectors.EVENT_WRITE, None)
|
self.sel.modify(sock['sock'], selectors.EVENT_READ + selectors.EVENT_WRITE, None)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
https://content.u-blox.com/sites/default/files/documents/ZED-X20P_IntegrationManual_UBXDOC-963802114-12901.pdf?utm_content=UBXDOC-963802114-12901
|
||||||
## Interface spec
|
## 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
|
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/
|
||||||
|
|||||||
@@ -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
@@ -11,6 +11,6 @@ class Transceiver(MsgSource):
|
|||||||
def on_recv(self, msg: MsgContainer):
|
def on_recv(self, msg: MsgContainer):
|
||||||
self.call_sinks(msg)
|
self.call_sinks(msg)
|
||||||
|
|
||||||
def send(self, msg: MsgContainer):
|
def send(self, data: bytes):
|
||||||
self.backend.send(self.name, msg)
|
self.backend.send(self.name, data)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user