refactored
This commit is contained in:
+3
-1
@@ -9,11 +9,13 @@ class MsgReceiver(MsgSink):
|
|||||||
self.filter = filter
|
self.filter = filter
|
||||||
|
|
||||||
def is_msg(self, msg: MsgContainer):
|
def is_msg(self, msg: MsgContainer):
|
||||||
|
res = False
|
||||||
try:
|
try:
|
||||||
data = msg.data.decode(encoding="utf-8")
|
data = msg.data.decode(encoding="utf-8")
|
||||||
return re.match(self.filter, data)
|
res = re.match(self.filter, data) is not None
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
pass
|
pass
|
||||||
|
return res
|
||||||
|
|
||||||
def on_recv(self, msg: MsgContainer):
|
def on_recv(self, msg: MsgContainer):
|
||||||
print(f"{self.name}: {msg}")
|
print(f"{self.name}: {msg}")
|
||||||
|
|||||||
+11
-8
@@ -6,7 +6,7 @@ from msg_container import MsgContainer
|
|||||||
from packetizer import Packetizer
|
from packetizer import Packetizer
|
||||||
from transceiver import Transceiver
|
from transceiver import Transceiver
|
||||||
from a_backend import ABackend
|
from a_backend import ABackend
|
||||||
from msg_receiver import MsgReceiver
|
from nmea.GLL import Gll
|
||||||
|
|
||||||
class NetworkBackend(ABackend):
|
class NetworkBackend(ABackend):
|
||||||
def __init__(self, servers: list[dict]):
|
def __init__(self, servers: list[dict]):
|
||||||
@@ -98,14 +98,17 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
xcvr_1.register_recv(packetizer_0)
|
xcvr_1.register_recv(packetizer_0)
|
||||||
xcvr_2.register_recv(packetizer_1)
|
xcvr_2.register_recv(packetizer_1)
|
||||||
rx_1 = MsgReceiver('Rx1', '^.?GPGSV.*')
|
# rx_1 = MsgReceiver('Rx1', '^.?GPGSV.*')
|
||||||
rx_2 = MsgReceiver('Rx2', '^.?GNGLL.*')
|
# rx_2 = MsgReceiver('Rx2', '^.?GNGLL.*')
|
||||||
|
# rx_3 = Gga('Rx3', 'GP')
|
||||||
|
rx_4 = Gll('Rx4', '--')
|
||||||
# Register all Rx to all sources
|
# Register all Rx to all sources
|
||||||
packetizer_0.register_recv(rx_1)
|
# packetizer_0.register_recv(rx_1)
|
||||||
packetizer_0.register_recv(rx_2)
|
# packetizer_0.register_recv(rx_2)
|
||||||
packetizer_1.register_recv(rx_1)
|
# packetizer_1.register_recv(rx_1)
|
||||||
packetizer_1.register_recv(rx_2)
|
# packetizer_1.register_recv(rx_2)
|
||||||
|
packetizer_0.register_recv(rx_4)
|
||||||
|
packetizer_1.register_recv(rx_4)
|
||||||
|
|
||||||
# Connect all sources
|
# Connect all sources
|
||||||
mc.connect()
|
mc.connect()
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
from msg_container import MsgContainer
|
||||||
|
from receiver import Nmea
|
||||||
|
|
||||||
|
|
||||||
|
class Gga(Nmea):
|
||||||
|
def __init__(self, name: str, tid: str):
|
||||||
|
Nmea.__init__(self, name, tid=tid, msg_type="GGA")
|
||||||
|
|
||||||
|
def on_recv(self, msg: MsgContainer):
|
||||||
|
data = msg.data.decode(encoding="utf-8")
|
||||||
|
print(data)
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
from msg_container import MsgContainer
|
||||||
|
from nmea.receiver import Nmea
|
||||||
|
|
||||||
|
|
||||||
|
class Gll(Nmea):
|
||||||
|
class Msg:
|
||||||
|
def __init__(self):
|
||||||
|
self.latitude = None
|
||||||
|
self.ns_indicator = None
|
||||||
|
self.longitude = None
|
||||||
|
self.ew_indicator = None
|
||||||
|
self.utc_time = None
|
||||||
|
self.status = None
|
||||||
|
self.checksum = None
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"{self.latitude:.8f}{self.ns_indicator},{self.longitude:.8f}{self.ew_indicator}"
|
||||||
|
|
||||||
|
def __init__(self, name: str, tid: str):
|
||||||
|
Nmea.__init__(self, name, tid=tid, msg_type="GLL")
|
||||||
|
self.msg = None
|
||||||
|
self.data = Gll.Msg()
|
||||||
|
|
||||||
|
def on_recv(self, msg: MsgContainer):
|
||||||
|
data = msg.data.decode(encoding="utf-8")
|
||||||
|
data_list = data.split(',')
|
||||||
|
self.msg = data_list[0]
|
||||||
|
self.data.latitude = float(data_list[1])/100
|
||||||
|
self.data.ns_indicator = data_list[2]
|
||||||
|
self.data.longitude = float(data_list[3])/100
|
||||||
|
self.data.ew_indicator = data_list[4]
|
||||||
|
self.data.utc_time = data_list[5]
|
||||||
|
self.data.status = data_list[6]
|
||||||
|
self.data.checksum = data_list[7]
|
||||||
|
|
||||||
|
print(self.data)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
from msg_receiver import MsgReceiver
|
||||||
|
|
||||||
|
|
||||||
|
class Nmea(MsgReceiver):
|
||||||
|
def __init__(self, name: str, tid: str, msg_type: str):
|
||||||
|
if tid == "--":
|
||||||
|
MsgReceiver.__init__(self, name, filter=f"^\\$..{msg_type}.*")
|
||||||
|
else:
|
||||||
|
MsgReceiver.__init__(self, name, filter=f"^\\${tid}{msg_type}.*")
|
||||||
Reference in New Issue
Block a user