Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
シリアル通信の受信データを表示
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30252#CommentId82865
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
vb素人
 (社会人)
投稿日時
2017/7/5 12:14:14
理解が悪くて本当にすみません。
試してみたことを整理します。
①SerialPort1.ReadByte()で読み取ると、"255"が表示される
②SerialPort1.ReadExisting()で読み取ると、"?"が表示される(ASCIIコード表で0x3FFに該当する文字)
③続いて、複数バイト読み取るため、受信データをbyte配列で宣言して試しました。
'Dim data As Byte() = New Byte(SerialPort1.BytesToRead - 1) {}
'SerialPort1.Read(data, 0, data.GetLength(0))
'System.Text.Encoding.GetEncoding("SHIFT-JIS").GetString(data)
これで試した所、次のメッセージが出てきてしまいます。
型'System.Byte[]'のオブジェクトを型'System.String'に変換できません
試しているコードは次の通りです。(①を試したときのコード)
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
If SerialPort1.IsOpen = False Then
Return
End If
Try
Dim data As String
data = SerialPort1.ReadByte()
Dim args(0) As Object
args(0) = data
Invoke(New Delegate_RcvDataToTextBox(AddressOf Me.RcvDataToTextBox), args)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub RcvDataToTextBox(data As String)
'受信データをテキストボックスの最後に追記する.
If IsNothing(data) = False Then
RcvTextBox.AppendText(data)
End If
End Sub