掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCOMMで1バイトずつ受信するには? (ID:111612)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
のみさんの言われる通り、何バイト受信しても1バイトづつ 解析しながら、受信データが無くなるまで繰り返すと言う、 手法で無ければ、非同期通信でOnComm使う意味がありません。 仮にボーレートが、9600bpsであった場合、設定にもよりま すが・・・ 13 バイト × 10 ビット = 130 ビット 130 ビット ÷ 9600 ビット = 0.01354... 0.01354 × 1000 = 13.54 (ms) 13バイト受信するのに、9600ボーで、理論的に約13ミリ秒の 時間がかかることになります。で、では、1バイトごととな りますと、約1ミリ秒です。 VB6 のコ−ドで、1ミリ秒の応答が可能な・・・と言うのは 不可能です。そこまで応答性はよくないと言うのが、経験的 な性能です。 これが、19200bpsとか、高速なボーレートでは、当然、もう 一気に受信バッファにデータが入ってきますので、1バイト 毎に応答して・・・順次解析して・・・と言うのは、完全に 無理です。何バイトあっても、順次解析を行いつつと言う、 非同期通信の本来の意味と、OnCommでの非同期受信のスタイ ルをコーディングしなければならないと思います。 ※ 他に何か重い処理をするプログラムが動けば、当然、 もっと応答性が悪くなりますので・・・ その辺を考慮され、OnCommの部分のアルゴリズムの改造に 頑張って下さい。 以上。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.