首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于linux的零调制解调器模拟器(com0com)

用于linux的零调制解调器模拟器(com0com)
EN

Stack Overflow用户
提问于 2014-05-26 09:37:42
回答 1查看 12.7K关注 0票数 11

我有一个项目,其中包含一些单一的测试,用于使用COM端口测试串行通信(在windows中)。我使用com0com创建一个虚拟的有界端口对并执行测试。

但是,我不知道如何在Linux中这样做,在MACOS中也不知道。我读过这个主题:Are there some program like COM0COM in linux?,答案建议使用socat。我尝试过这种方法,但它不起作用,我的应用程序没有检测到我刚才在socat中定义的端口。

代码语言:javascript
复制
socat PTY,link=/dev/COM98 PTY,link=/dev/COM99

我的理论是,socat不能创建虚拟端口,它只能将现有端口绑定在一起。

我怎样才能解决这个问题?

谢谢!

编辑:

这就是我在运行前面的socat命令之后得到的结果。如果仔细观察,您将看到COM98和COM99端口位于/dev/中。但是,如果我写到/dev/don 98,并使用尾巴-f跟随COM99,我就得不到它的任何输出。

EDIT2:

好吧,如果我用cat代替尾巴,我可以看到输出(为什么?!)

EDIT3:

解决方案:不命名端口COMxx,而是命名ttySxx!

示例:

代码语言:javascript
复制
socat PTY,link=/dev/ttyS98 PTY,link=/dev/ttyS99

原因:一些串行通信库可能不支持其他名称,比如RXTX 2.X.X和以前的版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-26 11:29:56

代码语言:javascript
复制
socat -d -d pty,raw,echo=0 pty,raw,echo=0

效果很好,印好了:

代码语言:javascript
复制
2014/05/26 13:29:15 socat[27177] N PTY is /dev/pts/32
2014/05/26 13:29:15 socat[27177] N PTY is /dev/pts/33
2014/05/26 13:29:15 socat[27177] N starting data transfer loop with FDs [3,3] and [5,5]

我假设您应该能够写入/dev/pt/32,并从/dev/pt/33中读取。

您还可以使用/dev/COM9 9{8,9}字符设备吗?

代码语言:javascript
复制
ls -l /dev/COM989 

应该打印以c开头的模式(如果是这样的话)。

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

https://stackoverflow.com/questions/23867143

复制
相关文章

相似问题

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