2009-07-08 6 views
0

Effectuez l'une connaît la procédure de non bloquanteroseau() commande pour les événements HID dans LINUXcommande

Actuellement, je suis en utilisant

  read(fd, ev, sizeof(struct hiddev_event) * EV_NUM); 

HID read() Mais il va BLOCAGE scène, quand mon dispositif de pointage HID est pas vers la barre de sensoer

Cordialement,

Madni

Répondre

1

Je pense que plus d'informations sont nécessaires pour répondre à cette question. La plupart des API HID USB que j'ai examinées ont mis un indicateur asynchrone dans la méthode Open(). En général, vous ne voulez pas faire une lecture asynchrone une seule fois, puis suivre une lecture synchrone. Tous vos appels read() doivent utiliser la même technique.

Utilisez-vous l'indicateur O_NONBLOCK lorsque vous ouvrez l'appareil?

0

Merci

Il a résolu le problème

Opwn l'appareil HID dans un mode non bloquant

char *dev1="/dev/usb/hiddev0"; 

if ((fd = open(dev1, O_NONBLOCK)) < 0) { 

    perror("evdev open"); 

    exit(1); 

} 

Cordialement,