Compartilhar via


Como: receber seqüências de caracteres de portas seriais no Visual Basic

Este tópico descreve como usar My.Computer.Ports para receber cadeias de caracteres de portas seriais do computador no Visual Basic.

Para receber cadeias de caracteres da porta serial

  1. Inicialize a cadeia de caracteres de retorno.

    Dim returnStr As String = ""
    
  2. Determine qual porta serial deve fornecer as cadeias de caracteres.Este exemplo assume que é a COM1.

  3. Use o método My.Computer.Ports.OpenSerialPort para obter uma referência para a porta.Para mais informações, consulte OpenSerialPort.

    O bloco Try...Catch...Finally permite que ao aplicativo feche a porta serial mesmo que se gere uma exceção.Todo o código que manipula a porta serial deve aparecer dentro desse bloco.

    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. Crie um loop Do para ler linhas do texto até que não haja mais linhas disponíveis.

    Do
    Loop
    
  5. Use o método ReadLine para ler a próxima linha de texto disponível a partir de porta serial.

    Dim Incoming As String = com1.ReadLine()
    
  6. Use uma instrução If para determinar se o método ReadLine retorna Nothing (significando que não há mais texto disponível).Se ele retornar Nothing, saia do loop Do.

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. Adicione um bloco Else para a instrução If para tratar o caso se a cadeia de caracteres é realmente lida.O bloco acrescenta a cadeia de caracteres a partir de porta serial para a cadeia de caracteres de retorno.

    Else
        returnStr &= Incoming & vbCrLf
    
  8. Retorne a cadeia de caracteres.

    Return returnStr
    

Exemplo

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

Este exemplo de código também está disponível como um trecho de código IntelliSense.No selecionador de trechos de código, ele está localizado em Connectivity and Networking.Para mais informações, consulte Trechos de código.

Compilando o código

Este exemplo assume que o computador está utilizando a COM1.

Programação robusta

Este exemplo assume que o computador está utilizando a COM1.Para obter mais flexibilidade, o código deve permitir que o usuário selecione a porta serial desejada de uma lista de portas disponíveis.Para mais informações, consulte Como: mostrar as portas seriais disponíveis em Visual Basic.

Este exemplo usa um Try...Catch...Finally bloco para certificar-se de que o aplicativo fecha a porta e capturar quaisquer exceções de tempo limite.Para mais informações, consulte Try...Catch...Instrução finally (Visual Basic).

Consulte também

Tarefas

Como: discar Modems anexados a portas seriais no Visual Basic

Como: enviar seqüências para portas seriais no Visual Basic

Como: mostrar as portas seriais disponíveis em Visual Basic

Referência

Ports

System.IO.Ports.SerialPort