【发布时间】:2021-08-11 05:17:49
【问题描述】:
我正在利用 Python HID API 尝试将数据写入扫描仪。我正在尝试编写的具体命令是“A1 04 00”(其中 A1 是 ID,04 是命令,00 是数据),目前我正在按照特定命令格式写入扫描仪,如下所示。
在代码中,这看起来像 data=[0x05,0x57,0xA1,0x04,0x00,0xFE,0xFF] 并且我正在使用 device.write(data) 但是我没有收到扫描仪的响应。我在将 HID 设备与 Python 连接方面没有太多经验,所以我确定我做错了什么,感谢您的帮助!
编辑:每个请求添加的代码
import hid
data=[0x05,0x57,0xA1,0x04,0x00,0xFE,0xFF]
VENDOR_ID = 0x24ea
PRODUCT_ID = 0x0197
device = hid.device()
device.open(VENDOR_ID,PRODUCT_ID)
device.write(data)
每个扫描仪文档的校验和算法
0x10000 – [ Length] – [ Source] – [ExID] – [ExCMD] – [D1 + D2 +D3 +…..]
【问题讨论】:
-
向我们展示您的代码。这里有很多细节。你确定你有正确的校验和算法吗?
-
添加了供应商文档提供的代码和校验和算法。
-
你从哪里得到的命令序列?我不怀疑,但 HID 设备可能很复杂。您正在发送输出报告。会不会是专题报告?如果设备接受多个报告类型,则必须在第一个字节中包含报告 ID。如果你是从其他地方复制的,那很好。
-
命令序列取自扫描仪手册,在此处上传 drive.google.com/file/d/1Plm8uPNpLdgU1K-7xXiDJbX5ZIAAkeAy/… 第 184 页
-
扫描仪数据通过 HID 键盘接口传送给您,但这只是输出。控制序列通过 USB 虚拟串行端口。您将需要使用
pyserial之类的东西来访问它。找出哪个串行端口是扫描仪可能有点棘手。在插入之前和之后做ls /dev/tty*找到它。