USB设备发布

  • 本文关键字:USB python pyusb
  • 更新时间 :
  • 英文 :


我目前正在使用PyUSB。由于我是USB的新手,我不知道该怎么做。

我已经成功地从PythonPyUSB连接到我的USB设备硬件。在代码中,我需要重置USB设备硬件。我通过向硬件发送命令来完成。现在硬件重置后,我想从PythonPyUSB中释放当前的USB设备。然后我想在USB设备硬件重置后再次连接到它。

请告诉我,我如何释放USB设备连接和接口等,以便重新连接?

事先非常感谢。

my_device = usb.core.find(...)

# necessary to allow further claim_interface calls
#   (bulk read), generally not needed
usb.util.dispose_resources(my_device)
#!/usr/bin/python
from usb.core import find as finddev
dev = finddev(idVendor=0x1234, idProduct=0x5678)
dev.reset()

虽然上面的答案完全正确,但我多次遇到重置USB设备不够的情况。

处理这些问题的一个好方法是断开USB控制器的电源,迫使它们重新启动,就好像它们已经插上电源一样。

TL;DR:我已经构建了一个小的python脚本来重置usb设备或usb控制器。查看此链接在没有其他重置解决方案的情况下对我有效(一些坏的USB UPSe)用法:

usb_reset --reset
#or
usb_reset --list && usb_reset -d 1234:1234

使用bash的原始想法来自这里

    for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
      [ -e "$i" ] || continue
      echo "Resetting ${i%/*}/${i##*/}"
      echo "${i##*/}" > "${i%/*}/unbind"
      echo "${i##*/}" > "${i%/*}/bind"
    done

相关内容

  • 没有找到相关文章

最新更新