Bonjour,

je travaille actuellement sur un programme qui doit me permettre de gérer le port série. J'ai regardé les FAQ à ce sujet et bien que cela m'ait aidé, j'ai encore un problème que je n'arrive pas à résoudre.

Dans mon programme j'utilise un Thread qui va "scruter" le port série et attendre qu'un message survienne. Dès qu'il en aperçoit un, il va essayer de lire le message reçu.

La détection du message avec : WaitCommEvent marche bien (la fonction renvoie TRUE), mais la lecture avec ReadFile renvoie toujours FALSE. Je ne comprends pas pourquoi... Si une bonne âme pouvait m'aider...

Voici mon code :

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
 
static DWORD WINAPI ComWatchProc (LPVOID lpData)
{
  CCom* com = (CCom*)lpData;
  com->SetCommMask(EV_RXCHAR);
  DWORD		dwEvtMask;
  while(1)
  {
    if (WaitCommEvent (com->m_hCom, &dwEvtMask, NULL)==TRUE)
    {
        char sz[1000];
        OVERLAPPED ov;
        DWORD countread = 0;
        if (ReadFile( com->m_hCom,sz,sizeof(sz),&countread,&ov )!=FALSE)
        {
          AfxMessageBox(CString(sz,countread));
        }
        else
        {
          AfxMessageBox("ReadFile renvoit FALSE");
        }
    }
    else
    {
      AfxMessageBox("WaitCommEvent renvoit FALSE");
    }
  }
  return 0;
}
merci