From 6b2724adcc35206591615400ce0bd17255de2957 Mon Sep 17 00:00:00 2001 From: zqm Date: Fri, 10 Apr 2026 15:34:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E9=80=BB=E8=BE=91=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Windows/CS/Framework4.0/Updater/src/main.rs | 33 +++++++++------------ 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/Windows/CS/Framework4.0/Updater/src/main.rs b/Windows/CS/Framework4.0/Updater/src/main.rs index d1c0d17..0babcb5 100644 --- a/Windows/CS/Framework4.0/Updater/src/main.rs +++ b/Windows/CS/Framework4.0/Updater/src/main.rs @@ -1476,27 +1476,22 @@ async fn run_updater(debug_mode: bool) -> bool { data_str ); - // 收到 welcome 后,根据当前阶段发送 GetFileVer + // 收到 welcome 后,重置状态并从头开始执行流程 if msg_type == "welcome" { + // 重连后强制从头开始 + *ctx_clone.current_phase.lock().unwrap() = UpdatePhase::BootLoader; + let ts = chrono::Local::now().format("%Y-%m-%d %H:%M:%S%.3f"); + log_print!("{} [重连] 重置状态,从头开始执行流程", ts); + if !device_number.is_empty() && device_number != "UNKNOWN" { - let current_phase = *ctx_clone.current_phase.lock().unwrap(); - let ts = chrono::Local::now().format("%Y-%m-%d %H:%M:%S%.3f"); - - match current_phase { - UpdatePhase::BootLoader => { - // 阶段1:只请求 BootLoader.exe - log_print!("{} [阶段1] 检查 BootLoader...", ts); - let msg_str = format!( - r#"{{"Type":"GetFileVer","Data":{{"DeviceNumber":"{}","file_list":["BootLoader.exe"]}}}}"#, - device_number - ); - log_print!("{} 发送消息:{}", ts, msg_str); - sender.send(msg_str); - } - _ => { - // 其他阶段由 FileVer 响应后推进,不在这里处理 - } - } + // 阶段1:只请求 BootLoader.exe + log_print!("{} [阶段1] 检查 BootLoader...", ts); + let msg_str = format!( + r#"{{"Type":"GetFileVer","Data":{{"DeviceNumber":"{}","file_list":["BootLoader.exe"]}}}}"#, + device_number + ); + log_print!("{} 发送消息:{}", ts, msg_str); + sender.send(msg_str); } }