Sensor-Zuordnung: Separator/Scanner je Kreisel/Strecke zaehlen vor Export
count_sep_scan.lsp neu als wiederverwendbare Engine (cs-zuordnung-lauf), die automatisch vor jedem CSV-/Sivas-Export laeuft (export.lsp, csv:run-export). Zaehlt Separator_SP/Scanner je Carrier (Kreisel/Eckrad, VF_*, GF_*) ueber die gemeinsamen cfg/export.cfg-Muster und schreibt ANZAHL_SEPARATOR/ANZAHL_SCANNER, so dass die Summe zur Szene passt. Scanner ausserhalb jeder Carrier-Boundingbox ohne ZUORDNUNG werden per Abstand dem naechsten Kreisel/Strecke zugeschlagen (ZUORDNUNG = Carrier-ID). Ist der Abstand zum zweitnaechsten Kandidaten fast gleich (<= strittig_diff_mm, neu in cfg/export.cfg [Sensorzuordnung]), gilt die Zuordnung als strittig: Konsolenausgabe der ergaenzten Scanner + JSON-"warnung"-Feld mit den IDs der strittigen Kandidaten (csv:block-to-json), das export_csv.py in der Spalte "Warnungen" ausgibt. Menue: ZAEHLE_SEP_SCAN-Vorlauf vor EXPORTSIVAS entfernt (laeuft jetzt automatisch im Export); interaktiver Befehl bleibt erhalten. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -512,6 +512,18 @@
|
||||
"exp-csv-missing": "\n[%1] ERROR: Python reported success but the CSV is missing: %2. Log: %3",
|
||||
"exp-omni-no-inserts": "\n[OMNI_UPDATE] No INSERT blocks in the drawing.",
|
||||
"exp-omni-updated": "\n[OMNI_UPDATE] %1 elements updated (HEIGHT, ROTATION).",
|
||||
"sens-start": "\n[%1] Checking separator/scanner assignment (ANZAHL_SEPARATOR/ANZAHL_SCANNER)...",
|
||||
"sens-no-inserts": "\n[%1] No blocks found in the drawing - sensor assignment skipped.",
|
||||
"sens-bbox-fehler": "\n ! Bounding box failed for ILS block '%1'",
|
||||
"sens-carrier-zeile": "\n %1 [%2]: Scanner(new)=%3, Separator internal=%4 + manual=%5 -> ANZAHL_SCANNER=%6, ANZAHL_SEPARATOR=%7",
|
||||
"sens-carrier-fehler": "\n ERROR writing the count attributes on %1",
|
||||
"sens-summary": "\n[%1] %2 Kreisel/Streckengruppen/Gefaellestrecken updated, %3 scanners total (%4 unassignable), %5 separators total (%6 unassignable).",
|
||||
"sens-ergaenzt-header": "\n[%1] %2 scanners outside every Kreisel/track bounding box auto-assigned by distance:",
|
||||
"sens-ergaenzt-zeile": "\n Scanner %1 -> %2 (%3mm)",
|
||||
"sens-strittig-suffix": " CONTESTED: also close to %1 (%2mm)",
|
||||
"sens-strittig-summary": "\n[%1] WARNING: %2 of the above assignments are contested (distance to two candidates nearly equal) - see column 'Warnungen' in the CSV export.",
|
||||
"sens-unassigned-marked": "\n[%1] %2 sensor(s) without any Kreisel/track marked (layer '%3').",
|
||||
"sens-zuordnung-fehlt": "\n[%1] WARNING: %2 assigned sensor(s) without a 'ZUORDNUNG' attribute - value not writable.",
|
||||
"id-new-assigned": "\n[ID] New ID assigned: %1",
|
||||
"id-invalid-block": "\n[ID] ERROR: Not a valid INSERT block!",
|
||||
"id-check-no-blocks": "\n[IDSCHECK] No relevant blocks found.",
|
||||
|
||||
Reference in New Issue
Block a user