我开发了一个用于ttyUSB*/ttyACM*设备的linux应用程序。现在我有一个任务:
我必须找到一种方法,如何恢复与设备的通信,当连接暂时丢失。现在我看到了这样的行为:如果在应用程序中打开端口,此时设备被重新插入,设备的名称就会改变,并且应用程序无法完成当前的操作。因此,我编写了udev规则以将符号链接添加到设备中,该规则可以工作。但是应用程序还是会崩溃。原因是设备在重新插入后改变了它的tty (ttyACM0->tyyACM1),而符号链接没有帮助,因为文件描述符错误。
有没有人知道一种方法,我怎么能不需要重新启动我的应用程序就能回复设备呢?在Linux中是否存在允许设备重新插入同一个tty的设置,即使它在断开连接时在应用程序中打开?
发布于 2018-04-12 13:59:14
最后,我得出结论,手动管理开放/关闭端口描述符是解决这个问题的唯一解决方案。此外,某些时刻可能会影响设备的行为:
https://unix.stackexchange.com/questions/429983
复制相似问题