如果没有设备号,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");
|
let ts = chrono::Local::now().format("%Y-%m-%d %H:%M:%S%.3f");
|
||||||
log_print!("{} [重连] 重置状态,从头开始执行流程", ts);
|
log_print!("{} [重连] 重置状态,从头开始执行流程", ts);
|
||||||
|
|
||||||
if !device_number.is_empty() && device_number != "UNKNOWN" {
|
// 等待 device_number 生效(无次数限制,每10秒重试一次)
|
||||||
// 阶段1:只请求 BootLoader.exe
|
let wait_seconds = 10;
|
||||||
log_print!("{} [阶段1] 检查 BootLoader...", ts);
|
let mut current_device = device_number.clone();
|
||||||
let msg_str = format!(
|
let mut attempt = 0;
|
||||||
r#"{{"Type":"GetFileVer","Data":{{"DeviceNumber":"{}","file_list":["BootLoader.exe"]}}}}"#,
|
|
||||||
device_number
|
log_print!("{} [调试] 初始 DeviceNumber: '{}'", ts, current_device);
|
||||||
);
|
|
||||||
log_print!("{} 发送消息:{}", ts, msg_str);
|
loop {
|
||||||
sender.send(msg_str);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user