OVH Cloud OVH Cloud

Temporisation dans mscomm

12 réponses
Avatar
Karl
Bonsoir,
La doc. de l'interface que j'utilise dans mon application, recommande une
temporisation de 200ms pour l'envoi ou la réception des blocs de données.

Ma question ; Faut-il mieux utiliser un Timer ou Sleep ?

Cordialement
Karl

2 réponses

1 2
Avatar
Jean-marc
ab wrote:
Bonjour,
Encore une petite question sur l'évenement OnComm

Pour visualiser en temps réel, l'angle Y X de mon application,
j'interroge en continue l'interface.
Ne trouvant pas d'explication sur comEvSend sur le Web, j'ai tenté la
fonction.
A priori je peux l'utiliser, mais le problème c'est qu'il me renvoie
que la première partie du code (Direction_Droite_Gauche )

Je ne peux pas concaténer les deux à cause de la temporisation de
200ms entre les ordres.
De plus je suis tenu de respecter les caractères de fin vbCrLf et
vbCr, sans
doute un bug dans le Pic de l'appareil..

Case comEvSend
MSComm1.Output = Direction_Droite_Gauche &
vbCrLf MSComm1.OutBufferCount = 0
sleep 200



ouh la!!
Je crains qu'il n'y ait eu confusion!! Il ne faut surtout pas
faire ça avec OutBufferCount !!

Il faut TESTER que la valeur est 0 avant de faire le Sleep,
mais surtout pas AFFECTER !! Ca vide ton buffer de transmission!

Voir ici:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comm98/html/vbproOutBufCnt_Comm.asp


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
ab
"Jean-marc" a écrit dans le message
de news: eqk0jb$rj1$
ab wrote:
Bonjour,
Encore une petite question sur l'évenement OnComm

Pour visualiser en temps réel, l'angle Y X de mon application,
j'interroge en continue l'interface.
Ne trouvant pas d'explication sur comEvSend sur le Web, j'ai tenté la
fonction.
A priori je peux l'utiliser, mais le problème c'est qu'il me renvoie
que la première partie du code (Direction_Droite_Gauche )

Je ne peux pas concaténer les deux à cause de la temporisation de
200ms entre les ordres.
De plus je suis tenu de respecter les caractères de fin vbCrLf et
vbCr, sans
doute un bug dans le Pic de l'appareil..

Case comEvSend
MSComm1.Output = Direction_Droite_Gauche &
vbCrLf MSComm1.OutBufferCount = 0
sleep 200



ouh la!!
Je crains qu'il n'y ait eu confusion!! Il ne faut surtout pas
faire ça avec OutBufferCount !!

Il faut TESTER que la valeur est 0 avant de faire le Sleep,
mais surtout pas AFFECTER !! Ca vide ton buffer de transmission!

Voir ici:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comm98/html/vbproOutBufCnt_Comm.asp


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/





Effectivement, le buffer était vide à chaque fois.
C'est beaucoup mieux ainsi.

Encore merci pour l'aide.
Bon Week-end
Cordialement Karl
1 2