IPBS_Station/SDK/Depend/CSerialPort/test/unixVirtualSerialPort.py

30 lines
949 B
Python
Raw Normal View History

2024-08-13 17:07:34 +08:00
#! /usr/bin/env python
#coding=utf-8
from __future__ import print_function # python2 use print() function
import pty
import os
import select
def mkpty():
# open pseudo terminal
master1, slave = pty.openpty()
slaveName1 = os.ttyname(slave)
master2, slave = pty.openpty()
slaveName2 = os.ttyname(slave)
print('virtual serial port names: ', slaveName1, slaveName2)
return master1, master2, slaveName1, slaveName2
if __name__ == "__main__":
master1, master2, slaveName1, slaveName2 = mkpty()
while True:
rl, wl, el = select.select([master1,master2], [], [], 1)
for master in rl:
data = os.read(master, 1024)
if master==master1:
print('from %s - [%d] %s' %(slaveName1, len(data), data))
os.write(master2, data)
else:
print('from %s - [%d] %s' %(slaveName2, len(data), data))
os.write(master1, data)