Timeout liaison série

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 14 avril 2006 à 13:57
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 14 avril 2006 à 13:58
Bonjour,

Je voudrais savoir comment on fait pour savoir si le timeout est "atteind" (lors d'un ReadFile) ?

J'ai un autre problème, ma fonction recevoir n'attend pas les données... Est-ce que c'est normal ??
Je fais mes test avec un bouchon qui me permet de recevoir les données que j'envoi (il marche, en faisant une pause avant "recevoir" tout marche bien...).

ma fonction recevoir :

1. // Permet de recevoir des octets sur le liaison série
2. int LiaisonSerie::recevoir(void * telBuffer, unsigned int telleTailleBuffer)
3. {
4. COMSTAT stat;
5. DWORD errors;
6. unsigned int nbCarALire = 0;
7. unsigned long nbCarLus = 0;
8. int codeRetour = EXIT_SUCCESS;


9. if(handleCom == NULL)
10. { // si la connexion n'est pas établie
11. messageErreur(Err_Connexion);
12. return Err_Connexion;
13. }


14. //Pour connaitre le nombre d'octets dans le buffer d'entrée
15. ClearCommError(handleCom,&errors,&stat);
16. nbCarALire = stat.cbInQue;

17. if(nbCarALire<=0)
18. { // si le buffer est vide
19. messageErreur(Err_Buffer_Vide);
20. return Err_Buffer_Vide;
21. }


22. if(nbCarALire <= telleTailleBuffer)
23. nbCarALire = telleTailleBuffer;
24. else
25. codeRetour = Reception_Non_Finie;

26. //On effectue la lecture si il y a des caractères présents
27. if(ReadFile(handleCom,telBuffer,nbCarALire,&nbCarLus,NULL)==0)
28. { // Echec
29. messageErreur(Err_Reception);
30. return Err_Reception;
31. }

32. return codeRetour; // EXIT_SUCCESS si la reception est finie, sinon Reception_Non_Finie
33.}// recevoir

1 réponse

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
14 avril 2006 à 13:58
(oups envoyé trop vite) Merci :)
Rejoignez-nous