-->

Socat虚拟串口无法识别(Socat virtual serial port not recogn

2019-07-30 14:11发布

我使用socat建立一个连接虚拟串行端口。 一个我连接到一个简单的C程序(使用termios的),以及其他的我想连接到使用一种叫做Ardupilot兆规划(钢筋混凝土的东西)的程序。 然而,该规划工具不能识别虚拟端口,只有tty设备和/ dev /串行设备(/ dev /下面PTS列出)。 我需要做一些特殊的坐骑这个工作? 或者是有一种变通方法,我可以试试吗? 我试图“链接”现有的串口(ttyS0形式,例如),但如果我尝试的那种东西(虚拟端口实端口,真正的端口实端口),我得到一个“不恰当的IOCTL”的错误。 有任何想法吗?

编辑:查看源代码的程序(任务规划)之后,它似乎只是“识别”(或添加的端口)都在/ dev / TTYS *设备,在/ dev /串口/ ID别/ *设备,的/ dev / USB0,和/ dev / ACM0。 因此,无论我需要修改源代码,或者找到一个方法来“验证”一个TTYS *端口。 它仍然看起来,任务规划只是将无法连接到比S1或S0其他任何TTYS *设备。 有任何想法吗? 我有一种感觉,那是因为他们没有正确配置,不知何故。

编辑2:我终于拿到了ArdupilotMega计划源代码的保持和改变它,以便它包括从/ dev设备/ PTS /。 不过,我仍然得到了同样的问题。 当打开端口的计划得到某种问题。 有没有需要检查/右改变了蝙蝠的程序,以便能够连接到它的一些设置? 要研究和尝试更深入地了解串口通信...

Answer 1:

对了,刚刚发现,因为我没有一个帐户,我不能在我的答案发表评论。 无论如何,请尝试以下命令:

socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11

并链接您的程序ttyS10和ttyS11。



Answer 2:

我有同样的问题,并通过TCP发送串行的东西解决了这个问题:

socat tcp-l:5760 /dev/YOURPORT,raw,echo=0,bHEREBAUDRATE

然后,在策划者的Misson选择 “TCP”,服务器:127.0.0.1,端口:5760

我可以通过这种方式成功地连接到一个仿真串行端口。



Answer 3:

您是否尝试过链接到更高的TTY的,例如ttyS10或更高。 这些通常不分配到任何东西。 编辑:另外什么命令是您使用创建串口



文章来源: Socat virtual serial port not recognized