|
分類:[VB.NET/VB2005 以降]
VB2010 Win7
シリアル通信のプログラムを作成しています。 一対一の送受信は可能なのですが、受信が複数ある場合に 2つ目以降のデータを取りこぼす現象が発生しています。 プログラムは以下になります。 ご存知の方教えてください。
送信、受信データともに、STX,ETXで囲まれた文字列データになります。
送信ソース SerialPort1.Close SerialPort1.NewLine=Chr(&H3) SerialPort1.Open SerialPort1.Writeline(Chr(&H2)+"aaa")
受信ソース Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
With sender
If .IsOpen = False Or e.EventType <> IO.Ports.SerialData.Chars Then Exit Sub m_RcvData = m_RcvData + .ReadLine End With
End Sub
フローとしては 送信:STX+"aaa"+ETX 受信:STX+"bbb"+ETX の場合は、受信データの取得はできるのですが、
送信:STX+"aaa"+ETX 受信:STX+"bbb"+ETXSTX+"ccc"+ETX の場合は、STX+"ccc"+ETX のデータを受信できない状態です。1つ目のデータを受信終えたところで、 DataReceivedが発生しないのでしょうか。
以上、よろしくお願いいたします。
|