/ / Win32, lettura / scrittura porta seriale e OVERLAPPED - winapi, porta seriale, attendere

Win32, lettura / scrittura porta seriale e OVERLAPPED - winapi, porta seriale, attendere

Sto cercando di mettere insieme una prova di concetto perleggere / scrivere su una porta seriale e ho problemi con il design / concetto. Non voglio sondare, quindi sto cercando di usare I / O sovrapposti. In questo caso, non è un'applicazione multi-thread, ma utilizza solo attese efficienti.

  1. Porta aperta (con OVERLAPPED)
  2. SetCommState (imposta porta baud, parità, CTS / RTS, ecc.)
  3. SetCommMask (EV_BREAK, EV_CTS, EV_DSR, ..., EV_RXCHAR, EV_RXFLAG, EV_TXEMPTY)
  4. Crea strutture ed eventi OVERLAPPED
  5. WriteFile (per port)
  6. WaitCommEvent (per scrivere)
  7. WaitCommEvent (da leggere)
  8. ReadFile (dal porto)
  9. Controlla il buffer di lettura

L'esempio MSDN è una specie di lame (Monitoraggio degli eventi di comunicazione). Attualmente sto usando due eventi, ma il ReadFile passo sta fallendo con ERROR_INVALID_PARAMETER.

Nei passaggi precedenti, ho bisogno di una o due strutture sovrapposte? Se uno OVERLAPPED struttura, sono i passaggi WriteFile, WaitCommEvent (per scrivere), resetta l'evento, WaitCommEvent (per leggere), ReadFile?

risposte:

6 per risposta № 1

Date un'occhiata a questo articolo, è molto più approfondito su come utilizzare I / O sovrapposti con porte seriali:

Comunicazioni seriali