From 8804f086b3186d40c4708ba0ef9cff801a0fb9ac Mon Sep 17 00:00:00 2001 From: anjiahao Date: Mon, 10 Feb 2025 12:14:07 +0800 Subject: [PATCH] ymodem:sbrb.py send command need flush and reset input buffer These changes fix reliability issues when initiating ymodem transfers over serial connections. Signed-off-by: anjiahao --- system/ymodem/sbrb.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/system/ymodem/sbrb.py b/system/ymodem/sbrb.py index 0b9767384..a5c90930f 100755 --- a/system/ymodem/sbrb.py +++ b/system/ymodem/sbrb.py @@ -822,7 +822,9 @@ if __name__ == "__main__": recvfile += i + " " fd_serial.write(("sb %s\r\n" % (recvfile)).encode()) - tmp = fd_serial.read(len(("sb %s\r\n" % (recvfile)).encode())) + fd_serial.flush() + tmp = fd_serial.read(len(("sb %s\r\n" % (recvfile)).encode()) - 1) + fd_serial.reset_input_buffer() else: if args.sendto: cmd = ("rb -f %s\r\n" % (args.sendto[0])).encode() @@ -830,6 +832,7 @@ if __name__ == "__main__": cmd = ("rb\r\n").encode() fd_serial.write(cmd) + fd_serial.flush() fd_serial.read(len(cmd)) fd_serial.reset_input_buffer()