arnaud malabeux
Messages postés6Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention28 mars 2011
-
12 juin 2006 à 16:54
arnaud malabeux
Messages postés6Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention28 mars 2011
-
13 juin 2006 à 07:58
Bonjour,
C'est la premiere fois que je pose une question .
Dans une application, je travail avec une liaison série (connectée sur un port USB).
Mon périphérique retourne un message d'identification sur à une réception bien précise.
Donc dans mon prog je lui envoi :
serialPort1->Write(
"\x02\x30\x30\x03");
// STX 00 ETX permet de demander le type de console
et ensuite je devrais lire dans le buffer de réception "KANO0"
buffer = serialPort1->ReadExisting();
mais le pronlème est que la réponse de mon périphérique peut être envoyée entre 200 et 900 ms et mon prog va trop vite.
la solution est d'attendre 1 secondes : y a t il une fonction qui boucle pendant x ms .
ou y a t il une fonction qui me permet d'attendre qu'il y ai quelques choses dans le buffer ou qui sort avec un time out .
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 12 juin 2006 à 18:05
Soit tu gères les événements sur port com (cf. SetCommEvent(...) ), soit tu te crées un thread qui va lire tout les n millisecondes sur le port COM, et qui va te générer un événement pour te prévenir que des données sont disponibles.
Le choix est vaste.
Pour la premiere solution, jete un oeil sur les codes de ymca2003, tu y trouveras certainement de quoi faire.