如何使用socat创建一个虚拟端口?
我想测试pyserial以通过一个端口读取和写入
我已经尝试过了:
socat -d -d pty,raw,echo=1 pty,raw,echo=1
它创建了两个虚拟端口/ dev / pts / 9和/ dev / pts / 10
当我尝试时:
ser.write('test\n')
在另一个控制台中,我试着阅读:
ser2.readline()
当超时时,pyserial将'\ n'读为'^ J'
答案 0 :(得分:3)
^J
与\n
相同,请参阅Wikiepdia。我无法重现您遇到的阻止:
$ socat -d -d pty,raw,echo=1 pty,raw,echo=1
2012/06/14 14:29:13 socat[28866] N PTY is /dev/pts/3
2012/06/14 14:29:13 socat[28866] N PTY is /dev/pts/5
2012/06/14 14:29:13 socat[28866] N starting data transfer loop with FDs [3,3] and [5,5]
1号航站楼:
>>> import serial
>>> s = serial.Serial('/dev/pts/5')
>>> s.readline()
'hello\r\n'
>>> s.readline()
'hello\n'
2号航站楼:
>>> import serial
>>> s = serial.Serial('/dev/pts/3')
>>> s.write('hello\r\n')
7
>>> s.write('hello\n')
6
一旦我在另一个终端执行写操作,readline()
调用就会返回。