私はこのフォーラムを初めて使用するので、これが本当にこれを投稿する場所かどうかわかりません。必要に応じて、より適切なフォーラムに自由に移動してください。
わかりましたので、VB 2010 でシリアル デバイスとの間で HEX データを送受信する簡単なアプリケーションを作成しています。これで、「送信」部分はうまくいきましたが、受信部分に問題があります。デバイスは、1 秒ごとに HEX データの一定のストリームをアプリケーションに送り返します。受信した HEX 文字列の特定のバイトを調べ、それに応じて IF ステートメント内で処理を行うアプリケーションが必要です (たとえば、文字列のバイト 10 が "&10" と等しい場合は ... を実行します)。
このデータを取得し、そこから正しいバイトを解析して、何かを行う方法がわかりません。:/ これに使用しようとしたコード (ただし動作しません) は次のとおりです:-
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim statusget() As String
Dim str1 As String
str1 = SerialPort1.ReadExisting()
statusget = str1.Split(",")
If statusget(10) = "&01" Then
btn_tx1.BackColor = Color.Red
btn_tx2.BackColor = SystemColors.Control
btn_tx3.BackColor = SystemColors.Control
btn_tx4.BackColor = SystemColors.Control
btn_tx5.BackColor = SystemColors.Control
btn_tx6.BackColor = SystemColors.Control
btn_tx7.BackColor = SystemColors.Control
btn_tx8.BackColor = SystemColors.Control
End If
End Sub
さらに、デバイスから受信したすべてのデータを表示するリッチ テキスト ボックスがあるので、それを監視できます。「uZ!!!??」のような奇妙なエンコーディング (HEX ではない) で返されるという事実を除いて、正常に動作します。
ご協力いただきありがとうございます。:)
編集 - データを送信するためのコード:
Private Sub btn_tx1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_tx1.Click
Dim buftx1() As Byte = {&HF0, &H5A, &HF, &H5, &H1, &H11, &H0, &H0, &H0, &H0, &H0, &H0, &H30, &H37, &HFF}
SerialPort1.Write(buftx1, 0, buftx1.Length)
End Sub