From a76d1bcd69e422b9faa263985821cea62924b311 Mon Sep 17 00:00:00 2001 From: mistangl Date: Thu, 22 May 2025 12:17:39 +0200 Subject: [PATCH] =?UTF-8?q?Sammlung=20der=20Ausnahmen=20hinzu:=20Falls=20S?= =?UTF-8?q?ensor/Unterverteiler=20keinem=20Rack=20zugeordnet=20werden=20ko?= =?UTF-8?q?nnten,=20m=C3=BCssen=20diese=20gesammelt=20werden.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plant.py | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/lib/plant.py b/lib/plant.py index 8b187a2..2ceed61 100644 --- a/lib/plant.py +++ b/lib/plant.py @@ -334,9 +334,15 @@ class Anlage(): return self._racks.get_points_from_rack(rname) def get_points_from_sensors(self): + '''gibt die Aufpunkte aller Sensoren auf den Racks zurück''' return self._sensors.values() - + + def get_distributor_onpoints(self): + '''gibt die Aufpunkte aller Unterverteiler auf den Racks zurück''' + return self._distributors_onpoints.values() + def get_sensor_onpoints(self): + '''gibt die Aufpunkte aller Sensoren auf den Racks zurück''' return self._sensor_onpoints.values() def add_sensor(self, sname: str, pos:Point): @@ -349,17 +355,25 @@ class Anlage(): def get_sensor_point(self, sname:str) -> Point: return self._sensors[sname] - def connect_sensors_to_racks(self): + + 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 + ''' + errors = list() for sname, pos in self._sensors.items(): rack_borders = self._racks.get_racks_borders() onpoint, rack_name = self.find_nearest_rack_from_point(self._tol_connect, self._connect_step, pos, rack_borders) + if onpoint == None or rack_name == None: + errors.append((sname, pos)) + continue self._sensor_onpoints[sname] = (onpoint, rack_name) self.add_point_to_rack(onpoint, rack_name) # Füge "virtuelle Racks" von Sensor zu Aufpunkt von Sensor auf Rack hinzu. vrackname = f"v-{sname}-{rack_name}" self._racks.add_rack(pos, onpoint, vrackname) - return self._sensor_onpoints - + return errors + def add_distributor(self, dname: str, pos:Point): self._distributors[dname] = pos @@ -370,16 +384,23 @@ class Anlage(): def get_distributor_point(self, dname:str) -> Point: return self._distributors[dname] - def connect_distributor_to_racks(self): + def connect_distributor_to_racks(self) -> list: + '''verbindet die Unterverteiler mit den Racks + die Rückage enthält ein Tuple, welche Unterverteiler keinem Rack zugeordnet werden konnten + ''' + errors = list() for dname, pos in self._distributors.items(): rack_borders = self._racks.get_racks_borders() onpoint, rack_name = self.find_nearest_rack_from_point(self._tol_connect, self._connect_step, pos, rack_borders) + if onpoint == None or rack_name == None: + errors.append((dname, pos)) + continue self._distributors_onpoints[dname] = (onpoint, rack_name) self.add_point_to_rack(onpoint, rack_name) # Füge "virtuelle Racks" von Sensor zu Aufpunkt von Sensor auf Rack hinzu. drackname = f"d-{dname}-{rack_name}" self._racks.add_rack(pos, onpoint, drackname) - return self._distributors_onpoints + return errors def join_racks(self): self._racks.join_racks()