我正在使用 com0com 和 pyserial。我打开一个端口,使用 pyserial 写入它并在 YAT 模拟器中读取它。这很好用。此设置可用于模拟拔出模拟串行端口的 USB 设备吗?我想重新创建一个 UnauthorizedAccessException,它在我们的应用程序软件中很少被真实设备在拔出时抛出。在使用 pyserial 写入 CNCA0 并使用 YAT 从 CNCB0 读取成功后,我尝试从 pyserial 关闭 CNCB0,当然它不会让我因为 YAT 已经获取了端口(访问被拒绝)。关于如何模拟真实设备的拔出动作的任何想法?
问问题
1488 次
1 回答
0
未经授权的访问很容易复制。使用另一个应用程序打开端口,可能在另一个 YAT 选项卡中。当您尝试连接其他应用程序时,您应该会收到未经授权的访问错误。但是,我不确定这是否真的是您要问的问题。
如果您真的想模拟端口断开连接,您应该意识到您也受串行驱动程序的支配。不同的驱动程序在突然移除设备时会有不同的行为。我的意思是,你可以欺骗自己,让自己认为你有一个防弹的异常处理过程,而实际上,所有的赌注都没有了。
我对一些 com0com 更改命令进行了一些试验,但我所做的任何事情都不会导致端口“虚拟断开”。有关可用内容的更多信息,请参阅 setupc.exe 命令 >help。
您可能还对使用模拟噪声功能感兴趣。打开 com0com 的命令外壳并执行
change <YOUR_PORT_CNC> EmuNoise=0.0001
该值是数据流损坏的百分比。好玩的东西。
于 2016-09-29T03:03:02.613 回答