我目前正在使用这个 C++ 库 - https://github.com/wjwwood/serialv-来读取 Windows 上的 COM 端口设备。
该应用程序似乎运行良好,但我遇到了一个奇怪的边缘情况。
当我插入设备时,在启动应用程序之前,应用程序将按预期工作,但是当没有可用设备时,我会轮询 COM 端口以获取新连接。如果找到新连接,则应用程序似乎会拾取热插拔设备,但流似乎以某种方式损坏。
但是,如果我“serial::close()”设备(请参见此处 - http://wjwwood.io/serial/doc/1.1.0/classserial_1_1_serial.html#afbe59407e718bc3d22ea4a67b304db6c)并重新打开它,设备将按预期工作.
为了解决这个问题,我目前捕获了 12 秒的 COM 端口流,如果它已损坏,我关闭并重新打开热插拔设备。
这感觉像是一个非常讨厌的黑客,但我也怀疑我不是唯一遇到这个问题的人。
有没有更有效的解决方案?或者这只是一个 RTFM 时刻?