Guide pratique pour recevoir des chaînes provenant des ports série en Visual Basic
Cette rubrique explique comment utiliser My.Computer.Ports
pour recevoir des chaînes provenant des ports série de l’ordinateur en Visual Basic.
Pour recevoir des chaînes provenant d’un port série
Initialisez la chaîne de retour.
Dim returnStr As String = ""
Déterminez quel port série doit fournir les chaînes. Cet exemple suppose qu’il s’agit de
COM1
.Utilisez la méthode
My.Computer.Ports.OpenSerialPort
pour obtenir une référence au port. Pour plus d'informations, consultez OpenSerialPort.Le bloc
Try...Catch...Finally
permet à l’application de fermer le port série, même si cela génère une exception. Tout le code qui manipule le port série doit apparaître dans ce bloc.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
Créez une boucle
Do
pour lire les lignes de texte jusqu’à ce que plus aucune ligne ne soit disponible.Do Loop
Utilisez la méthode ReadLine() pour lire la ligne de texte disponible suivante à partir du port série.
Dim Incoming As String = com1.ReadLine()
Utilisez une instruction
If
pour déterminer si la méthode ReadLine() retourneNothing
(ce qui signifie qu’il n’y a plus de texte disponible). Si elle retourneNothing
, quittez la boucleDo
.If Incoming Is Nothing Then Exit Do End If
Ajoutez un bloc
Else
à l’instructionIf
pour gérer la situation si la chaîne est lue. Le bloc ajoute la chaîne du port série à la chaîne de retour.Else returnStr &= Incoming & vbCrLf
Retourne la chaîne.
Return returnStr
Exemple
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
Cet exemple de code est également disponible sous la forme d’un extrait de code IntelliSense. Dans le sélecteur d’extraits de code, il se trouve sous Connectivité et réseau. Pour plus d’informations, consultez Extraits de code.
Compilation du code
Cet exemple suppose que l’ordinateur utilise COM1
.
Programmation fiable
Cet exemple suppose que l’ordinateur utilise COM1
. Pour plus de souplesse, le code doit autoriser l’utilisateur à sélectionner le port série dans la liste des ports disponibles. Pour plus d’informations, consultez Guide pratique pour afficher les ports série disponibles.
Cet exemple utilise un bloc Try...Catch...Finally
pour garantir que l’application ferme le port et intercepte les exceptions d’expiration. Pour plus d’informations, consultez Try...Catch...Finally, instruction.