- HIDAPI + Qt5.4 + ubuntu14.04LTS + pistolet à balayage de code à barres
J'utilise le HIDAPI d'ici https://github.com/signal11/hidapiHIDAPI hid_open_path() comment déterminer le chemin à utiliser
C'est le HIDAPI API http://www.signal11.us/oss/hidapi/hidapi/doxygen/html/group__API.html#ga1e87518670f88540c920dc451df608ee
question 1: Je peux utiliser la méthode avec mon VID de pistolet de balayage de codes à barres & PID, mais de cette façon ma demande hid_open() ne peuvent pas utiliser d'autres codes-barres sca pistolet de nning. J'ai aussi trouvé la méthode hid_open_path(), mais je ne peux pas déterminer quel chemin utiliser /dev/hidraw0? Ou/dev/hidraw1? ou va changer sur un autre PC?
Question 2: est la lecture permission.when connecter le pistolet à balayage de code à barres avec le PC, il ne peut pas lire & écrire, ma solution est udev utiliser pour definde mes propres règles à utiliser VID & PID, cela a vraiment fonctionné! Mais cela ne fonctionne pas pour le pistolet à balayage de codes à barres.
Répondre
Vous devez utiliser
hid_enumerate(<vid>, <pid>)
, qui rendement lié liste deshid_device_info
structures.hid_device_info
a une variable membre appeléepath
, qui est le chemin de périphérique que vous recherchez. Le chemin peut changer selon le PC ou même sur le même PC, si d'autres périphériques sont branchés. Pour distinguer les différents périphériques, vous pouvez vérifier leur numéro de série en utilisant la fonctionhid_get_serial_number_string
.Vérifiez les autorisations sur le périphérique correspondant. J'ai vu des gens recommander d'ajouter des règles udev pour les changer en 666 sur différents forums (Ubuntu, Arch). Cependant, je pense que c'est incorrect. Au lieu de cela, vérifiez à quel groupe appartient le périphérique et ajoutez-vous à ce groupe. Il pourrait être
usb
ouplugdev
ou autre chose.