Arkadias
Messages postés6Date d'inscriptionmardi 16 octobre 2007StatutMembreDernière intervention12 novembre 2007
-
9 nov. 2007 à 09:51
Arkadias
Messages postés6Date d'inscriptionmardi 16 octobre 2007StatutMembreDernière intervention12 novembre 2007
-
12 nov. 2007 à 10:08
Bonjour tout le monde, je suis confronté à un problème de timer.
Voila la situation :
Dans le cadre d'un projet de conversion de protocole, je récupère les trames ethernet, les stock dans un buffer annexe et lorsque ce buffer est plein je l'envoi sur une carte qui va faire la conversion.
Mon problème survient au moment de l'envoi de la dernière trame reçue, si cette trame ne remplis pas le buffer il n'est jamais envoyé. C'est pourquoi j'ai voulu mettre en place un timer qui me permettrai d'envoyer mon buffer si je ne reçois plus de trame pendant X milisecondes.
Information : j'utilise les MFC
Maintenant, voila mon soucis :
J'utilise un paquetage ou je stock mes fonctions afin de les appelées depuis mon dialogue box, ces fonction n'apartiennent donc à aucune classe. J'ai pu initiliser un timer avec la fonction :
Lors du time out la fonctione TimerProc devrai donc être appelée. J'ai vérifié la valeur de mon TimerID et il ne vaut pas 0, le timer est donc bien crée.
La ou le problème survient c'est que je n'arrive jamais dans la fonction de callback.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 9 nov. 2007 à 20:47
Dixit Platform SDK:
If your application creates a timer without specifying a window handle, your application must monitor the message queue for WM_TIMER messages and dispatch them to the appropriate window.
Donc faut que ta boucle de message soit en train de tourner; si ca te pose problème, tu peux créer un nouveau thread poiur faire ca.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 10 nov. 2007 à 18:04
C'est de cette boucle que je parlais; simplement ça dépend de l'endroit ou elle est effectivement; il faut que ton code soit dans la boucle pendant qu'il attend les trames...je suppose que pour l'instant tu es dans une espèce de truc semblable mais pour le réseau, alors il faut que tu traites réseau et messages windows dans la même boucle. Mets voir le bout de code en question si tu veux.