我有两个python程序,它们通过点对点的tty串行连接相互通信。为了模拟连接,我使用socat创建一个双向字节流,如下所示:
socat -d -d pty,raw,echo=0 pty,raw,echo=0
控制台返回以下信息,指示现在连接在一起的两个pty端口:
^{pr2}$然后我必须手动修改这两个程序中的每一个,以指定每个程序的串行连接,例如:
在程序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
命令阻塞了,我无法捕获其stderr输出以将其放入变量中。如果可以的话,我就可以解析变量,然后就可以快乐地生活了。在
有什么想法吗?或者是个更好的方法?在
谢谢你!在
您可以在不阻塞的情况下运行
socat
,使用python中的低级Popen
类。您需要重定向stderr
,以便扫描pty名称,但在获得所需信息后,可以将其交给后台线程。在相关问题 更多 >
编程相关推荐