tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: シリアル通信の割込み禁止
投稿日: 2009/10/24(Sat) 18:00
投稿者オショウ
>             Try
>                 sz = ComSerialPort.ReadTo(vbCr)
>                 mRDataLen = Len(sz)
>                 ComSerialPort.Read(mRDataB, 0, mRDataLen)
>             Catch ex As Exception
>                 sz = String.Empty
>             End Try
>             If sz <> String.Empty Then
>       :

  sz = ComSerialPort.ReadTo(vbCr) ここで、szに読み込んで
  いるのに・・・
  何故再度、ComSerialPort.Read(mRDataB, 0, mRDataLen) する
  必要があるんですか?

  受信イベントが発生した時点で、1バイト以上受信バッファに
  データがある状態で、vbCrまで待って全て読み込むと言う方法
  で、一連の文字情報が、szに読み込まれているのに、その後、
  再度、読み込み動作させたら、正常な1組のデータを読み捨て
  て次のデータ受信を行っていることになるので・・・

  おかしくなるのは当然・・・

>                 mRDataLen = Len(sz)
>                 ComSerialPort.Read(mRDataB, 0, mRDataLen)

  この2行は不必要ですネ!(多分)

※ 受信されるべきデータのプロトコルが解らないので完全か
  どうかは、再度検証して下さい。

以上。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。