|
|
|
![]() |
|
Strumenti |
![]() |
#41 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' esatta la tua supposizione. Puoi continuare a leggere un byte fino a quando il buffer è vuoto.
WaitCommEvent è relativo sicuramente all'arrivo di più di un byte. Quindi è chiaro che se ne leggi solo uno ad ogni evento il buffer si riempie. Devi sapere tu, a seconda del protocollo, la dimensione caratteristica del pacchetto. In base a quello ti regoli con la dimensione del buffer e con i parametri di ReadFile. |
![]() |
![]() |
![]() |
#42 |
Member
Iscritto dal: Jul 2006
Messaggi: 64
|
Finalmente (o meglio malauguratamente per voi
![]() ![]() La funzione è la ClearCommError, che scrive su una struttura COMSTAT il campo cbInQue. Runnando il programma è evidente che in pochi secondi il laser riempie il buffer in ingresso. Quello che ora volevo sottoporre alla vostra gentile esperienza, è come posso dare in ingresso alla ReadFile un buffer di lettura delle dimensioni volute? |
![]() |
![]() |
![]() |
#43 |
Member
Iscritto dal: Jul 2006
Messaggi: 64
|
Finalmente dopo ore ho risolto, in pratica ho visto che leggendo 8bit alla volta riesco a non far riempire eccessivamente il buffer!!!
Volevo ora chiedere se è possibile emettere in uscita sulla seriale un segnale di trigger per una camera (un amico mi ha detto che dovrebbe esserci un comando con cui specificare il segnale e la sua durata...) Grazie ancora! |
![]() |
![]() |
![]() |
#44 |
Member
Iscritto dal: Jul 2006
Messaggi: 64
|
lo so che sono un rompi....
però ho ancora un problemino..... dovendo acquisire delle camere e laser, sono costretto a passare visual studio... Il codice di lettura del laser funziona perfettamente in codeblock (compilatore gnu cc) e dopo un pò di modifiche riesco a compilarlo anche in visual studio. Il problema è però che l'exe che mi crea VS (ed anche il debug) non mi fanno aprire le porte COM..., mentre quello in codeblock lo stò già usando da parecchio tempo e funziona. Non avete idea del perchè? E' come se VS non riuscisse a vedere/aprire la porta.... Vi ringrazio anticipatamente!! |
![]() |
![]() |
![]() |
#45 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Come la apri la porta COM? Immagino con la funzione CreateFile.
Estratto da MSDN per CreateFile (qui): Quote:
Reading and Writing to Serial Port in C++
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:21.