问题描述
我使用 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如下:
您有什么想法或解决方案可以让我从两个接口捕获数据吗?
谢谢和亲切的问候
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)