Comme le dit Fabounet, il n'y a rien de compliqué : c'est une documentation en anglais écrite par un italien ! Autant te dire que ce n'est pas du Shakespeare
Juste un petit exemple pour t'aider à démarrer :
Dans le document 'P50X_LT.txt', tu peux lire :
P50Xb (P50X binary) locomotive & turnout control commands.
----------------------------------------------------------
*** XLok (080h) - length = 1+4 bytes
Parameters (byte) - please check also P50Xa 'L' cmd:
1st low byte of Lok address
2nd high byte of Lok address
3rd speed (0..127: 0 = Stop, 1 = Stop/Em.Stop)
N.B. bit #7 is reserved for future use!
4th this byte has the following format:
bit# 7 6 5 4 3 2 1 0
+-----+-----+-----+-----+-----+-----+-----+-----+
|ChgF |Force| Dir | FL | F4 | F3 | F2 | F1 |
+-----+-----+-----+-----+-----+-----+-----+-----+
where:
ChgF set if F1..F4 to be used for setting F1..F4 of
Lok (otherwise F1..F4 are ignored)
Force if set (1), then the XLok command is 'forced'
even in case of a Lok already controlled by a
non-PC device
Dir Lok direction: 1 = forward, 0 = reverse
FL Lok light status: 1 = on, 0 = off
F4..F1 Lok F4..F1 status (if ChgF is set)
Reply:
1st either 00h (cmd Ok) or error code.
En clair, ce paragraphe décrit la commande 'XLok' du protocole de communication P50Xb (version binaire). Cette commande a une taille de : 1+4=5 octets.
Le premier octet à envoyer est la commande XLok, soit l'octet de valeur 80 en hexadécimal.
Puis suivent 4 octets qui sont les 4 paramètres de cette commande :
1er paramètre : l'octet de poids faible de l'adresse de la loco.
2ème paramètre : l'octet de poids fort de l'adresse de la loco.
3ème paramètre : la vitesse de la loco sur une échelle de 0 à 127. 0 = arrêt progressif (avec inertie), 1 = arrêt d'urgence (sans inertie), 2 = premier cran de vitesse (vitesse minimale), 127 = dernier cran de vitesse (vitesse maximale).
4ème paramètre : un octet dans lequel chaque bit a une signification particulière.
-bits 0 à 3 : l'état des fonctions F1 à F4 (1 pour activer la fonction)
-bit 4 : l'état de la fonction F0, c'est à dire les feux (1 pour allumer les feux).
-bit 5 : le sens de marche (1 pour la marche avant)
-bit 6 : forçage de la commande de la loco même si elle est déjà sous contrôle (1 pour forcer).
-bit 7 : mettre à 1 pour que les valeurs des bits 0 à 3 (fonctions F1 à F4) soient prises en compte.
La réponse de l'IBox est constituée d'un seul octet. La valeur 0 signifie que tout c'est bien passé. Sinon, une valeur différente de 0 est un code d'erreur qui permet de savoir pourquoi ça n'a pas réussi.
Bon, maintenant concrétement, pour faire fonctionner en marche avant, feux allumé, la locomotive d'adresse 59 à une vitesse de 15, il faut envoyer :
1er octet : 80 en hexa (commande XLok)
2ème octet : 3B en hexa (59 en décimal)
3ème octet : 0
4ème octet : 0F en hexa (15 en décimal)
5ème octet : F0 en hexa (marche avant, feux allumés, pas de fonctions F1 à F4).
L'IBox doit répondre 0.
Il faut bien sûr que l'IBox soit connectée au PC à la bonne vitesse (voir dans le menu de configuration). Pour valider la communication entre l'IBox et le PC, on peut commencer en s'amusant à taper à la main des commandes du protocole P50Xa (ASCII).
Bon amusement !
Intellibox / z21 / LokProgrammer / Décodeurs ESU, Lenz, Zimo, Kuehn, CT-Elektronic, Leb