现在我可以获得 USB 设备的 idVendor 和 idProduct。如何使用它们来获取其路径,如/dev/ttyACM0
or /dev/ttyUSB0
?下一个函数需要此路径而不是其 idVendor 和 idProduct。
注意:通过编码,而不是通过命令。
答案1
您通常会以相反的方式进行操作:udev
为特定供应商/产品编写特定规则,创建可以在“下一个函数”中使用的已知符号链接。谷歌搜索很多教程,了解这样的规则是什么样子的。
或者,您编写应用程序时可以将设备的路径作为参数传递。
可以/sys/devices
向后遍历设备路径并在每一步检查这是否是 USB 设备并且具有特定的供应商/产品。这就是例如udevadm info -a /dev/ttyUSB0
所做的。您需要这样做,因为它不一定是 USB 设备,它可以是任何东西。
如果你有要“通过编码,而不是通过命令”来做到这一点,请查看源代码udevadm
并复制它所做的一切。这将是一项不平凡的工作,而且不能简化太多,所以我真的建议采取不同的做法。