DataRecived Event

  • VB.NET

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

    DataRecived Event

    Guten Tag,

    ich empfange über das DataReviced Event Daten (im String Format) - die Antwort des Ports sollte "OK" sein (insofern ich den richtigen befehl sende)

    Sobald ich diesen Befehl sende, wird das event auch gefeuert, jedoch nicht wie gewünscht.


    Beim 1. senden -> Antwort: ""
    Beim 2. senden -> Antwort: "OK"
    Beim 3. senden -> Antwort: ""
    Beim 4. senden -> ANtwort: "OK"
    usw...

    Was könnte das denn sein?

    VB.NET-Quellcode

    1. Public Function connect() As Boolean
    2. With SerialInterface
    3. .PortName = Me.AttachedTo
    4. .BaudRate = 9600
    5. .Parity = Parity.None
    6. .DataBits = 8
    7. .StopBits = StopBits.One
    8. .Handshake = Handshake.None
    9. .RtsEnable = True
    10. .ReceivedBytesThreshold = 1
    11. .NewLine = vbCr
    12. .ReadTimeout = 1000
    13. .Open()
    14. End With
    15. Return SerialInterface.IsOpen
    16. End Function


    VB.NET-Quellcode

    1. Private Sub meinobjekt_DataRecived(e As IO.Ports.SerialDataReceivedEventArgs) Handles meinobjekt.DataRecived
    2. msgbox(meinobjekt.serialport.readline())
    3. End Sub

    windowsfan schrieb:

    Was könnte das denn sein?
    Probier mal eine andere Zeilenende-Kennung:

    VB.NET-Quellcode

    1. .NewLine = vbCrLf
    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!
    Ich tippe auch darauf, das da vom externen Gerät ein CRLF gesendet wird, das aber nicht als Line-End erkannt wird (ist nur CR eingestellt). Ergo wird das CR ganz normal ausgegeben und da das ganze nicht anzeigbar ist, gibts ein "".