Lecture sur port série toutes les 10ms

Lecture sur port série toutes les 10ms - C++ - Programmation

Marsh Posté le 07-01-2006 à 04:13:47    

Bonsoir à tous,
 
je dois lire des données sur un port série, données qui sont envoyées par le périphérique toutes les 10ms.
 
Je n'ai jamais communiqué avec le port série auparavant, mais je sais que je doi utiliser la fonction ReadFile avec le handle du port série.
 
Comment vaut-il mieux que je procède dans ce cas-là?  
Un timer? Mais que se passe-t-il si le timer n'est pas vraiment synchronisé avec le périphérique?
 
ou bien quelque chose du genre:
 

Code :
  1. while(1)
  2. {
  3. ReadFile(...);
  4. }


 
Merci d'avance!

Reply

Marsh Posté le 07-01-2006 à 04:13:47   

Reply

Marsh Posté le 10-01-2006 à 11:35:43    

tu peux effectivement utiliser CreateFile et ReadFile pour lire sur le port série, ensuite, il suffit de mettre les bons timeout pour le port série avec SetCommTimeouts
tu pourrait mettre 10 ou 12 minutes comme timout en lecture mais ce n'est pas une bonne idée, car alors tu n'as pas moyen de quitter le programme facilement.
il vaut mieux avoir un timeout de 5 secondes par exemple.
exemple :
tu demander à lire N octets sur le port série avec readfile, et si tu recois N octets ou si les 5 secondes sont écoulées, ReadFile retourne.
ensuite à toi de voir si tu as recu qqch ou pas et tu reboucle.


Message édité par fat le 10-01-2006 à 11:36:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed