tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: MScommの通信について
投稿日: 2012/05/31(Thu) 22:41
投稿者魔界の仮面弁士
> なぜでしょうか?
MScomm は専門外ゆえ、すぐには思い当らないのですが、まずは確認事項の1つとして、
OnComm イベント内で、CommEvent プロパティを Debug.Print するようにしておき、
何か異常が検出されていないかをチェックしておいては如何でしょう。


> 受信データ(0xFE,0x00,0x00,0x02,0x01......(20〜30Byte?))を受信しています。
文字化けしていますが、〜 は、"WAVE DASH" の文字ですね。


> MsgBox= Hex$(Buffer(0)) 表記ーF3(FEと表記したいです)
> MsgBox= Hex$(Buffer(1)) 表記ーF8(00と表記したいです)
文法的なミスにはとりあえず目を瞑るとして。

Buffer の中身は、すでに化けてしまっているようですね。
バイナリでは無く文字列として受信されれば、そういう化け方になりそうです。

まさか comInputModeText に戻しているわけでも無いでしょうし、
Settings プロパティの指定が適切でないとか…でしょうか(適当)。


ちなみに、当方(Win7)、強制的に vbUnicode 変換してみたら、
『FE 00 00 02 01』であったデータの内容が
『F2 F8 00 00 00 00 02 00 01 00』に化けました。

現象としては近いですが… F3,F8 ではなく F2,F8 ですね。関係ないのかな。

'----------------------------
Dim bin() As Byte, v As Variant
bin = ChrB(&HFF) & ChrB(&H0) & ChrB(&H0) & ChrB(&H2) & ChrB(&H1)
For Each v In bin
    'この時点では化けていない: FF,00,00,02,01
    Debug.Print " "; Hex(v);
Next
Debug.Print Tab(30); "Original"

bin = StrConv(bin, vbUnicode)
For Each v In bin
    'この時点では化けている: F3,F8,00,00,00,00,02,00,01,00
    Debug.Print " "; Hex(v);
Next
Debug.Print Tab(30); "String"
'----------------------------

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

古いスレッドにレスはつけられません。