Het detecteren van het einde van een operaties en het aansturen van volgorde
Macro in TrainController
Wat is een macro?
Een macro is een reeks operatie instructies, die vanuit verschillende andere operaties kunnen worden opgeroepen en daarom slechts één keer hoeven te worden aangemaakt.
Einde macro
In TC-berichten werd herhaaldelijk de wens geuit dat de gebruiker graag zou willen weten wanneer een macro klaar is met het uitvoeren van zijn bewerkingen, zodat hij vervolgens verdere acties kan starten.
In tegenstelling tot een macro in normale programmeertalen:
- wordt na beëindiging van een macro in TrainController de actie NA de macro-oproep aan het einde NIET voortgezet,
- MAAR eindigt de macro ZONDER terug te keren naar de plaats waar deze werd opgeroepen!
Als er na het aanroepen van de macro in TrainController nog meer bewerkingen volgen, worden deze DIRECT na het aanroepen voortgezet, ze worden dus "parallel" uitgevoerd.
Einde herkennen
Dit document beschrijft het gebruik van macro's in het TC-programma in het algemeen en presenteert verschillende manieren waarop het einde van een macro - "programmaduur" kan worden herkend en hoe verdere processen (operaties) in TC-objecten hierop kunnen worden aangesloten.
Er wordt bewust GEEN wachttijd gebruikt, zodat de processen "naadloos" op elkaar aansluiten --- zonder de bekende problemen die gepaard gaan met wachttijden.
Er moet nu al worden opgemerkt dat de lezer zijn specifieke geval niet behandeld ziet. Hij moet uit de "basisprincipes" de oplossing voor zijn geval afleiden.
Document downloaden
Het volgende document laat zien hoe je een macro-proces kunt herkennen en hoe je een gedrag kunt maken dat aansluit bij het gedrag in "normale programmeertalen" en processen in andere TC-objecten initieert.
Het document is ter beschikking gesteld door Jens Mohr en kan worden geraadpleegd onder de titel als pdf: "TC-Makro_Operationsende_Erkennung-WiKi.pdf".
Weblinks
- Handleiding: TC-Makro_Operationsende_Erkennung-WiKi.pdf
- -- Jens Mohr 16:24, 28. Sep. 2016 († 2023)
- bearbeitet: Uslex (Diskussion) 09:08, 18. Feb. 2022 (CET), Uslex (Diskussion) 13:23, 31. Jul. 2023 (UTC), Uslex (Diskussion) 10:22, 24. Aug. 2024 (CEST)
