我正试图将num锁发送到充当HID键盘的自定义硬件。我绑了一个LED,如果在USB上收到num锁钥匙,它就会发光。它适用于从外部键盘按numlock键。但我无法通过pyusb(0x01)手动发送num锁定密钥
这是负责发送它的代码的一部分:
dev = usb.core.find(idVendor=0xXXXX, idProduct=0xXXXX)
try:
dev.set_configuration()
except usb.core.USBError as e:
print e
#endpoint = dev[0][(0,0)][0]
# get an endpoint instance
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]
print intf
ep = usb.util.find_descriptor(
intf,
# match the first OUT endpoint
custom_match =
lambda e:
usb.util.endpoint_direction(e.bEndpointAddress) ==
usb.util.ENDPOINT_OUT)
assert ep is not None
# write the data
ep.write('x01')
我的输出是:
INTERFACE 0: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x0
bNumEndpoints : 0x1
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x1
iInterface : 0x0
ENDPOINT 0x81: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x81 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x18
Traceback (most recent call last):
File "./main.py", line 43, in <module>
assert ep is not None
AssertionError
由于它可以通过外部键盘实现,我想权限没有问题,或者操作系统可以访问它,但外部进程无法访问。我在Mac上。有人能帮我吗。
谢谢。
您的硬件还没有完全实现USB HID键盘协议——它没有OUT端点,所以当您的脚本找不到OUT端点时,它就会退出。
如果你在Mac上,你可能想使用苹果的"USB Prober"开发工具来检查设备,该工具是"Xcode硬件工具"包的一部分。(您可以从下载http://developer.apple.com.)