com0com 和 pyserial 虚拟串口。这可以用来模拟拔出串行 USB 设备吗?

com0com and pyserial virtual serial ports. Can this be used to simulate unplugging a serial usb device?

我正在使用 com0com 和 pyserial。我打开一个端口,使用 pyserial 写入它并在 YAT 模拟器中读取它。这很好用。此设置是否可用于模拟拔出正在模拟串行端口的 USB 设备?我想重新创建一个 UnauthorizedAccessException,它在我们的应用程序软件中很少被真实设备在拔下时抛出。在使用 pyserial 写入 CNCA0 并使用 YAT 从 CNCB0 成功读取后,我试图从 pyserial 关闭 CNCB0,当然它不会让我这样做,因为端口已经被 YAT 获取(访问被拒绝)。关于如何模拟真实设备的拔出动作的任何想法?

未经授权的访问很容易复制。使用另一个应用程序打开端口,也许在另一个 YAT 选项卡中。当您尝试连接不同的应用程序时,您应该会收到未经授权的访问错误。但是,我不确定这是否真的是您要问的问题。

如果你真的想模拟端口断开连接,你应该意识到你也受串行驱动程序的支配。不同的驱动程序在突然删除设备时会有不同的行为。我的意思是,您可以欺骗自己,以为您有一个万无一失的异常处理过程,而实际上,一切都没有了。

我对一些 com0com 更改命令进行了一些试验,但我所做的任何事情都不会导致端口变为 "virtually disconnect"。有关可用内容的更多信息,请参阅 setupc.exe 命令 > 帮助。

您可能还对使用模拟噪声功能感兴趣。打开命令shell for com0com并执行

change <YOUR_PORT_CNC> EmuNoise=0.0001

该值是数据流损坏的百分比几率。有趣的东西。