首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用com0com零调制解调器仿真器模拟故障/电缆中断

如何用com0com零调制解调器仿真器模拟故障/电缆中断
EN

Stack Overflow用户
提问于 2013-10-16 09:58:32
回答 1查看 868关注 0票数 2

下面是一个简短的故事:我需要调试应用程序中一些非常具体的错误情况。该应用程序运行在由两台由串行电缆连接的机器组成的双工系统上;在此电缆上,两台机器交换某种“心跳”信号。在非常罕见的不可预测的情况下,物理介质中的信号失真导致了不良行为。我们可以用一种“残忍”的方式部分复制它,只要去掉串行电缆就行了。

现在,为了方便起见,我成功地使用com0com null-调制解调器仿真器(http://com0com.sourceforge.net/)模拟了串行电缆,这样两个进程都可以使用虚拟COM端口在同一台机器上运行。效果很好。

我的问题是:如何使用com0com模拟电缆断线/串行口故障/信号失真的任何类型?例如,我是否可以故意阻止一个用于发送/接收数据的虚拟端口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 15:20:37

最后,我发现了如何使用com0com和工具com2tcp (这是com0com项目的一部分)来完成这个任务。本文描述了这种方法:http://com0com.sourceforge.net/doc/UsingCom0com.pdf -- com0com项目是一件非常有用和令人惊奇的事情!

基本上,这个想法是在机器上创建两对虚拟COM端口。在我的例子中,它们是: COM7 <-> COM8和COM9 <-> COM10。然后,利用com2tcp工具,通过TCP重定向COM8和COM10之间的数据传输。在两个控制台窗口中,我将com2tcp作为服务器一次启动,一次作为客户端启动(如上面的文档所述)。特别是,我使用了com2tcp --telnet \\.\COM8 12345 (其中12345是一些TCP端口号)和com2tcp.exe --telnet \\.\COM10 1.2.3.4 12345 (其中1.2.3.4是我机器的IP地址)。我的应用程序的两个实例都使用了COM7和COM9,因此通信如下:PROCESS1 <-> COM7 <-> COM8 <---- TCP ----> COM10 <-> COM9 <-> PROCESS2。然后,当两个应用程序实例都在运行时,我只需在控制台中按CTRL+C来停止CTRL+C进程,这就像中断电缆一样中断了端口到端口的通信!通过这种方式,我可以很容易地模拟和调试我需要的行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19400369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档