From 161e0e654c9ac7eba3509147bcfa48399fba54b3 Mon Sep 17 00:00:00 2001 From: support Date: Sat, 23 May 2026 18:22:13 +0800 Subject: [PATCH] feat(rk3588s): unify display state semantics and bump version to 1.4.5 --- lib/led/rk3588-lvgl.js | 14 +- lib/provisioning.js | 720 +++++++++++++++++----------------- lib/resource/3588s/demo | Bin 1354848 -> 1354848 bytes lib/resource/3588s/src/main.c | 27 +- package-lock.json | 4 +- package.json | 2 +- 6 files changed, 390 insertions(+), 377 deletions(-) diff --git a/lib/led/rk3588-lvgl.js b/lib/led/rk3588-lvgl.js index 28cb85e..00115fe 100644 --- a/lib/led/rk3588-lvgl.js +++ b/lib/led/rk3588-lvgl.js @@ -36,19 +36,19 @@ class StatusLed { class Display { showAP() { - if (writeLvglCommand('show_text:AP')) { - log.info('display', '显示屏 → AP'); + if (writeLvglCommand('show_ap')) { + log.info('display', '显示屏 → AP(闪烁)'); } } showConn() { - if (writeLvglCommand('show_text:Conn')) { - log.info('display', '显示屏 → Conn'); + if (writeLvglCommand('show_conn')) { + log.info('display', '显示屏 → Conn(闪烁)'); } } showErr0() { - if (writeLvglCommand('show_text:Err0')) { + if (writeLvglCommand('show_err0')) { log.info('display', '显示屏 → Err0'); } } @@ -61,8 +61,8 @@ class Display { showPin(pin) { const s = String(pin || '').padStart(4, '0').slice(-4); - if (writeLvglCommand(`show_text:${s}`)) { - log.info('display', `显示屏 → PIN: ${s}`); + if (writeLvglCommand(`show_pin:${s}`)) { + log.info('display', `显示屏 → PIN: ${s}(闪烁)`); } } } diff --git a/lib/provisioning.js b/lib/provisioning.js index f94259f..ba6a342 100644 --- a/lib/provisioning.js +++ b/lib/provisioning.js @@ -1,360 +1,360 @@ -'use strict'; - -const EventEmitter = require('events'); -const log = require('./logger'); -const { hasInternet, hasSavedWifiConnection, connectSavedWifiConnections, isWifiStaConnected, scanWifi, startAP, stopAP, connectWifi, getWifiIface, AP_IP } = require('./network'); -const { DnsHijack } = require('./dns-hijack'); -const { CaptiveServer } = require('./captive-server'); -const led = require('./led'); - -const MONITOR_INTERVAL_MS = 15_000; -const WIFI_RECONNECT_MAX_ROUNDS = 3; -const WIFI_RECONNECT_ROUND_DELAY_MS = 5_000; -const AP_SAVED_WIFI_RETRY_INTERVAL_MS = 180_000; -const AP_MIN_UP_BEFORE_RETRY_MS = 60_000; - -/** - * AP 常驻配网管理器。 - * - * 规则: - * - 启动时:WiFi STA 优先;有已保存 WiFi 时主动让 NM 重连,最多 3 轮 - * - 有线网络可用时:通知网络就绪,但不自动开启 AP - * - 自动开 AP 的唯一兜底:无有线/无 WiFi,且无 saved WiFi 或 saved WiFi 3 轮失败 - * - 用户提交 WiFi 凭证 → 关 AP → 尝试连接 → 失败则按网络状态决定是否重新开 AP - * - AP 状态下:若仍无有线网络,低频释放 wlan0 并尝试 saved WiFi - */ -class ProvisionManager extends EventEmitter { - constructor(clawId) { - super(); - this._clawId = clawId || 'Setup'; - this._state = 'idle'; // 'idle' | 'ap' | 'connecting' | 'sta' | 'wired' - this._dns = null; - this._server = null; - this._monitorTimer = null; - this._monitorBusy = false; - this._apStartedAt = 0; - this._lastApSavedWifiRetryAt = 0; - } - - /** 是否正处于 AP 模式(WiFi 热点广播中) */ - isApMode() { return this._state === 'ap'; } - - async start() { - led.off(); // WiFi 灯初始状态:熄灭 - - // WiFi STA 已连接 → 直接进入 STA 模式 - if (isWifiStaConnected()) { - this._state = 'sta'; - log.info('provision', 'WiFi STA 已连接,AP 不启动'); - this._emitNetworkReady(); - this._startMonitor(); - return; - } - - // 网络已就绪时先启动 WS;hasInternet() 可能来自 WiFi,也可能来自有线,不能直接当作 wired。 - if (hasInternet()) { - if (isWifiStaConnected()) { - this._state = 'sta'; - log.info('provision', 'WiFi STA 已连接,AP 不启动'); - this._emitNetworkReady(); - } else { - this._state = 'wired'; - log.info('provision', '有线网络就绪,启动 WS;不自动开启 AP'); - led.off(); - this._emitNetworkReady(); - } - this._startMonitor(); - return; - } - - // 无有线可用时,有 saved WiFi 才主动让 NetworkManager 重连;不要只被动等待 NM autoconnect。 - if (hasSavedWifiConnection()) { - log.info('provision', `发现已保存的 WiFi 配置,主动重连(最多 ${WIFI_RECONNECT_MAX_ROUNDS} 轮)...`); - this._state = 'connecting'; - led.blink(); - const connected = await this._trySavedWifiReconnectRounds(WIFI_RECONNECT_MAX_ROUNDS); - if (connected) { - this._state = 'sta'; - log.info('provision', '已保存 WiFi 重连成功,AP 不启动'); - this._emitNetworkReady(); - this._startMonitor(); - return; - } - log.warn('provision', '已保存 WiFi 重连失败'); - } - - // 无有线、无 WiFi;且无 saved WiFi 或 saved WiFi 3 轮失败 → 开 AP 兜底配网。 - this._enterAP(); - this._startMonitor(); - } - - _emitNetworkReady() { - if (hasInternet()) { - // WiFi 灯只在 STA 模式下亮(有线有网而 WiFi 在 AP 模式时不亮) - if (this._state === 'sta') led.on(); - this.emit('network-ready'); - } else { - log.warn('provision', 'hasInternet() 返回 false,LED 保持熄灭'); - } - } - - async _trySavedWifiReconnectRounds(rounds = WIFI_RECONNECT_MAX_ROUNDS) { - for (let i = 1; i <= rounds; i++) { - if (isWifiStaConnected()) return true; - log.info('provision', `尝试已保存 WiFi 重连:第 ${i}/${rounds} 轮`); - const result = await connectSavedWifiConnections(); - if (result.success || isWifiStaConnected()) return true; - if (i < rounds) { - await new Promise((r) => setTimeout(r, WIFI_RECONNECT_ROUND_DELAY_MS)); - } - } - return false; - } - - stop() { - this._stopMonitor(); - this._stopAll(); - this._state = 'idle'; - led.destroy(); // WiFi 灯:停止时关灯、释放闪烁定时器 - } - - // ── 进入 AP 模式 ───────────────────────────────────────────────────────── - - _enterAP() { - if (this._state === 'ap') return; - - led.off(); // AP 模式:WiFi 未连接,WiFi 灯熄灭 - if (!hasInternet()) led.display.showAP(); // 无网时立即显示 AP,有线时等 WS 连接后再定 - - try { - // 若上次进程退出前留下 clawd-hotspot,必须先释放 wlan0;否则会在 AP 模式下扫描,列表可能只剩 2.4G/自身热点。 - stopAP(); - - // AP 模式下无法扫描 WiFi,必须在开 AP 之前扫描并缓存 - log.info('provision', '扫描周边 WiFi...'); - this._cachedWifiList = scanWifi(); - log.info('provision', `扫描到 ${this._cachedWifiList.length} 个网络: ${this._cachedWifiList.map(w => `${w.ssid}${w.band ? `(${w.band})` : ''}`).join(', ')}`); - - // 写 DNS 劫持配置(NM 启动热点时加载);接口名与热点一致,勿写死 wlan0 - this._dns = new DnsHijack(); - this._dns.start(getWifiIface(), AP_IP); - - const ap = startAP(this._clawId); - - this._server = new CaptiveServer({ - clawId: this._clawId, - cachedWifiList: this._cachedWifiList, - onConnect: (ssid, password) => this._handleWifiConnect(ssid, password), - }); - this._server.startListening(); - - this._state = 'ap'; - this._apStartedAt = Date.now(); - this._lastApSavedWifiRetryAt = 0; - log.info('provision', `AP 常驻模式已启动: ${ap.ssid}, 密码 12345678`); - log.info('provision', `配网地址: http://10.42.0.1`); - } catch (e) { - log.error('provision', `AP 启动失败: ${e.message}`); - if (this._state !== 'sta') this._state = 'idle'; - } - } - - // ── 用户提交 WiFi 凭证 ─────────────────────────────────────────────────── - - async _handleWifiConnect(ssid, password) { - if (this._state === 'connecting') return { success: false, error: '正在连接中,请稍候' }; - - this._state = 'connecting'; - log.info('provision', `用户请求连接 WiFi: ${ssid}`); - led.blink(); // 正在连接 → 闪烁 - - try { - this._stopAPServices(); - - // 关热点后射频/模式切换需要时间,立刻 connect 在部分板子上会失败 - await new Promise((r) => setTimeout(r, 3500)); - - const result = await connectWifi(ssid, password); - - if (result.success) { - this._state = 'sta'; - log.info('provision', `WiFi 已连接: ${ssid}`); - led.on(); // WiFi 灯:连接成功 → 常亮 - this.emit('network-ready'); - return result; - } - - log.warn('provision', `WiFi 连接失败: ${result.error},按当前网络状态恢复`); - this._recoverAfterWifiFailure(); - return result; - } catch (e) { - log.error('provision', `配网过程异常: ${e.message}`); - this._recoverAfterWifiFailure(); - return { success: false, error: e.message }; - } - } - - /** WiFi 连接失败后:有线可用则保持 wired;否则开 AP 兜底。 */ - _recoverAfterWifiFailure() { - if (hasInternet()) { - this._state = 'wired'; - led.off(); - this._emitNetworkReady(); - return; - } - this._safeReenterAP(); - } - - /** 重新开 AP;失败时勿把 _state 永久卡在 connecting */ - _safeReenterAP() { - try { - this._enterAP(); - } catch (e) { - log.error('provision', `重新启动 AP 失败: ${e.message}`); - this._state = 'idle'; - } - } - - // ── WiFi 状态监控 ───────────────────────────────────────────────────────── - - _startMonitor() { - this._monitorTimer = setInterval(() => { - if (this._monitorBusy) return; - this._monitorBusy = true; - this._monitorTick() - .catch((e) => log.error('provision', `WiFi 状态监控异常: ${e.message}`)) - .finally(() => { this._monitorBusy = false; }); - }, MONITOR_INTERVAL_MS); - } - - async _monitorTick() { - if (this._state === 'connecting') return; - - const wifiUp = isWifiStaConnected(); - - if (wifiUp && this._state !== 'sta') { - if (this._state === 'ap') { - log.info('provision', 'WiFi 已外部连接,关闭 AP'); - this._stopAPServices(); - } - this._state = 'sta'; - this._emitNetworkReady(); - } - - if (this._state === 'sta' && !wifiUp) { - log.warn('provision', 'WiFi 连接已断开,尝试恢复网络'); - await this._recoverNetworkWithoutWifi(); - return; - } - - if (this._state === 'wired') { - if (!hasInternet()) { - log.warn('provision', '有线网络不可用,尝试恢复 WiFi'); - await this._recoverNetworkWithoutWifi(); - return; - } - led.off(); - return; - } - - if (this._state === 'ap') { - if (hasInternet()) { - log.info('provision', '检测到有线网络可用,关闭 AP'); - this._stopAPServices(); - this._state = 'wired'; - this._emitNetworkReady(); - return; - } - - if (hasSavedWifiConnection() && this._shouldRetrySavedWifiFromAP()) { - await this._retrySavedWifiFromAP(); - return; - } - led.off(); - return; - } - } - - async _recoverNetworkWithoutWifi() { - this._state = 'connecting'; - led.blink(); - - if (hasSavedWifiConnection()) { - const connected = await this._trySavedWifiReconnectRounds(WIFI_RECONNECT_MAX_ROUNDS); - if (connected) { - this._state = 'sta'; - this._emitNetworkReady(); - return; - } - } - - if (hasInternet()) { - this._state = 'wired'; - led.off(); - this._emitNetworkReady(); - return; - } - - this._safeReenterAP(); - } - - _shouldRetrySavedWifiFromAP() { - const now = Date.now(); - if (this._apStartedAt && now - this._apStartedAt < AP_MIN_UP_BEFORE_RETRY_MS) return false; - if (this._lastApSavedWifiRetryAt && now - this._lastApSavedWifiRetryAt < AP_SAVED_WIFI_RETRY_INTERVAL_MS) return false; - return true; - } - - async _retrySavedWifiFromAP() { - this._lastApSavedWifiRetryAt = Date.now(); - log.info('provision', 'AP 模式下定期尝试已保存 WiFi'); - this._state = 'connecting'; - led.blink(); - this._stopAPServices(); - await new Promise((r) => setTimeout(r, 3500)); - - const connected = await this._trySavedWifiReconnectRounds(WIFI_RECONNECT_MAX_ROUNDS); - if (connected) { - this._state = 'sta'; - this._emitNetworkReady(); - return; - } - - if (hasInternet()) { - this._state = 'wired'; - led.off(); - this._emitNetworkReady(); - return; - } - - log.warn('provision', 'AP 模式下重试已保存 WiFi 失败,恢复 AP'); - this._safeReenterAP(); - } - - _stopMonitor() { - if (this._monitorTimer) { - clearInterval(this._monitorTimer); - this._monitorTimer = null; - } - } - - // ── 清理 ────────────────────────────────────────────────────────────────── - - _stopAPServices() { - if (this._server) { - this._server.stop(); - this._server = null; - } - if (this._dns) { - this._dns.stop(); - this._dns = null; - } - stopAP(); - } - - _stopAll() { - this._stopAPServices(); - } -} - -module.exports = { ProvisionManager }; +'use strict'; + +const EventEmitter = require('events'); +const log = require('./logger'); +const { hasInternet, hasSavedWifiConnection, connectSavedWifiConnections, isWifiStaConnected, scanWifi, startAP, stopAP, connectWifi, getWifiIface, AP_IP } = require('./network'); +const { DnsHijack } = require('./dns-hijack'); +const { CaptiveServer } = require('./captive-server'); +const led = require('./led'); + +const MONITOR_INTERVAL_MS = 15_000; +const WIFI_RECONNECT_MAX_ROUNDS = 3; +const WIFI_RECONNECT_ROUND_DELAY_MS = 5_000; +const AP_SAVED_WIFI_RETRY_INTERVAL_MS = 180_000; +const AP_MIN_UP_BEFORE_RETRY_MS = 60_000; + +/** + * AP 常驻配网管理器。 + * + * 规则: + * - 启动时:WiFi STA 优先;有已保存 WiFi 时主动让 NM 重连,最多 3 轮 + * - 有线网络可用时:通知网络就绪,但不自动开启 AP + * - 自动开 AP 的唯一兜底:无有线/无 WiFi,且无 saved WiFi 或 saved WiFi 3 轮失败 + * - 用户提交 WiFi 凭证 → 关 AP → 尝试连接 → 失败则按网络状态决定是否重新开 AP + * - AP 状态下:若仍无有线网络,低频释放 wlan0 并尝试 saved WiFi + */ +class ProvisionManager extends EventEmitter { + constructor(clawId) { + super(); + this._clawId = clawId || 'Setup'; + this._state = 'idle'; // 'idle' | 'ap' | 'connecting' | 'sta' | 'wired' + this._dns = null; + this._server = null; + this._monitorTimer = null; + this._monitorBusy = false; + this._apStartedAt = 0; + this._lastApSavedWifiRetryAt = 0; + } + + /** 是否正处于 AP 模式(WiFi 热点广播中) */ + isApMode() { return this._state === 'ap'; } + + async start() { + led.off(); // WiFi 灯初始状态:熄灭 + + // WiFi STA 已连接 → 直接进入 STA 模式 + if (isWifiStaConnected()) { + this._state = 'sta'; + log.info('provision', 'WiFi STA 已连接,AP 不启动'); + this._emitNetworkReady(); + this._startMonitor(); + return; + } + + // 网络已就绪时先启动 WS;hasInternet() 可能来自 WiFi,也可能来自有线,不能直接当作 wired。 + if (hasInternet()) { + if (isWifiStaConnected()) { + this._state = 'sta'; + log.info('provision', 'WiFi STA 已连接,AP 不启动'); + this._emitNetworkReady(); + } else { + this._state = 'wired'; + log.info('provision', '有线网络就绪,启动 WS;不自动开启 AP'); + led.off(); + this._emitNetworkReady(); + } + this._startMonitor(); + return; + } + + // 无有线可用时,有 saved WiFi 才主动让 NetworkManager 重连;不要只被动等待 NM autoconnect。 + if (hasSavedWifiConnection()) { + log.info('provision', `发现已保存的 WiFi 配置,主动重连(最多 ${WIFI_RECONNECT_MAX_ROUNDS} 轮)...`); + this._state = 'connecting'; + led.blink(); + const connected = await this._trySavedWifiReconnectRounds(WIFI_RECONNECT_MAX_ROUNDS); + if (connected) { + this._state = 'sta'; + log.info('provision', '已保存 WiFi 重连成功,AP 不启动'); + this._emitNetworkReady(); + this._startMonitor(); + return; + } + log.warn('provision', '已保存 WiFi 重连失败'); + } + + // 无有线、无 WiFi;且无 saved WiFi 或 saved WiFi 3 轮失败 → 开 AP 兜底配网。 + this._enterAP(); + this._startMonitor(); + } + + _emitNetworkReady() { + if (hasInternet()) { + // WiFi 灯只在 STA 模式下亮(有线有网而 WiFi 在 AP 模式时不亮) + if (this._state === 'sta') led.on(); + this.emit('network-ready'); + } else { + log.warn('provision', 'hasInternet() 返回 false,LED 保持熄灭'); + } + } + + async _trySavedWifiReconnectRounds(rounds = WIFI_RECONNECT_MAX_ROUNDS) { + for (let i = 1; i <= rounds; i++) { + if (isWifiStaConnected()) return true; + log.info('provision', `尝试已保存 WiFi 重连:第 ${i}/${rounds} 轮`); + const result = await connectSavedWifiConnections(); + if (result.success || isWifiStaConnected()) return true; + if (i < rounds) { + await new Promise((r) => setTimeout(r, WIFI_RECONNECT_ROUND_DELAY_MS)); + } + } + return false; + } + + stop() { + this._stopMonitor(); + this._stopAll(); + this._state = 'idle'; + led.destroy(); // WiFi 灯:停止时关灯、释放闪烁定时器 + } + + // ── 进入 AP 模式 ───────────────────────────────────────────────────────── + + _enterAP() { + if (this._state === 'ap') return; + + led.off(); // AP 模式:WiFi 未连接,WiFi 灯熄灭 + + try { + // 若上次进程退出前留下 clawd-hotspot,必须先释放 wlan0;否则会在 AP 模式下扫描,列表可能只剩 2.4G/自身热点。 + stopAP(); + + // AP 模式下无法扫描 WiFi,必须在开 AP 之前扫描并缓存 + log.info('provision', '扫描周边 WiFi...'); + this._cachedWifiList = scanWifi(); + log.info('provision', `扫描到 ${this._cachedWifiList.length} 个网络: ${this._cachedWifiList.map(w => `${w.ssid}${w.band ? `(${w.band})` : ''}`).join(', ')}`); + + // 写 DNS 劫持配置(NM 启动热点时加载);接口名与热点一致,勿写死 wlan0 + this._dns = new DnsHijack(); + this._dns.start(getWifiIface(), AP_IP); + + const ap = startAP(this._clawId); + + this._server = new CaptiveServer({ + clawId: this._clawId, + cachedWifiList: this._cachedWifiList, + onConnect: (ssid, password) => this._handleWifiConnect(ssid, password), + }); + this._server.startListening(); + + this._state = 'ap'; + led.display.showAP(); + this._apStartedAt = Date.now(); + this._lastApSavedWifiRetryAt = 0; + log.info('provision', `AP 常驻模式已启动: ${ap.ssid}, 密码 12345678`); + log.info('provision', `配网地址: http://10.42.0.1`); + } catch (e) { + log.error('provision', `AP 启动失败: ${e.message}`); + if (this._state !== 'sta') this._state = 'idle'; + } + } + + // ── 用户提交 WiFi 凭证 ─────────────────────────────────────────────────── + + async _handleWifiConnect(ssid, password) { + if (this._state === 'connecting') return { success: false, error: '正在连接中,请稍候' }; + + this._state = 'connecting'; + log.info('provision', `用户请求连接 WiFi: ${ssid}`); + led.blink(); // 正在连接 → 闪烁 + + try { + this._stopAPServices(); + + // 关热点后射频/模式切换需要时间,立刻 connect 在部分板子上会失败 + await new Promise((r) => setTimeout(r, 3500)); + + const result = await connectWifi(ssid, password); + + if (result.success) { + this._state = 'sta'; + log.info('provision', `WiFi 已连接: ${ssid}`); + led.on(); // WiFi 灯:连接成功 → 常亮 + this.emit('network-ready'); + return result; + } + + log.warn('provision', `WiFi 连接失败: ${result.error},按当前网络状态恢复`); + this._recoverAfterWifiFailure(); + return result; + } catch (e) { + log.error('provision', `配网过程异常: ${e.message}`); + this._recoverAfterWifiFailure(); + return { success: false, error: e.message }; + } + } + + /** WiFi 连接失败后:有线可用则保持 wired;否则开 AP 兜底。 */ + _recoverAfterWifiFailure() { + if (hasInternet()) { + this._state = 'wired'; + led.off(); + this._emitNetworkReady(); + return; + } + this._safeReenterAP(); + } + + /** 重新开 AP;失败时勿把 _state 永久卡在 connecting */ + _safeReenterAP() { + try { + this._enterAP(); + } catch (e) { + log.error('provision', `重新启动 AP 失败: ${e.message}`); + this._state = 'idle'; + } + } + + // ── WiFi 状态监控 ───────────────────────────────────────────────────────── + + _startMonitor() { + this._monitorTimer = setInterval(() => { + if (this._monitorBusy) return; + this._monitorBusy = true; + this._monitorTick() + .catch((e) => log.error('provision', `WiFi 状态监控异常: ${e.message}`)) + .finally(() => { this._monitorBusy = false; }); + }, MONITOR_INTERVAL_MS); + } + + async _monitorTick() { + if (this._state === 'connecting') return; + + const wifiUp = isWifiStaConnected(); + + if (wifiUp && this._state !== 'sta') { + if (this._state === 'ap') { + log.info('provision', 'WiFi 已外部连接,关闭 AP'); + this._stopAPServices(); + } + this._state = 'sta'; + this._emitNetworkReady(); + } + + if (this._state === 'sta' && !wifiUp) { + log.warn('provision', 'WiFi 连接已断开,尝试恢复网络'); + await this._recoverNetworkWithoutWifi(); + return; + } + + if (this._state === 'wired') { + if (!hasInternet()) { + log.warn('provision', '有线网络不可用,尝试恢复 WiFi'); + await this._recoverNetworkWithoutWifi(); + return; + } + led.off(); + return; + } + + if (this._state === 'ap') { + if (hasInternet()) { + log.info('provision', '检测到有线网络可用,关闭 AP'); + this._stopAPServices(); + this._state = 'wired'; + this._emitNetworkReady(); + return; + } + + if (hasSavedWifiConnection() && this._shouldRetrySavedWifiFromAP()) { + await this._retrySavedWifiFromAP(); + return; + } + led.off(); + return; + } + } + + async _recoverNetworkWithoutWifi() { + this._state = 'connecting'; + led.blink(); + + if (hasSavedWifiConnection()) { + const connected = await this._trySavedWifiReconnectRounds(WIFI_RECONNECT_MAX_ROUNDS); + if (connected) { + this._state = 'sta'; + this._emitNetworkReady(); + return; + } + } + + if (hasInternet()) { + this._state = 'wired'; + led.off(); + this._emitNetworkReady(); + return; + } + + this._safeReenterAP(); + } + + _shouldRetrySavedWifiFromAP() { + const now = Date.now(); + if (this._apStartedAt && now - this._apStartedAt < AP_MIN_UP_BEFORE_RETRY_MS) return false; + if (this._lastApSavedWifiRetryAt && now - this._lastApSavedWifiRetryAt < AP_SAVED_WIFI_RETRY_INTERVAL_MS) return false; + return true; + } + + async _retrySavedWifiFromAP() { + this._lastApSavedWifiRetryAt = Date.now(); + log.info('provision', 'AP 模式下定期尝试已保存 WiFi'); + this._state = 'connecting'; + led.blink(); + this._stopAPServices(); + await new Promise((r) => setTimeout(r, 3500)); + + const connected = await this._trySavedWifiReconnectRounds(WIFI_RECONNECT_MAX_ROUNDS); + if (connected) { + this._state = 'sta'; + this._emitNetworkReady(); + return; + } + + if (hasInternet()) { + this._state = 'wired'; + led.off(); + this._emitNetworkReady(); + return; + } + + log.warn('provision', 'AP 模式下重试已保存 WiFi 失败,恢复 AP'); + this._safeReenterAP(); + } + + _stopMonitor() { + if (this._monitorTimer) { + clearInterval(this._monitorTimer); + this._monitorTimer = null; + } + } + + // ── 清理 ────────────────────────────────────────────────────────────────── + + _stopAPServices() { + if (this._server) { + this._server.stop(); + this._server = null; + } + if (this._dns) { + this._dns.stop(); + this._dns = null; + } + stopAP(); + } + + _stopAll() { + this._stopAPServices(); + } +} + +module.exports = { ProvisionManager }; diff --git a/lib/resource/3588s/demo b/lib/resource/3588s/demo index 9281944df364d7c9ad892d9f4c7020bd11ddaa43..a8d0dbc253fec877aeba4e0af438fee333fe1abf 100755 GIT binary patch delta 105977 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 delta 105583 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