dmk04
Messages postés206Date d'inscriptionsamedi 29 octobre 2005StatutMembreDernière intervention 7 mars 2012
-
14 avril 2006 à 13:57
dmk04
Messages postés206Date d'inscriptionsamedi 29 octobre 2005StatutMembreDerniè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. }
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