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

タイトル Re^6: VB2010のSerialportの受信イベントについて
投稿日: 2011/11/25(Fri) 10:31
投稿者TANTAN
オショウさん、回答ありがとうございます。

> >   Do while serialport.BytetoRead <> 0
> >   Loop
>
>   このコードはよろしくないので、やめるべきです。

今、中に仕込んだカウンタで検証してみたら、凄まじいLoop回数が返ってきて
よろしくない理由が良く分かりました。
>
>   If serialport.ByteToRead <> 0 Then
>     ' 受信処理
>   End If
>    ' 抜ける・・・
>
>   受信バッファにデータが入って、読みだされない場合、イベントは
>   通常出続けるはずなんですが・・・

上のコードを入れたところ、1バイト目の受信で失敗することなく
確実にRead命令が実施できました。ありがとうございます。
この後、コマンド判断をしてから全体のデータ長を設定して、1バイトずつ
Readしていくコードを書こうと思います。

> ※ そのシリアルポートは、PC本体ですか?
>   拡張ボード? USB変換アダプタ?
>   デバイスドライバーの都合で、適切な受信コードを書いてやる必要
>   があります。またドライバー側の設定もできるものであれば、適切
>   に動作するように設定変更するべきです。

シリアルポートはPC本体の物を使用しています。
デバイスドライバー毎の適切な通信というのを、考えたことが無かったので
仕様に合うように設定などを変えることが出来ないか、検討してみます。

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

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