eVB3のシリアル通信でバイナリデータ送信するには


ぺんた  2007-07-20 01:39:14  No: 99193

eMbedded Visual Basic 3.0のComm Control 3.0 を使いバイナリの
送受信プログラムを作成しようと思い、テストプログラムを作って
いるのですが、いきなり詰まってしまいました。

Byte型の配列にデータをセットして、Outputメソッドで送信しても
何も送信されません。
Dim BinDat(2) As Byte
BinDat(0) = 1
BinDat(1) = 2
BinDat(2) = 3
Comm1.Output = BinDat

試しに文字列の送信をしてみたところ正常に送信できました。
Comm1.Output = "Hello"

そもそもComm Control 3.0ではバイナリデータの送受信ができない
仕様なのでしょうか?

ご存知の方いらっしゃいましたらご教示宜しくお願い致します。


ぺんた  2007-07-20 02:44:55  No: 99194

自己レスです。
Byte型配列に入れたデータを文字列型に代入し直してから
送信してみたところ正常に送信できました。

Dim BinDat(2) As Byte
Dim i As Integer
Dim Temp As String

BinDat(0) = 1
BinDat(1) = 2
BinDat(2) = 3
Temp = ""
For i = 0 To UBound(BinDat)
    Temp = Temp + Chr(BinDat(i))
Next i
Comm1.Output = Temp

バイナリデータを送信する場合、本当にこのような処理を
する必要があるのか、またこの処理が適正なのかも疑問です。

とりあえずこれからバイナリデータの受信テストをやってみます。


ぺんた  2007-07-20 09:30:45  No: 99195

意味不明な機械翻訳ですがMSのサイトから下記ページを見つけました。
http://support.microsoft.com/kb/271302/ja

配列データがバグのため送信できないのでWriteFile APIで直接送信してね、
ってことでしょうか…


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加