Anzahl vorh. Zeichen an COM-Port ermitteln?
-
Hallo,
ich habe an einem COM-Port ein RFID-Lesegerät angeschlossen. Nach dem absetzen eines Befehls mit WriteFile(xxx) liegt eine bestimmte Anzahl an Zeichen vor. Um diese mit ReadFile(xxx) zu lesen, hätte ich gern die genaue Anzahl an zu lesenden Zeichen.
Ohne RFID stehen 11 Zeichen zur Verfügung (incl. \r\n\x1A). Wenn aber ein Transponder vorliegt, könnten es 24 Zeichen sein. Diesen Zustand möchte ich gern vor dem Lesen ermitteln, um alle vorhandenen Zeichen mit einem ReadFile(xxx) abzuholen.Oder gibt es die Möglichkeit nur so viele Zeichen abzuholen, bis ein EOF (\x1A) vorliegt?
Kann mir da jemand helfen???
Gruß
Torsten
-
Es wäre sinnvoller immer alles zu lesen, was gerade da ist. Wenn man die Schnittstelle mit SetCommTimeouts entsprechend eingestellt hat, ist das kein Problem. Die Daten kann man dann in einem eigenen Puffer, z.B. einem String, im Programm sammeln und und in diesem nach ganzen Zeilen suchen.
Die Anzahl der Zeichen im Eingangspuffer kann man mit ClearCommError (!) auslesen, aber wie gesagt, das ist eigentlich Unsinn.
-
Hi,
nn schrieb:
...die Schnittstelle mit SetCommTimeouts entsprechend eingestellt hat, ist das kein Problem.
Genau so hab ich es gemacht. Geht super
Vielen Dank und SG
Torsten