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 :

Probleme thread rs232


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 Probleme thread rs232
    Bonjour � tous,
    J'essaye de faire ma com rs232 dans un thread, mais le probl�me c'est que une fois que mon thread est lanc�, mon appli est fig� mais pas mon PC.
    j'ai mis la priorit� du thread au minimum mais �a ne change rien.

    voici mon code dans le thread
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    //Ouverture du port com
       DCB dcb;
       HANDLE hCom;
       DWORD dwError;
       BOOL fSuccess;
       BOOL bResult;
       DWORD dwEvtMask;
       COMMTIMEOUTS tTimeout;
       unsigned long nBytesRead;
       char *inBuffer;
       int TimeoutRead;
       int i;
       int NbOctet;
       char c;
       hCom = CreateFile(AnsiString("COM1").c_str(),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
       /*----------------------------------*/
       /*    Définition des timeouts       */
       /*----------------------------------*/
       TimeoutRead = 500; // timeout de 500ms
       tTimeout.ReadIntervalTimeout = MAXWORD;
       tTimeout.ReadTotalTimeoutMultiplier = 0;
       tTimeout.ReadTotalTimeoutConstant = TimeoutRead; // pas de time out = 0
       tTimeout.WriteTotalTimeoutMultiplier = 0;
       tTimeout.WriteTotalTimeoutConstant = 0;
       SetCommTimeouts(hCom,&tTimeout);
       AnsiString code="";
       nBytesRead=0;
     
       //Lecture des données
       while(!Terminated)
       {
          bResult = ReadFile(hCom,code.c_str(),25,&nBytesRead,NULL);
          if (nBytesRead!=0) // Il existe des octets lus
          {
             MessageDlg(code.c_str(), mtWarning, TMsgDlgButtons() << mbOK, 0);
          }
       }
       //Fermeture du port com
        CloseHandle(hCom);
    Quelqu'un aurai-il une id�e sur ce que je pourrai am�liorer

  2. #2
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,
    avec un Sleep(1) dans la boucle while, ca change rien ?
    Si tu mets un point d'arr�t lorsqu'il est fig�, il ne tourne pas dans la boucle infinie ?

  3. #3
    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
    non �a ne change rien, de plus ma boucle tourne et fonctionne bien.
    mais ce que je ne comprend pas c'est que le thread est normalement un processus � part de ma fiche main (bien que je lance le thread sur le formshow du main)

  4. #4
    Membre �m�rite
    Avatar de Interruption13h
    Inscrit en
    Ao�t 2005
    Messages
    603
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 603
    Par d�faut
    Citation Envoy� par BOUBOU81
    non �a ne change rien, de plus ma boucle tourne et fonctionne bien.
    mais ce que je ne comprend pas c'est que le thread est normalement un processus � part de ma fiche main (bien que je lance le thread sur le formshow du main)
    Salut !


    je croi pas que c'est le thread lui m�me qui fige ton application, mais l'attente de la fin de ce thread qui cause ce probl�me, esque :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Application->ProcessMessages();
    dans la boucle while te resoud le probl�me ?

    (Etant presque jamais developper des thread )


    A+

  5. #5
    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
    Ou lala je suis d�sol�, je viens de me rendre compte que mon code n'etait pas dans l'execute du thread mais dans le constructeur.
    Je pouvais attendre longtemps.
    Arff j'ai vraiment besoin de vacances merci pour votre aide quand m�me.
    Je suis d�sol�

    //d�sol� oubli� de coch�//

  6. #6
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    On peut dire que tu as ton probl�me ?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. problem Thread IllegalThreadStateException
    Par yli_ren dans le forum D�buter avec Java
    R�ponses: 2
    Dernier message: 03/07/2007, 08h01
  2. Probleme Thread ( serveur proxy)
    Par izulah dans le forum Linux
    R�ponses: 3
    Dernier message: 05/06/2007, 12h10
  3. Probleme Thread, Listener, Random Java
    Par monicaCruZ dans le forum Concurrence et multi-thread
    R�ponses: 5
    Dernier message: 25/05/2007, 15h56
  4. Probleme convertisseur RS232 vers RS485
    Par nico_ioltech dans le forum Composants
    R�ponses: 2
    Dernier message: 05/10/2005, 09h10
  5. [Kylix] Probl�me de thread
    Par A&Nexus dans le forum EDI
    R�ponses: 1
    Dernier message: 03/05/2005, 21h48

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