Befehl Daten Empfangen

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von red1825.

    ne, ist schon in Ordnung. Die Simulation passt schon.

    War auf nem falschen Weg....



    Ich müsste für Test-Zwecke anstatt der DataReceived-Methode den Wert über einen Button-Klick abrufen. Ist das auch möglich?

    Die ganzen Read-Methoden funzen bei mir irgendwie nicht...
    Zusätzlich habe ich das Problem, dass bei den meisten COM-Schnittstellen das DataReceived-Event nicht anspringt, obwohl Werte dasein müssten. Viell. noch zur Info: Der PC enthält eine Schnittstellenkarte mit einem 64-Pin-Anschluss, der 8 COM-Schnittstellen wiederum enthält. So eine Art Krake. Kennt sich damit viell. irgendjemand aus???
    Das Event ist allein nicht zuverlässig, da es erst bei gefülltem Buffer ausgelöst wird. Ich nutze für sowas immer nen Timer, welche die Eingangsbuffergröße abfragt und bei Größer 0 entsprechend handelt. Du kannst auch mit nur einem ComPort testen, indem du Pin 2 mit Pin 3 verbindest. Dann kommt alles, was gesendet wird wieder zurück.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    ..., indem du Pin 2 mit Pin 3 verbindest.
    Das sagte ich bereits. ;)

    Wenn der Buffer leer ist, und du ein ReadToEnd o.ä. ausführst, bleibt das Program so lange stehen, bis was in den Buffer kommt, wenn ich mich nicht irre. Zeig mal deinen Code her, red.


    so long..
    Andy
    Mein Code ist im Prinzip recht simpel. Ich öffne zuerst den entsprechenden COM-Port und dann warte dann darauf, dass das DataReceived-Event anspringt.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click SerialPort1.Open() SerialPort1.Write("1234") End Sub


    Und dann müsste doch eigentlich das DataReceived-Event anspringen, oder nicht?

    VB.NET-Quellcode

    1. Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    2. MessageBox.Show(SerialPort1.ReadExisting)
    3. End Sub


    Tuts aber leider nicht. Nur bei einem COM-Port, bei den anderen müssten eigentlich Werte anliegen, aber das DataReceived-Event wird nicht ausgelöst. Auf welch andere Art kann ich noch den COM-Port lesen?

    Bin für alle Tips dankbar

    Gruß und Vielen Dank
    Red1825
    Das Event ist allein nicht zuverlässig, da es erst bei gefülltem Buffer ausgelöst wird. Ich nutze für sowas immer nen Timer, welche die Eingangsbuffergröße abfragt und bei Größer 0 entsprechend handelt.

    Mit Eingangsbuffergröße meinst du Serialport.ReadBufferSize, oder? Und wie liest du dann den Wert ein bzw. fragst ihn ab?