Envoyer des octets par le port série

Résolu
quadri Messages postés 5 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 26 avril 2005 - 2 avril 2005 à 22:29
bibinutz Messages postés 32 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 13 janvier 2009 - 25 mai 2005 à 15:15
Bonjour à tous



Je souhaite envoyer des entiers par le port série, envoyer des octets parait donc meilleur qu'envoyer des chaines de caractère.



Voici ce que je fais actuellement pour envoyer des octets, en utilisant
un objet "Microsoft Communications Control", soit Mscomm32.ocx, nommé
Comm.




Comm.CommPort = port 'définit le port de la communication

Comm.Settings = baud_rate & "," & "N" & "," & "8" & "1"




Comm.PortOpen = True 'ouverture du port







et, plus loin, à l'intérieur d'un timer :




Dim Out() As Byte

Out(0) = 255

Comm.Output = Out





Et là, ca me met une erreur

Alors que quand c'est




Comm.Output = "255"





ca ne met pas d'erreur. Ca veut dire que je sais envoyer des chaines de caractères et pas des octets ?



En tout cas, si vous pouviez m'aider, ce serait vraiment sympa !!!

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 avril 2005 à 23:11
Salut
Petite erreur sur :
Comm.Settings = baud_rate & "," & "N" & "," & "8" & "1" ' manque la dernière virgule
Comm.Settings = baud_rate & ",N,8,1" ' est aussi bien

Deuxième problème :
Dim Out() As Byte
Out(0) = 255
Comm.Output = Out
Bien que Out soit déclaré, il n'est pas pour autant dimensionné.
Après le Dim, il faut aussitôt prévoir un
Redim Out(0)
Comme ça ton tableau aura une dimension.
Maintenant, envoyer des Bytes ou des codes ASCII, pas d'avantage particulier.
Tout dépend d'où proviennent tes données, et Comm.Output = "Bonjour" marche tout pareil.

Regarde dans l'aide de VB6 sur la méthode Output, tout y est expliqué

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
quadri Messages postés 5 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 26 avril 2005
3 avril 2005 à 20:18
merci, ça a l'air de marcher correctement (en tout cas ça ne fait plus d'erreur)

il faudra que je voie si ça marche effectivement, mais deja, c'est bien.



merci encore ;)
0
bibinutz Messages postés 32 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 13 janvier 2009
25 mai 2005 à 15:15
salut

Moi pour envoyer mes données je procède de cette maniere :


out(0)=chr(255) 'correspond à FF


mais si tu veux envoyer la valeur 255 il faudra l'ecrire sur deux octets
out(0)=chr(5)
out(1)=chr(151)

255 en hexa donne 05 97
et 05 97 en decimal 05 151

voila ca pouvait ptetre te servir par la suite
tcho
0
Rejoignez-nous