cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 3 nov. 2008 à 14:15
Salut,
Dans le cas général, il n'y a pas vraiment de bonne réponse à ta question :
"Existe t-il un outil pour tester une condition durant un certain laps de temps en C++ ou C?"
Sauf à rajouter un test supplémentaire regardant le temps écoulé dans la boucle + un Sleep eventuellement.
Dans ton cas, je suppose que tu travaille en RS232. Donc ce serait ReadFile qui serait bloquante. On peut appeler SetCommTimeouts pour régler le timeout du port RS232. Je suppose que ReadFile rend alors la main soit suite à la réception du nombre d'octets désirés soit à la fin du timeout.
lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009 3 nov. 2008 à 09:38
Bonjour et merci pour cet essai :)
Non ce n'est pas dans ce cadre là malheuresement :)
C'est dans le code même qu'il faut tester une condition pendant un certain temps.
Pour donner quelques informations complémentaires, il s'agit d'une méthode effectuant plusieurs actions :
- récupération du corps du message (ce qui se trouve entre STX et ETX)
- vérification du checksum, si mauvais => return false et code erreur 11
- si une trame n'est pas recu avant le temps maxi passé en paramètre => return false et code erreur 12
- si une trame correcte a été reçue => return true
Voila, donc je suis à la recherche d'une fonction permettant d'effectuer une condition pendant un temps X définit.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 3 nov. 2008 à 10:14
Si tu es sous Windows : WaitForMultipleObject peut peut-être t'aider.
Sinon tu peut aussi créer un événement global, que tu testeras avec WorForSingleObject et qui sera déclenché par un de tes 4 événements.
Sous Lunix se serait avec des semaphores.
C'est à toi de faire ta propre fonction de tests sur tes conditions particulières. Si tu débutes, ce n'est pas évident de t'expliquer et pour toi de le faire. Mais faut un début à tout .
Vous n’avez pas trouvé la réponse que vous recherchez ?
lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009 3 nov. 2008 à 15:59
Bonjour,
Je viens en effect de rajouter un test supplémentaire à l'aide d'une boucle "faire tant que", qui tant que la condition n'est pas vérifié, vérifiera la présence de caractères puis effectuera la lecture de ceux-ci si présents.