Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Problema con RS232 in VB2005
giovedì 25 settembre 2008 - 14.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cable
Profilo
| Junior Member
64
messaggi | Data Invio:
gio 25 set 2008 - 14:58
Ciao a tutti,
ho il seguente problema con la gestione della seriale in VB2005.
Nel mio programma ricevo e invio stringhe in seriale utilizzando rispettivamente SerialPort1.ReadExisting e SerialPort1.Write(StrCom).
Ho però il problema che non riesco a svuotare il buffer di ricezione così, se ad esempio ci sono problemi e non mi arriva nulla,anzichè visualizzare il nulla visualizzo gli ultimi dati ricevuti.
Ho provato ad utilizzare i seguenti metodi:
FrmTxModem.SerialPort1.DiscardInBuffer()
FrmTxModem.SerialPort1.DiscardOutBuffer()
RxData = FrmTxModem.SerialPort1.ReadExisting
RxData = ""
ma non ottengo il risultato sperato (RxData è la variabile di tipo stringa dove metto i dati che ricevo in 232).
Grazie in anticipo
Ciao
Mauro
Vash
Profilo
| Junior Member
81
messaggi | Data Invio:
gio 25 set 2008 - 17:07
Ciao, non so se ho capito male ma è abbastanza strano che tu non riesca a svuotare il buffer!!
L'istruzione SerialPort1.ReadExisting dovrebbe memorizzarti tutto in una variabile e in automatico cancellarti il contenuto del buffer.
cable
Profilo
| Junior Member
64
messaggi | Data Invio:
ven 26 set 2008 - 10:48
Ciao,
hai capito bene.
Se ho qualche problema e non arrivano dati nuovi anzichè avere il buffer vuoto mi trovo dentro gli ultimi dati che ho letto.
Sai se c'è qualche istruzione alternativa per leggere/svuotare?
Bhooo
grazie
Vash
Profilo
| Junior Member
81
messaggi | Data Invio:
ven 26 set 2008 - 19:41
io ho sempre usato questi due metodi per svuotare il buffer:
1) miaVariabileStringa = SerialPort1.Readexisting()
2) SerialPort1.DiscardInBuffer() ' elimina i dati del buffer di ricezione
cable
Profilo
| Junior Member
64
messaggi | Data Invio:
lun 29 set 2008 - 08:09
Proverò a verificare meglio ma non faceva il suo dovere :((
Ti faccio sapere.
Grazie Ciao
rgirardi
Profilo
| Newbie
6
messaggi | Data Invio:
mar 7 ott 2008 - 21:16
Dovresti controllare anche a come hai settato il controllo di flusso (handshake se non erro).
cable
Profilo
| Junior Member
64
messaggi | Data Invio:
mer 8 ott 2008 - 09:27
Non ho messo controllo di flusso (handshake :none)
Bisogna settarlo diversamente?
rgirardi
Profilo
| Newbie
6
messaggi | Data Invio:
mer 8 ott 2008 - 09:37
Cosa hai collegato alla seriale?
Ade esempio, di solito se hai una stampante seriale, queste hanno il controllo di flusso (quindi HARWARE") che server appunto a gestire il buffer.
Prova con harware o Xon/Xoff
cable
Profilo
| Junior Member
64
messaggi | Data Invio:
mer 8 ott 2008 - 11:02
Alla seriale ho collegato un modem GSM Siemens .
Altra cosa:m'è capitato anche di collegare alla seriale una stampante ma anche in quel caso non ho messo controllo di flusso e sembra che tutto funzioni.
Mettere un controllo di flusso Hardware che vantaggi comporta se tutto funziona comunque?Minori rischi di errore?
Grazie.Ciao
rgirardi
Profilo
| Newbie
6
messaggi | Data Invio:
mer 8 ott 2008 - 11:12
Si.. in quanto la gestione del buffer viene demandata all'hardware...
nel tuop caso prova a pensare cosa succede se invii al modem dati più velocemente di quanti lui riesca ad eseguirne: prima si riempie il buffer...e una volta riempito.. se tu li mandi cosa succede? vengono persi? vanno a sovrascrivere gli altri nel buffer?
Il controllo di flusso fa in modo che se il buffer è pieno, la seriale del tuo PC non possa mandare nulla.
cable
Profilo
| Junior Member
64
messaggi | Data Invio:
mer 8 ott 2008 - 13:30
Appena ho un attimo lo inserisco e faccio qualche prova.
Grazie.Ciao
Torna su
Stanze Forum
Elenco Threads
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 !