完整优化版工程
下载 DX1-II-Bluetooth-Remote v2 优化版
SHA-256 校验文件
校验值:
text
b3f7e2a43d816d815837e10e05d24f88000c7b7072123cfade2cd96761182d0e
本次主要改进
固件省电与性能
- 默认采用 80 MHz CPU、BLE -3 dBm 省电模式,可按
Fn+E 切换到 160 MHz、+3 dBm 高响应模式。
- 关闭 Wi-Fi、扬声器、麦克风、IMU、LED 等未使用外设。
- BLE 广播间隔调整为 100–150 ms。
- 屏幕关闭后降低循环频率和电池检测频率。
- HID 活跃期间自动提高循环响应速度。
- UI 刷新合并,避免连续全屏重绘。
- 低电量时自动限制背光。
- 设置延迟 2.5 秒统一写入 NVS,减少 Flash 写放大。
- 修正原程序将
ESP_PWR_LVL_P3 错误标注为 -3 dBm 的问题;NimBLE 1.x 使用 esp_power_level_t 枚举,广播间隔接口也与锁定版本相符。(GitHub)
固件稳定性
- 将阻塞式组合键发送改为非阻塞状态机。
- 新增固定容量 HID 事件队列,防止无限堆积。
- 长期状态文本改用固定字符缓冲区,降低堆碎片风险。
- 音量长按支持分阶段加速。
- BLE 断连时清空队列、释放残留按键并重置发送时序。
- 所有时间判断支持
millis() 回绕。
- 增加状态页、按键说明页和诊断页。
- 增加“熄屏首键仅唤醒”模式,降低误操作风险。
- M5Cardputer 键盘状态和按键查询接口已按锁定版本核对。(GitHub)
PC 桥接服务
- 修复网页目录错误导致的 404 问题。
- 自动枚举 DX1 II 的 HID 接口,而非只依赖 VID/PID 直接打开。
- 支持 USB 拔出、重新插入和写入失败后的自动重连。
- 用户手动断开后暂停自动重连。
- 所有 USB HID 命令通过串行 Promise 队列执行。
- 只有设备写入成功后才提交音量、静音、输入和输出状态。
- 增加失败回滚,避免网页显示未真正执行的状态。
- 默认只监听
127.0.0.1,不向局域网暴露。
- 增加请求体大小限制、Content-Type 校验、动作白名单和数值范围校验。
- 使用 SSE 实时推送状态,连接异常时降级为低频轮询。
- 增加优雅退出、日志限流、设备诊断及运行指标。
新增功能
- 音量预设循环。
- 安全音量与一键恢复。
- USB、光纤输入直选。
- 耳放、线路输出、全部输出直选。
- 播放暂停、上一曲、下一曲媒体键。
- 音量长按加速。
- USB 自动热插拔恢复。
- 实时本地网页控制面板。
- 设备、命令队列、错误、日志和运行状态展示。
- 固件与桥接服务热键映射自动一致性测试。
- 媒体键报告接口与锁定的 ESP32 BLE Keyboard 版本兼容。(GitHub)
验证结果
server.js 语法检查通过。
public/app.js 语法检查通过。
- 11/11 项自动测试通过,0 失败。
- 固件 C++ 主体通过本地伪硬件接口下的
g++ -fsyntax-only 检查。
- ZIP 完整性检查通过,没有损坏文件。
- 测试覆盖协议帧、音量换算、输入校验、事务提交、写入失败回滚、安全音量恢复、HTTP 接口和热键映射同步。
由于沙箱无法稳定下载完整 PlatformIO/ESP32 外部工具链,本次没有伪称已完成真实 ESP32-S3 链接和烧录。工程已锁定依赖版本,解压后在可联网电脑上执行:
bash
npm install
npm run check
npm start
pio run
pio run -t upload
配套文档
使用和烧录说明 README
完整优化审计与后续功能脑暴
测试结果与验证边界