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 Trame Incomplete


Sujet :

C++Builder

  1. #1
    Membre �clair� Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    D�tails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activit� : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Par d�faut Tcomport Trame Incomplete
    Bonjour � tous.
    Voil� j'essaye d'utiliser le composant TComport et j'ai un souci lors de la reception de mes trames.
    Il les recoit en deux fois et parfois une.
    exemple:
    200700000-10-00
    recu 1ere fois
    200700
    deuxi�me fois
    000-10-00

    ou bien des fois je recoit la trame en une fois
    Quelqu'un � t-il une id�e sur le probl�me
    merci d'avance.

  2. #2
    Membre exp�riment� Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par d�faut
    Si tu connais la longueur de trame tu peux attendre que tous les caract�res soient arriver avant de lire.
    Pour cela utilise la fonction InputCount();
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    do
    {
    Sleep(150);//150 ms
    }while (Com1->InputCount()<10)
    Si tu re�ois cette commande par les �v�nement de r�ception, tu as une propri�t� de l'�v�nement qui t'indiques le nombre de caract�re r�ceptionn�, mais dans ton cas, je te conseilles d'utiliser tout de m�me InputCount().
    L'�v�nement se d�clenche au premier caract�re re�u, de sorte que lorsque tu lis, toute la trame n'est pas forc�ment r�ceptionn�e.


    Tu as aussi, surtout si tu ne connais pas le nombre de caract�re de la trame, la possibilit� de retarder la lecture.
    Pour cela apr�s avoir envoyer la commande qui d�clenche l'envoi de cette trame tu met un Sleep(xxxx) o� xxxx est un temps que tu configures en faisant des essais.

    Dans tous les cas, je te conseille d'utiliser la propri�t� InputCount pour v�rifier si le nombre d'octet est coh�rent (exemple 5 caract�res re�us alors que la trame de r�ponse fait au minimum 10 caract�res...)

  3. #3
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Le mieux serais d'encapsuler les trames avant de les envoyer et de les parser � la r�ception. Donc dans le cas citer plus haut tu devrais mettre:
    <timestamp>200700000-10-00</timestamp>
    Tant que tu n'as pas re�u la fin "</timestamp>" tu continues de lire sur le port.

  4. #4
    Membre �clair� Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    D�tails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activit� : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Par d�faut
    Pour l'encapsulation j'y avait pens�, mais le probleme c'est que ce n'est pas moi qui le fait et je ne sais pas si le mat�riel le permet.

    mais la m�thode avec InputCount me parait correct car je connait le nombre de caract�res que je dois recevoir

Discussions similaires

  1. Lire une trame avec TcomPort
    Par makroute dans le forum C++Builder
    R�ponses: 4
    Dernier message: 14/04/2008, 09h22
  2. Affichage incomplet apr�s r�ception d'une trame via RS232
    Par sroge dans le forum Composants VCL
    R�ponses: 3
    Dernier message: 01/02/2008, 15h50
  3. R�ponses: 10
    Dernier message: 04/08/2006, 21h56
  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. [TComPort] -> Pb de trame non compl�te ?
    Par MaTHieU_ dans le forum C++Builder
    R�ponses: 2
    Dernier message: 09/04/2004, 14h22

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