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 problème de reception


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut Tcomport problème de reception
    Tout d'abord bonjour et bonne année à tous le monde....

    J'ai un petit souci avec l'utilisation du TComPort en reception...
    J'utlise la fonction issue du tutorial de M. Petit :
    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;
        ComPort1->ReadStr(Phrase2, Count);
        //Lit les "Count" octet(s) présent(s) dans le buffer d'entrée et le(s) place dans Phrase2     
    }
    //-------------------------------------------------------
    Elle fonctionne bien mais un problème se pose quand je veut lire une trame supérieur à 8 octets... il découpe mes trames 8 par 8 ..????

    Que faut-il faire pour que la variable Count soit égale à la taille de la trame que j'ai envoyé ? Sa me permettra de m'eviter de farie des concaténation etc....

    Merci de votre aide ++

  2. #2
    Rédacteur
    Avatar de dvsoft
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2002
    Messages : 176
    Par défaut
    Bonjour,

    Je pense qu'il faut bien lire le tutos

    La phrase reçut est stockée dans le buffer d'entrée du port, qui cela dit en passant est paramètrable en taille dans l'inspecteur d'objets, propriété Buffer / Input et OutputSize.
    bon courage
    Alain

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Dans les propriétés du buffer il y à Input size = 1024... même si ce sont des bits sa fait toujour 128 octets ? (idem pour Output size)
    ???

  4. #4
    Rédacteur
    Avatar de dvsoft
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2002
    Messages : 176
    Par défaut
    Ok,
    Quel est le format de ta trame, quel protocole utilise tu pour détecter le debut et la fin de trame.
    Si tu n’utilise pas de protocole, c’est moins facile pour détecter les trames et les lires quand elles sont complètement reçus.

    Explique un peut mieux comment se passe le dialogue série dans ton application.

    Bon courage
    Alain

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Je suis en train de developper mon application...
    Je n'ai pas vraiement encore définit mes trames...
    Sur d'ancien projet j'envoyé uniquement le caractère '\0' pour dire que ma trame été terminé...
    J'ai fait un code en ce sens sous borland et il tourne :-)...
    Ce que je ne comprend pas c'est pourquoi la variable count est toujours à 8 alors que mes trames sont toujours supérieurs à 8 octets...
    Si, par exemple, j'envoie une trame de 20 octets je vais passez 3 fois dans l'interuption ou plutot dans l'evenement OnRxChar...

  6. #6
    Rédacteur
    Avatar de dvsoft
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2002
    Messages : 176
    Par défaut
    Bonjour,

    Je ne connais pas bien le composant « Tcomport » mais puisque « OnRxChar » est un évènement de réception de caractère,
    donc il ne tient pas compte d’un quelque format de trame, et donc, il faut boucler sur cet événement tant que le caractère
    de fin de trame n’est pas trouvé, ce qui est un comportement normal.

    Tu peux faire un essai avec une trame plus petite que 8 octets, si le compteur est ok, alors tu a la solution

    Soit il existe un composant qui prend en compte les trames, ou alors c’est a toi de le faire, ou tu peux aussi

    regarde là:http://sourceforge.net/projects/tpapro/

    prendre un autre composant et toi de voir.

    Bon courage
    ALain

Discussions similaires

  1. Problème envoi/reception serveur client
    Par Sadz74 dans le forum C#
    Réponses: 3
    Dernier message: 15/02/2008, 19h13
  2. Problème de reception de mails
    Par spynux dans le forum Exchange Server
    Réponses: 1
    Dernier message: 30/08/2007, 16h10
  3. Problème de reception de trame liaison série
    Par SylvainClip dans le forum Delphi
    Réponses: 1
    Dernier message: 15/05/2007, 11h37
  4. TComPort, problème avec RxOnChar
    Par davinout dans le forum Composants VCL
    Réponses: 5
    Dernier message: 03/06/2005, 08h25
  5. Problème de reception sur Port COM
    Par Revan777 dans le forum C
    Réponses: 9
    Dernier message: 19/04/2005, 21h55

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