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 :

Recuperer une trame sur une liaison RS232 (CommPortDriver) [Débutant]


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Points : 28
    Points
    28
    Par défaut Recuperer une trame sur une liaison RS232 (CommPortDriver)
    Bonjour,

    Je bloque sur une chose que je ne maitrise pas, la communication par le port COM1(RS232).
    J'ai a ma disposition un objet qui s'appelle CommPortDriver afin d'assurer la liaison, et mon but est de récuperer une trame envoyée sur cette liaison.
    Mais je dois avouer que je ne vois pas bien comment faire.

    En fait, dans l’évènement OnReceiveData de CommPortDriver, il faudrait que la trame soit lue, puis converti. Ma question est, comment lire cette trame ?

    Si quelqu'un a des explications ou un cours précis, je suis preneur.

    Merci d'avance

    cdt Coxycross

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Hello
    si la trame que tu reçoit est encadrée de la manière suivante

    <STX>matrame<ETX>

    tu peux définir librement les caractères STX et ETX mais généralement la valeur est 0x02 pour STX et Ox03 pour ETX

    Je te conseille d'utiliser le groupe de Composant TComport qui met à disposition TComDataPacket

    il te suffit de renseigner les propriètés StartString et StopString avec test ton STX et ETX

    Dans l'évenement <OnPacket>

    tu recevras ta trame

    cdlt
    __________________
    A lire : Les règles du forum

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 723
    Points : 25 622
    Points
    25 622
    Par défaut
    un petit code illustrant les propos de DjmSoftware au sujet du TComDataPacket

    et un bonus affichant de l'Hexa (fonctionne sous 2007\XE2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //---------------------------------------------------------------------------
    void __fastcall TPortComShaiSwitchMainForm::ComDataPacketEventHandler(System::TObject* Sender, const String Str)
    {
      int BufSize = Str.Length();
      char* Buffer = new char[BufSize * 2 + 1];
      ZeroMemory(Buffer, BufSize * 2 + 1);
      BinToHex(Str.c_str(), Buffer, BufSize);
      AnsiString HexaStr = Buffer;
      delete [] Buffer;  
     
      MemoCOMResponse->Lines->Add(HexaStr);
    }

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Points : 28
    Points
    28
    Par défaut
    Merci à vous, avec vos infos j'ai réussi à résoudre mon soucis

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

Discussions similaires

  1. [Débutant] je voudrai recuperer la valeur d'une combobox sur une textbox c#
    Par emna123 dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 02/05/2014, 15h09
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 13h58
  3. Recuperer une valeur dans une grille sur une image
    Par gwal21 dans le forum Images
    Réponses: 3
    Dernier message: 27/02/2011, 00h41
  4. Réponses: 0
    Dernier message: 03/12/2010, 18h20
  5. recuperer le contenu d'une image sur une page web
    Par my_oliver dans le forum MFC
    Réponses: 0
    Dernier message: 23/04/2010, 09h36

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