タイトル | : Re: MScommの通信について |
記事No | : 15475 |
投稿日 | : 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" '----------------------------
|