【问题标题】:Writing data to a USB scanner with Python使用 Python 将数据写入 USB 扫描仪
【发布时间】: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* 找到它。

标签: python ubuntu hid hidapi


【解决方案1】:

扫描仪数据通过 HID 键盘界面传送给您,但这只是输出。控制序列通过 USB 虚拟串行端口。您将需要使用 pyserial 之类的东西来访问它。找出哪个串行端口是扫描仪可能有点棘手。在插入之前和之后做ls /dev/tty* 找到它。

【讨论】:

    猜你喜欢
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多