USBHIDManager HID, getReport () e setReport () Su Mac Ambiente
-
25-10-2019 - |
Domanda
Stiamo cercando di comunicare con un HIDDevice USB. Questo dispositivo sta funzionando benissimo in finestre, in cui siamo in grado di inviare un report e ottenere un back report utilizzando WriteFile()
e ReadFile()
.
Su Mac, stiamo cercando di interfacciarsi con il dispositivo utilizzando setReoprt()
e getReport()
. Ma getReport()
non restituisce alcun dato, ma un errore.
Qual è il male nella domanda?
Soluzione
Per fare uso di comportamento asincrono, l'origine evento ottenuto utilizzando getAsyncEventSource va aggiunto a un ciclo di esecuzione.
La nota di cui sopra è parte del commento di setReport. U potrebbe aver bisogno di imparare il meccanismo runloop di runloop in Mac OS prima.
Dal momento che è impossibile spiegare il meccanismo qui. Le seguenti funzioni e gli ordini potrebbero aiutare u codifica quando la u ottiene familiarità con runloop . (Prova per la ricerca "CFRunLoop" in google)
CFRunLoopGetCurrent ();
CFRunLoopRun ();
CFRunLoopAddSource (CFRunLoopRef rl, fonte CFRunLoopSourceRef, modalità CFStringRef);
CFRunLoopStop (CFRunLoopRef rl); (i soliti chiamare questa funzione nel metodo di callback)