Announcement

Collapse
No announcement yet.

[VB2010] Wie kann man über den SerialPort nur bestimmt Zeichen anzeigen lassen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [VB2010] Wie kann man über den SerialPort nur bestimmt Zeichen anzeigen lassen?

    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:

    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

  • #2
    Eventuell denn eingelesenen Wert mit AND 0F verknüpfen, damit nur das zweite Zeichen angezeigt wird.
    Wenn das nicht geht, dann eben über die String-Routinen Microsoft.VisualBasic.Mid usw.

    Comment

    Working...
    X