如果没有设备号,10秒重试
This commit is contained in:
@@ -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" {
|
||||
// 等待 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...", ts);
|
||||
log_print!("{} [阶段1] 检查 BootLoader (DeviceNumber: '{}')...", ts, current_device);
|
||||
let msg_str = format!(
|
||||
r#"{{"Type":"GetFileVer","Data":{{"DeviceNumber":"{}","file_list":["BootLoader.exe"]}}}}"#,
|
||||
device_number
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user