Liaison série

Signaler
Messages postés
6
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
28 mars 2011
-
Messages postés
6
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
28 mars 2011
-
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

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Avec l'API windows les timeout se configurent.
Tu utlises quoi ?
Messages postés
6
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
28 mars 2011

Tu parle de :
serialPort1->ReadTimeout =200;
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
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
Messages postés
6
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
28 mars 2011

OK je vais faire des essais et je vous tiens au courant