ReadFile Anzahl verfügbarer Zeichen



  • Ich lese per ReadFile aus einem HID Device (funktioniert bereits).

    Stehen jedoch keine Daten zum Lesen an, blockiert ReadFile bis Daten anstehen. Wie kann ich nun vor dem Aufrud von ReadFile herausfinden ob und wenn ja wieviele Byts zum lesen anstehen?



  • Du nutzt die COM-Schnittstelle, ja? Dann kannst du z.B. mit SetCommTimeouts verschiedene Timeouts festlegen und das Blockieren verhindern (an dwBytesRead siehst du dann ja, ob was gelesen wurde oder nicht).



  • Nein, keine COM Schnittstelle.
    Ich lese aus einem HID Gerät.



  • Ok, wusste nicht, dass HID USB-only ist. Kannst du vielleicht über eine andere Funktion gehen? Sowas wie DeviceIoControl? Ich könnte mir vorstellen, dass die nicht blockiert, bin da aber auch nicht sicher...

    EDIT: Probier mal SetCommTimeouts. Das bezieht sich wohl nicht nur auf die RS232...



  • CommTimeouts hatte ich schon getestet mit Zeiten = 1
    Leider blockiert er dann immernoch



  • Hm, was hältst du davon, das Lesen in einen eigenen Thread zu packen, der dann ja ruhig sich selbst blockieren darf, die ganze Zeit läuft, und halt immer was liefert, wenn es gerade was zu lesen gibt?

    DeviceIoControl schonmal ausprobiert?

    EDIT: Übrigens kannst du dich mal in Richtung "Overlapped" schlau machen.


Anmelden zum Antworten