У меня есть usb sniff от snoopypro для устройства, с которым я пытаюсь связаться. Я обнаружил, что после настройки устройства я могу общаться с ним через массовые сообщения, но у меня возникают проблемы с копированием сообщений настройки. Некоторые из этих сообщений в snoopy помечены как «VENDOR_DEVICE», и я не могу понять, как отправлять эти сообщения как сообщения передачи управления с помощью pyusb; или даже как расшифровать что это что за данные. Я подозреваю, что неправильно понимаю нюхание (или интерпретацию snoopy) ИЛИ есть проблема с pyusb?
Вот такой запах.
82 in down n/a 13.669 VENDOR_DEVICE -
URB Header (length: 80)
SequenceNumber: 82
Function: 0017 (VENDOR_DEVICE)
PipeHandle: ff98e578
SetupPacket:
0000: 00 05 00 00 00 00 02 00
bmRequestType: 00
DIR: Host-To-Device
TYPE: Standard
RECIPIENT: Device
bRequest: 05
SET_ADDRESS
No TransferBuffer
Вот несколько разных строк, которые я пробовал. Каждая комбинация дает мне «[errno 32] pipe error» или «[Errno None] Other error». Ошибка канала указывает на то, что устройство не поддерживает эту команду. Я не уверен в ошибке Errno None.
dev.ctrl_transfer(0x00, 0x05, 0x0000, 0x0000, 0x0200)
dev.ctrl_transfer(0x20, 0x05, 0x0000, 0x0000, 0x0200)
dev.ctrl_transfer(0x80, 0x05, 0x0000, 0x0000, 0x0200)
dev.ctrl_transfer(0x20, 0x05, 0x0000, 0x0000, 0x0002)
И наоборот, я МОГУ отправить сообщение о статусе на 0x80, и оно пройдет.
dev.ctrl_transfer(0x80, 0x00, 0x0000, 0x0000, 0x0000)