1

注意:这是 Python 2.7 和 PyUSB 0.4.3

我正在尝试使用 Python 脚本将串行数据从 Arduino Yun 发送到插入 Yun 的 USB 主机端口的 USB 加密狗。数据只是一个字符序列(目前只是一个以简化调试)。这是脚本,要写入的数据是字符'W':

import usb

busses = usb.busses()
for bus in busses:
  devs = bus.devices
  for dev in devs:
    if dev.idVendor == 9304 and dev.idProduct == 1:
      d = dev

conf = d.configurations[0]
intf = conf.interfaces[0][0]
endpoints = []
for endpoint in intf.endpoints:
  endpoints.append(endpoint)

endpoint = endpoints[0]
handle = d.open()

handle.interruptWrite(0, 'W')

这是错误:

Traceback (most recent call last):
  File "ser_test.py", line 21, in <module>
    handle.interruptWrite(0, 'W')
usb.USBError: error submitting URB: No such file or directory

我已经为第一个参数尝试了 0-1000,但没有运气。编写此代码以将“W”字符从主机发送到加密狗的正确方法是什么?我在其他帖子中读到 PyUSB 只是 usblib 的一组包装器,但无法在 usblib 文档中找到答案。

这是 lsusb 的输出(加密狗是 2458:0001):

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 003: ID 2458:0001
Bus 001 Device 004: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

谢谢。

4

0 回答 0