我从这里使用HIDAPI https://github.com/signal11/hidapi
这是HIDAPI API http://www.signal11.us/oss/hidapi/hidapi/doxygen/html/group__API.html#ga1e87518670f88540c920dc451df608ee
问题1:我可以使用hid_open()方法和条形码扫描枪的VID& PID,但这样我的应用程序不能使用其他条码扫描枪。 另外我找到了hid_open_path()方法,但我无法确定使用哪个路径 / dev / hidraw0?或/ dev / hidraw1?或将在不同的PC上更改?
问题2:读取权限。当我将条形码扫描枪与PC连接时,它无法读取和读取。写,我的解决方案是使用udev定义我自己的规则使用VID& PID,真的有用!但它对条形码扫描枪不起作用。
答案 0 :(得分:0)
您应该使用hid_enumerate(<vid>, <pid>)
,它将返回hid_device_info
结构的链接列表。 hid_device_info
有一个名为path
的成员变量,它是您要查找的设备路径。如果您插入了其他设备,路径可能会根据电脑或同一台电脑而改变。如果要区分不同的设备,您可以使用hid_get_serial_number_string
功能检查其序列号。
检查相应设备的权限。我见过人们建议在各种论坛(Ubuntu,Arch)上添加udev规则将其更改为666。但是,我认为这是不正确的。相反,请检查设备所属的组,并将自己添加到该组。它可以是usb
或plugdev
或其他。