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); } }