refactored Transceiver
This commit is contained in:
+6
-9
@@ -39,22 +39,18 @@ class NetworkBackend(ABackend):
|
||||
self.loop_enable = False
|
||||
self.thread.join()
|
||||
|
||||
def create_xcvr(self, name: str) -> Transceiver:
|
||||
obj = Transceiver(self, name)
|
||||
if not self.register_xcvr(obj):
|
||||
raise Exception(f"No socket found for \"{name}\"")
|
||||
return obj
|
||||
|
||||
self.sel.register(name, selectors.EVENT_READ, data=None)
|
||||
def register_xcvr(self, xcvr: Transceiver):
|
||||
found = False
|
||||
for sock in self.sock_list:
|
||||
if xcvr.name in sock['name']:
|
||||
found = True
|
||||
sock['xcvr'] = xcvr
|
||||
xcvr.on_register(self)
|
||||
break
|
||||
|
||||
return found
|
||||
if not found:
|
||||
raise Exception(f"No socket found for \"{xcvr.name}\"")
|
||||
|
||||
def find_by_addr(self, addr):
|
||||
for sock in self.sock_list:
|
||||
if sock['addr'] == addr:
|
||||
@@ -165,7 +161,8 @@ if __name__ == "__main__":
|
||||
# Receiver-1.1 /
|
||||
|
||||
# Create transceiver
|
||||
transceiver[grm] = mc.create_xcvr(grm)
|
||||
transceiver[grm] = Transceiver(grm)
|
||||
mc.register_xcvr(transceiver[grm])
|
||||
|
||||
# Create NMEA-Packetizer
|
||||
nmea_packetizer = NmeaPacketizer()
|
||||
|
||||
+5
-2
@@ -3,14 +3,17 @@ from a_backend import ABackend
|
||||
from msg.container import *
|
||||
|
||||
class Transceiver(MsgTalker):
|
||||
def __init__(self, backend: ABackend, name: str):
|
||||
def __init__(self, name: str):
|
||||
MsgTalker.__init__(self)
|
||||
self.backend = backend
|
||||
self.name = name
|
||||
self.backend = None
|
||||
|
||||
def on_recv(self, msg: MsgContainer):
|
||||
self.call_listener(msg)
|
||||
|
||||
def on_register(self, backend: ABackend):
|
||||
self.backend = backend
|
||||
|
||||
def send(self, data: bytes):
|
||||
self.backend.send(self.name, data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user