From af5248f2a6dd16d7777987a32b702dc1bfe73d7f Mon Sep 17 00:00:00 2001 From: stswangzhiping <59632378+stswangzhiping@users.noreply.github.com> Date: Fri, 20 Mar 2026 08:41:39 +0800 Subject: [PATCH] fix: emit network-ready immediately when wired internet available, setup AP async Made-with: Cursor --- lib/provisioning.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/provisioning.js b/lib/provisioning.js index 7a527d0..b6ced86 100644 --- a/lib/provisioning.js +++ b/lib/provisioning.js @@ -37,7 +37,7 @@ class ProvisionManager extends EventEmitter { async start() { led.off(); // 初始状态:灭灯 - // WiFi 已连接 → 直接进入 STA 模式 + // WiFi STA 已连接 → 直接进入 STA 模式 if (isWifiStaConnected()) { this._state = 'sta'; log.info('provision', 'WiFi STA 已连接,AP 不启动'); @@ -46,7 +46,18 @@ class ProvisionManager extends EventEmitter { return; } - // 有已保存的 WiFi 配置 → 等 NM 自动连接(重启场景) + // 有线有网 → 立即通知 WS 连接,后台异步设置 AP 供 WiFi 配网 + if (hasInternet()) { + log.info('provision', '有线网络就绪,立即启动 WS,AP 后台准备中...'); + this._emitNetworkReady(); + setTimeout(() => { + this._enterAP(); + this._startMonitor(); + }, 0); + return; + } + + // 无网:有已保存的 WiFi 配置 → 等 NM 自动连接(重启场景) if (hasSavedWifiConnection()) { log.info('provision', '发现已保存的 WiFi 配置,等待 NetworkManager 自动连接...'); led.blink(); // 等待自动重连期间闪烁