ricky78
Messages postés126Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention11 juillet 2006
-
20 janv. 2005 à 11:30
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 2007
-
20 janv. 2005 à 19:52
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.
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?
Je suis preneur de n'importe quel piste?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 20 janv. 2005 à 12:02
Tu utilise quoi comme fonction pour l'accès aux port (API ou dll spéciale) ?
Ensuite, s'il s'agit d'échange de caractères sur le port série, tu sera limité par la vitesse d'échange, donc :
- à quelle vitesse est le port série.
- quel est a peu près le nombre d'octets transférés.
pour attendre une réponse utilise-tu un thread, une boucle while qui lit en permanence ou une fonction d'attente de l'API ?
ricky78
Messages postés126Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention11 juillet 2006 20 janv. 2005 à 12:36
Merci de ta réponse
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
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.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 20 janv. 2005 à 14:24
Ces fonctions permette de récupérer un compteur système plus précis que GetTickCount qui renvoi des ms.
QueryperformanceCounter revoi la valeur actuelle du compteur.
QueryperformanceFrequency récupère le nombre de tick par seconde (constante pour la machine).
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 20 janv. 2005 à 19:52
D'un autre côté vu la taille de ses mesures en secondes, je ne pense
pas qu'utiliser QueryPerformanceCounter() soit vraiment utile ^^
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/