Evenement sur port COM de Dell Axim x51v. VC++ - GPS / PDA - Technologies Mobiles
MarshPosté le 21-12-2005 à 10:40:54
Bonjour,
Cherchant à récupérer les trames NMEA en sortie d'un GPS sur port COM, j'ai configuré sous Visual C++ mon port COM de manière à ce que le caractère "Retour Charriot" déclenche un événement sur le port COM.
Le bout de programme ci-dessous fonctionne très bien sur l'émulateur PPC 2003 SE. Mais rien ne se passe une fois sur mon Dell Axim x51v. En effet, aucun événement n'est déclenché. "EV_RXFLAG" n'est jamais reçu. Par contre, en remplaçant "EV_RXFLAG" par "EV_RXCHAR", je m'aperçois que des événements se produisent sur mon Axim.
J'aimerais cependant utiliser mon "EV_RXFLAG" car il simplifie mon traitement de données... Quelqu'un aurait-il une idée ?
DCB sdcb ; GetCommState(m_hComm, &sdcb) ; //m_hComm est mon HANDLE sur le port COM sdcb.EvtChar = '\n' ; SetCommState(m_hComm, &sdcb) ;
Marsh Posté le 21-12-2005 à 10:40:54
Bonjour,
Cherchant à récupérer les trames NMEA en sortie d'un GPS sur port COM, j'ai configuré sous Visual C++ mon port COM de manière à ce que le caractère "Retour Charriot" déclenche un événement sur le port COM.
Le bout de programme ci-dessous fonctionne très bien sur l'émulateur PPC 2003 SE. Mais rien ne se passe une fois sur mon Dell Axim x51v. En effet, aucun événement n'est déclenché. "EV_RXFLAG" n'est jamais reçu. Par contre, en remplaçant "EV_RXFLAG" par "EV_RXCHAR", je m'aperçois que des événements se produisent sur mon Axim.
J'aimerais cependant utiliser mon "EV_RXFLAG" car il simplifie mon traitement de données...
Quelqu'un aurait-il une idée ?
DCB sdcb ;
GetCommState(m_hComm, &sdcb) ; //m_hComm est mon HANDLE sur le port COM
sdcb.EvtChar = '\n' ;
SetCommState(m_hComm, &sdcb) ;
while(m_hComm != INVALID_HANDLE_VALUE)
{
dwEvtMask = 0 ;
// Attente d'événements
BOOL retWait = WaitCommEvent(m_hComm, &dwEvtMask, NULL) ;
// Test si le caractère '\n' a été reçu
if((dwEvtMask & EV_RXFLAG) == EV_RXFLAG)
{
// Traitement
}
}