Event bei Daten-Empfang über serielle Schnittstelle

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Event bei Daten-Empfang über serielle Schnittstelle

    Moin,

    ich habe an einer seriellen Schnittstelle einen Controller hängen, der in unregelmässigen Abständen Daten sendet (3-4 Textzeilen mit unterschiedlichem Inhalt). Ich habe mir ein kleines Programm geschrieben, dass mir die Daten in einer Textbox ausgibt. Dazu nutze ich letzten Endes diesen Codeschnipsel:

    VB.NET-Quellcode

    1. inputData = SerialPortCA.ReadExisting 'SerialPortCA = Der Serielle Port, an dem der Controller hängt
    2. Me.Invoke(New EventHandler(AddressOf DoUpdate)) 'DoUpdate schreibt den Inhalt in die Textbox

    Das funktioniert auch alles wunderbar, ich kann so alles darstellen was gesendet wird.

    Ich möchte im nächsten Step die gesendeten Daten auswerten. Die Auswertung selbst ist ebenfalls kein Problem, allerdings frage ich mich, mit welchem Event ich die Auswertungsroutine anstossen kann? Ich möchte gerne die zu letzt gesendeten Daten analysieren und zwar dann, wenn die Datenübertragung abgeschlossen ist (also die letzte Textzeile übertragen wurde).

    Hat da jemand einen Tipp für mich? :huh:

    matzman2000 schrieb:

    3-4 Textzeilen mit unterschiedlichem Inhalt
    Woher weißt Du, welches die letzte Zeile ist?
    Übergib zunächst alle empfangenen Daten an den Hauptthread

    VB.NET-Quellcode

    1. Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    2. Dim inputData = SerialPort1.ReadExisting
    3. Me.Invoke(Sub() Me.Auswertung(inputData))
    4. End Sub
    5. Private Sub Auswertung(received As String)
    6. MessageBox.Show(received)
    7. End Sub
    und werte die Zeilen einzeln aus, wenn das Datenmodell dies gestattet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!