Как считывать сообщения последовательного порта в буфер и анализировать полные сообщения

Я использую следующий код для чтения значений из COM-порта:

Private port As New SerialPort("COM13", 9600, Parity.None, 8, StopBits.One)

Private Sub port_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
    Debug.Print(port.ReadExisting())
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    AddHandler port.DataReceived, New SerialDataReceivedEventHandler(AddressOf port_DataReceived)
    port.Open()
End Sub

Это работает просто отлично, но время от времени он не получает все данные и в результате возвращает две строки вместо одной.

Например, если COM-порт отправлял слово «HELLO2YOU», это выглядело бы как:

HEL
LO2YOU

или

HELLO2
YOU

Как я могу поместить туда буфер, чтобы убедиться, что все данные прочитаны перед его отображением?

Спасибо!

6
задан dsolimano 8 October 2012 в 17:21
поделиться