Zeitlicher Ablauf von Operationen in Zugfahrten

Aus RailRoad&Co.-Wiki
Version vom 11. Januar 2023, 12:20 Uhr von Uslex (Diskussion | Beiträge) (Auf Makro-Ende warten)
Zur Navigation springenZur Suche springen
Verwendung
thumbs


Zeitlicher Ablauf von Operationen

Problem

Ich richte gerade Licht und Sound in meinen Zugfahrten ein. So sollen bestimmte Sounds beim Einfahren oder bei der Weiterfahrt abgespielt werden.

Hier ist der zeitliche Ablauf wichtig, da in der Zugfahrt ja bereits Start- und Zieloperationen eingerichtet werden können. Auch in den jeweiligen Blöcken, die zur Zugfahrt gehören, können noch weitere Operationen gesteuert werden.

Inbesondere beim Zielblock ist die Reihenfolge der Aktionen wichtig.

Operationen aufrufen vs. abarbeiten

Herr Freiwald erklärt den zeitlichen Ablauf von Operationen im Forum so:

Viele Anwender haben die (falsche) Vorstellung, dass Operationen schön der Reihe nach ablaufen und die nächste Operation erst abgearbeitet wird, wenn die vorherige Operation vollständig abgearbeitet oder beendet wurde.

Operationen werden in einer Operationsliste aber nicht nacheinander abgearbeitet, sondern nacheinander aufgerufen. Ein kleiner aber feiner Unterschied.

Der Aufruf einer Operation erfolgt, nachdem die vorhergehende Operation aufgerufen wurde. Von diesem Moment an können diese Operation und die vorhergehende Operation parallel nebeneinander ablaufen.

Das liegt daran, dass viele Operationen gar kein definiertes oder bekanntes Ende haben. Eine Zugfahrt z.B., die endlos im Kreis gestartet wird, endet vielleicht nie (bzw. erst bei Programmende). Beim Abspielen eines Sounds ist nicht bekannt, wann dieser endet, usw.

Die Möglichkeit, Makros synchron oder asynchron aufzurufen, bildet hiervon keine Ausnahme. Wenn ein Makro synchron aufgerufen wird, so wird dem Aufruf der nachfolgenden Operation nicht etwa gewartet, bis alle Operationen im aufgerufenen Makro abgearbeitet wurden, sondern bis alle Operationen vom aufgerufenen Makro aufgerufen wurden.

Zeitverlauf

Zum zeitlichen Ablauf von Operationen wurde dieses Bild entworfen.

Abb: Operationen im Zeitverlauf

Modellbahnkollege Domapi hat uns die Beschreibung Operationen_im_Zeitverlauf.pdf zum zeitlichen Ablauf von Operationen in einer Zugfahrt zur Verfügung gestellt.

Auf Makro-Ende warten

Wird in TrainController im Rahmen von Operationen ein Makro gestartet, so wird dieses Makro grundsätzlich parallel zu den weiteren Operationen abgearbeitet. Im TC-wiki-Beitrag: Makro: Abarbeitung wird diese Parallelverarbeitung umgangen.


Weblinks


--Wohlmannstetter 12:54, 16. Feb. 2019‎
bearbeitet: Uslex (Diskussion) 07:48, 20. Aug. 2022 (CEST)