J'essaie de rassembler une preuve de concept pourlire / écrire sur un port série et j'ai des problèmes de conception / concept. Je ne veux pas interroger, j'essaie donc d'utiliser des E / S superposées. Dans ce cas, ce n'est pas une application multithread - elle utilise simplement des attentes efficaces.
- Port ouvert (avec OVERLAPPED)
- SetCommState (définir le port en bauds, la parité, CTS / RTS, etc.)
- SetCommMask (EV_BREAK, EV_CTS, EV_DSR, ..., EV_RXCHAR, EV_RXFLAG, EV_TXEMPTY)
- Créer des structures et des événements CHEVAUCHÉS
- WriteFile (vers le port)
- WaitCommEvent (dû à l'écriture)
- WaitCommEvent (en raison de la lecture)
- ReadFile (depuis le port)
- Vérifier le tampon de lecture
L'exemple MSDN est un peu boiteux (Surveillance des événements de communication). J'utilise actuellement deux événements, mais le ReadFile
échoue avec ERROR_INVALID_PARAMETER
.
Dans les étapes ci-dessus, ai-je besoin d'une ou deux structures superposées? Si un OVERLAPPED
structure, sont les étapes WriteFile
, WaitCommEvent
(pour l'écriture), réinitialiser l'événement, WaitCommEvent
(pour lire), ReadFile
?
Réponses:
6 pour la réponse № 1Jetez un œil à cet article, il est beaucoup plus détaillé sur la façon d'utiliser les E / S superposées avec les ports série: