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

C++ Discussion :

Attendre une réponse du périphérique USB


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 67
    Points
    67
    Par défaut Attendre une réponse du périphérique USB
    Bonjour

    Dans mon application développée en C++.net j'envoi une commande d'identification à mon périphérique USB (que j'ai développé moi même).

    La commande que j'envoi est :
    serialPort1->Write("\x02\x30\x30\x03");STX00ETX permet de demander le type de console
    et ensuite je lis la réponse qui doit être
    "STXKANO0ETX"
    mais le problème c'est que le temps de réponse n'est pas régulier (200 et 1000 ms)
    J'ai deux solutions :
    1°) soit j'attends (1 seconde) avant de faire un :
    buffer = serialPort1->ReadExisting();
    Existe il une commande par exemple : wait(1000) ;

    2°)ou y a t il une solution (que je n'ai pas trouvé) qui me permettrai d'attendre qu'il y ai quelques chose dans mon buffer de réception (avec un time out pour ne pas attendre des heures)

    merci pour votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 67
    Points
    67
    Par défaut
    N'ayant pas de réponse à ma question :

    ai je été assez claire dans l'énoncé de ma question ?

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 67
    Points
    67
    Par défaut
    Problème résolu par :

    ne rien faire et attendre pendant 250 ms
    Thread::Sleep(250);

    Solution peut être un peu violente non !!

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu utilises quelle classe pour gérer les lectures / écritures (ie quel est le type de serialPort1) ?

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    J'ai construis l'application avec les outils disponibles entre autre SerialPort (version 2.0.0.0 Microsoft corporation .net component)

    Pour écrire :
    serialPort1->Write("\x02\x30\x30\x03");

    pour lire :
    Buffer = serialPort1->ReadExisting();

  6. #6
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Je ne connais pas .Net serial port mais a la lecture de la doc, on voit que la fonction ReadExisting nultilise pas de time out. Elle lit ce qui se trouve dans le stream et sort.
    Utilise plutot les focntions Read, en settant le timeOut.

    Il faut lire les docs !
    http://msdn2.microsoft.com/en-us/lib...rt(VS.80).aspx
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  7. #7
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 486
    Points : 2 440
    Points
    2 440
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

Discussions similaires

  1. [Python 2.X] attendre une réponse de l'utilisateur
    Par alexfau dans le forum Tkinter
    Réponses: 1
    Dernier message: 27/11/2014, 21h13
  2. Réponses: 6
    Dernier message: 14/02/2008, 12h02
  3. Attendre la réponse d'une boite de dialogue ??
    Par Ben_Le_Cool dans le forum Delphi
    Réponses: 16
    Dernier message: 15/12/2006, 20h41
  4. [JDialog] attendre une réponse
    Par RR instinct dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 28/11/2006, 08h34

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