Problemi con porta seriale

venerdì 02 febbraio 2007 - 10.33

sasa72 Profilo | Newbie

Ciao a tutti,
sto usando in vb.net la classe RS232 di Corrado Cavalli per comunicare sulla porta seriale.
A volte capita quando invio un comando che mi risponde con l'errore
"Error occurred Read Timeout. data fetched"
Da quello che ho potuto capire dipende dalla lunghezza di bytes che metto come parametro in lettura: è possibile?
Come posso evitare se non so quanti bytes devo ricevere?

Grazie
Saluti

maurosegato Profilo | Newbie

Prova ad aumentare il buffer di ricezione.. es 4096 bytes
Mauro Segato

sasa72 Profilo | Newbie

Grazie per la risposta.
Ho provato ad aumentare il buffer di ricezione ma non cambia niente ..
Ho visto pero' che mettendo dei break e debuggando senza fare alcuna modifica funziona bene.
quindi è come se non fa in tempo a ricevere tutti i bytes ..
ho messo un for per farlo aspettare subito dopo la ReadFile nella funzione read e va bene... pero' vorrei trovare una soluzione più generica .. cosi potrebbe non funzionare a seconda di quanto leggo.
Ciao

MagicBotolo Profilo | Newbie

La comunicazione con la porta seriale prevede un tempo necessario per l'invio dei dati, un tempo necessario per l'elaborazione dei dati (in pratica la periferica deve capire i dati che ha ricevuto per sapere come rispondere) e un tempo necessario per la lettura. Io utilizzo altri linguaggi per la comunicazione con la porta seriale (LabView in particolare) ma ho provato anche con VB: è comunque necessario impostare un tempo di attesa (prova con 500 ms e poi riduci... normalmente con 200 o 100 ms funziona tutto bene) tra la scrittura e la lettura. Quando fai il debug probabilmente funziona tutto perchè l'esecuzione del programma è rallentata e c'è la pausa tra scrittura e lettura.
Ciao!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5