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
COM1ist.Verwenden Sie die
My.Computer.Ports.OpenSerialPortMethode, um einen Verweis auf den Port abzurufen. Weitere Informationen finden Sie unter OpenSerialPort.Der
Try...Catch...FinallyBlock 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 TryErstellen Sie eine
DoSchleife zum Lesen von Textzeilen, bis keine weiteren Zeilen verfügbar sind.Do LoopVerwenden 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()-MethodeNothingzurückgibt (was bedeutet, dass kein Text mehr verfügbar ist). WennNothingzurückgegeben wird, beenden Sie dann dieDo-Schleife.If Incoming Is Nothing Then Exit Do End IfFügen Sie der
ElseAnweisung einenIfBlock 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 & vbCrLfGibt 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.