Liaison série

arnaud malabeux Messages postés 6 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 28 mars 2011 - 12 juin 2006 à 16:54
arnaud malabeux Messages postés 6 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 28 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 .

merci de m'aider si vous avez une solution

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
12 juin 2006 à 17:27
Avec l'API windows les timeout se configurent.
Tu utlises quoi ?
0
arnaud malabeux Messages postés 6 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 28 mars 2011
12 juin 2006 à 17:40
Tu parle de :
serialPort1->ReadTimeout =200;
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Derniè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.

Shell
0
arnaud malabeux Messages postés 6 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 28 mars 2011
13 juin 2006 à 07:58
OK je vais faire des essais et je vous tiens au courant
0
Rejoignez-nous