タイトル : 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本体の物を使用しています。 デバイスドライバー毎の適切な通信というのを、考えたことが無かったので 仕様に合うように設定などを変えることが出来ないか、検討してみます。 |