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