Python PyUSB изменяет данные и отправляет их, как если бы они поступили с самого USB-устройства - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь использовать PyUSB для захвата данных, изменения их, а затем отправки их на P C, как если бы они пришли прямо с рассматриваемого устройства. Устройство, к которому я пытаюсь подключиться, - это планшет Wacom One.

До сих пор я мог извлекать данные с планшета, используя код ниже:

import usb.core
import usb.util
import usb.backend.libusb1

# find our device
dev = usb.core.find(idVendor=0x056A, idProduct=0x037A)

# was it found?
if dev is None:
    raise ValueError('Device not found')

print(dev)


# set the active configuration. With no arguments, the first
# configuration will be the active one
dev.set_configuration()

# get an endpoint instance
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]

# first endpoint
endpoint = dev[0][(0,0)][0]

# read a data packet
data = None
while True:
    try:
        data = dev.read(endpoint.bEndpointAddress,
                endpoint.wMaxPacketSize)
        print(data)

    except usb.core.USBError as e:
        data = None
        if e.args == ('Operation timed out',):
            continue

Но в настоящее время планшет отсоединен от ядра, движения курсора нет. Это нормально, как и должно быть, но я могу только найти способы отправки данных обратно на планшет Wacom, мне нужно просеять, отредактировать данные планшета (что я сделал в отдельной программе) и, наконец, отправить его на P C, поэтому он может быть прочитан драйвером Wacom. Причина, по которой я хочу, чтобы данные отправлялись так, как будто они не были отредактированы, заключается в том, что я не хочу переписывать весь драйвер для планшета, так как драйвер Wacom хорош, просто отсутствуют некоторые функции, которые будут добавлены манипулирование данными.

...