Практическое руководство. Получение строк из последовательных портов в Visual Basic
Обновлен: Ноябрь 2007
В этом разделе описывается, как использовать объект My.Computer.Ports в Visual Basic для получения строк из последовательных портов компьютера.
Получение строк из последовательного порта
Инициализируйте возвращаемую строку.
Dim returnStr As String = ""
Определите, из какого последовательного порта должны поступать строки. В данном примере это COM1.
Используйте метод My.Computer.Ports.OpenSerialPort для получения ссылки на порт. Дополнительные сведения см. в разделе Метод My.Computer.Ports.OpenSerialPort.
Блок Using позволяет приложению закрыть последовательный порт даже в случае возникновения исключения. Весь код, управляющий последовательным портом, должен содержаться внутри этого блока или внутри блока Try...Catch...Finally.
Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1") End Using
Создайте цикл Do для чтения строк текста до тех пор, пока строки не исчерпаются.
Do Loop
Используйте метод ReadLine для чтения следующей доступной строки текста из последовательного порта.
Dim Incoming As String = com1.ReadLine()
Используйте оператор If, чтобы определить, не возвратил ли метод ReadLine значение Nothing (это означает, что текст более не доступен). Если он возвратит Nothing, завершите цикл Do.
If Incoming Is Nothing Then Exit Do End If
Добавьте блок Else в оператор If, чтобы обрабатывать случаи, когда строка является фактически прочитанной. Блок добавляет строку из последовательного порта к возвращаемой строке.
Else returnStr &= Incoming & vbCrLf
Возвратите строку.
Return returnStr
Пример
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
Данный пример кода доступен также в качестве фрагмента кода IntelliSense. В окне выбора фрагмента кода он находится в разделе Связь и сеть. Дополнительные сведения см. в разделе Практическое руководство. Вставка фрагментов в код (Visual Basic).
Компиляция кода
В этом примере предполагается, что на компьютере используется порт COM1.
Отказоустойчивость
В этом примере предполагается, что на компьютере используется порт COM1. Для большей гибкости код должен позволить пользователю выбрать нужный последовательный порт из списка доступных портов. Дополнительные сведения см. в разделе Практическое руководство. Отображение доступных последовательных портов в Visual Basic.
В этом примере используется блок Using, чтобы обеспечить закрытие порта приложением даже в случае возникновения исключения. Дополнительные сведения см. в разделе Оператор Using (Visual Basic).
См. также
Задачи
Практическое руководство. Отправка строк в последовательный порт в Visual Basic
Практическое руководство. Отображение доступных последовательных портов в Visual Basic