Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
シリアル通信の受信データを表示
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30252#CommentId82871
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
vb素人
 (社会人)
投稿日時
2017/7/5 17:18:32
魔界の仮面弁士さま
回答ありがとうございます。
ご指摘の通り、本来は③を使いたいのですが、
①、②を試していた所です。
③(Readメソッド)を使う方法で10bitデータを受信するため、
次のコードでテストしてみました。
ご指摘がありました通り、Option Strict Onの状態で確認しています。
MessageBoxでdataの値を表示させると、「FF」と表示されますが、
その後、次のエラーメッセージが出てきます。
「型'System.Byte[]'のオブジェクトを型'System.String'に変換できません」
このメッセージが出ている所は、
args(0) = data
です。
Private Delegate Sub Delegate_RcvDataToTextBox(data As Byte)
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(SerialPort1.BytesToRead - 1) As Byte
SerialPort1.Read(data, 0, data.GetLength(0))
MessageBox.Show(BitConverter.ToString(data))
'Dim strData As String = System.Text.Encoding.GetEncoding("SHIFT-JIS").GetString(data)
'MessageBox.Show(strData)
'受信したデータをテキストボックスに書き込む.
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 Byte)
'受信データをテキストボックスの最後に追記する.
If IsNothing(data) = False Then
RcvTextBox.AppendText(data)
End If
End Sub