From 279135e01327b495cf90dd7e41f6e9d4fb04ebbe Mon Sep 17 00:00:00 2001 From: mistangl Date: Thu, 22 May 2025 13:22:45 +0200 Subject: [PATCH] =?UTF-8?q?Fehlerhandling=20f=C3=BCr=20Sensoren=20und=20Di?= =?UTF-8?q?stributoren=20die=20nicht=20zugeordnet=20werden=20konnten.=20Sa?= =?UTF-8?q?mmlung=20und=20Ausgabe=20in=20eigenen=20Key=20f=C3=BCr=20die=20?= =?UTF-8?q?Ergebnisse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plant.py | 4 ++-- lib/routing.py | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/plant.py b/lib/plant.py index 2ceed61..8627761 100644 --- a/lib/plant.py +++ b/lib/plant.py @@ -591,7 +591,7 @@ class Anlage(): for dname, listofsensors in d2sensors.items(): self.map_distributor_to_sensors(dname, listofsensors) - def create_cable_path(self, G, sname, dname): + def create_cable_path(self, G, sname, dname) -> tuple: quelle = self._nodeids.get_id(self.get_distributor_point(dname)) ziel = self._nodeids.get_id(self.get_sensor_point(sname)) pfad_nodes = nx.shortest_path(G, source=quelle, target=ziel, weight='weight') @@ -599,7 +599,7 @@ class Anlage(): return pfad_nodes, pfad_length - def create_cable_paths(self, G): + def create_cable_paths(self, G) -> dict: pfade = dict() pfade["kabel"] = list() for sname, dname in self._sensor2dist.items(): diff --git a/lib/routing.py b/lib/routing.py index 3876058..59a4836 100644 --- a/lib/routing.py +++ b/lib/routing.py @@ -27,7 +27,7 @@ def to_json(d, pretty: bool = True) -> str: return json.dumps(d, indent=2 if pretty else None, ensure_ascii=False, default=str) #ensure_ascii false für darstellung von "ue" -def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict): +def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict) -> dict: # racks = {'Rack_1-0': [Point(0, 0), Point(0, 10)], # 'Rack_2-0': [Point(10, -2), Point(10, 5)], @@ -60,11 +60,11 @@ def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict): # Füge Sensoren als Knoten hinzu an.add_sensors(sensors) # Verbinde Sensoren mit deren naheliegendsten Racks - an.connect_sensors_to_racks() + errors_sensors = an.connect_sensors_to_racks() # Füge UV hinzu an.add_distributors(distributors) # Verbinde UV mit deren naheliegendsten Racks - an.connect_distributor_to_racks() + errors_dists = an.connect_distributor_to_racks() # Verknüpfe Sensoren mit zugehörigem UV an.map_distributors_to_sensors(mapping) @@ -78,6 +78,8 @@ def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict): if args.graph: draw_graph(G,an) + paths['errors_sensors'] = errors_sensors + paths['errors_dists'] = errors_dists return paths def draw_graph(G:nx.Graph, an:Anlage): @@ -139,9 +141,13 @@ if __name__ == "__main__": (racks, sensors, subdists, mapping) = prepare_data(rawdata) # virtuelle Anlage erstellen - plant = create_plant(racks, sensors, subdists, mapping) - - cable_paths = plant + cable_paths = create_plant(racks, sensors, subdists, mapping) + if args.console: + print(to_json(cable_paths)) + print("failed sensor:") + print(to_json(cable_paths['errors_sensors'])) + print("failed dists:") + print(to_json(cable_paths['errors_dists'])) # Ausgabe schreiben if args.write: