Sensor-Zuordnung: billiger Schnelltest vor teurem Lauf
cs-zuordnung-noetig-p prueft ohne jede Boundingbox (nur Attribute lesen + interne Ketten-Separatoren aus der Blockdefinition zaehlen), ob der teure cs-zuordnung-lauf (Boundingbox+Regen je Carrier und Sensor) ueberhaupt noetig ist. Voller Lauf nur bei leeren ZUORDNUNG-Eintraegen oder wenn die Summe ANZAHL_SCANNER/ANZAHL_SEPARATOR ueber alle Carrier nicht zur Anzahl der Scanner-/Separator-Symbole (+ interne Ketten-Separatoren) passt. Sonst wird uebersprungen (neue Meldung sens-skip). csv:run-export ruft die Zuordnung jetzt nur noch bei Bedarf auf. Der interaktive Befehl ZAEHLE_SEP_SCAN rechnet weiterhin immer komplett neu (deckt auch den Fall ab, dass ein Sensor ohne Summenaenderung von einem Carrier zu einem anderen verschoben wurde). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+9
-1
@@ -638,9 +638,17 @@
|
||||
;; Block im JSON an. verbose=nil haelt die Export-Konsole kompakt
|
||||
;; (die ausfuehrliche Detailzeile je Carrier gibt es nur beim
|
||||
;; interaktiven Befehl ZAEHLE_SEP_SCAN).
|
||||
;;
|
||||
;; Der Lauf ist teuer (Boundingbox+Regen je Carrier und Sensor),
|
||||
;; darum vorher der billige Schnelltest cs-zuordnung-noetig-p (nur
|
||||
;; Attribute lesen, keine Boundingboxen): nur bei leeren ZUORDNUNG-
|
||||
;; Eintraegen oder abweichenden Summen wird tatsaechlich neu gerechnet.
|
||||
(ssg-ensure "count_sep_scan")
|
||||
(if (atoms-family 1 '("cs-zuordnung-lauf"))
|
||||
(cs-zuordnung-lauf label nil)
|
||||
(if (cs-zuordnung-noetig-p)
|
||||
(cs-zuordnung-lauf label nil)
|
||||
(princ (ssg-textf "sens-skip" (list label)))
|
||||
)
|
||||
)
|
||||
(princ (ssg-textf "exp-collect-blocks" (list label)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user