微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pywinusb.hid 原始数据不显示

如何解决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 举报,一经查实,本站将立刻删除。