タイトル : VB2010 シリアル受信通信 byte で上手くいかない 投稿日 : 2017/08/05(Sat) 14:11 投稿者 : MSAKA
No11856でご指導いただいた続きです 前回は送信が旨く行かないのをバイナリーにしては如何かと提案を頂き 送信側はすんなり解決しました その気になって受信側を始めたのですが 難航 あれこれ調べても問題は解決する知識は無いようで万歳状態です 以下のようなコードです (Windous7 64Bit VB2010) (元コードは 金澤ソフト設計 が提供している sample0008) 受信イベントを受けて表示する部分を加工しています Private Sub RcvDataToTextBox(data As String) Dim LenX As Integer Dim I As Integer Dim DD As String LenX = Len(data) Dim s(LenX) As String DD = "" Dim bytes() As Byte = System.Text.Encoding.GetEncoding(932).GetBytes(data) For I = 1 To LenX s(I) = BitConverter.ToString(bytes) DD = DD & s(I) Next RcvTextBox.AppendText(DD) End Sub 無線機に FEFE66000600FD を変換したものをPortに書き込みます そうすると以下のように返ってきます( ”−”らしきものは勝手につくらしい) 3F-66-063F-66-063F-66-063F-74-3F3F-74-3F3F-74-3F これは期待している値ではないので改めて SerialDebuggerFree.exe なる通信試験ソフトで確認すると (同時に表示されるtimeなど省略します Recv:以降が通信内容) 0001 IDとTime Recv:FEFE 6600 06 0002 IDとTime Recv:00FD FEFE 0066 0003 IDとTime Recv:FBFD と表示されます (細切れになるのは他のEventの為?) この16進部分が無線機に返されます FEFE 6600 06 00FD までががPCから送った内容(無線機もそれに対応した動きをします) それ以降 FEFE 0066 FBFD が成功を意味しているようです (無線機からPCへの送信なので 66 と 00 が逆になっています) SerialDebuggerFreeと同じ返信を期待してあれこれ調べて試みたのですが 力不足で及ばず勉強やり直しです どこが誤っているのでしょうか よろしくご指導ください |