【发布时间】:2018-04-15 23:06:35
【问题描述】:
我有两个 python 程序,它们通过点对点 tty 串行连接相互通信。为了模拟连接,我使用 socat 创建了一个双向字节流,如下所示:
socat -d -d pty,raw,echo=0 pty,raw,echo=0
控制台返回以下内容,表示现在连接在一起的两个 pty 端口:
2018/04/15 22:33:03 socat[18197] N PTY is /dev/pts/2
2018/04/15 22:33:03 socat[18197] N PTY is /dev/pts/3
2018/04/15 22:33:03 socat[18197] N starting data transfer loop with FDs [5,5] and [7,7]
那我得手动修改这两个程序,为每个程序指定串口,如:
在程序 A.py 中:
import serial
...
ser = serial.Serial('/dev/pts/2')
在程序 B.py 中:
import serial
...
ser = serial.Serial('/dev/pts/3')
我想要的是一个脚本,它可以设置 socat 连接,然后执行 A.py 并将一个端口号作为参数传递给它,并使用另一个端口号作为参数执行 B.py论据。
我尝试了一个 bash 脚本,但 socat 命令阻塞,我无法捕获其标准错误输出以将其放入变量中。如果可以的话,我就可以解析这个变量,然后继续我的快乐之路。
有什么想法吗?或者也许有更好的方法来做到这一点?
谢谢!
【问题讨论】:
标签: python serial-port pty socat