我有带led的usb mass stroage
我正在尝试打开和关闭 LED
使用 USB 数据包嗅探工具 USBlyzer,
我可以得到原始数据
55 53 42 43 58 66 93 88 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
其请求信息为批量或中断传输且 I/O 已输出
在 USB 属性部分
我可以获得诸如
端点描述符 81 1 In,批量,512 字节
bDescriptorType 05h Endpoint
bEndpointAddress 81h 1 In
端点描述符 02 2 输入,批量,512 字节
bDescriptorType 05h Endpoint
bEndpointAddress 02h 2 Out
我用 python 2.7、libusb-win32-bin-1.2.4.0、pyusb-1.0.0-a1 做了一个 python 代码
完整的来源在这里
import usb.core
import usb.util
# find our device
dev = usb.core.find(idVendor=0x1516, idProduct=0x8628)
# was it found?
if dev is None:
raise ValueError('Device not found')
dev.set_configuration()
# get an endpoint instance
cfg = dev.get_active_configuration()
interface_number = cfg[0].bInterfaceNumber
alternate_setting = usb.control.get_interface(interface_number)
intf = usb.util.find_descriptor(cfg, bInterfaceNumber = \
ineterface_number, bAlternateSetting = alternate_setting)
ep = usb.util.find_descriptor(intf,custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_OUT)
# set the active configuration. With no arguments, the first
# configuration will be the active one
assert ep is not None
ep.write(0x2,0x55)
ep.write(0x2,0x53)
ep.write(0x2,0x42)
ep.write(0x2,0x43)
ep.write(0x2,0x58)
ep.write(0x2,0x66)
ep.write(0x2,0x93)
ep.write(0x2,0x88)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x06)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
ep.write(0x2,0x00)
但是当我尝试执行它时,
Traceback (most recent call last):
File "C:\Documents and Settings\kty1104\Desktop\usb2.py", line 14, in <module>
interface_number = cfg[0].bInterfaceNumber
File "C:\Python27\lib\site-packages\usb\core.py", line 447, in __getitem__
return Interface(self.device, index[0], index[1], self.index)
TypeError: 'int' object is not subscriptable
出现
我的代码有什么问题?
如果有任何错误的概念,请告诉我
谢谢!