pywinusb.hid 原始数据不显示

问题描述

我使用 Windows 10 和 pywinusb 打开 USB 设备并处理原始数据,如下所示:

import sys
import pywinusb.hid as hid
from time import sleep
import atexit
import numpy as np

vid = my_VID
pid = my_PID


def readData(data):
    np.set_printoptions(formatter={'int': hex})
    s = np.array(list(data))
    print(s)


hid_filter = hid.HidDeviceFilter(vendor_id=my_VID,product_id=my_PID)
hid_devices = hid_filter.get_devices()
if len(hid_devices) == 0:
    print('No Device Found.')
    exit(-1)
my_device = hid_devices[0]
print()
print("**************************DEVICE**************************\n")
print("Product Name     :  ",my_device.product_name)
print("vendor Name      :  ",my_device.vendor_name)
print("Version Number   :  ",my_device.version_number)
print("\n**********************************************************\n")

my_device.open()
my_device.set_raw_data_handler(readData)
print("***************************DATA***************************\n")

try:
    while my_device.is_plugged():
        sleep(0.5)
except Exception as e:
    print('Termination -> ' + str(e))

如上图所示,打开第一个设备:

my_device = hid_devices[0]

但是使用此供应商 ID 和产品 ID,可以找到两个 USB 设备。对于第一个接口,可以在控制台上打印数据流,但是当我如下切换到下一个接口时,控制台上不会打印任何内容

my_device = hid_devices[1]

两个接口都有输入管道,但它只显示来自第一个管道的数据。对于测试,我可以在 USBlyzer 程序中观看来自两个接口的数据流。 USB的Descriptor如下:

USB Device List

USB Description Part 1

USB Description Part 2

USB Description Part 3

USB Description Part 4

您有什么想法或解决方案可以让我从两个接口捕获数据吗?

谢谢和亲切的问候

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)