Hallo,
ich bin mal wieder heiss am programmieren und will die
serielle Schnitstelle bedienen - vielleicht wird das ja
sogar mal ein richtig nettes QSerialDevice oder so.
Ok, ich kann schon eine ganze Menge ... also lesen,
schreiben usw. Die Frage ob und wann ich Daten holen bzw.
schicken kann, soll mir das ganze natuerlich ueber
Signale signalisieren. Kein Problem mit dem
QSocketNotifier - unter Linux, aber ueber Windoofs wollen
wir mal nicht reden - da bruache ich einen fuer Lesen,
einen fuer Schreiben!
Ich habe da ein Protokoll einzuhalten, welches auf ziemlich
krassem Quittungsverkehr besteht (SECS I) ... etwa so:
Ich will was senden: ENQ ... warten mit timeout
Empfaenger kann: EOT
Ich sende Daten: DATEN ... warten mit timeout
Empfaneger hats (nicht) ACK (NAK)
Das Problem sind nun diese timeouts. Diese sind als Zeit
zwischem dem Senden des letzten Bytes und der Antwort
definiert. Das Senden des letzten Bytes kann aber von
dem Zeitpunkt, an dem ich die Daten in die Schnittstelle
gepumpt habe stark abweichen.
Was ich nun aber gerne wissen wuerde, ist der Zeitpunkt, an
dem der Sendepuffer der Schnittstelle _leer_ ist. Ueber den
SocketNotifier bekomme ich nur raus, wann Platz im Sendepuffer
ist.
Ein QSocketNotifier kann man nun aber auch fuer Exceptions
ansetzen. Weiss zufaellig jemand, was fuer Exceptions von
einer seriellen Schnittstelle erzeugt werden und wie man diese
auseinanderhalten / behandeln kann ???
Danke,
Karl-Heinz Fandrey
TRW EI Development
AMD Saxony Manufacturing GmbH - Fab 30
01109 Dresden, Wilschdorfer Landstrae 101
Phone: +49 351 277 1649
Fax: +49 351 277 5903
E-mail: karl-heinz.fandrey(a)amd.com