Probleme d'ecriture sur rs232

cs_jamaica Messages postés 40 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 9 décembre 2006 - 1 déc. 2006 à 17:16
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 4 déc. 2006 à 11:22
Bonjour tout, le monde

voila j'ai un souci j'ai fait un prog. en vb6 qui m'envoie sur 2 variable ex: a et b .
Je devrait s'avoir les envoier sur le port rs232 en hexadecimale :
variable a = Hex$(224)
varaible b = Hex$(127)
jusque la tout va bien mais...

donc avec mscomm.ouput = ((a) +(b))

je recois sur l'autre pc :  E07F bien coller ... je devrait recevoir pour bien faire ex: :E0  7F il y a t'il quelqu'un qui pourrait m'aider a d'ecoller c'est deux octet ou quel fonction emploier

merci d'avance

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 déc. 2006 à 17:23
variable a = Hex$(224)
varaible b = Hex$(127)
mscomm.ouput = ((a) +(b))

Dans ce cas là, tu envois les caractères 'E','0','7' et 'F'. Est-ce bien ce que tu veux envoyer ou est-ce plutot les nombres &hE0 et &H7F que tu souhaite envoyer ?????

Sinon dans le cas ou ton code est bon, pour les séparer, tu peux rajouter un espace : ((a) & " " & (b))
(Dsl, je n'aime pas concaténer les chaines de caractères avec '+', j'utilise à la place '&' ce qui syntaxiquement est plus juste d'ailleur)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_jamaica Messages postés 40 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 9 décembre 2006
1 déc. 2006 à 18:29
Merci déja pour tes conseil

Mais ses les nombres &hE0 et &H7F que tu souhaite envoyer

merci d'avance
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 déc. 2006 à 19:15
Ok c'est les nombres que tu veux envoyer.

Dans ce cas, peu importe qu'ils soit en hexa, décimal, .... Ce n'est qu'une représentationpour nous programmeurs pour pouvoir les lire. Au niveau nombre, 127=&h7F c'est strictement la même chose. Donc pas de conversion en Hexa avec HEX. HEX te renvoie une chaine de caractère qui est la réprésentation hexa (différent de la valeur) du nombre. Hex sert juste pour de l'affchage.

Par contre dans notre cas, MsComm ne sait pas envoyer de nombre, il ne sait envoyer que des caractères. Donc si tu veux envoyer le nombre 224, il faut en fait envoyer le caractère correspondant en utilisant CHR$(224)

Donc ici il faut faire MsComm.Output = Chr$(224) & Chr$(127)

Pour faire l'opération inverse (à l'arrivée par exemple), tu utilise ASC(), asc() te convertie un caractère en sa valeur numérique (donc tu retrouvera 224 et 127).

Voila, je sais pas si j'ai été assez clair, c'est pas sur

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_jamaica Messages postés 40 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 9 décembre 2006
2 déc. 2006 à 23:26
bonjour

Voila, grand merci  Casy pour touts t'es renseignement bien utile tout fonctionne.
J'aurait encore une question, pour quel résont j'ai des "instructions" a voir si sa en n'est réellement ex :

\Device\Serial2 SUCCESS InQueue: 0 OutQueue: 0 
\Device\Serial2 SUCCESS MaxBaud: 268435456 PacketLength: 64 
\Device\Serial2 SUCCESS Length 5: E0 14 
\Device\Serial2 SUCCESS InQueue: 0 OutQueue: 0 
\Device\Serial2 SUCCESS Mask: RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING  

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 déc. 2006 à 11:22
Sans autre détails, ça va etre difficile à dire.

Tu as ça où ??? dans le code, dans une messagebox, c'est la réponse de l'autre pc ????

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous