none
Daten Über Serielle Schnittstelle Empfangen geht schief RRS feed

  • Frage

  •  

    Hallo zusammen,
    ich habe das folgende Problem. Ich empfange auf der Seriellen Schnittstelle Daten die ich weiter verarbeiten will.
    Das geht auch die ersten 300 Datensätze gut (so ca.) Danach geht das ein oder andere Byte flöten. Die Daten die empfangen werden sind folgender Massen aufgebaut:
    <NachrichtenTyp;zah;zahl>
    Leider fehlen dann Zeichen im NachrichtenTyp, die Semikolons oder die Zahlen. Nicht unbedingt die ganzen "Felder" sondern nur Teile (Kommen sollte <DATEN;10;333> und <DAN;133> kommt an) Habe mich auch schon mal mit dem HyperTerminal auf die Serielle gehängt, da kommt alles Sauber an, auch noch nach Stunden...
    An bei mein Code der die Daten von der Seriellen Entgegen nimmt.

    Vielen Dank schon mal für eure Hilfe.


     
        Dim RXByte As Byte
        Dim ResivedString As String
    
    
    
        Private Sub Receiver(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles COMPort.DataReceived
            
    
            Try
    
                RXByte = COMPort.ReadByte
    
                Do
                    RXByte = COMPort.ReadByte
    
                    Dim s As String = Chr(RXByte)
    
                    If s.Equals("<") Then
                        ResivedString = ""
                        ResivedString = s
                    Else
                        ResivedString += s
                    End If
    
                    If s.Equals(">") Then
                        Me.BeginInvoke(New StringSubPointer(AddressOf Display), "Empfange: " & ResivedString & " |Ende")
                        oneCommand(ResivedString)
                        ResivedString = ""
                    End If
                Loop Until (COMPort.BytesToRead = 0)
    
            Catch ex As Exception
                Dim errortxt As String = "Fehler in Sub Receiver " & ex.Message & vbCrLf
                Me.BeginInvoke(New StringSubPointer(AddressOf Display), errortxt)
            End Try
        End Sub
    Mittwoch, 3. Februar 2010 19:01

Antworten

Alle Antworten