Définir toutes les méthodes dans un fichier specif.h ne va pas être chose facile
Pour arriver à modéliser un réseau jusqu'au point où le Gestionnaire pourra exercer ses différentes méthodes, j'ai rassemblé un certain nombre de réflexions et de règles à observer, qui sont probablement évidentes pour les modélistes baignant la dedans depuis longtemps et connaissant bien le fonctionnement de la SNCF.
Je vous soumets donc le fruit de mes cogitations qui s'appliquent à mon tracé de réseau représenté sur cette image :
Pour utiliser le Gestionnaire il faut se conformer aux règles de la SNCF.
- On se placera donc du point de vue du conducteur qui doit respecter les signaux
- On s'appuiera par exemple sur le règlement IN1482 - S1A "SIGNAUX - Signalisation au sol"
Après le tracé du réseau il faut faire le découpage en zones (ne pas confondre avec les cantons).
- Une zone est un élément de réseau indivisible : segment de voie avec ou sans appareil de voie.
- Certaines zones sont constituées seulement d'un segment de voie qui peut être parcouru dans un seul sens ou dans les deux sens.
- Certaines zones peuvent contenir une ou plusieurs aiguilles.
- Un canton est une suite de zones entre deux signaux pouvant présenter le sémaphore, pour faire du cantonnement.
- Un canton doit pouvoir contenir entièrement le train le plus long.
La topographie du réseau (sa modélisation) est décrite dans les méthodes
suivantePaire(), suivanteImpaire() des zones qui définissent les connexions entre zones en fonction des positions des aiguilles.
Le découpage en zones permet ensuite de délfinir les signaux et les itinéraires.
- Les signaux conditionnent le déplacement des trains qui doivent les respecter via le CabSignal envoyé aux trains.
- Les itinéraires définissent un chemin entre une zone de départ et une zone d'arrivée.
- Les itinéraires considérés ici sont de petits itinéraires (élémentaires) qui définissent tous les chemins possibles à travers chaque zone avec aiguille(s).
- Il ne s'agit pas de grands itinéraires reliant n'importe quel point de départ avec n'importe quel point d'arrivée.
- Ce type de grand itinéraire sera possible par assemblage d'itinéraires élémentaires tels que ci-dessus.
La formation d'un itinéraire positionne les aiguilles et les signaux et autorise donc le passage du train.
- Elle n'est possible que si toutes les zones traversées sont libres.
- Chaque zone doit donc disposer d'un détecteur d'occupation (rétrosignalisation).
- Certaines zones (quais de gare) doivent avoir en plus un dispositif d'arrêt des trains avant le signal de la zone suivante (zone d'arrêt ou détecteur équivalent).
- La libération d'une zone est acquise lorsque tous les wagons/voitures du train ont quitté la zone (par ex. avec feu rouge de wagon de queue)
Le placement des signaux commence par les sémaphore de BAL sur les trajets (cantons) sans aiguilles:
- Un sémaphore protège le canton qui le suit (dans le sens de déplacement du train).
- Le signal qui précède fait l'avertissement du sémaphore suivant.
Le placement des signaux continue par les carrés avant aiguilles (ou croisements, TJDs, etc..):
- En sortie de gare quand la voie s'est divisée en plusieurs voies, coté talons d'aiguille.
- En entrée de gare avant les aiguilles d'orientation vers les voies coté pointe d'aiguille.
- Le signal qui précède ce carré, doit pouvoir présenter un avertissement.
- Avant une aiguille déviée, le signal doit présenter un rappel de ralentissement.
- Le signal précédant un rappel de ralentissement doit présenter un ralentissement (en plus de l'avertissement).
Le placement des signaux continue enfin par les signaux de manoeuvre:
- En sortie d'une zone de manoeuvre, il y a un carré violet ou un feu blanc (marche en manoeuvre).
- Le carré violet s'impose devant les aiguilles prises dans le sens contraire au sens normal.
Une fois que les signaux sont placés et les itinéraires définis, on peut programmer les methodes paticulières
- des zones
- des signaux
- des itinéraires
- des aiguilles
1) En sachant que les methodes appelées par la rétrosignalisation dans la LOOP sont les commandes venant de la rétrosignalisation:
- si occupation : actions()
- si liberation : desactions()
- occuper(), liberer(), tracer() : pour afficher le retour au TCO
- En plus évidemment des methodes de la modélisation:
- suivantePaire()
- suivanteImpaire()
2) Les commandes des signaux (appellées par les commandes d'itinéraires, depuis le TCO) sont :
- suivant(),
- precedent(),
- ralentissement30(), ralentissement60(), si signal le nécessite,
- manoeuvrer() : interface avec le matériel pour commander les signaux réels et l'affichage sur le TCO
3) Les commandes des Itinéraires (venant du TCO) sont:
- formable(),
- former(),
- deformable(),
- deformer(),
- formation(), destruction(), tracer() : interface avec le matériel pour afficher le retour au TCO
4) Les commandes d'aiguilles:
- manoeuvrer() : interface avec le matériel pour commander les aiguilles
Règles concernant le découpage en zonesSur une zone il ne peut y avoir qu’un seul train à la fois, en conséquence s’il peut y avoir deux trains (ou plus) sur une zone sans risques de collision alors la zone doit être scindé en deux zones (ou plus).
Un canton est une suite de zones (avec ou sans aiguille) entre deux signaux pouvant présenter le sémaphore (BAL)
Par exemple Z16-Z4 est un canton si on fait du BAL, sinon c’est deux zones !
Mais comme un train doit tenir entièrement dans la zone z4 (car c'est une gare cachée) la zone z16 doit pouvoir être libre quand un train occupe z4, pour permettre à un autre train d'entrer dans la zone z5. Donc ici, c'est bien 2 zones.
Un canton ne peut être libre que si toutes les zones sont libres. (il ne suffit pas que le seule zone suivante soit libre, sauf si le canton n’a qu’une seule zone)
Règles concernant les signauxLa méthode suivant() d’un signal concerne le signal suivant dans le sens de la marche du train
Un signal est aubiné par l’occupation de la zone suivante (celle tout juste après le signal, quelques mètres après le signal à la SNCF) dans la methode actions() de la zone.
Normalement on ne devrait aubiner que le signal ouvert (s’il existe) mais on peut aussi aubiner tous les signaux autour à la fois, car ils sont déjà fermés.
Lors du parcours d’un itinéraire le signal est aubiné lors de l’occupation de la zone qui suit la zone d’origine (regle précédente)
REGLE : desaubiner() et cantonOccupe() ne servent que pour les signaux de BAL
Dans le cas de signaux de BAL (pouvant présenter le sémaphore) le signal est désaubiné à la libération de toute les zones qui suivent le signal (souvent il n’y en a qu’une seule, dans ce cas c’est la même zone qui aubine et désaubine le signal de BAL).
REGLE : desaction() ne sert que pour les signaux avec BAL, c’est inutile pour les autres
REGLE : Le ralentissement se fait par un signal d’avertissement (ou de ralentissement)
Règles concernant les itinérairesUn itinéraire a une zone d’origine et une zone de destination (généralement sans aiguilles),. Entre les deux il peut y avoir plusieurs zones avec ou sans aiguilles.
En partant de la zone d’origine vers la zone de destination toutes les zones traversées font partie de l’itinéraire (+celle origine et celle de destination).
L’itinéraire est détruit lors de la libération de l‘avant dernière zone !
En transit rigide, la zone qui détruit un itinéraire est l'avant-dernière zone juste avant la zone de destination.
Exemple, l'itinéraire z16-z17-z4 est détruit quand un train est entièrement entré dans la zone z4 et a donc libéré la zone d'aiguille z17.
Ainsi, un nouvel itinéraire z16-z17-z5 peut être formé.
Le gestionnaire ne traite pas des aiguilles prises en talon, le suivant de C1 c’est S1 ! (cela ne sert pas dans le gestionnaire contrairement aux zones)