Les Systèmes de contrôle de modèle ferroviaire ne peut généralement pas vous dire quel train occupe un portion particulière de voie à un moment donné.
Cela est regrettable, car il y a beaucoup de raisons pour vouloir le savoir. Par exemple, vous voudrez peut-être commander tous les trains qui atteignent un signal rouge particulier pour s'arrêter. Mais vous ne pouvez pas faire ça sauf si vous savez quel est le train qui a atteint le signal.
JMRI fournit des outils expérimentaux de suivi pour les trains en mouvement sur le réseau.
Au début, le capteur pour le canton A est montré actif. Comme le train se déplace dans le canton B, le capteur pour B deviendra actif. Lorsque le train a complètement quitté A , son capteur deviendra inactif. Etc
Même si nous ne savons pas d'un canton particulier s'il est actif ou pas (occupé ou non), en se penchant également sur l'occupation des cantons adjacents on peut en savoir plus. Dans l'exemple ci-dessus, si le code savait que le train 321 était dans le canton A, lorsque le canton B devient actif, le programme peut déduire que 321 est désormais également dans le canton B.
.
Cela ne fonctionne pas toujours, malheureusement. Imaginons le cas ci-dessus, où il y a à la fois un train en A et aussi un train en C. Lorsque B va d'inactif à actif (inoccupé au occupé), quel train a pénétré dans B? Celui de A, ou celui de C?
Une partie de cette ambiguïté peut être enlevé par un arrangement soigneux de la détection des cantons qui doivent être courts , et en utilisant une logique plus intelligente qui pense à la direction et la priorité des trains. Mais il est clair que même la voie droite pose quelques problèmes.
Les aiguillages ajoutent une couche supplémentaire de complexité. Imaginez un train présent dans le canton à côté de la voie directe (closed) , et un autre présent dans la voie déviée (thrown) . Lorsque le capteur d'occupation pour l'aiguillage devient actif, quel train est entré dans l'aiguillage de la voie? Cela dépend de quelle manière l'aiguillage est positionné, de sorte que le programme doit être en mesure de considérer cette information.
Notez que ceci est le code de test, et que toutes les fonctions ne sont pas complètement présentes. Par exemple, vous ne pouvez pas stocker des objets de cantons dans un fichier de configuration, ils doivent être manuellement créé dans vos scripts. Cette limitation sera supprimée avec le temps.
La direction d'un canton est détermpinée par la direction de l'arrivée du train . Quand un train se trouve à venir par un chemin particulier, que GetFromBlockDirection chemin devient la direction du train dans ce canton. Questions
: