From 2e01a70d532775aabf174256435a03d6f63f1507 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Wed, 25 Mar 2026 06:33:18 +0100 Subject: [PATCH] refactored Transceiver --- network_backend.py | 15 ++++++--------- transceiver.py | 7 +++++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/network_backend.py b/network_backend.py index d5edc83..5060360 100644 --- a/network_backend.py +++ b/network_backend.py @@ -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() diff --git a/transceiver.py b/transceiver.py index fc6dec8..c33d7f2 100644 --- a/transceiver.py +++ b/transceiver.py @@ -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)