Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird beschrieben, wie Sie My.Computer.Ports
verwenden, um Zeichenfolgen von den seriellen Ports des Computers in Visual Basic zu empfangen.
So empfangen Sie Zeichenfolgen vom seriellen Port
Initialisieren Sie die zurückgegebene Zeichenfolge.
Dim returnStr As String = ""
Bestimmen Sie, welcher serielle Port die Zeichenfolgen bereitstellen soll. In diesem Beispiel wird vorausgesetzt, dass es
COM1
ist.Verwenden Sie die
My.Computer.Ports.OpenSerialPort
Methode, um einen Verweis auf den Port abzurufen. Weitere Informationen finden Sie unter OpenSerialPort.Der
Try...Catch...Finally
Block ermöglicht es der Anwendung, den seriellen Port zu schließen, auch wenn eine Ausnahme generiert wird. Der gesamte Code, der den seriellen Port bearbeitet, sollte in diesem Block angezeigt werden.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 Try
Erstellen Sie eine
Do
Schleife zum Lesen von Textzeilen, bis keine weiteren Zeilen verfügbar sind.Do Loop
Verwenden Sie die ReadLine() Methode, um die nächste verfügbare Textzeile vom seriellen Port zu lesen.
Dim Incoming As String = com1.ReadLine()
Verwenden Sie eine
If
-Anweisung, um zu ermitteln, ob die ReadLine()-MethodeNothing
zurückgibt (was bedeutet, dass kein Text mehr verfügbar ist). WennNothing
zurückgegeben wird, beenden Sie dann dieDo
-Schleife.If Incoming Is Nothing Then Exit Do End If
Fügen Sie der
Else
Anweisung einenIf
Block hinzu, um den Fall zu behandeln, wenn die Zeichenfolge tatsächlich gelesen wird. Der Block fügt die Zeichenfolge vom seriellen Port an die Rückgabezeichenfolge an.Else returnStr &= Incoming & vbCrLf
Gibt die Zeichenfolge zurück.
Return returnStr
Beispiel
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
Dieses Codebeispiel ist auch als IntelliSense-Codeausschnitt verfügbar. In der Codeausschnittauswahl ist er unter Konnektivität und Netzwerk zu finden. Weitere Informationen finden Sie unter Codeschnipsel.
Code kompilieren
In diesem Beispiel wird davon ausgegangen, dass der Computer COM1
verwendet.
Robuste Programmierung
In diesem Beispiel wird davon ausgegangen, dass der Computer COM1
verwendet. Um mehr Flexibilität zu erzielen, sollte der Code dem Benutzer die Auswahl des gewünschten seriellen Ports aus einer Liste der verfügbaren Ports ermöglichen. Weitere Informationen finden Sie unter How to: Show Available Serial Ports.
In diesem Beispiel wird ein Try...Catch...Finally
Block verwendet, um sicherzustellen, dass die Anwendung den Port schließt und alle Timeoutausnahmen abfangen kann. Weitere Informationen finden Sie unter Try...Catch...Finally-Anweisung.