![]() |
Generic USB Device Driver
Hallo,
ich habe hier einen Generic USB Device Driver. Auf diesen wird mit CreateFile, WriteFile und ReadFile zugegriffen. Falls keine Daten im Lesepuffer vorhanden sind, kriegen wir immer wieder Probleme mit ReadFile und Timeouts und ggf. undefinierten Zuständen. Gibt es eine Möglichkeit vor dem Lesen mit ReadFile zu ermitteln, ob Daten zum Lesen vorliegen (dachte da an CreateIoCompletionPort oder GetQueuedCompletionStatus)? Danke und beste Grüße |
AW: Generic USB Device Driver
Wenn du schildern könntest wie sich diese "Probleme" äußern wäre das sicher hilfreich.
|
AW: Generic USB Device Driver
z.B. Open (CreateFile) -> Write (WriteFile) -> Read (ReadFile) -> Close (CloseHandle)
1. nach Write liegt Antwort im Puffer Read funktioniert einwandfrei nach einem Close klappt ein späteres Open einwandfrei 2. nach Write liegt keine Antwort im Puffer Read kehr mit Timeout zurück nach einem Close klappt ein späteres Open nicht |
AW: Generic USB Device Driver
WriteFile/WriteFileEx + Overlapped?
Du kannst I/O-Operationen auch asynchron ausführen und brauchst dann nicht auf den TimeOut zu warten. ![]() |
AW: Generic USB Device Driver
Code:
machen wir schon. Ich habe aber gerade vom Hersteller gehört, dass es keine Möglichkeit gibt vorher zu klären ob Daten da sind.
succ:=ReadFile(Pipe.FileHandle,
b.buffer^, b.NumberOfBytesToTransfer, b.BytesTransferred, @b.Overlapped); err:=Windows.WaitForSingleObject(b.Overlapped.hEvent,Timeout); |
AW: Generic USB Device Driver
Mal 'ne Idee, vollkommen am Beschriebenen vorbei:
Mein Rechner hat die Angewohnheit USB-Geräte nach 'ner Weile der Nichtnutzung "schlafen zu legen". Das dauert dann schonmal, bis die wieder reagieren. Könnte eventuell ein ähnlicher Effekt vorliegen? Wieviel Zeit liegt im konkreten Fall zwischen den einzelnen Operationen? Vernachlässigbar wenig oder auch schon mal die eine oder andrere Minute, Stunde ... |
AW: Generic USB Device Driver
Kann man die Timeout Zeit nicht recht kurz halten/einstellen, dafür aber recht oft Lesen lassen. Den "Fehler", wenn nichts gelesen wird, kann man doch abfangen ?
Oder bekommst du dann Probleme, weil die Hardware zu langsam ist i.V.m. großen Datenmengen ? |
AW: Generic USB Device Driver
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz