timeout bei UART (readFile,writeFile) funktioniert nicht



  • Hallo,

    ich erstelle einen Zugang zur UART-Schnittstelle, setze Baudraten usw. und versehe das ganze ( readFile() bzw. writeFile() ) mit einem timeout. Das ganze funktioniert soweit auch ganz gut und ich kann Daten lesen/empfangen.

    Nun habe ich jedoch festgestellt, dass ich mein timeout nie erreiche. Selbst, wenn ich das serielle Kabel ausstecke.

    Kann es sein, dass das timeout bei der seriellen Übertragung (ohne Parity-Bit) gar nicht funktionieren kann? Schließlich kann der PC doch gar nicht wissen, ob ein ständig anliegendes "0" beim lesen gewollte Daten sind oder eben nicht. Genauso bekommt er ja auch keine Rückmeldung ob gesendete Daten irgendwo angekommen sind oder im Nirwana verschwinden.



  • Vielleicht mal das und das durcharbeiten.



  • Danke für die Antwort, oneill5000.

    Mit anderen Worte, ich lag also richtig mit meiner Vermutung (wenn ich es richtig verstanden habe) und ohne Event Erzeugung kann ich kein Timeout verwenden. Schade.



  • Hans_Wurst schrieb:

    Kann es sein, dass das timeout bei der seriellen Übertragung (ohne Parity-Bit) gar nicht funktionieren kann?

    Nein, das geht schon ganz gut.

    Schließlich kann der PC doch gar nicht wissen, ob ein ständig anliegendes "0" beim lesen gewollte Daten sind oder eben nicht. Genauso bekommt er ja auch keine Rückmeldung ob gesendete Daten irgendwo angekommen sind oder im Nirwana verschwinden.

    Dazu gibt es ja schliesslich ein Startbit, nen?

    Mit anderen Worte, ich lag also richtig mit meiner Vermutung (wenn ich es richtig verstanden habe) und ohne Event Erzeugung kann ich kein Timeout verwenden. Schade.

    Nein.
    Das geht alles wunderschön ohne Events. Keine Ahnung wie du darauf kommst.

    Ruf SetCommTimeouts auf und verwenden dann ganz normale die ReadFile/WriteFile APIs. Funktioniert in meinem Code seit Ewigkeiten wunderbar. Vielleicht baust du einfach nur irgendwo Mist beim einstellen der diversen COMM Parameter.


Anmelden zum Antworten