Skip to content

✨ feat(board): 实现小智式板端交互状态机 - #222

Draft
ZhaoXingPeng wants to merge 10 commits into
1024XEngineer:mainfrom
ZhaoXingPeng:feat/105-xiaozhi-board-interaction
Draft

✨ feat(board): 实现小智式板端交互状态机#222
ZhaoXingPeng wants to merge 10 commits into
1024XEngineer:mainfrom
ZhaoXingPeng:feat/105-xiaozhi-board-interaction

Conversation

@ZhaoXingPeng

@ZhaoXingPeng ZhaoXingPeng commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

结论与范围

本 PR 接入小智式板端交互状态机,并修复实板启动时 WebSocket 事件队列占用内部 RAM 导致的启动失败。PR 保持 Draft:实板已进入 WebSocket 连接阶段,但会话启动仍失败,真人 ASR/TTS、按键、唤醒与打断闭环尚未完成,不能合并。

变更

  • 新增 VoiceInteractionController,覆盖 BOOT、待机、聆听、思考、播报、打断、重连和错误状态迁移。
  • 接入 ESP32-S3 GPIO0/47/40/39:BOOT 切换语音轮次,GPIO47 按住说,音量点击 +/-10、长按设为 100/0。
  • 对齐上游小智板端语义:播报/思考中本地唤醒只打断并回待机;聆听中再次唤醒关闭当前采集通道,不立即重启一轮语音。
  • PCM 播放增加 0-100 音量缩放;SSD1306 显示状态和错误。
  • WebSocket 事件队列优先放入 PSRAM,保留内部 RAM 回退;增加无敏感数据的 LINX_WS_QUEUE_*LINX_WS_ERROR 数值诊断。

验证

  • ./scripts/run_pre_submit_checks.sh
    • 43 项 C/C++ 主机测试通过,含状态机迁移契约
    • 54 项配置/固件契约测试通过
    • 216 项 IM Gateway 测试通过
    • 架构依赖、API 文档、格式与固件配置检查通过
  • python3 scripts/firmware.py build esp32s3-voicelife-pcb-pcm
    • 镜像大小:0x1a7c30
  • 实板 OLED:确认 DISPLAY_READY=1,依次显示 BOOTWIFILINXERROR
  • 实板网络:扫描确认 AP 名称后获得 IP。
  • 实板已从事件队列创建失败推进到 WebSocket 连接阶段。
  • 实板 WSS 握手/服务端接入诊断:需启动含 LINX_WS_ERROR 的诊断镜像并采集数值错误码。
  • 真人 GPIO47/BOOT/音量/唤醒/ASR/TTS/打断端到端闭环。

下一步

在不暴露凭据、设备身份或原始串口日志的前提下,刷入非活动 OTA 槽位的诊断镜像,复位后采集 LINX_WS_ERROR 数值标记,定位 WSS 失败原因;修复后完成真人交互验收,再将 Draft 转为 Ready for review。

真机安全

仅使用非活动 OTA 槽位测试。已保留一份经过哈希校验的 otadata 基线备份;后续测试结束后恢复该启动选择。未提交凭据、设备身份、原始串口日志或备份文件。

AI 使用与人工复核

AI 用于按既定接口和状态迁移方案实现、测试和执行门禁;人工复核 GPIO 映射、状态动作边界、OTA 槽位安全、异常路径和 PR 范围。主机契约测试覆盖核心状态迁移;真人网络与语音验收保留给 Review 阶段。

Refs #105

为本地唤醒、播报结束和待机恢复增加脱敏生命周期事件,验收采集器现在会拒绝乱序事件和失败事件。\n\n主机测试与 ESP32-S3 Profile 构建用于验证证据字段不影响运行链路。
移除汇报文档、过程文档入口和与 Linx 语音链路无关的探针变更,仅保留功能代码、必要测试与实际 Profile 依赖。
提高有界事件队列容量并提升事件 worker 优先级,避免真人语音突发帧使 Linx Transport 溢出并误报 Provider 失败。
@ZhaoXingPeng ZhaoXingPeng added the sub-task 实现拆分自父任务的可验收子任务 label Aug 11, 2026
@ZhaoXingPeng

Copy link
Copy Markdown
Collaborator Author

依赖关系:本 PR 建立在 #219(Linx 语音链路与 OLED 基线)之上。#219 合并后,本 PR 的增量范围为板端交互状态机、GPIO 控制、音量缩放、OLED 绘制错误处理和对应测试。当前保持 Draft,待 Linx 凭据/Wi-Fi 条件满足后补充真人验收。

@codecov

codecov Bot commented Aug 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.00000% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
components/voicelife_mcp/test/mcp_server_test.cc 84.61% 1 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@jing-gou jing-gou left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exce

@jing-gou jing-gou left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

excellent

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sub-task 实现拆分自父任务的可验收子任务

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants