[LUGA] Mit freundlicher Unterstützung von:
Linux New Media AG

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[luga] EOF bei seriellen Verbindungen



Hi all!

Ich hab eine gewöhnliche serielle Schnittstelle auf /dev/tty17 (oder
so) mit gewöhnlichen 16550a dahinter (das sind so Chips mit 4 Stk.
jeweils drauf). Die werden im /etc/rc.local mit `setserial`
konfiguriert.

$PROGRAMM macht /dev/tty17 mit open() auf (mit O_NONBLOCK) und
konfiguriert Baud-Rate (4800), 8N1, keine Flow-Control (weil keine
Leitungen für HW-Flow-Control und keine Intelligenz auf der anderen
Seite für Xon/Xoff - es macht i.Ü. auch applikativ keinen Sinn - 8 Byte
alle halben Sekunden in die eine Richtung, 15 Byte alle Sekunden in die
andere Richtung).

Dann hängt der Filedescriptor im select() und ggfs. wird - mit read() -
gelesen was daher kommt (bzw. auch geschrieben - auch über select() und
non-blocking write()s - da passieren auch keine Fehler o.ä.).

Allerdings kommt da gelegentlich auch schon mal EOF daher.
Nur wie soll das bei einer primitiven seriellen Schnittstelle überhaupt
passieren können?

Die seriellen Leitungen sind BTW hard-wired, d.h. "abstecken",
"anstecken" o.ä. als solches geht nicht/gibt es nicht.
Und das andere Ende ist auch garantiert aktiv/lebt und liest bzw.
schreibt drauf (ja, das wurde explizit mitgesnifft).

MfG,
	Bernd

PS: Die "Lösung" des Problems ist, daß der Filedescriptor ge-close()-d
    und - s.o. - neu aufgemacht wird.
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at



powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
April 2017