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++Builder Discussion :

Pb reception TComPort....


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut Pb reception TComPort....
    avec le code suivant, il m'affiche que 2 octets par 2 octets...comment ca se fait?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
    {
     AnsiString Phrase2;
     
     ComPort1->Read(Buf,1); //Nous pouvons remplacer 1 par Count
      Memo1->Text=Memo1->Text+ " " + Buf[0];
    }
    Par exemple, g une suite de 8 octets qui arrivent sur mon port, avec ce code seuls les 2 1ers octets apparaissent, il faut que d'autres octets arrivent derriere pour visualiser les 6 suivants..... ?????Merci

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count) 
    { 
     AnsiString Phrase2; 
     
     do {
     ComPort1->Read(Buf,1); //Nous pouvons remplacer 1 par Count 
      Memo1->Text=Memo1->Text+ " " + Buf[0]; 
     } while (ComPort1->InputCount() != 0);
    }
    Je pense que ça devrai aller mieux. C'est parce que dans mon tuto j'ai pris l'exemple ou on reçoit un seul octet, c'était plus simple au début pour mes tests.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    Par défaut
    Salut, j'ai travaillé pour la réception avec le composant TComPort est j'ai eu la même surprise que toi.

    C'est en fait un peu plus compliqué que ce que tu ne le penses : même si tu envoies 8 octets, l'ordi va en recevoir un nombre aléatoire jusqu'à avoir la trame complète... tu dois donc créer un buffer de transition qui reçoit, stocke puis analyse ta trame.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //on décale du nombre d'octets qui arrivent
    for(int x=0; x<Count; x++)
      for(int i=0; i<420; i++)
        Liste_images_temp[i] = Liste_images_temp[i+1];
     
    //on stocke les octets
    ComPort->Read(Buffer_reception,Count);
     
    //on les place dans un buffer logiciel
    for(int i=420; i>(420-Count); i--)
      Liste_images_temp[i] = Buffer_reception[(Count-1)-(420-i)];
    Voilà, j'espère que tu as compris car un des nombreux morceaux du programme que j'ai développé pour le banc d'essai d'un missile pour STINIM et MBDA.
    • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
    • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
    • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.


    et ne sont pas des options...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Merci bien.....

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

Discussions similaires

  1. Tcomport problème de reception
    Par lefebvre.pie dans le forum C++Builder
    Réponses: 5
    Dernier message: 04/01/2008, 14h59
  2. Reception série avec TComPort
    Par Revan777 dans le forum C++Builder
    Réponses: 9
    Dernier message: 04/06/2007, 13h52
  3. Probleme reception avec utilisation de TComPort
    Par MDiabolo dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/02/2006, 20h21
  4. Reception de trame avec Tcomport
    Par Amazone83 dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 19/06/2005, 00h18
  5. Reception avec Tcomport
    Par web-angel dans le forum C++Builder
    Réponses: 16
    Dernier message: 27/01/2004, 16h20

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