タイトル : Re: VB2010 シリアル受信通信 byte で上手くいかない 投稿日 : 2017/08/07(Mon) 07:28 投稿者 : shu
> Private Sub RcvDataToTextBox(data As String) dataを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 BitConverter.ToString(Byte())の結果は 各要素を16進にしてハイフンで区切った文字列なので このループは同じ文字列を文字列長だけ連結することになるかと 思います。 hhttps://msdn.microsoft.com/ja-jp/library/3a733s97(v=vs.110).aspx > RcvTextBox.AppendText(DD) > End Sub > > 無線機に FEFE66000600FD を変換したものをPortに書き込みます > > そうすると以下のように返ってきます( ”−”らしきものは勝手につくらしい) > > 3F-66-063F-66-063F-66-063F-74-3F3F-74-3F3F-74-3F なのでこれは {3F,66,06} {3F,74,3F} という2つのバイト列が取得出来ていることになります。ただShift-Jis文字列から バイト列に変換しているのでデータが欠落している可能性があります。 |