serieller Datenaustausch

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Hicki.

    serieller Datenaustausch

    Hallo erst mal,

    mein Problem liegt darin, dass ich einen Com-Port auslese und die Daten in einem Textfenster in einer anderen Form darstellen will. Es funktioniert aber nicht. In der Hauptform gibt es kein Problem.

    VB.NET-Quellcode

    1. Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    2. Try
    3. While SerialPort1.BytesToRead > 0
    4. com_text = SerialPort1.ReadLine
    5. txt_empfang.AppendText(com_text)
    6. Einstellung_Zeit.txt_empfang.AppendText(com_text)
    7. End While
    8. Catch ex As Exception
    9. MessageBox.Show("Fehler beim empfang") :
    10. End Try
    11. End Sub

    Ich hoffe, dass ich es verständlich erklärt habe.
    Gruß Andreas

    *Topic verschoben*

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Willkommen im Forum. :thumbup:

    Hicki schrieb:

    While SerialPort1.BytesToRead > 0
    Was willst Du mit einer While-Schleife im DataReceived-Event?
    Immerhin ist es schon lobenswert, dass Du dies verwendet hast.
    Immer, wenn Daten anliegen, wird dieses Event geworfen.
    Und Du kannst mit einem Befehl alle anliegenden Daten abholen.
    Da allerdings die RS232 in einem anderen Thread läuft als die GUI, musst Du die Daten durch-invoken.

    VB.NET-Quellcode

    1. Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    2. Dim txt = SerialPort1.ReadExisting()
    3. Me.Invoke(Sub() NewText(txt))
    4. End Sub
    5. Private Sub NewText(txt As String)
    6. TextBox1.Text &= txt
    7. End Sub
    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!