Question

Nous essayons de communiquer avec un HIDDevice USB. Cet appareil fonctionne bien dans les fenêtres, où l'on peut envoyer un rapport et obtenir un retour de rapport à l'aide WriteFile() et ReadFile().

Sur le Mac, nous essayons d'interface avec l'appareil en utilisant setReoprt() et getReport(). Mais getReport() ne retourne pas les données, mais une erreur.

Quel est le mal dans l'application?

Était-ce utile?

La solution

Afin d'utiliser le comportement asynchrone, la source d'événement obtenu en utilisant getAsyncEventSource doit être ajouté à une boucle d'exécution.

La note ci-dessus fait partie du commentaire de setReport. U pourrait avoir besoin d'apprendre le mécanisme de runloop de runloop sous Mac OS premier.

Comme il est impossible d'expliquer le mécanisme ici. Les fonctions et les ordres suivants peuvent vous aider u codage quand u se familiariser avec runloop . (Essayez de rechercher "CFRunLoop" dans google)

CFRunLoopGetCurrent ();
CFRunLoopRun ();
CFRunLoopAddSource (CFRunLoopRef rl source CFRunLoopSourceRef, le mode CFStringRef);
CFRunLoopStop (CFRunLoopRef rl); (je l'appelle généralement cette fonction dans la méthode de rappel)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top