@Jotrain
Je vat mijn conclusie goed samen. Maar ik weet niet of het ook echt kan in iTrain.
Ik ken de voordelen van deze aanpak.
Ik kijk ernaar als programmeur, niet als gebruiker.
Ik rij analoog. Ik heb iTrain niet en Koploper ook niet.
Koploper is met wat aanpassingen analoog te gebruiken (uiteraard zonder support),
iTrain niet.
Twee melders (begin en eind) vormt analoog de aanpak om een zelfde resultaat te bereiken.
De eindmelder is noodzakelijk om het proces te bewaken (en te starten), de beginmelder is nodig voor de controle van de teller.
Ik zie het "gewoon" als een stack (hooiberg) waar je strooitjes op gooit, met een teller die bijhoudt hoeveel strootjes erop mogen.
Die stack is een dynamische lijst, met als principe first in first out (FIFO). Meer is het eigenlijk niet.
Als extra houdt het PC-programma bij hoe lang treinen (strootjes) zijn, en hoeveel lengte er over is na elk strootje, en bepaalt aan de hand daarvan of er nog een strootje bij past.
Analoog doe je dat door treintypes te onderscheiden op basis van hun lengte.
In de jaren '70 deden ze dat al; ze onderscheidden KT (korte trein) en LT (lange trein), en deden dat met magneetjes en reedcontacten. Dus konden analoogrijders met zelfgemaakte hardware vast stellen of een KT nog achter een LT paste.
Koploper kwam voort uit die analoge traditie. iTrain niet.
Als een dynamisch station in iTrain kan, dan is de 2e melder waarschijnlijk redundant. Want het kan efficiënter geprogrammeerd worden dan in Koploper is gebeurd. Dat wil niet zeggen dat iTrain daadwerkelijk efficiënter
is geprogrammeerd. dat weet ik niet.
De eindmelder geeft overtollige info, omdat een programma vanaf de beginmelder op basis van de vaste bloklengte en de treinlengte al kan berekenen waar een trein moet stoppen, hoeveel ruimte er dan nog over is, en welke overige treinen daar dan nog allemaal achter kunnen parkeren. Het is zelfs mogelijk de ideale opvulling al berekend te hebben, lang voordat zo'n trein ook maar in de buurt komt van die plek. Dat kan al vanaf het moment dat de treinen met hun vaste lengte en snelheid zijn ingevoerd in de database.
Analoog is de eindmelder noodzakelijk, PC-gestuurd niet. Niet noodzakelijk (overtollig) betekent niet persé overbodig. Een extra (eind-)melder is een extra beveiliging, en zeker handig als het om een momentmelder gaat (een momentpuls kan ook zo verloren gaan in de datamassa).
*** edited:
Erik Baas reageert op dit bericht met "last in first out (LIFO)".
Hierop reageren is volstrekt offtopic, vandaar dit icoon
Ik vergelijk LIFO met een blik met Dunlop tennisballen.
Dat blik heeft een bodem. Er passen 5 ballen in. Geen 6.
Als je de zesde erin wil stoppen, moet je eerst de 5de eruit halen: Last in, First out.
Een spoorvoorbeeld daarvan is een kopstation of kopspoor.
De laatst binnengekomen trein blokkeert alles op dat spoor.
Die moet eerst weg voordat de volgende erin of eruit kan.
Ik vergelijk FIFO met een koker zonder bodem, waarin 5 ballen passen.
Als je de zesde bal erin stopt, komt er noodgedwongen aan de andere kant eentje uit
(dat is de eerste bal die erin ging): First in, First out.
Een spoorvoorbeeld daarvan is een doorgangsspoor (meeste schaduwstations).
De eerst binnengekomen trein moet weg, en alles moet opschuiven, voordat de volgende trein erin kan.
Koploper's dynamisch schaduwstation is bedoeld voor doorgangssporen (doorgangsstations),
en werkt niet op kopsporen (kopstations).
Als je bij een doorgangspoor(station) spreekt van een schuifregister, dan schuift dat register bij een kopspoor
de ene kant op bij binnenkomst, en de andere kant op bij vertrek.