无法在 Windows 10 中使用 PyUSB 从 USB 读取信息.(连接正常)



我在Windows 10机器中运行Python 3和Anaconda。

我正在尝试连接到USB条形码扫描仪,以便读取条形码并将其存储在其他python例程中的变量中。我找到了一个使用 PyUSB 库的示例并尝试了它。经过一些修改后,我能够运行它而不会引发错误。该程序使用以下代码连接到 USB:

import usb.core
import usb.util
def main():
# Find usb device
dev = usb.core.find(idVendor=0x05E0, idProduct=0x1200)
# Raise error if device not found
if dev is None:
raise ValueError('Device not found')
else:
# Set configuration of device
dev.set_configuration()
endpoint = dev[0][(0,0)][0]
data = None
while True:
try:
dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize, timeout=1) 
print(data)
except usb.core.USBError as e:
data = None
if e.args == ('Operation timed out',):
print("ERROR")
continue
if __name__ == '__main__':
main()

正如我所说,程序运行正常并找到USB。尽管如此,数据(条形码编号(永远不会打印,因为程序似乎卡在以下行

dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize, timeout=1) 

你可以帮我吗?

提前非常感谢!

使用 PyUSB 读取条形码太复杂了。
建议按以下方式设置COM端口模式,并与PySerial通信。

从此页面下载设备驱动程序。
适用于视窗的 USB CDC 驱动程序

使用本页所述的步骤和设置条形码将扫描仪设置为COM端口模式。
使用 CDC 驱动程序通过 USB 模拟 COM/串行端口

将本手册第 80 页至第 82 页上所述的扫描仪硬件/软件握手设置都设置为
LS1203 产品参考指南 - 斑马技术

使用 PySerial 打开并读取分配给扫描仪的 COM 端口。

如果使用扫描仪扫描条形码,您应该能够从COM端口读取条形码数据。

该扫描仪被认为可在电源打开时读取条形码。
读取的启用/禁用功能似乎未发布。


根据结果报告注释,考虑以下选项。

  • 向 Zebra 的支持台咨询是否可以。
  • 放弃在 Python 中的控制权,并在键盘输入仿真模式下使用它。
  • 放弃 USB 连接并使用 RS232C 连接线。

最新更新