ILS Elementtypen für den Export hinzugefügt.
This commit is contained in:
+2
-2
@@ -314,7 +314,7 @@ def process_blocks(blocks, lookup):
|
||||
vf_count += 1
|
||||
items.append({
|
||||
"nr": elem_nr,
|
||||
"teileart": "VarioFoerderer",
|
||||
"teileart": "ILS 2.0 Strecke",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"VarioFoerderer :{vf_count}",
|
||||
"merkmale": build_variofoerderer_merkmale(block),
|
||||
@@ -327,7 +327,7 @@ def process_blocks(blocks, lookup):
|
||||
gf_count += 1
|
||||
items.append({
|
||||
"nr": elem_nr,
|
||||
"teileart": "Gefaellestrecke",
|
||||
"teileart": "ILS 2.0 Gefaellestrecke",
|
||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||
"bezeichnung": f"Gefaellestrecke :{gf_count}",
|
||||
"merkmale": build_variofoerderer_merkmale(block),
|
||||
|
||||
+34
-10
@@ -132,13 +132,20 @@ def build_kreisel_details(block):
|
||||
SKIP_BLOCKS = set(BLOCKPATTERNS.get("pattern_ks_subblocks", ["K1", "K2", "K3", "K4", "KS_EIN", "KS_AUS"]))
|
||||
|
||||
# Sivas-Nummern und Bezeichnungen je ILS-Elementtyp
|
||||
# Hinweis: "ils_kurve", "bt_beladung" und "bg_entladung" sind aktuell nur
|
||||
# Typnamen-Platzhalter - die zugehoerigen Menuebefehle sind noch Dummies
|
||||
# (siehe Lisp/README.md), es gibt noch keine Block-Erkennung dafuer.
|
||||
ILS_SIVASNR = {
|
||||
"kreisel": ("6200", "ILS 2.0 Kreisel"),
|
||||
"eckrad": ("6210", "ILS 2.0 Eckrad"),
|
||||
"zusatzmodul":("6215", "ILS 2.0 Zusatzmodul"),
|
||||
"ils_weiche": ("6216", "ILS 2.0 Weichen"),
|
||||
"strecke": ("6220", "ILS 2.0 Strecke - Module"),
|
||||
"automation": ("6269", "ILS 2.0 Automation und Pneumatik - Gesamtanlage"),
|
||||
"kreisel": ("6200", "ILS 2.0 Kreisel"),
|
||||
"eckrad": ("6210", "ILS 2.0 Eckrad"),
|
||||
"zusatzmodul": ("6215", "ILS 2.0 Zusatzmodul"),
|
||||
"ils_weiche": ("6216", "ILS 2.0 Weiche"),
|
||||
"ils_kurve": ("", "ILS 2.0 Kurve"),
|
||||
"strecke": ("6220", "ILS 2.0 Strecke"),
|
||||
"gefaellestrecke": ("6220", "ILS 2.0 Gefaellestrecke"),
|
||||
"bt_beladung": ("", "BT - Beladung"),
|
||||
"bg_entladung": ("", "BG - Entladung"),
|
||||
"automation": ("6269", "ILS 2.0 Automation und Pneumatik - Gesamtanlage"),
|
||||
}
|
||||
|
||||
|
||||
@@ -157,7 +164,8 @@ def process_blocks(blocks, lookup):
|
||||
gerade_groups = {}
|
||||
kreisel_list = [] # Liste von blocks
|
||||
eckrad_ids = [] # IDs aller Eckrad-Bloecke
|
||||
strecke_ids = [] # IDs aller Strecke-Module (VF_*, GF_*, Vario/Staustrecke)
|
||||
strecke_ids = [] # IDs aller Strecke-/Variofoerderer (VF_*, Vario/Staustrecke)
|
||||
gefaelle_ids = [] # IDs aller Gefaellestrecken (GF_*)
|
||||
|
||||
counters = {
|
||||
"anzahl_boegen": 0,
|
||||
@@ -300,11 +308,11 @@ def process_blocks(blocks, lookup):
|
||||
continue
|
||||
|
||||
# --- Gefaellestrecke Compound-Block (GF_N) ---
|
||||
# Eigener Typ "ILS 2.0 Gefaellestrecke" - NICHT als Variofoerderer zaehlen.
|
||||
if matches_any(bname, BLOCKPATTERNS.get("pattern_gefaellestrecke", [])):
|
||||
attribs = block.get("attribs", {})
|
||||
counters["anzahl_variofoerderer"] += 1
|
||||
counters["anzahl_gefaellestrecken"] += 1
|
||||
strecke_ids.append(get_id(block))
|
||||
gefaelle_ids.append(get_id(block))
|
||||
try:
|
||||
counters["laengen_gefaellestrecken"] += float(attribs.get("L_GF_m", "0") or "0")
|
||||
except (ValueError, TypeError):
|
||||
@@ -419,10 +427,26 @@ def process_blocks(blocks, lookup):
|
||||
})
|
||||
nr += 1
|
||||
|
||||
if counters["anzahl_gefaellestrecken"] > 0:
|
||||
sivasnr, teileart = ILS_SIVASNR["gefaellestrecke"]
|
||||
items.append({
|
||||
"nr": nr,
|
||||
"teileart": teileart,
|
||||
"sivasnr": sivasnr,
|
||||
"sivasnr_quoted": True,
|
||||
"dispgruppe": 20,
|
||||
"anzahl": counters["anzahl_gefaellestrecken"],
|
||||
"laenge_mm": "",
|
||||
"hoehe_m": "",
|
||||
"details": {"IDs": gefaelle_ids},
|
||||
})
|
||||
nr += 1
|
||||
|
||||
# ILS Automation Summierungszeile (nur wenn ILS-Elemente vorhanden)
|
||||
has_ils = (counters["anzahl_kreisel"] > 0
|
||||
or counters["anzahl_eckraeder"] > 0
|
||||
or counters["anzahl_variofoerderer"] > 0)
|
||||
or counters["anzahl_variofoerderer"] > 0
|
||||
or counters["anzahl_gefaellestrecken"] > 0)
|
||||
if has_ils:
|
||||
automation_details = {
|
||||
"Anzahl Kreisel": counters["anzahl_kreisel"],
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
Nr;TeileArt;SivasNummer;Dispogruppe;Anzahl;Laenge[mm];Hoehe[m];details
|
||||
1;"ILS 2.0 Strecke - Module";"6220";20;8;;;{"IDs": ["0001", "0002", "0003", "0004", "0005", "0006", "0007", "0008"]}
|
||||
1;"ILS 2.0 Strecke";"6220";20;8;;;{"IDs": ["0001", "0002", "0003", "0004", "0005", "0006", "0007", "0008"]}
|
||||
2;"ILS 2.0 Automation und Pneumatik - Gesamtanlage";"6269";20;1;;;{"Anzahl Kreisel": 0, "Anzahl Kreisel mit Pinband": 0, "Anzahl aller Separatoren in Kreisel mit PIN": 0, "Anzahl aller Separatoren in Kreisel ohne PIN": 0, "Anzahl Verbindungskreisel": 0, "Laengen aller Kreisel": 0.0, "Anzahl der Weichen": 0, "Anzahl der Eckraeder": 0, "Anzahl der einzelnen Gefaellestrecken": 0, "Anzahl der einzelnen Variofoerderer": 8, "Anzahl der Streckengruppen": 1, "Laengen aller Gefaellestrecken": 0.0, "Anzahl der Motoren Variofoerderer": 0, "Laengen aller Variofoerderer": 26.375, "Anzahl ETFs": 0, "Laengen aller ETFs": 0.0, "Anzahl aller Separatoren": 16, "Anzahl aller Scanner": 0, "Anzahl aller BTBeladung": 0, "Anzahl aller Abwurfstationen": 0}
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 45.
|
@@ -1,3 +1,3 @@
|
||||
Nr;TeileArt;SivasNummer;Dispogruppe;Anzahl;Laenge[mm];Hoehe[m];details
|
||||
1;"ILS 2.0 Strecke - Module";"6220";20;6;;;{"IDs": ["0001", "0002", "0003", "0004", "0005", "0006"]}
|
||||
2;"ILS 2.0 Automation und Pneumatik - Gesamtanlage";"6269";20;1;;;{"Anzahl Kreisel": 0, "Anzahl Kreisel mit Pinband": 0, "Anzahl aller Separatoren in Kreisel mit PIN": 0, "Anzahl aller Separatoren in Kreisel ohne PIN": 0, "Anzahl Verbindungskreisel": 0, "Laengen aller Kreisel": 0.0, "Anzahl der Weichen": 0, "Anzahl der Eckraeder": 0, "Anzahl der einzelnen Gefaellestrecken": 6, "Anzahl der einzelnen Variofoerderer": 6, "Anzahl der Streckengruppen": 1, "Laengen aller Gefaellestrecken": 53.08200000000001, "Anzahl der Motoren Variofoerderer": 0, "Laengen aller Variofoerderer": 0.0, "Anzahl ETFs": 0, "Laengen aller ETFs": 0.0, "Anzahl aller Separatoren": 6, "Anzahl aller Scanner": 0, "Anzahl aller BTBeladung": 0, "Anzahl aller Abwurfstationen": 0}
|
||||
1;"ILS 2.0 Gefaellestrecke";"6220";20;6;;;{"IDs": ["0001", "0002", "0003", "0004", "0005", "0006"]}
|
||||
2;"ILS 2.0 Automation und Pneumatik - Gesamtanlage";"6269";20;1;;;{"Anzahl Kreisel": 0, "Anzahl Kreisel mit Pinband": 0, "Anzahl aller Separatoren in Kreisel mit PIN": 0, "Anzahl aller Separatoren in Kreisel ohne PIN": 0, "Anzahl Verbindungskreisel": 0, "Laengen aller Kreisel": 0.0, "Anzahl der Weichen": 0, "Anzahl der Eckraeder": 0, "Anzahl der einzelnen Gefaellestrecken": 6, "Anzahl der einzelnen Variofoerderer": 0, "Anzahl der Streckengruppen": 1, "Laengen aller Gefaellestrecken": 53.08200000000001, "Anzahl der Motoren Variofoerderer": 0, "Laengen aller Variofoerderer": 0.0, "Anzahl ETFs": 0, "Laengen aller ETFs": 0.0, "Anzahl aller Separatoren": 6, "Anzahl aller Scanner": 0, "Anzahl aller BTBeladung": 0, "Anzahl aller Abwurfstationen": 0}
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 45.
|
@@ -300,9 +300,9 @@ class TestFoerdererExportSivas:
|
||||
assert len(self.rows) > 0, "foerderer_tests_sivas.csv enthaelt keine Daten"
|
||||
|
||||
def test_strecke_zeile_vorhanden(self):
|
||||
"""Eine Zeile mit TeileArt 'ILS 2.0 Strecke - Module' muss vorhanden sein."""
|
||||
"""Eine Zeile mit TeileArt 'ILS 2.0 Strecke' muss vorhanden sein."""
|
||||
teilearten = [row[1].strip('"') for row in self.rows if len(row) >= 2]
|
||||
assert "ILS 2.0 Strecke - Module" in teilearten, (
|
||||
assert "ILS 2.0 Strecke" in teilearten, (
|
||||
f"Keine Strecke-Zeile gefunden. Vorhandene: {teilearten}"
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user