统一WiFi/BLE传输路径的收尾处理逻辑。 feat(ota): 优化OTA性能并增强系统监控功能 - 修改RSSI警告阈值从-75dBm调整为-80dBm,更新相关文档说明 - 增加HTTP服务器任务栈大小至10240字节,解决栈溢出问题 - 将OTA块大小从4096字节降至2048字节以降低峰值堆内存占用 - 实现按需擦除机制替代预擦除,在GD32 OTA中按扇区动态擦除 - 添加任务栈水位主动巡检功能,监控栈使用情况并告警 - 集成FreeRTOS栈溢出钩子,提供栈溢出检测和告警 - 优化ESP32 OTA实现使用顺序写入模式,消除长时间擦除阻塞 - 改进堆内存不足告警机制,添加限流避免刷屏 - 移除不必要的调试日志输出,精简健康监控模块
3.0 KiB
3.0 KiB
删除"断线后切换慢速轮询"机制
文件: G:\Robot_v2\DCU\ESP32_COMM\tools\app.js
范围: 只删除"降速到 10s"的行为,保留 5 次失败触发的网络诊断(diagnoseNetwork)和断线 UI 提示。删除后断线时保持 1s 轮询,仅显示"未连接"并按需做网络诊断。
改动点
-
删除变量
pollSlowMode(1600 行)- 移除
var pollSlowMode = false; // 降速模式(10s 一次)
- 移除
-
删除函数
slowDownPolling()(1671-1681 行)- 整个函数移除
-
删除函数
restorePolling()(1682-1695 行)- 整个函数移除(保留
startPolling、pausePollingForUpload、resumePollingAfterUpload)
- 整个函数移除(保留
-
简化
startPolling()(1662-1670 行)- 删除
pollSlowMode = false;这一行(其余保留)
- 删除
-
简化
resumePollingAfterUpload()(1714 行)statusPollIntervalMs = pollSlowMode ? 10000 : 1000;→statusPollIntervalMs = 1000;
-
简化
pollStatus()成功分支(1738-1747 行)- 移除
wasSlow/restorePolling()调用,仅保留consecutivePollFailures = 0;(保留"恢复在线"的 toast 体验需要另判断;改为:若consecutivePollFailures > 0则提示已恢复并清零)
- 移除
-
简化
pollStatus()失败分支的 5-fail 块(1789-1800 行)- 删除
!pollSlowMode条件判断中的pollSlowMode部分 - 删除
slowDownPolling();调用和"已切换为慢速轮询"日志 - 保留
diagnoseNetwork()诊断、updateConnectionUi(false, '未连接')、applyDisconnectedRuntimeState()和诊断文本显示
- 删除
-
简化
pollStatus()失败分支末尾(1828 行)} else if (!pollSlowMode) {→} else {(该 else 分支总是显示未连接状态)
-
清理
testConnection()(817-820 行)- 删除
if (pollSlowMode) { addLog(...); restorePolling(); }块
- 删除
-
清理
refreshSystemStatusNow()(874 行)- 删除
if (pollSlowMode) restorePolling();
- 删除
-
清理
visibilitychange监听(1854-1855 行)- 删除
// 之前若在慢速模式...注释和if (pollSlowMode) restorePolling();
- 删除
-
清理 IP 输入 change 监听(1887-1892 行)
- 简化为:IP 变化时清零失败计数并立即拉一次状态(不再依赖 restorePolling)
- 或直接移除
if (pollSlowMode) { ... restorePolling(); }块,保留监听器做基本的失败计数清零
不删除的部分
consecutivePollFailures变量及其计数逻辑(诊断仍需要)diagnoseNetwork()网络诊断函数lastDiagTime/diagResult诊断状态变量applyDisconnectedRuntimeState()断线 UI 更新statusPollIntervalMs变量(被 upload 暂停/恢复机制复用,保持 1000 默认值)
验证
- 浏览器打开
tools/index.html,确认页面加载无 JS 错误 - 模拟 ESP32 断线:连续 5 次失败后应仍触发网络诊断并显示"未连接",但轮询间隔保持 1s
- 恢复 ESP32:应清零失败计数并提示"恢复在线"