2016-09-28 75 views
0

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

回答

0

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

如果你真的想模拟端口断开连接,你应该意识到你也是在串行驱动程序的摆布。不同的驱动程序在突然删除设备时表现不同。我所说的是,你可以欺骗自己以为你有一个防弹的异常处理过程,但实际上,所有的赌注都是关闭的。

我做了一些com0com更改命令的试验,但没有做任何事情可能导致端口“虚拟断开连接”。有关可用内容的更多信息,请参阅setupc.exe命令>帮助。

您可能也有兴趣使用模拟噪声功能。打开命令外壳为com0com和执行

change <YOUR_PORT_CNC> EmuNoise=0.0001 

的值是数据流的损坏的百分比机会。好玩的东西。

+0

谢谢科里。这并不是我所问的问题是正确的,我想要例外,但不是以那种直截了当的方式:)但是你的评论帮助了,特别是你说过的部分“你可以欺骗自己以为你有防弹异常处理过程“。 Com0Com令人惊叹,它帮助我虚拟化了大多数互动,而不是无数的设备哔哔声,我将文本粘贴到一个文本框中,并在另一个文本框中模拟输出(当然不是子弹证明!)。噪音仿真听起来很酷,虽然我还没有尝试过。 – bkolluru