如何确保 USB 串行/UART 接口在重新启动后保持一致的名称?

如何确保 USB 串行/UART 接口在重新启动后保持一致的名称?

我们的系统有两个电机和两个连接到钻机的激光雷达传感器。我们现在可以控制这些并用 Python 硬编码端口。一切都连接到运行 Mac OS 的 Mac Mini。

有时我们会遇到传感器问题,必须拔掉它们或重新启动机器。不过,我们可能由于其他原因必须重新启动机器。 (单独的问题)。

在重新启动和重新拔出/插入设备之间,机器上的 USB 端口会发生变化,我们的硬编码端口将不再工作。有一个更好的方法吗?有没有办法将静态端口名称分配给计算机上的物理端口?例如:

Port 1: '/dev/tty.usbmodem143401'
Port 2: '/dev/tty.usbmodem143402'
Port 3: '/dev/tty.usbmodem143403'
Port 4: '/dev/tty.usbmodem143404'

那么至少我们可以确定我们正在使用哪个端口?或者有更好的方法来做这样的事情吗?

我尝试寻找解决方案来为这些 USB 端口分配名称和别名,但我所做的似乎都不起作用。

现在我们有一个带有这样的端口的配置/常量文件

MOTOR_PORT = '/dev/tty.usbmodem143401'
PHONE_LIDAR_PORT = '/dev/tty.usbserial11'
READER_LIDAR_PORT = '/dev/tty.usbserial'

这并不理想。我们希望摆脱这种情况,或者找到一种方法来至少保证插入的设备。

我们希望能够可靠地判断在任何给定时间、重新启动之间等时间哪个设备插入哪个端口。

答案1

我最终通过使用 Adafruit FTDI TTL 串行转换器解决了这个问题。他们有独特的连续剧,而且似乎永远不会改变。这对我们来说已经足够了。谢谢大家!

相关内容