ttyACM 或 ttyUSB 设备检测

ttyACM 或 ttyUSB 设备检测

ttyUSB*我开发了一个Linux应用程序,它与/ttyACM*设备一起工作。现在我有一个任务:
我必须找到一种方法,当连接暂时丢失时如何恢复与设备的通信。现在我看到这样的行为:如果在应用程序中打开端口,并且此时重新插入设备,则设备的名称会发生​​变化,并且应用程序无法完成当前操作。因此,我编写了udev向设备添加符号链接的规则,并且该规则有效。但应用程序仍然崩溃。原因是设备在重新插入后更改了它的tty( ttyACM0->tyyACM1),并且符号链接没有帮助,因为文件描述符变得错误。

有谁知道一种方法,如何重新插入设备而不需要重新启动我的应用程序? Linux 中是否有任何设置允许设备重新插入同一设备,tty即使在断开连接时在应用程序中打开了设备?

答案1

最后,我得出的结论是,手动管理打开/关闭端口描述符是解决该问题的唯一方法。此外,某些时刻可能会影响设备的行为:

  • USB 超时设置
  • 调制解调器管理器存在
  • 插入和拔出设备之间的间隔

相关内容