Domanda
Eseguire una qualsiasi conosce la procedura di non bloccante Reed () di comando per eventi HID in linux
Attualmente sto usando
read(fd, ev, sizeof(struct hiddev_event) * EV_NUM);
Ma va a BLOCCO fase, quando il mio HID dispositivo di puntamento non è verso il bar sensoer
Cordiali saluti,
Madni
Soluzione
Credo che ulteriori informazioni sono necessarie per rispondere a questa domanda. La maggior parte del USB HID API che ho guardato mettere una bandiera asincrono nel metodo Open (). In generale, non si sta andando a voler fare un asincrono leggere una sola volta, poi seguire che con una lettura sincrona. Tutti i vostri read () chiama dovrebbe utilizzare la stessa tecnica.
Si sta utilizzando la bandiera O_NONBLOCK quando si apre il dispositivo?
Altri suggerimenti
Grazie
E 'risolto il problema
Aprire il dispositivo HID in una modalità non bloccante
char *dev1="/dev/usb/hiddev0";
if ((fd = open(dev1, O_NONBLOCK)) < 0) {
perror("evdev open");
exit(1);
}
Saluti,