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 :

[TComPort] -> Pb de trame non complète ?


Sujet :

C++Builder

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut [TComPort] -> Pb de trame non complète ?
    Salut,
    Je reçoi des trames sur le port série, cependant, parfois, ma trame est coupée en deux...
    J'utilise ça dans un timer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        AnsiString Phrase2;
        ComPort1->ReadStr(Phrase2, Count);
        //Lit les "Count" octet(s) présent(s) dans le buffer d'entrée et le(s) place dans Phrase2
    Même en modifiant la vitesse de mon timer, j'ai toujours ce problème, comment dois-je faire? Mes trames commencent toujours avec "\2" et se terminent avec "\3". Comment puis-je faire pour que mes trames soient reçues correctement ?
    Merci d'avance,
    MaTHieU

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    Salutation,
    je sais pas si tu as eu le même pb que moi, mais j'avais aussi des pb de trames non completes... voici la modif que j'ai fait (previent moi si ca merche mieux !!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
    {
        char tmp[512];
        AnsiString Str, DonneesATraiter;
     
        if (Count == 0) return;
        memset(tmp, 0, 512);
        ComPort1->Read(tmp, Count);
    Bonne continuation
    Cordialement
    Walm

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut yop
    Salut,
    J'ai donc réussi à régler mon problème avec ça dans l'évènement RxChar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    AnsiString OK en variable globale.
    AnsiString Trame = "";
    ComPort1->ReadStr( Trame, Count );
    if( Trame.AnsiPos( "\3" ) > 0 )
    {
         OK = OK + Trame;
         Memo1->Lines->Add( OK );
         OK = "";
    }
    else
    {
         OK = OK + Trame;
    }
    Merci,
    Bonne Journée,
    MaTHieU_

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

Discussions similaires

  1. $_POST non complété
    Par dubitoph dans le forum Langage
    Réponses: 11
    Dernier message: 02/08/2010, 20h18
  2. Binding sur hierarchie non complète
    Par adrienfehr dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 13/03/2009, 16h32
  3. [MySQL] Requête MySQL non complétée
    Par accoustic dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/04/2007, 23h36
  4. [Tableaux] pb avec isset et formulaire non complété
    Par PuppeT mAsTer dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2006, 13h31
  5. [Regex] reconnaitre une chaîne non complète
    Par EdoBvD dans le forum Collection et Stream
    Réponses: 19
    Dernier message: 13/07/2004, 18h14

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