Hallo,
ich steh mal wieder voll auf dem Schlauch.
Ich bekomme über die serielle Schnittselle fortlaufend Datentelegramme.
Jedes Telegram endet mit einem # Zeichen.
Da die Telegramme eine unterschiedliche Länge haben möchte ich so lange sammeln bis dieses Zeichen erscheint und dann weiter auswerten.
Im angehängten Code sollen die Daten in der Textbox10 gesammelt und dann ausgewertet werden.
Irgent wie mache ich da aber etwas falsch da die Daten völlig durcheinander angezeigt werden
ich steh mal wieder voll auf dem Schlauch.
Ich bekomme über die serielle Schnittselle fortlaufend Datentelegramme.
Jedes Telegram endet mit einem # Zeichen.
Da die Telegramme eine unterschiedliche Länge haben möchte ich so lange sammeln bis dieses Zeichen erscheint und dann weiter auswerten.
Im angehängten Code sollen die Daten in der Textbox10 gesammelt und dann ausgewertet werden.
Irgent wie mache ich da aber etwas falsch da die Daten völlig durcheinander angezeigt werden
VB.NET-Quellcode
- Private Sub myComPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles myComPort.DataReceived
- Dim vari1ende As String
- Dim PosStart As Integer
- Dim Variablen() As String
- Dim PosRaute As Integer
- Dim inc As Integer
- Dim Datenabschnitt As String
- Me.TextBox1.Text = Me.TextBox1.Text & Me.myComPort.ReadExisting ' Textbox1 wird fortlaufen gefüllt
- Me.TextBox10.Text = TextBox10.Text & Me.myComPort.ReadExisting ' Textbox10 wird zur Auswertung gefüllt
- If Me.TextBox10.Text = ("#"c) Then
- vari1ende = Me.TextBox10.Text.IndexOf("#"c) 'Länge Textinhalt feststellen
- Me.TextBoxLange.Text = vari1ende 'Länge Textinhalt anzeigen
- PosStart = Me.TextBox10.Text.IndexOf("0:") 'Position Startzeichen feststellen
- PosRaute = Me.TextBox10.Text.IndexOf("#"c) 'Position Endzeichen feststellen
- Datenabschnitt = Me.TextBox10.Text.Substring(PosStart + 2, PosRaute - PosStart - 3) 'Substring(start, length)
- Variablen = Split(Datenabschnitt, "-")
- For inc = LBound(Variablen) To UBound(Variablen) ' String füllen
- xvari(inc) = Variablen(inc)
- Next
- Me.TextBox2.Text = CStr(xvari(0))
- Me.TextBox3.Text = CStr(xvari(1))
- Me.TextBox4.Text = CStr(xvari(2))
- Me.TextBox5.Text = CStr(xvari(3))
- Me.TextBox6.Text = CStr(xvari(4))
- Me.TextBox7.Text = CStr(xvari(5))
- Me.TextBox8.Text = CStr(xvari(6))
- Me.TextBox9.Text = CStr(xvari(7))
- Me.TextBox10.Text = ""
- End If
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „elkokiller“ ()