Forum: PC-Programmierung .net 2.0 wann serialport fertig mit senden?


von Billy _. (slowflyer)


Lesenswert?

Hallo,

weiss jemand vielleicht wie man bei der serialport-Klasse feststellen 
kann wann der Buffer gesendet wurde (wie z.B. beim AVR UDRE-Interrupt)?

System: : .net 2.0 C#

Gruß, Willi

von Billy _. (slowflyer)


Lesenswert?

Argh!!!!

Da sucht man ewig und findet nix, schreibt man den Post, so findet man 
sofort was. Das ist enorm ärgerlich.

Die Lösung: BytesToWrite Member ruft die Anzahl von Bytes der Daten im 
Sendepuffer ab.

Gruß, Willi

von Thomas B. (yahp) Benutzerseite


Lesenswert?

Es gibt da tatsächlich kein Ereignis, was den erfolgreichen Versand 
aller Bytes anzeigt. Hmmm, schade eigentlich.

von Blackbird (Gast)


Lesenswert?

Doch, gibt es. (Wenn auch mit einer Einschränkung.)

Mit WaitForMultipleObjects und WAIT_OBJECT_0 (oder WAIT_OBJECT_0 + 1 
oder WAIT_TIMEOUT oder WAIT_FAILED) und GetOverlappedResult und 
GetLastError() == ERROR_OPERATION_ABORTED (oder ERROR_SUCCESS) kann man 
schon prüfen, ob der Treiber alles gesendet hat.
Aber das sind alles schnöde API-Funktionen.

Aber ob es der Treiber in die Hardware geladen hat und ob es dann aus 
der Hardware auch raus ist, das kann man nicht feststellen.

Blackbird

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.