Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como usar My.Computer.Ports para receber cadeias de caracteres das portas seriais do computador no Visual Basic.
Para receber cadeias de caracteres da porta serial
Inicialize a cadeia de caracteres de retorno.
Dim returnStr As String = ""Determine qual porta serial deve fornecer as cadeias de caracteres. Este exemplo assume que é
COM1.Utilize o método
My.Computer.Ports.OpenSerialPortpara obter uma referência à porta. Para obter mais informações, consulte OpenSerialPort.O
Try...Catch...Finallybloco permite que o aplicativo feche a porta serial, mesmo que gere uma exceção. Todo o código que manipula a porta serial deve aparecer dentro deste 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 TryCrie um
Doloop para ler linhas de texto até que não haja mais linhas disponíveis.Do LoopUse o ReadLine() método para ler a próxima linha de texto disponível da porta serial.
Dim Incoming As String = com1.ReadLine()Use a instrução
Ifpara determinar se o método ReadLine() retornaNothing(o que significa que não há mais texto disponível). Se ele retornarNothing, saia doDoloop.If Incoming Is Nothing Then Exit Do End IfAdicione um
Elsebloco à instruçãoIfpara lidar com o caso se a cadeia de caracteres for realmente lida. O bloco acrescenta a cadeia de caracteres da porta serial à cadeia de caracteres de retorno.Else returnStr &= Incoming & vbCrLfRetorne 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 seletor de trechos de código, ele está localizado em Conectividade e Rede. Para obter mais informações, consulte trechos de código.
Compilando o código
Este exemplo pressupõe que o computador está usando COM1.
Programação robusta
Este exemplo pressupõe que o computador está usando COM1. Para maior flexibilidade, o código deve permitir que o usuário selecione a porta serial desejada a partir de uma lista de portas disponíveis. Para obter mais informações, consulte Como mostrar portas seriais disponíveis.
Este exemplo usa um bloco Try...Catch...Finally para garantir que a aplicação feche a porta e para capturar quaisquer exceções de tempo limite. Para obter mais informações, consulte Tentar... Pegar... Finalmente Declaração.