Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Probleme buffer de lecture

Résolu !
Accéder à la solution

Merci pour ton aide.

J'ai pensé aussi la même chose. J'ai donc remplacé la chaine de caractere $EOT! par le message en entier mais cela ne change rien...

0 Compliments
Message 11 sur 14
1 919 Visites
Solution
Accepté par l'auteur du sujet Marcelito

Alors...

On va récapituler rapidement :

Si je comprends bien, quand tu envoies un des éléments de ta chaîne déroulante, tu dois réceptionner :

a. Soit

"$REM:Reset Com parameters !

$REM:Modem Firmware Version: !

$MOD0:2002!

$EOT!"

b. Soit

"$KO!"

Malheureusement, ton premier problème était que tu ne recevais pas la chaîne en entier du premier coup. De fait, tu es passé par un registre à décalage pour afficher l'ensemble de ton buffer de lecture (il vaut mieux utiliser un registre à décalage comme te l'as conseillé Michael.C plutôt qu'un noeud de rétroaction...).

Du coup, ça signifie qu'à chaque tour de boucle, tu ne reçois jamais la trame qui pourrait arrêter la boucle en entier, ceci explique pourquoi tu n'arrives pas à arrêter ta boucle, non ?

Il faudrait peut-être comparer l'ensemble du buffer de lecture à ce que tu veux lire, et pas uniquement ce que tu as reçu au tour de boucle en question. C'est ce que j'ai fait dans ma petite modif de ton VI.

 

Sinon, dans le cas où tu veux uniquement savoir si tu as reçu un "$EOT!" ou un "$KO!", tu peux utiliser le petit truc que j'ai mis dans le diagramme désactivé du VI : Tu recherches l'expression "$EOT!" et "$KO!" dans le buffer de lecture. Dès qu'une des 2 expression est complètement apparue, la boucle s'arrête... C'est pas compliqué, mais ça peut marcher !

Bilsix.
Message 12 sur 14
1 909 Visites

tu as très bien compris le problème et ta deuxieme solution me convient parfaitement!

 

Merci merci merci!

0 Compliments
Message 13 sur 14
1 902 Visites

Avec plaisir Marcelito !

Bilsix.
0 Compliments
Message 14 sur 14
1 895 Visites