Я занимаюсь разработкой программного обеспечения в python 3.9, и я нахожусь в точке, где у меня есть устройство, подключенное к моему USB-порту, и я хотел бы отправить пакет basi c для проверки интерфейса, прежде чем продолжить. Я использую этот пример, чтобы попытаться заставить мой интерфейс работать. Меня не беспокоит скорость или количество байтов. Я хотел бы видеть какой-либо ответ на интерфейсе (но при размышлении я задаюсь вопросом, могла ли бы быть проблема скорости USB):
import usb1
import usb.util
import os
import sys
import libusb
import usb.core
from usb import util
import math
dev = usb.core.find(idVendor=0x11ac,idProduct=0x317d)
with usb1.USBContext() as context:
handle=context.openByVendorIDAndProductID(
0x11ac,
0x317d,)
handle.claimInterface(0)
handle.setInterface(0)
data = bytearray(b"\\xf0\\x0f"* (int(math.ceil(0xb5db91/4.0))))
handle.controlWrite(0x40, 0xb0, 0xb5A6, 0xdb91, b"")
handle.bulkWrite(2,data,timeout=5000)
`
https://github.com/vpelletier/python-libusb1/issues/21
Я просматривал различные форумы в течение нескольких дней и не могу найти ответ, который работает. Вот след: Стоит отметить, что время от времени этот py-файл работает без ошибок, но ничего не делает, и я не вижу траффи c, идущих к интерфейсу USB.
Может кто-нибудь помочь мне настроить рабочий пример того, как отправить пакет на интерфейс? Я пробовал разные вещи, такие как отсоединение ядра, настройка конфигурации и т. Д. c.
В течение 4 дней я боролся с libusb01 & 10, обнаружив libusb1, я изменил свою оболочку и добился гораздо большего успеха
Я также вижу много примеров на форумах, подобных этому, и я всегда получаю один и тот же ответ. Также мне интересно узнать, где 0x40 является конечной точкой (out)
Traceback (most recent call last):
File "/home/jbgilbert/Desktop/Packets/Backend_replace.py", line 16, in <module>
handle.claimInterface(0)
File "/usr/lib/python3/dist-packages/usb1/__init__.py", line 1213, in claimInterface
libusb1.libusb_claim_interface(self.__handle, interface),
File "/usr/lib/python3/dist-packages/usb1/__init__.py", line 133, in mayRaiseUSBError
__raiseUSBError(value)
File "/usr/lib/python3/dist-packages/usb1/__init__.py", line 125, in raiseUSBError
raise __STATUS_TO_EXCEPTION_DICT.get(value, __USBError)(value)
usb1.USBErrorBusy: LIBUSB_ERROR_BUSY [-6]