blob: 83833a4bb80fa4e8416d433405be70efec459650 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
"""Raw PTY to local reference server: exercise a UART-like byte stream."""
import os
import pty
import select
import socket
import sys
import tty
master, slave = pty.openpty()
tty.setraw(slave)
host, port = sys.argv[1].split(":")
peer = socket.create_connection((host, int(port)))
print(os.ttyname(slave), flush=True)
while True:
ready, _, _ = select.select([master, peer], [], [])
for source in ready:
data = os.read(master, 19) if source == master else peer.recv(23)
if not data:
sys.exit(0)
if source == master:
peer.sendall(data)
else:
while data:
written = os.write(master, data)
data = data[written:]
|