par ferrovipathe » 17 Juin 2023, 16:52
Comme beaucoup, j’ai vainement essayé d’utiliser les décodeurs LEB avec Rocrail et une DR5k. Sans succès…. Toujours l’arbre de Nöel ou des cibles aléatoires.
Jusqu’au moment où j’ai décidé de changer d’approche, exit les objets signaux Rocrail et passons par les objets aiguillages.
Les objets signaux ne seront utilisés que pour l’affichage dans Rocview et n’auront aucun lien avec les décodeurs signaux.
C’est contre-intuitif mais surprise, ça fonctionne, et même plutôt bien.
Pour les tests : Rocrail, une DR5K, un signal LEB ref 14, la doc FT006 de LEB et surtout la page 7 avec le tableau de valeurs des adresses.
Le signal a l’@ 91 et les @ logiques 361 à 364.
Ces adresses permettront de vérifier sur le Switch Control de la DR5K que les commandes sont bien reçues de Rocrail.
Le principe : affecter un aiguillage à chaque adresse du signal, soit 4 aiguillages.
Pour le test, dans Rocrail 4 aiguillages sont créés avec les adresses
Aig-1 : 91: 1
Aig-2 : 91: 2
Aig-3 : 91: 3
Aig-4 : 91: 4
A l’aide la table page 7 en fixant que l’état Turnout = 1 et Straight = 0, on peut définir les combinaisons des aiguillages pour avoir une cible donnée.
Ex : Pour avoir la cible RRc + Ac, rang 10 d’après le tableau de la page 7, il faut 1010 pour les aiguillages.
Ca donne :
Aig-1 : 91: 1 : straight
Aig-2 : 91: 2 : turnout
Aig-3 : 91: 3 : straight
Aig-4 : 91: 4 : turnout
Petite remarque, les aiguillages se lisent de gauche à droite alors que le tableau LEB se lit de droite à gauche….
Déjà à ce moment, en actionnant les aiguillages dans Rocrail, vous pouvez vérifier sur le Switch Control de la DR5k que les boutons 361 à 364 changent d’aspect.
Si c'est le contraire que vous observez, cochez la case inversion dans l'onglet interface de l'aiguillage... je me suis fait avoir...
En branchant le décodeur, ça continue de fonctionner, il n’y a pas d’information parasite.
En branchant le signal sur le décodeur, surprise, en fonction de la position des aiguillages, les cibles s’affichent correctement sans l’arbre de Nöel et sans latence.
Ouf, on a enfin pris le contrôle des signaux mais par contre il faut adresser 4 aiguillages au lieu d’un signal, pas cool.
Que faire ? Maintenant commence la partie la plus laborieuse.
Dans Rocrail, pour afficher une cible, il faut utiliser les actions, là, il faudrait faire 4 actions par cible mais on va faire autrement.
Bien que n’y connaissant strictement rien en xml, on crée un script xml comme celui-ci qui permet de commander les 4 aiguillages d’un coup.
Dans notre exemple, ça serait:
<?xml version="1.0" encoding="UTF-8"?>
<xmlscript>
<sw id="Aig-1" type="sw" oid="Aig-1" cmd="turnout"/>
<sw id="Aig-2" type="sw" oid="Aig-2" cmd="straight"/>
<sw id="Aig-3" type="sw" oid="Aig-3" cmd="straight"/>
<sw id="Aig-4" type="sw" oid="Aig-4" cmd="turnout"/>
</xmlscript>
Ce fichier permet l'affichage de la combinaison 1001 à savoir RR+A
Il faut créer un fichier par cible souhaitée et modifier les cmd tournout/straight pour avoir la cible voulue en fonction de la doc FT006 de LEB.
Au final, c'est pas si difficile que ça.
Dans l’action créée pour une cible voulue, on choisira exécuter un programme externe et on mettra le nom du fichier xml correspondant à la cible voulue dans le champs commande.
C’est laborieux mais c’est fini.
On peut tester les actions et le signal réagit parfaitement.
Peut être un pro de xml pourrait modifier le script xml pour en faire une fonction avec un switch case et en paramètre les aig et la cible voulue, ça serait classe.
En espérant que ça puisse être utile.