Page 1 sur 1

intellibox+PC

Posté : 06 avr. 2008 09:36
par nanard36
Archives de l'ancien forum

intellibox+PC

Posté : 06 avr. 2008 09:36
par nanard36
bonjour
encore merci pour vos aides
j'ai reçu l'intellibox que j'ai connectée a l'ordinateur
j'ai beaucoup cherché pour envoyer les commandes depuis l'ordinateur et j'ai trouvé un document sur Espace Rail : "communication avec l'intellibox" qui m'a bien aidé au départ
pour envoyer les commandes depuis visual basic, je passe par le contrôle MSCOMM qui gère le port série
pour l'instant, j'arrive a allumer et a éteindre la centrale en envoyant les commandes :
MSComm1.Output = Chr(A7)+Chr(&h0D) pour allumer
MSComm1.Output = Chr(A6)+Chr(&h0D) pour éteindre
ceci fonctionne avec ou sans le Chr(&h0D)
par contre, je n'arrive pas à transmettre les commandes pour une loco comme indiqué dans le document ci-dessus :
l'exemple donné :
loco d'adresse 12, moitié de la vitesse,marche arrière, feux allumés, f1 activée, f4 à f2 désactivée
tous ceci traduit en hexadécimal donne :
80h, 0Ch, 00h, 40h, D1h. (80h est le code commande pour les locos)
depuis mon programme, j'écrit :
MSComm1.Output = Chr(&h80)+Chr(&h0C)+Chr(&h00)+Chr(&h40)+Chr(&hD1)+Chr(&h0D)
mais la centrale ne répond pas
comment faut-il envoyer ces codes hexa?

pouvez vous m'aider svp

intellibox+PC

Posté : 06 avr. 2008 12:56
par olivierl
Bonjour nanard36,

Je ne connais pas le protocole de communication avec l'intellibox mais j'ai un peu regardé la doc. As tu essayé les mêmes commandes avec le logiciel WDiags.exe pour voir si ça réagisssait ?

intellibox+PC

Posté : 06 avr. 2008 20:48
par nanard36
bonjour olivier
oui, j'ai testé avec WDiags et ça marche
donc la liaison fonctionne
le probleme, c'est la procédure pour envoyer ces codes hexa

intellibox+PC

Posté : 06 avr. 2008 23:23
par olivierl
As tu bien initialisé les paramètres de connexion (vitesse de transition, nombre de bits, ...) de ton port COM dans Visual Basic ?

Par exemple : MSComm.Settings = "9600,N,8,1"

intellibox+PC

Posté : 06 avr. 2008 23:36
par olivierl
Autre question.

Tu marques :
MSComm1.Output = Chr(A7)+Chr(&h0D) pour allumer

Je ne me souviens plus trop de la notation des nombres en hexa dans Visual Basic mais tu marques Chr(A7). A7 est une variable ou le nombre en hexa car en toute logique, les autres nombres devrais s'écrire sans le &h. Comme :

MSComm1.Output = Chr(80)+Chr(0C)+Chr(00)+Chr(40)+Chr(D1)+Chr(0D)

intellibox+PC

Posté : 07 avr. 2008 07:16
par jpp38
Bonjour,

En binaire, il ne faut pas envoyer les CR (OD).

Voici un excellent lien que j'ai suivi pour écrire mon protocole IB Protocole IB par Alain Trinquet
Il est remarquablement bien fait, et ça devrait répondre à toutes tes questions.

Jpp38

intellibox+PC

Posté : 09 avr. 2008 07:39
par nanard36
bonjour
j'ai trouvé la solution, il faut absolument lire les infos en retour de la centrale sinon ça ne marche pas
merci pour vos aides