Files

1.3 KiB
Raw Blame History

模块按职责划分为八个 ES 模块文件,依赖方向单向:constants.js 集中定义 GATT UUID、OTA 协议码(ACK/FINISH/SHA256/CTRL)及 TARGETS.{esp32,gd32} 配置,作为所有其他文件的常量来源;state.js 维护全局状态(device/server/characteristic 引用、上传标志、ackWaiter、会话标识等)并提供 DOM 元素缓存与通用工具(bleLog/toHex/sleep 等);gatt.js 实现 BLE 生命周期(connectBle/disconnectBle/readVersion/onDisconnected)以及 GATT notify 分发 handleNotify,将协议事件路由至 transfer/session/verify;transfer.js 实现数据面:buildPacket 打包 seq+totalSize+payload+CRC、ACK 等待 Promise 封装 waitForAck、进度刷新 updateProgressFromAck;session.js 管理多轮 OTA 结果等待(waitForOtaResult/nextOtaSessionId/finishBelongsToWaiter)与 abort 流程;stages.js 提供 1~6 阶段状态栏的 UI 操作(setBleStage/setBleStageError/updateBleStageLabels),被 gatt/transfer/file 共同消费驱动动画;file.js 统一文件入口,处理 HEX→BIN 转换、GD32 包身份检测、SHA-256 缓存,并在 upload 中屏蔽重复选择;verify.js 仅暴露 show/hide 校验信息面板的方法。跨通道(BLE/WiFi)通过 connectionMode 变量与共享 DOM id(progressFill/logScroll 等)协作,确保界面一致性。