|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
|
[C++] Comunicazione seriale con API Windows
Buonasera a tutti,
sto scrivendo un software di comunicazione che si avvale della porta seriale per comunicare con una periferica hardware. La comunicazione avviene tipicamente tramite messaggi scambiati secondo lo standard RS232. Per implementare la comunicazione seriale ho scelto, per motivi di efficienza, di utilizzare una comunicazione asincrona gestendo la comunicazione seriale con l'API CreateFile. Generalmente tutto funziona bene, salvo per un problema che mi sta letteralmente facendo fumare la testa Prima di effettuare una scrittura verifico che il buffer di ricezione sia vuoto. Per fare questo effettuo una lettura sulla seriale con ReadFile(...), e qui si presenta il problema. Se il buffer è effettivamente vuoto la funzione ritorna FALSE e setta l'ultimo errore a ERROR_IO_PENDING, tuttavia, nel ciclo successivo in cui monitoro il completamento della trasmissione ho il seguente problema: - la funzione WaitForSingleObject non rileva mai che l'evento associato alla comunicazione è segnalato; - la struttura OVERLAPPED che creo ha il membro Internal che assume il valore 259. Volevo chiedervi dunque.. il valore che è assegnato al membro Internal è in qualche modo legato ai codici di errore di windows? Esiste una metodologia "standard" per effettuare il flush dei buffer di invio/ricezione della porta seriale attraverso le API di windows? Grazie a tutti coloro che mi risponderanno.. ciao!!
__________________
Ciao! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova ad usare questa:
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
|
Grazie mille...dopo ore di smanettamento su msdn non ero riuscito a trovare l'api giusta....
Avevo costruito un workaround giocando sui timeout della seriale per risolvere il problema... Grazie ancora!
__________________
Ciao! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Funziona ? Non l'avevo mai usato sulle com.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:49.



















