Anpassung der Methoden auf Verwendung von Tunnels. launch.json angepasst, sodass easy_positions.json genommen wird.

This commit is contained in:
2025-05-27 16:54:45 +02:00
parent 9d1c488b26
commit 010b7bb6c4
3 changed files with 69 additions and 9 deletions
+23 -5
View File
@@ -28,7 +28,7 @@ def to_json(d, pretty: bool = True) -> str:
return json.dumps(d, indent=2 if pretty else None, ensure_ascii=False, default=str) #ensure_ascii false für darstellung von "ue"
def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict) -> dict:
def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict, tunnels: dict, tunlength:dict ) -> dict:
# racks = {'Rack_1-0': [Point(0, 0), Point(0, 10)],
# 'Rack_2-0': [Point(10, -2), Point(10, 5)],
@@ -71,6 +71,12 @@ def create_plant(racks:dict, sensors:dict, distributors:dict, mapping:dict) -> d
an.add_distributors(distributors)
# Verbinde UV mit deren naheliegendsten Racks
errors_dists = an.connect_distributor_to_racks()
# Füge Tunnel hinzu
an.add_tunnels(tunnels)
an.set_tunnel_length(tunlength)
# Verbinde Tunnel mit deren naheliegendsten Racks
errors_tunnels = an.connect_tunnels()
# Verknüpfe Sensoren mit zugehörigem UV
an.map_distributors_to_sensors(mapping)
@@ -119,10 +125,22 @@ def prepare_data(rawdata:dict):
ltemp.append(Point(p))
dracks[rname] = ltemp
mapping = rawdata["mappings"]
mapping = rawdata["mapping"]
tunnels = rawdata["tunnel"]
dtunnels = dict()
for tname,lp in tunnels.items():
if tname == "length":
continue
ltemp = list()
for p in lp:
ltemp.append(Point(p))
dtunnels[tname] = ltemp
dtunlength = rawdata["tunnel"]["length"]
return (dracks, dsensors, dsubdists, mapping)
return (dracks, dsensors, dsubdists, mapping, dtunnels, dtunlength)
if __name__ == "__main__":
@@ -144,7 +162,7 @@ if __name__ == "__main__":
# Einlesen und Vorbereiten der Daten
rawdata = load_json(sensors_path)
(racks, sensors, subdists, mapping) = prepare_data(rawdata)
(racks, sensors, subdists, mapping, tunnels, tunlength) = prepare_data(rawdata)
config = configparser.ConfigParser(allow_no_value=True, delimiters=("="))
config.optionxform = lambda option: option # preserve case for letters
@@ -152,7 +170,7 @@ if __name__ == "__main__":
# virtuelle Anlage erstellen
cable_paths = create_plant(racks, sensors, subdists, mapping)
cable_paths = create_plant(racks, sensors, subdists, mapping, tunnels, tunlength)
if args.console:
print(to_json(cable_paths))
print("failed sensor:")