在我们的Linux中,我们有一个->串行设备,它总是被识别为/dev/ttyACM0。所以我写了一份申请,直到昨天,一切都很顺利。但突然之间(是的,在远程演示中.)设备停止工作了。经过快速的研究,我发现连接变成了/dev/ttyACM1。这是有点不合时宜,但现在我有一个问题-如何明确地识别我的设备?例如,虽然/dev/sd**已经更改,但是可以使用UUID初始化存储驱动器。对于串行设备,有什么方法可以做到吗?
现在我用了一个愚蠢的解决办法:
for(int i = 0; i < 10; i ++)
{
m_port = std::string("/dev/ttyAC
我需要处理两个自定义硬件,它们都通过两个串行连接发送调试数据。这些串行连接通过两个串行到USB转换器。串行到USB的设备具有相同的供应商编号、设备编号,显然还有相同的序列号。
问题是:我想分别记录这两个串行端口。自定义硬件需要不断地重新启动,并且它们是否连接到相同的/dev/ttyUSB*是完全随机的。我如何让他们每次都选择相同的设备路径?我可以让它依赖于它所插入的端口,但这似乎有点老生常谈。
因此,我对udevadm的输出进行了比较,如下所示:
$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB1` > usb1
$ ud