我从另一个离开公司的程序员那里继承了一些代码,我遇到了一个奇怪的问题,需要一些关于如何开始解决它的指导。
问题是——在半定期的基础上,我们发现正在创建重复的 USB 虚拟通信端口。例如,在我的 PC 上,当我在设备管理器中查看端口并选择“查看隐藏设备”时,我有两个相同设备的条目——一个在 COM6 上,一个在 COM8 上。
不幸的是,我们无法可靠地重现问题。我们怀疑当我们的软件运行时有人快速断开并重新连接 USB 电缆时可能会发生这种情况,但这需要确认。
据我所知,编写代码的前提是没有人会拔掉电缆。在 SW 启动后,我看不出有任何逻辑可以检测到这种情况。当您重新插入电缆时它会失败 - 即使在重新插入电缆后也会默默地产生读写错误。您必须重新启动程序才能再次工作。
我几乎没有串行和 USB 经验,甚至不知道如何开始修复这个问题。
谁能建议为什么会发生这种情况?
杂项。详细信息,以防它们可能相关:
USB 串行代码位于 C++ DLL 中
VS2008
FTDIBUS USB/串行驱动程序
Windows XP 和 Win7
重复注册表项的屏幕截图(注意所选键的值!)