Procedura: ricevere stringhe da porte seriali in Visual Basic
Aggiornamento: novembre 2007
In questo argomento verrà descritto come utilizzare My.Computer.Ports per ricevere stringhe dalle porte seriali del computer in Visual Basic.
Per ricevere stringhe dalla porta seriale
Inizializzare la stringa restituita.
Dim returnStr As String = ""
Determinare quale porta seriale deve fornire le stringhe. In questo esempio si presuppone che sia COM1.
Utilizzare il metodo My.Computer.Ports.OpenSerialPort per ottenere un riferimento alla porta. Per ulteriori informazioni, vedere Metodo My.Computer.Ports.OpenSerialPort.
Il blocco Using consente all'applicazione di chiudere la porta seriale anche se viene generata un'eccezione. Tutto il codice relativo alla porta seriale deve essere contenuto all'interno di questo blocco o di un blocco Try...Catch...Finally.
Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1") End Using
Creare un ciclo Do per leggere le righe di testo fino a quando non sono più disponibili righe.
Do Loop
Utilizzare il metodo ReadLine per leggere la successiva riga di testo disponibile dalla porta seriale.
Dim Incoming As String = com1.ReadLine()
Utilizzare un'istruzione If per determinare se il metodo ReadLine restituisce Nothing, il che significa che non è più disponibile testo. Se restituisce Nothing, uscire dal ciclo Do.
If Incoming Is Nothing Then Exit Do End If
Aggiungere un blocco Else all'istruzione If per gestire la situazione se la stringa viene effettivamente letta. Il blocco consente di aggiungere la stringa dalla porta seriale alla stringa restituita.
Else returnStr &= Incoming & vbCrLf
Restituire la stringa.
Return returnStr
Esempio
Function ReceiveSerialData() As String
' Receive strings from a serial port.
Dim returnStr As String = ""
Using com1 As IO.Ports.SerialPort = _
My.Computer.Ports.OpenSerialPort("COM1")
Do
Dim Incoming As String = com1.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
End Using
Return returnStr
End Function
L'esempio di codice riportato di seguito è anche disponibile come frammento di codice IntelliSense. Nella casella di selezione dei frammenti di codice, si trova in Connettività e rete. Per ulteriori informazioni, vedere Procedura: inserire frammenti nel codice (Visual Basic).
Compilazione del codice
In questo esempio si presuppone che venga utilizzata la porta COM1.
Programmazione efficiente
In questo esempio si presuppone che venga utilizzata la porta COM1. Per garantire una maggiore flessibilità, il codice deve consentire all'utente di selezionare la porta seriale desiderata da un elenco di porte disponibili. Per ulteriori informazioni, vedere Procedura: mostrare le porte seriali disponibili in Visual Basic.
Nell'esempio riportato di seguito viene utilizzato un blocco Using per accertarsi che l'applicazione chiuda la porta anche se genera un'eccezione. Per ulteriori informazioni, vedere Istruzione Using (Visual Basic).
Vedere anche
Attività
Procedura: comporre numeri con modem collegati a porte seriali in Visual Basic
Procedura: inviare stringhe a porte seriali in Visual Basic
Procedura: mostrare le porte seriali disponibili in Visual Basic