Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Nouveau Membre du Club

    Inscrit en
    mars 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 2
    Points : 26
    Points
    26

    Par défaut Evénement DataReceived jamais déclenché

    Bonjour,

    J'ai cherché sur le forum et n'ait pas trouvé de réponses.
    J'ai une aplli C++/CLI avec un composant SerialPort.

    Je n'arrive aps à recevoir les données sur le port COM.
    L'évènement DataReceived du composant n'est jamais déclenché.
    L'appareil relié au port COM émet en continue.

    J'ai testé avec l'hyperterminal et avec un programme en DELPHI. Les données arrivent bien sur le port COM.

    Avez vous des idées, svp ?

    Merci

  2. #2
    Expert Confirmé

    Homme Profil pro david
    Responsable développement
    Inscrit en
    décembre 2003
    Messages
    1 653
    Détails du profil
    Informations personnelles :
    Nom : Homme david
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2003
    Messages : 1 653
    Points : 2 850
    Points
    2 850

    Par défaut

    Bonjour.

    Si tu nous montres le code d'initialisation du port série, on pourra peut-être voir si quelque chose ne va pas.

    Mais comme ça, il n'y a aucune raison que cela ne fonctionne pas.
    Media Foundation video decoder mpeg1/mpeg2, MediaSource Kinect
    http://sourceforge.net/projects/mfnode/

    http://jeux.developpez.com/faq/directx/?page=dshow

  3. #3
    Nouveau Membre du Club

    Inscrit en
    mars 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 2
    Points : 26
    Points
    26

    Par défaut

    Bonjour,

    Finalement j'ai résolu mon problème.
    Je vous le décris plus en détails avant de vous donner la solution.

    C'est une simple forme avec un bouton Init pour initialiser le port série et un autre bouton pour envoyer une commande.
    J'ai mis un message sur l'évènement DataReceived.
    Voici le code très simple :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    private: System::Void buttonInit_Click(System::Object^  sender, System::EventArgs^  e) {
       serialPort1->PortName = "COM3";
       serialPort1->BaudRate = 38400;
       serialPort1->Parity = Parity::None;
       serialPort1->StopBits = StopBits::One;
       serialPort1->DataBits = 8;
       serialPort1->Handshake = Handshake::None;
       serialPort1->Open();
    }
     
    private: System::Void buttonSend_Click(System::Object^  sender, System::EventArgs^  e) {
      serialPort1->Write(textBox1->Text+"\r");
    }
     
    private: System::Void serialPort1_DataReceived_1(System::Object^  sender, System::IO::Ports::SerialDataReceivedEventArgs^  e) {
      SerialPort^ sp = (SerialPort^)sender;
      String^ indata = sp->ReadExisting();
      MessageBox::Show("Data received :"+indata);
    }
    Quand j'ouvre le port, je ne reçois jamais de donnée.
    Je peux programmer l'appareil pour qu'il envoie en continue des données sur le port série. Même dans ce cas là, je ne reçois rien.

    La solution a été de rajouter ces deux lignes dans mon initialisation de port COM :
    Code :
    1
    2
    3
     
      serialPort1->DtrEnable = false; // valeur par défaut
      serialPort1->RtsEnable = true; // ce qui permet le déclenchement de l'évènement Datareceived dans mon cas pour mon appareil.
    J'espère que ça pourra être utile à quelqu'un.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •