From b5c1a5f38cca5e8c444b2d9aa30d858e368948ac Mon Sep 17 00:00:00 2001 From: lertlmaier Date: Mon, 26 May 2025 12:03:17 +0200 Subject: [PATCH] =?UTF-8?q?Methoden=20im=20plant.py=20angepasst,=20dass=20?= =?UTF-8?q?routing.py=20ohne=20=C3=84nderungen=20laufen=20kann=20und=20neu?= =?UTF-8?q?e=20STRtree=20Sensor=20connection=20verwendet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 2 +- doc/Anwenderdoku.md | 4 ++-- lib/plant.py | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 8a32a1f..1bc407a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -117,7 +117,7 @@ "console": "integratedTerminal", "args": [ "--filename", - "easy_positions.json", + "easy.json", "-g" ] }, diff --git a/doc/Anwenderdoku.md b/doc/Anwenderdoku.md index f968315..4fd95b2 100644 --- a/doc/Anwenderdoku.md +++ b/doc/Anwenderdoku.md @@ -302,7 +302,7 @@ Sollten einzelne Kabeltrassen nicht miteinander verbunden werden, ist die einges Bei der Verbindung von Sensoren / Aktoren mit den Kabeltrassen findet noch keine Wegsuche zum zugehörigen Unterverteiler statt. Die Sensoren / Aktoren tragen darüber hinaus keinerlei Information, mit welcher Kabeltrasse sie verbunden werden sollen. Der Algorithmus sucht daher ausgehend von der Position des Sensors das am nahesten liegende Rack und stellt im Anschluss die kürzestmögliche verbindung zu einer Kabeltrasser her. -Situation: Horizontales und vetikales Rack (R1 bzw R2), Sensor (S). Erstellen eines Kreises um den Sensor und Überprüfung auf Schnittpunkte mit Kabeltrassen +Situation: Horizontales und vetikales Rack (R1 bzw R2), Sensor (S). Erstellen eines Kreises um den Sensor und Überprüfung auf Schnittpunkte mit Kabeltrassen @@ -324,5 +324,5 @@ Schritt 2: Bei Ausbleiben eines Schnittpunktes -> Vergrößern des Kreises. Bei - Drawdxf umbennen in sowas wie *cables.py* oder so - Schalter steuern was alles ausgegeben wird (Excel, dxf, ... was könnte man noch machen) - hier muss man entscheiden ob Cabel-dxf immer gleich heisst oder so wie Eingabefile (Gefahr der Zumüllung) - - selnbes gilt für excel-File + - selbes gilt für excel-File diff --git a/lib/plant.py b/lib/plant.py index 2baa455..12b2bd8 100644 --- a/lib/plant.py +++ b/lib/plant.py @@ -361,6 +361,8 @@ class Anlage(): '''verbindet die Sensoren mit den Racks. die Rückgabe enthält ein Tuple, welche Sensoren keinem Rack zugeordnet werden konnten ''' + return self.connect_equipment_to_racks(self._sensors, self._sensor_onpoints) + ''' errors = list() for sname, pos in self._sensors.items(): rack_borders = self._racks.get_racks_borders() @@ -374,6 +376,7 @@ class Anlage(): vrackname = f"v-{sname}-{rack_name}" self._racks.add_rack(pos, onpoint, vrackname) return errors + ''' def add_distributor(self, dname: str, pos:Point): self._distributors[dname] = pos @@ -389,6 +392,8 @@ class Anlage(): '''verbindet die Unterverteiler mit den Racks die Rückage enthält ein Tuple, welche Unterverteiler keinem Rack zugeordnet werden konnten ''' + return self.connect_equipment_to_racks(self._distributors, self._distributors_onpoints) + ''' errors = list() for dname, pos in self._distributors.items(): rack_borders = self._racks.get_racks_borders() @@ -402,6 +407,7 @@ class Anlage(): drackname = f"d-{dname}-{rack_name}" self._racks.add_rack(pos, onpoint, drackname) return errors + ''' def join_racks(self): self._racks.join_racks() @@ -463,7 +469,7 @@ class Anlage(): device_names = [name for name, _ in devices] device_points = [pos for _, pos in devices] - idx_rack, distances = self._rack_tree.query_nearest(device_points, return_distance=True, all_matches=True) + idx_rack, distances = self._rack_tree.query_nearest(device_points, return_distance=True, all_matches=False) # !!! Problem !!!: query gibt mehrere Ergebnisse zurück -> kann dann nicht zugeordnet werden # Greifen des ersten ergebnisses nicht zielführend, da nicht das näheste @@ -1050,6 +1056,4 @@ class TestLinesweep(unittest.TestCase): if __name__ == '__main__': - print(shapely.__file__) - print(shapely.__version__) unittest.main() \ No newline at end of file