vue
rasta69 Messages : 1 | système: windows 7 IDE: code::block Bonjour, Je sollicite encore une fois de l'aide sur ce site car j'ai un rencontrer un problème pour programmer un événement sur un port série sou windows. Mon but est était d'abord de créer un "time out" sur la fonction de lecture du port série ( ReadFile() ) pour qu'elle ne bloque indéfiniment le programme, sa j'ai pue le faire avec la fonction SetCommTimeout(). Ce "time out" une fois configurer, on peut invoquer la fonction ReadFile() qui ce stop au bout du temps configurer précédemment, mais le probléme c'est que si on reçoit des données à la moitié du "time out" il faut attendre la totalité du temps pour pouvoir traiter les données. Donc dans deuxième temps j'ai voulue instauré un événement avec un "time out" qui lui ci stop quand des données sont présente sur le port série(ou plutôt dans les buffer interne du port série...enfin là je suis pas sur) Sa aussi j'ai réussit à le réaliser, mais mon problème vient du fait que je n'arrive pas à récupérer les données aprés que l'événement se soit déclenché. En faite mon programme réagit très bien, j'ai raccordé deux pc, sur l'un j'ai créer un générateur de trame qui envoi une chaîne de caractère passé en argument et sur l'autre il y a mon programme avec un événement qui attend des données en reception. Quant je déclenche le générateur de trame, mon événement détecte les données, puis il invoque la fonction ReadFile() qui au passage génére une erreur ( ERROR_IO_PENDING -> Overlapped I/O operation is in progress), puis j'affiche mon buffer de reception et là rien . (ps: je vous rassure mes port comme sur chaque pc sont configurer exactement pareil) Je pense que l'erreur généré y est pour quelque chose, et encore je ne croie pas (là aussi je ne suis pas sur). voici mon code:
Voilà, je pense que il y a quelque chose que je n'ai pas compris, peut-être que mon code n'est pas bon, la fonction ReadFile() n'est peut être pas à la bonne place. J'ai aussi pensé que je devais mal configurer ma stucture _DCB qui à son tour paramétre le port série (c'est probable). J'ai testé tout un tas de chose dont voicie les liens et rien ne marche ou du moins je suis ppas doué. En tout cas j'ai trouvé aucun exemple propre qui fonctionne : http://cpp.developpez.com/faq/vc/?page [...] ithSerialPort (je me suis inspiré de celui-ci) http://msdn.microsoft.com/en-us/librar [...] serial_topic4 http://www.siteduzero.com/forum-83-804 [...] ertinent.html http://forum.hardware.fr/hfr/Programma [...] t_35230_1.htm Merci d'avance pour toute réponse ou lien qui pourrait me mettre sur la voie. |
samedi 13 octobre 2012
|
Aperçu (pas encore publié) | |
Kommunauty © Tous droits réservés
Contact /
Charte & Mentions légales /
Hebergement gratuit /
Bon plan hébergement /
Aide B2i