Serielle Datenübertragung - Exception Handling
-
Hallo,
ich benutze in meinem Programm eine serielle Schnittstelle (mittels USB <-> COM Adapter) um Daten an ein Endgerät zu senden. Nun versuche ich verzweifelt die Fehlerfälle abzuarbeiten und komme beim Exceptionhandling nicht weiter. Kennt jemand einen google Suchbegriff der mir diesbezüglich weiterhilft? Oder hat jemand gar direkt einen Lösungansatz?
Ich möchte gerne den Fall abfangen wenn im laufenden Betrieb die Verbindung unterbrochen wird. Zur Zeit erzeuge ich damit einen Kernel Fehler, worauf Linux etwas böse reagiert.
Ich benutze für die serielle Übertragung unter Linux die Standard Befehle und Klassen wie Open, Write, Read usw.Danke...
Hummel
-
eigentlich müsste doch der dateideskriptor einen Fehler auswerfen, wenn dort nichts mehr existiert? schonmal versucht, vorher den Status zu erkennen?
Ansonsten hilft nur Datei öffnen, bearbeiten, schließen, öffnen..
-
Hi,
ich habe hier einige Informationen über die serielle Schnittstelle her bekommen.
http://www.easysw.com/~mike/serial/serial.htmlEine Fehlerabfrage geht eigentlich ganz gut bei read() und write(). Da hatte ich eigentlich keine Probleme.
Hier ist das Geheimnis nur in den Einstellung von TERMIOS.
Alleine die folgenden Einstellung sind entscheidenden für das Verhalten bei Lesen von der seriellen Schnittstelle.
term_attr.c_cc[VMIN] = 1; // finished after one bye term_attr.c_cc[VTIME] = 8; // or 800ms time out
Mit dem Einstellen der Schnittstelle kann man gut auf das Fehlerverhalten von Linux einwirken.
Gruss Ritchie