Guide pratique pour recevoir des chaînes provenant des ports série en Visual BasicHow to: Receive Strings From Serial Ports in 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.This topic describes how to use My.Computer.Ports to receive strings from the computer's serial ports in Visual Basic.

Pour recevoir des chaînes provenant d’un port sérieTo receive strings from the serial port

  1. Initialisez la chaîne de retour.Initialize the return string.

    Dim returnStr As String = ""
    
  2. Déterminez quel port série doit fournir les chaînes.Determine which serial port should provide the strings. Cet exemple suppose qu’il s’agit de COM1.This example assumes it is COM1.

  3. Utilisez la méthode My.Computer.Ports.OpenSerialPort pour obtenir une référence au port.Use the My.Computer.Ports.OpenSerialPort method to obtain a reference to the port. Pour plus d’informations, consultez OpenSerialPort.For more information, see OpenSerialPort.

    Le bloc Try...Catch...Finally permet à l’application de fermer le port série, même si cela génère une exception.The Try...Catch...Finally block allows the application to close the serial port even if it generates an exception. Tout le code qui manipule le port série doit apparaître dans ce bloc.All code that manipulates the serial port should appear within this block.

    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
    
  4. Créez une boucle Do pour lire les lignes de texte jusqu’à ce que plus aucune ligne ne soit disponible.Create a Do loop for reading lines of text until no more lines are available.

    Do
    Loop
    
  5. Utilisez la méthode ReadLine() pour lire la ligne de texte disponible suivante à partir du port série.Use the ReadLine() method to read the next available line of text from the serial port.

    Dim Incoming As String = com1.ReadLine()
    
  6. Utilisez une instruction If pour déterminer si la méthode ReadLine() retourne Nothing (ce qui signifie qu’il n’y a plus de texte disponible).Use an If statement to determine if the ReadLine() method returns Nothing (which means no more text is available). Si elle retourne Nothing, quittez la boucle Do.If it does return Nothing, exit the Do loop.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Ajoutez un bloc Else à l’instruction If pour gérer la situation si la chaîne est lue.Add an Else block to the If statement to handle the case if the string is actually read. Le bloc ajoute la chaîne du port série à la chaîne de retour.The block appends the string from the serial port to the return string.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. Retourne la chaîne.Return the string.

    Return returnStr
    

ExempleExample

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.This code example is also available as an IntelliSense code snippet. Dans le sélecteur d’extraits de code, il se trouve sous Connectivité et réseau.In the code snippet picker, it is located in Connectivity and Networking. Pour plus d’informations, consultez Extraits de code.For more information, see Code Snippets.

Compilation du codeCompiling the Code

Cet exemple suppose que l’ordinateur utilise COM1.This example assumes the computer is using COM1.

Programmation fiableRobust Programming

Cet exemple suppose que l’ordinateur utilise COM1.This example assumes the computer is using COM1. Pour plus de souplesse, le code doit autoriser l’utilisateur à sélectionner le port série dans la liste des ports disponibles.For more flexibility, the code should allow the user to select the desired serial port from a list of available ports. Pour plus d’informations, consultez Guide pratique pour afficher les ports série disponibles.For more information, see How to: Show Available Serial Ports.

Cet exemple utilise un bloc Try...Catch...Finally pour garantir que l’application ferme le port et intercepte les exceptions d’expiration.This example uses a Try...Catch...Finally block to make sure that the application closes the port and to catch any timeout exceptions. Pour plus d’informations, consultez Try...Catch...Finally, instruction.For more information, see Try...Catch...Finally Statement.

Voir aussiSee also