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()