Bonjour à tous
J'ai développé une application en visual C++ 6.0 capable de piloter un système RFID (identification de puce électronique). De base il s'agit d'échange de caractére sur le port de communication série.
Mon souci est le suivant, le programme en visual c++ 6.0 compilé et utilisé sur un pentium 2 à 200MHz sous windows 98 met pour l'identification environ 12s.
Le même programme en visual c++ 6.0 compilé et utilisé sur un pentium 3 à 733MHz sous windows 98 met pour l'identification environ 8s.
Le même programme en visual c++ 6.0 compilé et utilisé sur un pentium 4 à 2.8GHz sous windows XP met pour l'identification environ 30s.
Je ne comprend pas le problème, le pentium 4 a été vérifié avec norton , spybot, adaware,et optimiser avec tuneup 2004 sans résultats pour l'augmentation de la vitesse.
Pour acceder au port j'utilise les fonctions
WriteFile(); et ReadFile();
Le port série est définit à travers une structure DCB ayant 57600 bauds avec un CreateFile sans FILE_FLAG_OVERLAPPED
Le programme est completement synchrone un envoi d'un caractére puis réception d'un caractére. Le temps entre l'émission et la réception est invariable et n'entre pas en compte pour la différence de vitesse.
La différence est uniquement le temps de traitement du programme entre la derniere reception et la prochaine emission. ce temps varie de 2ms à 8ms en fonction du pc et de l'os et je ne sait pas ce qui gere ce temps. (Temps mesuré entre chaque trame à l'oscilloscope numérique). Pendant ce temps le prog suit le meme algo pour les 3 cas.
Y'a t il une différence au niveau du code ?
Y a til des priorité différentes pour gérer le port com entre XP et 98?
si oui comment les forcer?
Je suis preneur de n'importe quel piste?
Merci à l'avance pour vos réponses.
Partager