From dbf3a6450df717e452e903d6385da89e32436f64 Mon Sep 17 00:00:00 2001 From: lertlmaier Date: Tue, 10 Jun 2025 15:25:13 +0200 Subject: [PATCH] =?UTF-8?q?Falls=20B=20in=20Attribute=20ist,=20wird=20auch?= =?UTF-8?q?=20hier=20pos=20aufgezeichnet.=20damit=20haben=20alle=20INSERTS?= =?UTF-8?q?=20einen=20pos=20eintrag=20und=20Skipt=20l=C3=A4uft=20durch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/getpositions.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/getpositions.py b/lib/getpositions.py index 213ca64..6259fd2 100644 --- a/lib/getpositions.py +++ b/lib/getpositions.py @@ -42,6 +42,7 @@ def get_type_of_name(name): "MA", # Motor "BG", # Stausensor "BP" # Schalter Druckluft + "QM" # Ventile ] KabelKey = ["WD"] @@ -71,7 +72,6 @@ def get_type_of_name(name): return typ def get_attributes_of_insert(insert): - id = "" ld = dict() typ = 'unknown' @@ -94,6 +94,8 @@ def get_attributes_of_insert(insert): # Suche nach Sensoren typ = get_type_of_name(attr_text) id = attr_text + pos = attrib.dxf.insert #Position aufzeichnen und bei Bedarf später mit REAL_POS überschreiben + ld["pos"] = (round(pos.x, 1), round(pos.y, 1)) if attr_tag == "REALE_POSITION" and attr_text == "x": #typ = get_type_of_name(attr_text) @@ -179,10 +181,14 @@ def create_mappings(positions:dict) -> dict: sensor2unterverteiler = dict() warnings = list() for sensorname,v in positions.items(): + if "KENNZEICHNUNG" not in v: + warnings.append(f"{sensorname}: keine KENNZEICHNUNG vorhanden") + continue + unterverteiler_pfad = v["KENNZEICHNUNG"] #print(unterverteiler_pfad) - # PFad zur Karte splitten. Dieser hat z.B. den Inhalt "=AH01+UH02-KF1FDI7" + # Pfad zur Karte splitten. Dieser hat z.B. den Inhalt "=AH01+UH02-KF1FDI7" pattern = r"^=([A-Z]+\d+)([+\-])([A-Z]+\d+)([+\-])([A-Z0-9]+)$" match = re.match(pattern, unterverteiler_pfad) if match: @@ -198,8 +204,9 @@ def create_mappings(positions:dict) -> dict: warnings.append(unterverteiler_pfad) continue - if not verteiler in dnamen: + if verteiler not in dnamen: dnamen[verteiler] = True + sensor2unterverteiler[sensorname] = verteiler # jetzt zu jedem Unterverteiler die zugehörigen Sensoren merken @@ -207,7 +214,8 @@ def create_mappings(positions:dict) -> dict: for sensorname,verteiler in sensor2unterverteiler.items(): if verteiler not in uv2sensor: uv2sensor[verteiler] = list() - uv2sensor[verteiler].append(sensorname) + uv2sensor[verteiler].append(sensorname) + return (uv2sensor, warnings) def get_subdistributor_positions(msp, dist2sensors):