Ich möchte über den Serialport emfangene Daten nur teilweise anzeigen lassen.
Mal als Beispie:
Ich bekomme als Antwort: 01 12 23 45 56 78 89 0A 0B 0C 0D 0E
Ich möchte aber nur: 3 5 6 8 9 A B C D angezeigt bekommen.
Wie mache ich dies?
Zum Verständnis ist hier mal ein Auszug vom code:
Hier konvertiere ich von ASCII zu HEX:
Und hier spreche ich mein Gerät an und lasse mir die ganze Antwort anzeigen:
Mal als Beispie:
Ich bekomme als Antwort: 01 12 23 45 56 78 89 0A 0B 0C 0D 0E
Ich möchte aber nur: 3 5 6 8 9 A B C D angezeigt bekommen.
Wie mache ich dies?
Zum Verständnis ist hier mal ein Auszug vom code:
Hier konvertiere ich von ASCII zu HEX:
Code:
Private Function HexToByte(ByVal msg As String) As Byte() Dim comBuffer As Byte() = New Byte(_msg.Length / 2 - 1) {} For i As Integer = 0 To _msg.Length - 1 Step 2 comBuffer(i / 2) = CByte(Convert.ToByte(_msg.Substring(i, 2), 16)) Next write = True Return comBuffer End Function
Und hier spreche ich mein Gerät an und lasse mir die ganze Antwort anzeigen:
Code:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click SerialPort1.Write(Chr(&H1) & Chr(&H2) & Chr(&H2) & Chr(&H3) & Chr(&H0) & Chr(&H0) & Chr(&H3D)) Dim bytes As Integer = SerialPort1.BytesToRead Dim comBuffer As Byte() = New Byte(bytes - 1) {} SerialPort1.Read(comBuffer, 0, bytes) Threading.Thread.Sleep(600) Final = ByteToHex(comBuffer) + "" TextBox14.Text = (Final) End Sub
Comment