ttyUSB*
我开发了一个Linux应用程序,它与/ttyACM*
设备一起工作。现在我有一个任务:
我必须找到一种方法,当连接暂时丢失时如何恢复与设备的通信。现在我看到这样的行为:如果在应用程序中打开端口,并且此时重新插入设备,则设备的名称会发生变化,并且应用程序无法完成当前操作。因此,我编写了udev
向设备添加符号链接的规则,并且该规则有效。但应用程序仍然崩溃。原因是设备在重新插入后更改了它的tty
( ttyACM0->tyyACM1
),并且符号链接没有帮助,因为文件描述符变得错误。
有谁知道一种方法,如何重新插入设备而不需要重新启动我的应用程序? Linux 中是否有任何设置允许设备重新插入同一设备,tty
即使在断开连接时在应用程序中打开了设备?
答案1
最后,我得出的结论是,手动管理打开/关闭端口描述符是解决该问题的唯一方法。此外,某些时刻可能会影响设备的行为:
- USB 超时设置
- 调制解调器管理器存在
- 插入和拔出设备之间的间隔