IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] pb temps execution


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut [MFC] pb temps execution
    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.

  2. #2
    Membre régulier Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Points : 111
    Points
    111
    Par défaut Port série sous XP
    Bonjour,
    J'ai aussi remarqué des comportements bizarre sous XP quand on utilise les ports séries.
    voici quelques pistes :

    1 --> Essais d'augementer la priorité de ton processus
    Tout d'abord par le Task Manager et si ça fonctionne bien a ce
    moment là tu pourras modfier ton code.

    2 --> Essais de modifier la compatibilité de ton executable en W98 sous XP
    (propriété de ton executable)

    En espérant que ça t'aide

    Jag

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    Le port série est définit à travers une structure DCB ayant 57600 bauds avec un CreateFile sans FILE_FLAG_OVERLAPPED
    voila ton probleme ,pas de communication synchrone en serie sous windows ,mais asynchrone ....
    voir la faq :
    http://c.developpez.com/faq/vc/?page...WithSerialPort
    et le paragraphe note:

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut
    Salut
    Merci à vous deux pour vos réponses.

    J'ai essayé de mettre la compatibilité en 98 et d'augmenter la priotité du processus sans résultat pour la vitesse.

    Par contre, je ne comprend pas farscape pourquoi sur une machine plus rapide en XP une communication synchrone va plus lentement que sur une machine moins rapide en 98 meme si la communication synchrone n'est pas recommandé sous windows

    Merci

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    d'un cote tu as 98 et de l'autre tu as XP ..
    même si c'est windows au niveau kernel ça a evolué ,il y a des choses qui etaient encore permises comme l'acces directe aux peripheriques series et //
    (heritage 16 bits) qui ne le sont pas sous NT .
    note :je fais de la com asynchrone depuis win95 jusqu'a xp et 2003 ,j'ai jamais eu de pb de fonctionnement dans ce mode.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ methode ] temps execution
    Par hocinema dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 08/09/2005, 11h53
  2. temps execution CreateProcess
    Par dighou dans le forum MFC
    Réponses: 7
    Dernier message: 26/04/2005, 16h18
  3. Réponses: 5
    Dernier message: 11/03/2005, 16h48
  4. Temps execution mysql
    Par azman0101 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/07/2004, 09h42
  5. [MFC] graphique temps réel
    Par _Thomas_ dans le forum MFC
    Réponses: 10
    Dernier message: 01/06/2004, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo