VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/02/03(Mon) 11:27
投稿者ゆうや
Eメールcurren62036@yahoo.co.jp
URL
タイトルRe^3: OnComm イベントについて

> 送られてくるデータサイズはまちまちですが、RThresholdプロパティは1にしておりまして、1バ
イトの
> データが来るたびに、OnComm イベントでトラップできるようにしています。
> データサイズをあわせるということは、送られてくるデータのサイズによってRThresholdプロパテ
ィを毎回
> 変更する、又はInputLenプロパティを用いて受信データ数を制限して合わせるということが必要と
> 考えてよろしいでしょうか?
1バイト受信したらイベントを発生させたい時は1、100バイト受信したらイベントを発生させたい時は10
0にする、ということでした。語弊があったかもしれません。すみません。
因みに、受信したバイト数はInBufferCountで調べられます。1バイト受信したら1だと思いますよ。
OnCommイベントのところって、
  Private Sub MSComm1_OnComm()
      Dim Buffer
      ‘受信イベントが発生した場合
      If MSComm1.CommEvent = comEvReceive Then
          Buffer = MSComm1.Input ' ←受信バッファ内のデータをすべて取り出す
      End If  
  End Sub
こんな感じになっていますか?1バイトのデータ毎にOnCommイベントを発生させて、データをどっかに退
避すれば次々とデータを取得できそうなのですが・・・。

> データ要求するコマンドを送信し、タイマー関数を使ってしばらく待った後に、
> Inputプロパティによって読み出すことができます。
> 無限ループは作っておりません。
Timerを使っているのですね。・・Timerが悪さをしているということはないでしょうか。前に、シリア
ル通信をすると、全てのイベントがトラップされなくなり・・と書かれていましたが、それとOnCommイベ
ントが発生しないというのも何か関係ありそうな気がするんですけど。Intervalが凄い短いとかないです
か??Interval=1とか。

Commコントロールでのデータのやりとりの方法はいろいろあります。駄目なら違う方法で・・とか、い
ろいろやってみるのもいいかもしれません。私も1ヶ月くらい悩んでましたから(-.-)

まともなお返事ができませんでしたが、いろいろデバッグしてみてください。


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -