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
Come si usa la Comunicazione Seriale ??
mercoledì 27 giugno 2007 - 14.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gigifazio
Profilo
| Newbie
29
messaggi | Data Invio:
mer 27 giu 2007 - 14:59
Salve a tutti,
Avrei esigenza di creare una piccola form che mi visualizzi dei dati provenienti da una scheda di aquisizione,
dovrei collegare quindi il pc tramite una RS232 o meglio "Direttamente" (..si fa per dire... cmq con commutatore) in 485 alla mia scheda, solo che in VB.Net o C# non ho mai usato le comunicazioni seriali potete indicarmi qualche file di esempio? o librerie ? o qualisia altra cosa, che mi aiuti ad iniziare
Grazie
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 27 giu 2007 - 18:22
E' vero che avevo lavorato già con la seriale in GWBasic e in Assembler, ma per VB.Net ero all'oscuro. Sono partito da questo link
http://www.devx.com/dotnet/Article/31001/1954?pf=true
e ora lavoro con seriali 232 e 485 (con opportuno convertitore), senza particolari problemi. Spero sarà lo stesso anche per te!
Un piccolo trucco che ho dovuto usare nel mio caso. Per uscire dalla ricezione di un messaggio continuo, ma di lunghezza imprecisata, ho impostato un timeout intorno ai 30ms e intercetto l'eccezione di tempo scaduto, usandola x uscire. Con questo sistema riesco sempre a prendere tutti i caratteri, visto che una volta iniziato il flusso, questo è continuo.
gigifazio
Profilo
| Newbie
29
messaggi | Data Invio:
ven 29 giu 2007 - 17:24
hai qualche piccolo esempio da girarmi?
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
ven 29 giu 2007 - 22:02
L'unico significativo contributo che posso aggiungere a quanto già troverai attraverso quel link, è la gestione della ricezione con timeout, come ti accennavo:
Public Delegate Sub myDelegate()
Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serialPort.DataReceived
txtRisposta.Invoke(New myDelegate(AddressOf Ricevi), New Object() {})
End Sub
Public Sub Ricevi()
ReDim ArrRispostaByte(0)
serialPort.ReadTimeout = 10
Try
Do
serialPort.Read(ArrRispostaByte, ArrRispostaByte.Length - 1, 1)
ReDim Preserve ArrRispostaByte(ArrRispostaByte.Length)
Loop
Catch ex As Exception
End Try
..............
..............
End Sub
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 !