Pregunta

Estamos tratando de comunicarnos con un Hiddevice USB. Este dispositivo funciona bien en Windows, donde podemos enviar un informe y recuperar un informe usando WriteFile() y ReadFile().

En la Mac, estamos tratando de interactuar con el dispositivo usando setReoprt() y getReport(). Pero getReport() no está devolviendo ningún dato, sino un error.

¿Qué está mal en la aplicación?

¿Fue útil?

Solución

Para utilizar el comportamiento asincrónico, la fuente del evento obtenida utilizando getAsynceventSource debe agregarse a un bucle de ejecución.

La nota anterior es parte del comentario de SetReport. Es posible que necesite aprender el mecanismo Runloop de Runloop en Mac OS primero.

Ya que es imposible explicar el mecanismo aquí. Las siguientes funciones y órdenes pueden ayudarte a codificar cuando te familiarices con Runloop. (Intente buscar "Cfrunloop" en Google)

CfrunloopgetCurrent ();
Cfrunlooprun ();
CFRUNLOOPADDSOURCE (CFRUNLOOPREF RL, CFRUNLOOPSOURFEREF SOURCE, modo CFStringRef);
CFRUNLOOPSTOP (CFRUNLOOPREF RL); (generalmente llamo a esta función en el método de devolución de llamada)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top