USB WinAPI - Callback möglich?
-
Hallo zusammen,
ich bin gerade dabei ein USB Gerät über die WinAPI anzusprechen, funktionier auch alles ganz gut. Ich greife also mit ReadFile zyklisch immer wieder Daten ab. So in der Art
while ( true ) { length = usbHIDDevice.read( readDataPointer ); }Kann ich das ganze nur durch einen seperaten Tread lösen, der ne Endlosschleife hat? Oder gibt es in Windows ne Möglichkeit benachrichtigt zu werden, sobald Daten in meiner mit "CreateFile" erzeugten Datei angekommen sind.
Grüße Nils
PS: Das Thread wird über JNI in Java gehandelt, falls das relevant sein sollte.
-
Naja, es gibt z.B. asynchronous IO und completion ports.
-
so richtig verstanden habe ich dich nicht.
vielleicht suchst du sowas
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findfirstchangenotification.asp
http://msdn2.microsoft.com/en-us/library/aa365261.aspx
-
@miller_m
sorry bin noch neu in der ganzen c++ und winApi sache. also ich will von windows ein signal bekommen (interrupt), wenn daten vom usb Gerät kommen. und im moment mach ich das ebven ober readFile in einer Endlosschleife, was aber nicht so wirklich perfomant sein sollte, da 95% der Zeit keine Daten zurückkommen.@hustbaer
danke schön, kannst du vielleicht noch kurz was zu deinem ansatz sagen? hab da nicht so viel in google zu gefunden, dass auf mein problem passt (und ich verstehen
-
und im moment mach ich das ebven ober readFile in einer Endlosschleife, was aber nicht so wirklich perfomant sein sollte, da 95% der Zeit keine Daten zurückkommen.
das ist nicht unperformant da ReadFile blockt wenn keine Daten da sind und somit die CPU zu 0% beansprucht.