Über SerialPort bestimmte Zeichen empfangen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Veronesi.

    Über SerialPort bestimmte Zeichen empfangen

    Hallo zusammen,

    ich empfange über den SerialPort bei bestimmten Ereignissen eine Menge Zeichen. Nun würde ich gerne wenn z.B. die Zeichen folge "1234" empfangen wird ein Ereignis starten (MsgBox oder what ever).

    Wie ist hier die Vorgehensweise? Mit SerialPort.Read("1234") hat es nicht geklappt. :/

    Lt.Winters schrieb:

    hat es nicht geklappt
    Wieso sollte es? Zumal die Gegenstelle normalerweise nicht weiß, dass Du auf ein "1234" wartest. Mach es so:

    VB.NET-Quellcode

    1. Dim txt = SerialPort1.ReadExisting()
    2. If txt.Contains("1234") Then
    3. MessageBox("1234 empfangen")
    4. End If
    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!
    Wobei das natürlich auch nicht immer funktioniert!

    Wenn an der seriellen Schnittstelle Daten vorhanden sind (Standardmässig bereits ab 1Byte) wird ein Event geworfen.
    Wenn Du in diesem die Daten liest, musst du mindestens mit &= die Daten einlesen.

    Denn meist ist das Programm so schnell, dass erst wenige Zeichen zum lesen verfügbar sind, wenn du liest.