Skip to content

Commit f2d71d9

Browse files
committed
Add DC1 for start of transmission
1 parent 19792d9 commit f2d71d9

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

rshell/main.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,6 +1092,10 @@ def recv_file_from_host(src_file, dst_filename, filesize, dst_mode='wb'):
10921092
buf_size = BUFFER_SIZE
10931093
write_buf = bytearray(buf_size)
10941094
read_buf = bytearray(buf_size)
1095+
1096+
# Send XON (DC1) signal to the host to inform it we are ready to receive new data
1097+
sys.stdout.write('\x11')
1098+
10951099
while bytes_remaining > 0:
10961100
read_size = min(bytes_remaining, buf_size)
10971101
buf_remaining = read_size
@@ -1130,6 +1134,13 @@ def send_file_to_remote(dev, src_file, dst_filename, filesize, dst_mode='wb'):
11301134
bytes_remaining = filesize
11311135
save_timeout = dev.timeout
11321136
dev.timeout = 2
1137+
1138+
# Block waiting for XON (DC1) signal from remote before sending data
1139+
xon = dev.read(1)
1140+
if not xon or xon != b'\x11':
1141+
sys.stderr.write("timed out expecting XON signal from remote, received: {!r}\n".format(cts))
1142+
sys.exit(2)
1143+
11331144
while bytes_remaining > 0:
11341145
if HAS_BUFFER:
11351146
buf_size = BUFFER_SIZE

0 commit comments

Comments
 (0)