我有三个插入到系统中的USB复合设备。这些设备将CDC端口枚举为配置之一。目的是通过编程确定分配给每个CDC设备的COMn号。
在我的系统中,我有一种机制来获取将用于枚举USB复合设备的序列号。但是,当我使用pyserial列出com端口时,它列出了一个不同的序列号。阅读了无数文章之后,我了解到这是由于Windows如何处理复合设备而引起的。但是,在pyserial输出中有一个位置指示符,用于指示此设备连接到的集线器和端口。
我尝试使用win32com来获取设备列表和位置,例如devmgmt.msc显示的内容。但是,我能够获得除位置以外的所有参数。有什么办法可以解决这个问题?
TL; DR:如何使用python给定序列号来以编程方式获取USB位置(端口+集线器)?