"Unknown Error" 从 PyUSB 调用 set_configuration 时
"Unknown Error" when calling set_configuration from PyUSB
我正在使用更简单版本的 StormLauncher (https://github.com/nmilford/stormLauncher) 从 Raspberry Pi 调用 Thunder USB 导弹发射器。一旦我将它连接到有源 USB 集线器,它就可以工作了。
两次。
现在当我调用它时,我得到:
Traceback (most recent call last):File "launcherFire.py", line 15, in <module>
turret.set_configuration()
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 559, in set_configuration
self._ctx.managed_set_configuration(self, configuration)
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 92, in managed_set_configuration
self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 741, in set_configuration
_check(self.lib.libusb_set_configuration(dev_handle.handle, config_value))
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 571, in _check
raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno None] Unknown error
我试过拔掉再插回去,这似乎有效here但它没有改变任何东西。
这是我的代码:
import usb.core
turret = usb.core.find(idVendor=0x2123, idProduct=0x1010)
if turret is None:
raise ValueError('Launcher not found.')
try:
turret.detach_kernel_driver(0)
except Exception, e:
pass # already unregistered
turret.set_configuration()
turret.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, 0x10, 0x00,0x00,0x00,0x00,0x00,0x00])
任何关于尝试什么的提示,无论是软件还是硬件,都会很棒。
更新:这似乎是 USB 启动器本身的硬件故障。我更换了它,完全相同的代码运行良好(虽然幽默的是这个发射器也有一个坏掉的马达,但至少空气触发器仍然有效)。
可以有这些解决方案:
运行 sudo模式下的代码
确保任何其他驱动程序已经在使用该设备(例如 usbhid)
这是硬件故障。新的启动器使用相同的代码按预期工作。
我正在使用更简单版本的 StormLauncher (https://github.com/nmilford/stormLauncher) 从 Raspberry Pi 调用 Thunder USB 导弹发射器。一旦我将它连接到有源 USB 集线器,它就可以工作了。
两次。
现在当我调用它时,我得到:
Traceback (most recent call last):File "launcherFire.py", line 15, in <module>
turret.set_configuration()
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 559, in set_configuration
self._ctx.managed_set_configuration(self, configuration)
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 92, in managed_set_configuration
self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 741, in set_configuration
_check(self.lib.libusb_set_configuration(dev_handle.handle, config_value))
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 571, in _check
raise USBError(_str_error[ret], ret, _libusb_errno[ret])
usb.core.USBError: [Errno None] Unknown error
我试过拔掉再插回去,这似乎有效here但它没有改变任何东西。
这是我的代码:
import usb.core
turret = usb.core.find(idVendor=0x2123, idProduct=0x1010)
if turret is None:
raise ValueError('Launcher not found.')
try:
turret.detach_kernel_driver(0)
except Exception, e:
pass # already unregistered
turret.set_configuration()
turret.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, 0x10, 0x00,0x00,0x00,0x00,0x00,0x00])
任何关于尝试什么的提示,无论是软件还是硬件,都会很棒。
更新:这似乎是 USB 启动器本身的硬件故障。我更换了它,完全相同的代码运行良好(虽然幽默的是这个发射器也有一个坏掉的马达,但至少空气触发器仍然有效)。
可以有这些解决方案:
运行 sudo模式下的代码
确保任何其他驱动程序已经在使用该设备(例如 usbhid)
这是硬件故障。新的启动器使用相同的代码按预期工作。