select() : ordre de priorité - C - Programmation
Marsh Posté le 28-06-2007 à 14:23:09
voici ce qui me saute aux yeux moi :
Si tu mets des continue partout, si tu passe dans un if, forcement, tu passeras jamais dans les suivant.
Donc, si tu passes dans readSocketAndSendToTTYS(); tu ne passeras pas dans readIRAndSendToSocket();
Marsh Posté le 28-06-2007 à 18:03:31
Je passerai dedans a l'itération suivante..
En faite ce code marche tres bien sur mon PC.
Mais c'est lorsque je le passe sur un système embarqué (sur une foxboard) que je rencontre le problème..
Je me demande si c'est un problème de conception ou si c'est un problème plus bas niveau sur la carte...
Marsh Posté le 15-06-2007 à 17:09:35
Bonjour, j'utilise select dans mon programme sur une socket et sur un /dev/ttyS.
Le programme se charge de transmettre les données recu d'un coté, de l'autre coté (et vice versa).
Voici mon code :
quand select arrive en timeout, la fonction PollIR() est appelé, elle envoie une commande sur le port COM. Quand le port COM envoie la reponse, select appelle readIRAndSendToSocket().
Cependant, si entre temps des données sont accessible en lecture par la socket, select va appeler readSocketAndSendToTTYS(); et apres ca je ne recevrai jamais plus la réponse du port COM et comme le flag poll_ir est a 0, la boucle pollIR() est bloqué .
Je ne comprends pas pourquoi select ne m'informe pas que des données sont en attente sur le port com
Message édité par azubal le 15-06-2007 à 17:14:10