服务器重启后的逻辑处理
This commit is contained in:
@@ -1476,27 +1476,22 @@ async fn run_updater(debug_mode: bool) -> bool {
|
||||
data_str
|
||||
);
|
||||
|
||||
// 收到 welcome 后,根据当前阶段发送 GetFileVer
|
||||
// 收到 welcome 后,重置状态并从头开始执行流程
|
||||
if msg_type == "welcome" {
|
||||
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");
|
||||
// 重连后强制从头开始
|
||||
*ctx_clone.current_phase.lock().unwrap() = UpdatePhase::BootLoader;
|
||||
let ts = chrono::Local::now().format("%Y-%m-%d %H:%M:%S%.3f");
|
||||
log_print!("{} [重连] 重置状态,从头开始执行流程", ts);
|
||||
|
||||
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 响应后推进,不在这里处理
|
||||
}
|
||||
}
|
||||
if !device_number.is_empty() && device_number != "UNKNOWN" {
|
||||
// 阶段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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user