我正在读取带有json文本的简单QR码:
{test:Hi}
import hid
import time
h = hid.device()
h.open(0x1eab, 0x8003)
print("Manufacturer: %s" % h.get_manufacturer_string())
print("Product: %s" % h.get_product_string())
print("Serial No: %s" % h.get_serial_number_string())
try:
while True:
d = h.read(64)
if d:
print('read: "{}"'.format(d))
finally:
print("Closing the device")
h.close()
但是,在控制台中,它返回的是:
Manufacturer: YK
Product: YK-2D PRODUCT HID KBW
Serial No: MS001-000000000
read: "[2, 0, 47, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 23, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 8, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 22, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 23, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[2, 0, 51, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[2, 0, 11, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 12, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[2, 0, 48, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
read: "[0, 0, 40, 0, 0, 0, 0, 0]"
read: "[0, 0, 0, 0, 0, 0, 0, 0]"
答案 0 :(得分:0)
这是非常确定的键盘输出,这意味着扫描程序会发送击键。
第一个字节是修饰符标志(shift,cntrl 、.) 秒始终为0。 第三是密钥用法(您可以将其称为scancode)。 对于条形码读取器,其余的值始终为0,因为操作系统无法保证键的顺序。
在python3中,您可以使用input()函数读取它。更好的是使用其他接口。 键盘模拟应该是您在公司中尝试使用的最后一个界面(我是键盘先生:-),这是条形码读取器中的主要播放器之一。
好的条形码扫描仪可以切换到其他USB接口,例如HidPos或CDC-ACM(ComPort仿真)。