投稿日 | : 2003/01/31(Fri) 15:36 |
投稿者 | : ゆうや |
Eメール | : curren62036@yahoo.co.jp |
URL | : |
タイトル | : Re: OnComm イベントについて |
こんにちは。初めてお返事させていただきます。
Win98SecondEdition で VB6.0SP5 を使っています。
私もCommコントロール使ってツールを作ったりしていますよ。難しいですよね。
合っているかわかりませんが、経験からコメントさせて頂こうと思います。参考にしてください。
> ・・・OnComm イベントを
> 使っても、通信イベント(データ受信)がトラップされません。
> ただ、CommEvent プロパティにはデータ受信完了になっています。
> (この状態で、INPUTプロパティを利用してデータを取り込むと、
> 問題なく通信データは読み込めます)
Inputプロパティにデータが入っているということは受け取れているんですねぇ。送られてくるデータサ
イズとRThresholdプロパティの値は合っているでしょうか?ずれているとイベントが起きません。
あと、受信されるまでに、実は他の通信イベントが来ていた通信エラーが起きていた、なんてことはな
いでしょうか??
> また、シリアル通信を開始しすると、全てのイベント(例えば、コマンドボタンさえ
> 押せなくなります)がトラップされなくなり、プログラムが応答していないので、
> 強制終了になってしまいます。(ただ、この間もOnComm イベントは上手くトラップ
> されませんが、シリアルポートからデータの送受信はできており、データはコン
> ピュータ上に取り込まれて、画面上では逐次表示されております)
多分、受信完了待ちとか、通信している部分(関数とか)を無限ループで組まれているのでしょうか?
Do Until 受信完了
・・
DoEvents
・・
Loop
のように、DoEventsっていうのを入れないと、Windowsの制御がそのLoop文に占有されて何もできなくな
ってしまいます。詳しくは他の参考書などで「DoEvents」を見てみてください。
あと、私が参考にした(なった)ホームページをご紹介します。よかったら参考までに。
「SPECTRUM電子工作ページ」さん
http://members.tripod.co.jp/spectrum123/index.htm
根本的な解決にはなっていないかもしれませんが、参考にしてみてください。