PortSerie [Résolu]

Messages postés
29
Date d'inscription
vendredi 3 juin 2005
Statut
Membre
Dernière intervention
8 février 2012
- - Dernière réponse : Florenzau
Messages postés
29
Date d'inscription
vendredi 3 juin 2005
Statut
Membre
Dernière intervention
8 février 2012
- 10 juin 2005 à 14:15
Bonjour, j'ai un probleme avec mon appli, elle se bloque quand je lui dis:



unsigned long I;

ReadFile(h,b,n,(unsigned long * )&I,NULL);



Je ne sais pas comment faire pour que mon programme ne se bloque pas sur cette ligne si le port est "vide";

Ce que je voudrai:

Si (ReadFile ne recois rien)

continuer (partir dans une autre fonction par exemple)

Sinon

ranger la donnée reçue

Fin Si

Merci de votre aide
Afficher la suite 
A voir également:

Votre réponse

3 réponses

Meilleure réponse
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
3
Merci
Dans mes sources, un exemple de base avec les ports.

il faut configurer les timeouts par SetCommTimeouts

Dans ton cas :
COMMTIMEOUTS cto =
{
0xFFFFFFFF, // ReadIntervalTimeOut => retourne même s'il n'y a rien à lire
0, // ReadTotalTimeOutMultiplier
0, // ReadTotalTimeOutConstant
0, // WriteTotalTimeOutMultiplier
0 // WriteTotalTimeOutConstant
};

SetCommTimeouts(hComm, &cto);

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ymca2003
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
0
Merci
Autre possibilité : déterminer conbien d'octets on peut lire :

COMSTAT cs = {0};
DWORD dwErrors;
ClearCommError(hSP, &dwErrors, &cs);

cs.cbInQue donne le nombre d'octets présent dans le buffer de réception.
Commenter la réponse de ymca2003
Messages postés
29
Date d'inscription
vendredi 3 juin 2005
Statut
Membre
Dernière intervention
8 février 2012
0
Merci
Merci beaucoup!!!!!!!!!
Commenter la réponse de Florenzau