Come si usa la Comunicazione Seriale ??

mercoledì 27 giugno 2007 - 14.59

gigifazio Profilo | Newbie

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

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

hai qualche piccolo esempio da girarmi?

alextyx Profilo | Expert

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
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5