Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento viene 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 OpenSerialPort.
Il blocco Try...Catch...Finally consente all'applicazione di chiudere la porta seriale anche se viene generata un'eccezione.Tutto il codice per la modifica della porta seriale deve essere contenuto all'interno di questo blocco.
Dim com1 As IO.Ports.SerialPort = Nothing Try com1 = My.Computer.Ports.OpenSerialPort("COM1") com1.ReadTimeout = 10000 Catch ex As TimeoutException returnStr = "Error: Serial Port read timed out." Finally If com1 IsNot Nothing Then com1.Close() End TryCreare un ciclo Do per leggere le righe di testo fino a quando non sono più disponibili righe.
Do LoopUtilizzare 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 IfAggiungere 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 & vbCrLfRestituire la stringa.
Return returnStr
Esempio
Function ReceiveSerialData() As String
' Receive strings from a serial port.
Dim returnStr As String = ""
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM1")
com1.ReadTimeout = 10000
Do
Dim Incoming As String = com1.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try
Return returnStr
End Function
Questo esempio di codice è 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 Frammenti di codice.
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.
In questo esempio viene utilizzato un blocco Try...Catch...Finally per verificare che l'applicazione chiuda la porta e per rilevare tutte le eccezioni di timeout.Per ulteriori informazioni, vedere Istruzione Try...Catch...Finally (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