From 731dd3dda6e356c129b51a35fc37f6b59255fd90 Mon Sep 17 00:00:00 2001 From: lertlmaier Date: Wed, 11 Jun 2025 13:25:31 +0200 Subject: [PATCH] =?UTF-8?q?In=20prepare=5Fdata()=20in=20routing=20nun=20au?= =?UTF-8?q?ch=20die=20atikelnummer=20des=20Sensors=20=C3=BCbergeben.=20Zus?= =?UTF-8?q?atzfunktion=20set=5Fsensor=5Fatnrs()=20in=20plant=20erstellt=20?= =?UTF-8?q?und=20in=20routing=20aufgerufen.=20Resultat:=20Sensor-Atikelnum?= =?UTF-8?q?mer=20nun=20in=20todraw.json=20=C3=9Cbergabe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plant.py | 4 ++++ lib/routing.py | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/plant.py b/lib/plant.py index cc101e0..778ad9e 100644 --- a/lib/plant.py +++ b/lib/plant.py @@ -367,6 +367,9 @@ class Anlage(): return self._sensors[sname] raise Exception("Sensor not found") + def set_sensor_artnrs(self, artnr_dict: dict): + self._sensor_artnrs = artnr_dict + def connect_sensors_to_racks(self) -> list: '''verbindet die Sensoren mit den Racks. die Rückgabe enthält ein Tuple, welche Sensoren keinem Rack zugeordnet werden konnten @@ -599,6 +602,7 @@ class Anlage(): ld = dict() ld['id'] = f"{dname}-{sname}" + ld['s_artinr'] = self._sensor_artnrs.get(sname, "") ld["coords"]= [{"x":round(p.x,1), "y":round(p.y,1)} for p in pfad_coords] ld["length"]= round(pfad_length,1) #ld["nodes"]=pfad_nodes diff --git a/lib/routing.py b/lib/routing.py index b568e18..4d61ba8 100644 --- a/lib/routing.py +++ b/lib/routing.py @@ -63,8 +63,9 @@ def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict, tunn an.set_racks(racks) # Verbinde Racks miteinander (ggf. verlängere ungenaue Racks) an.join_racks() - # Füge Sensoren als Knoten hinzu - an.add_sensors(sensors) + # Füge Sensoren als Knoten hinzu und speichere Sensoren mit deren Artikelnummern + an.add_sensors({sname: sdata["point"] for sname, sdata in sensors.items()}) # nur Punkte zu jeweiligem sname übergeben + an.set_sensor_artnrs({sname: sdata["artinr"] for sname, sdata in sensors.items()}) # nur Artikelnummern zu jeweiligem sname übergeben # Verbinde Sensoren mit deren naheliegendsten Racks errors_sensors = an.connect_sensors_to_racks() # Füge UV hinzu @@ -111,7 +112,10 @@ def prepare_data(rawdata:dict): sensors = rawdata["sensors"] dsensors = dict() for sname, sdata in sensors.items(): - dsensors[sname] = Point(sdata["pos"]) + dsensors[sname] = { + "point": Point(sdata["pos"]), + "artinr": sdata.get("ARTINR","") + } subdists = rawdata["distributors"] dsubdists = dict()