Forum: Mikrocontroller und Digitale Elektronik LibUSB und libusb_handle_event


von Alexander S. (alexanders)


Lesenswert?

Hallo,

ich probiere gerade etwas mit dem FX2 und LibUsb unter Windows herum.
Meine Eckdaten sind:

Bulk - Endpoint
Transfer IN
512 Byte Pakete
Async - Modus von LibUsb

Die Datenübertragung funktioniert wunderbar mit ganz guten Ergebnissen 
(ca. 8 Mbyte/s).

Leider ist die ganze Anwendung stark CPU lastig. Der Verdacht liegt 
nahe, das meine Schleife
1
      while (!break_stream){
2
        event_handle = libusb_handle_events(NULL);
3
        if (event_handle != LIBUSB_SUCCESS){
4
          break;
5
        }
6
      }
diese CPU Last verursacht. Eine Verzögerung in dieser bringt auch einen 
massiven Datenrateneinbruch mit sich.

Nun suche ich nach einer anderen Möglichkeit die libusb_handle_events 
abzufragen und am Besten auch noch ein Codebeispiel dazu (Die LibUsb 
examples sind da wenig aussagekräftig.)

Laut der LibUsb Dokumentation soll es eine Möglichkeit mit Threads 
geben, für mich ist diese aber zu dürftig dokumentiert.

Weiterhin finde ich dort als Aussage das libusb_handle_events 
eigentliche eine blockierende Funktion ist, was ich bei mir nicht 
nachvollziehen kann.

Vielleicht kann jemand, der etwas Erfahrung mit LibUsb gesammelt hat, 
etwas Licht für mich ins Dunkle bringen.

Gruß

AlexanderS.

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.