Cómo: Recibir cadenas de puertos serie en Visual Basic

Actualización: noviembre 2007

En este tema se explica cómo utilizar My.Computer.Ports para recibir cadenas de los puertos serie del equipo en Visual Basic.

Para recibir cadenas del puerto serie

  1. Inicialice la cadena de devolución.

    Dim returnStr As String = ""
    
  2. Determine qué puerto serie debe proporcionar las cadenas. Este ejemplo supone que es COM1.

  3. Utilice el método My.Computer.Ports.OpenSerialPort para obtener una referencia al puerto. Para obtener más información, vea My.Computer.Ports.OpenSerialPort (Método).

    El bloque Using permite a la aplicación cerrar el puerto serie aun cuando se genere una excepción. Todo el código que manipula el puerto serie debe aparecer dentro de este bloque o dentro de un bloque Try...Catch...Finally.

    Using com1 As IO.Ports.SerialPort = _
            My.Computer.Ports.OpenSerialPort("COM1")
    End Using
    
  4. Cree un bucle Do para leer las líneas de texto hasta que no queden líneas disponibles.

    Do
    Loop
    
  5. Utilice el método ReadLine para leer en el puerto serie la siguiente línea de texto disponible.

    Dim Incoming As String = com1.ReadLine()
    
  6. Utilice una instrucción If para determinar si el método ReadLine devuelve Nothing (lo que significa que no hay más texto disponible). Si devuelve Nothing, salga del bucle Do.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Agregue un bloque Else a la instrucción If para controlar el caso de que realmente se lea la cadena. El bloque anexa la cadena del puerto serie a la cadena de devolución.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. Devuelva la cadena.

    Return returnStr
    

Ejemplo

Function ReceiveSerialData() As String
    ' Receive strings from a serial port.
    Dim returnStr As String = ""

    Using com1 As IO.Ports.SerialPort = _
            My.Computer.Ports.OpenSerialPort("COM1")
        Do
            Dim Incoming As String = com1.ReadLine()
            If Incoming Is Nothing Then
                Exit Do
            Else
                returnStr &= Incoming & vbCrLf
            End If
        Loop
    End Using

    Return returnStr
End Function

Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Conectividad y redes. Para obtener más información, vea Cómo: Insertar fragmentos de código en el código (Visual Basic).

Compilar el código

Este ejemplo supone que el equipo está utilizando el puerto COM1.

Programación eficaz

Este ejemplo supone que el equipo está utilizando el puerto COM1. Para mayor flexibilidad, el código debería permitir al usuario seleccionar el puerto serie deseado en una lista de puertos disponibles. Para obtener más información, vea Cómo: Mostrar los puertos serie disponibles en Visual Basic.

Este ejemplo utiliza un bloque Using para asegurarse de que la aplicación cierra el puerto aun cuando produzca una excepción. Para obtener más información, vea Instrucción Using (Visual Basic).

Vea también

Tareas

Cómo: Marcar a través de módems conectados a puertos serie en Visual Basic

Cómo: Enviar cadenas a puertos serie en Visual Basic

Cómo: Mostrar los puertos serie disponibles en Visual Basic

Referencia

My.Computer.Ports (Objeto)

System.IO.Ports.SerialPort