|
|
@ -304,14 +304,13 @@ static int _rym_do_send_handshake(struct rym_ctx *ctx, int tm_sec) |
|
|
tm_sec, (unsigned)RYM_CHD_INTV_MS); |
|
|
tm_sec, (unsigned)RYM_CHD_INTV_MS); |
|
|
for (i = 0; i < (size_t)tm_sec; i++) |
|
|
for (i = 0; i < (size_t)tm_sec; i++) |
|
|
{ |
|
|
{ |
|
|
code = _rym_read_code(ctx, RYM_CHD_INTV_MS); |
|
|
/* 容忍杂字节扫描: 'C' 之前可能混有对端回波/文本打印 (如发送端 UI
|
|
|
|
|
|
* 自动代发 c:ry(".") 后对端 REPL 的回显和 "ry: receiving ..." 提示), |
|
|
|
|
|
* 直读会把杂字节逐个烧成超时轮次造成误报 TMO, 见 _rym_read_code_scan 注释 */ |
|
|
|
|
|
const uint8_t ucAccept[1] = { RYM_CODE_C }; |
|
|
|
|
|
code = _rym_read_code_scan(ctx, RYM_CHD_INTV_MS, ucAccept, 1); |
|
|
if (code == RYM_CODE_C) |
|
|
if (code == RYM_CODE_C) |
|
|
break; |
|
|
break; |
|
|
if (code != RYM_CODE_NONE) |
|
|
|
|
|
{ |
|
|
|
|
|
/* 收到别的字节也报出来: 区分"链路完全没数据"与"有数据但不是 'C'" */ |
|
|
|
|
|
log_w("ymodem TX handshake: got 0x%02X while waiting 'C'", (unsigned)code); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
if (i == (size_t)tm_sec) |
|
|
if (i == (size_t)tm_sec) |
|
|
{ |
|
|
{ |
|
|
|