如果没有设备号,10秒重试

This commit is contained in:
zqm
2026-04-13 14:08:11 +08:00
parent 9724a4c945
commit 1ba778ac3b

View File

@@ -1915,15 +1915,34 @@ async fn run_updater(debug_mode: bool) -> bool {
let ts = chrono::Local::now().format("%Y-%m-%d %H:%M:%S%.3f");
log_print!("{} [重连] 重置状态,从头开始执行流程", ts);
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);
// 等待 device_number 生效无次数限制每10秒重试一次
let wait_seconds = 10;
let mut current_device = device_number.clone();
let mut attempt = 0;
log_print!("{} [调试] 初始 DeviceNumber: '{}'", ts, current_device);
loop {
if !current_device.is_empty() && current_device != "UNKNOWN" {
// 阶段1只请求 BootLoader.exe
log_print!("{} [阶段1] 检查 BootLoader (DeviceNumber: '{}')...", ts, current_device);
let msg_str = format!(
r#"{{"Type":"GetFileVer","Data":{{"DeviceNumber":"{}","file_list":["BootLoader.exe"]}}}}"#,
current_device
);
log_print!("{} 发送消息:{}", ts, msg_str);
sender.send(msg_str);
log_print!("{} [调试] GetFileVer 消息已发送", ts);
break;
}
attempt += 1;
log_print!("{} [警告] DeviceNumber 为空或 UNKNOWN (尝试 {}),等待 {} 秒后重试...",
ts, attempt, wait_seconds);
std::thread::sleep(std::time::Duration::from_secs(wait_seconds));
// 重新读取配置文件(可能刚被写入)
current_device = resolve_device_number();
log_print!("{} [调试] 重新读取 DeviceNumber: '{}'", ts, current_device);
}
}