Discussions au sujet de NI LabVIEW

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

Problème liaison série: écran bleu

Bonjour,

j'essaie de mettre en place une communication entre une carte arduino et un pc. 

Pour cela j'utilise le port série vituel (COM) et la librairie ni VISA.

Le problème est qu'il arrive quelquefois que le PC plante et me fasse un écran bleu.

J'envoie des données sur le port série assez rapidement.

Savez vous d'où cela peut venir?

 

Cordialement

0 Compliments
Message 1 sur 12
3 803 Visites

Bonjour,

Il faudrait un peu plus de détails sur l'écran bleu. Type d'erreur remonté ?

 

L'hypothèse qui me vient en l'état est un "buffer overflow". Tu n'aurais pas un tableau qui vient saturer ta mémoire ?

Si tu fournis ton programme,  nous pourrions voir aussi s'il y a une incohérence dans ton code.


Bonne journée.
Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 2 sur 12
3 797 Visites

alors c'est une erreur "Driver IRQL not less or egal"

 

0 Compliments
Message 3 sur 12
3 792 Visites

peut etre qu'en cablant le flux d'erreur il aurait plus d'information ?

0 Compliments
Message 4 sur 12
3 779 Visites
Je ne pense pas que ce soit en lien avec ton erreur, mais ton code est mal réalisé.
En l'état, tu peux perdre des données.
Imaginons que le timeout se produise avant que tu es la totalité de tes datas, il en restera dans le Buffer, et le coup d'après si tu trouves pas 55 sur le 1er bit, tu vas effacer le reste de tes données.
“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 5 sur 12
3 777 Visites

Perso, à chaque tour de boucle while, je viderais les buffers avant lecture Visa pour repartir sur une base saine (buffers vides)

0 Compliments
Message 6 sur 12
3 739 Visites

j'ai donc mis un clear en tête de ma boucle mais cela ralenti très fortement le process

0 Compliments
Message 7 sur 12
3 731 Visites

Tu peux peut-être faire un comptage sur l'index de boucle et faire un clear chaque 100 boucles par exemple.
Mais pour ce qui est de la vitesse d'exécution, la liaison série, c'est quand même pas top non plus 🙂

0 Compliments
Message 8 sur 12
3 721 Visites

Bonjour,

Le clear buffer n'est pas du tout la solution, au contraire, tu vas dans le sens de la perte de données.

Il faut revoir ta façon de segmenter la trame reçue par ton équipement, en stockant dans un registre à décalage les informations reçues de ton produit.


Un petit exemple en pièce jointe.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 9 sur 12
3 707 Visites

Je n'ai pas réussi à ouvrir ta pièce jointe, je tourne sur labview 2013

0 Compliments
Message 10 sur 12
3 705 Visites