0

我正在阅读一个带有 json 文本的简单二维码:

{测试:嗨}

在此处输入图像描述

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]"
4

1 回答 1

0

这是很确定的键盘输出,这意味着扫描仪会发送击键。

第一个字节是修饰符标志(shift、cntrl、.)第二个总是 0。第三个是键用法(你可以称之为扫描码)。条形码阅读器的其余部分始终为 0,因为操作系统不保证键的顺序。

在 python3 中,您可以使用 input() 函数读取它。更好的是使用其他接口。键盘仿真应该是您在我公司尝试使用的最后一个界面(我是键盘先生 :-) - 条形码阅读器的主要参与者之一)。

好的条码扫描器可以切换到其他 USB 接口,如 HidPos 或 CDC-ACM(ComPort 仿真)。

于 2018-10-23T12:48:23.407 回答