MSCOMMで連続したデータを受信する方法について

解決


旭が丘公園  2004-06-22 02:03:44  No: 114086  IP: [192.*.*.*]

VB6を使用しておりますが,MSCommを用いてデータを受信した際に
複数のデータを受信できません。うまく言えないのですが,例えば下記のようなプログラムで送信された 0x52  と 0xAA  を両方受信して別々の変数に
格納したいのです。

Send_Command1(0) = &H52
Send_Command2(0) = &HAA
MSComm1.Output = Send_Command1
MSComm1.Output = Send_Command2

現在は下記のような受信プログラムで最初の 0x52  だけは表示できますが,0xAAは受信できません。何か方法はありますでしょうか。

Dim Buffer() As Byte
Buffer = MSComm1.Input
Label21.Caption = Hex(Buffer(0))

ちなみに変数を2つ宣言して立て続けに受信しようとしたのですが,できませんでした。お力をおかし頂けませんでしょうか。お願い致します。

編集 削除
岡田 之仁  2004-06-22 03:03:22  No: 114087  IP: [192.*.*.*]

2バイトくるのに、1バイト受信を1回記述しても2バイト
は受信しませんヨ!

あくまで同期受信で、2バイトと言うのであれば、
Dim Buffer() As Byte
Buffer = MSComm1.Input
Label1.Caption = Hex(Buffer(0))
Buffer = MSComm1.Input
Label2.Caption = Hex(Buffer(0))
で、2バイト受信したことになりますが・・・

何バイトででも・・・としますと、非同期受信を実現しない
いことには・・・

MSComm1_OnComm() を使えば、非同期受信で何バイトでも可能
となります。ヘルプで調べてみてください。

以上。

編集 削除
旭が丘公園  2004-06-25 01:03:54  No: 114088  IP: [192.*.*.*]

お返事誠にありがとうございます。ご返信が遅れて申し訳ございません。
再度質問させて頂きます。
例えば贈られてくるデータが3バイト固定だった場合,その受信した
3バイトを,ラベルに 12AAFF  などと表示したいのですが,どのようにしたらよろしいでしょうか。色々試したのですが,どうしてもできませんでした。変数はバイト側配列で宣言すればよいのでしょうか。現在は,動的配列にしておりますが,うまくいきません。また,MSComm1.RThreshold の値は3にするのでしょうか。

どうぞよろしくお願い致します。

編集 削除
旭が丘公園  2004-06-25 03:08:50  No: 114089  IP: [192.*.*.*]

すみません。解決致しました。
ありがとうございました。

編集 削除