Skip to content

适配 Jieli 替换遥控器并按厂商、型号和固件选择语音兼容策略 - #2

Merged
Kaliscuit merged 1 commit into
mainfrom
fix/remote-device-compatibility
Sep 24, 2026
Merged

Kaliscuit merged 1 commit into
mainfrom
fix/remote-device-compatibility

Conversation

@Kaliscuit

@Kaliscuit Kaliscuit commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

更换遥控器后,即使蓝牙名称和 VID/PID 相同,按键报告格式与语音松键时序也可能不同。此次适配已验证的 zhuhai_jieli / hid_mouse / 0.0.1:恢复普通按键、长按说话,以及短按开始持续收音、再次短按停止。

改动与适用范围

  • 新增独立的 RemoteDeviceInformation / RemoteCompatibilityProfile,读取 BLE 设备信息中的厂商、型号和固件。三项全部匹配上述设备才启用语音延迟补偿;其他设备、未知固件和缺失信息继续使用原有手势计时。连接设备时清空旧身份,不通过蓝牙显示名称或地址前缀推断厂商。
  • 该固件的短按松键通知会晚到约 1.3 秒,原来的 550 ms 定时器会将其误判成长按。匹配后改用累计解码音频时长判断长按,静音样本也计时,并保留音频开头。再次按下即停止持续收音,兼容复用语音流编号的情况。
  • HCI 辅助服务增加显式选择的 consumer16 格式,转换已核对的 14 个 Consumer Usage 为现有按键编号,保留用户映射。安装器支持传入格式与 ATT 句柄;旧配置默认仍为 indexed。这部分不依赖自动语音配置,仍严格按配置地址、句柄、长度和已知用法过滤。
  • 遥控器主动停止及关麦回执不再触发重复关麦,避免命令循环。原生 HID 打开失败时,兼容桥接的连发和松键保护定时器仍正常运行。
  • 补充中英文安装与协议说明;修正构建脚本的逐架构 lipo 验证。

验证

  • 实机核对新遥控器的 14 个按键报告;用户确认两轮短按开始/停止正常。应用日志记录持续收音约 30 秒、约 7 秒,另一次长按约 10 秒正常结束。
  • 13 项 Python 测试、shell 语法检查、源码审查、git diff --check 通过。
  • 独立 Swift runner 编译生产代码,执行设备身份匹配/不匹配、信息缺失、到达顺序、大小写与填充、无效数据,以及延迟松键、持续收音、重复停止、长按和快捷键配对回归检查,均通过。
  • 本机仅有 Command Line Tools,缺少 XCTest;上述独立检查不等同于完整 swift test。完整 XCTest、Python 测试、源码审查和双架构构建已在 PR 的 macOS CI 全部通过,push 检查也通过。
  • Apple Silicon / Intel 双架构 release 构建、签名校验通过;整理后的设备配置已安装并核对识别结果。

与 #1 均涉及停止回执处理;本 PR 的新增兼容范围是 Jieli 0.0.1 的按键格式及延迟松键,审阅和合并时需协调共同修改的语音控制代码。

@Kaliscuit
Kaliscuit merged commit f9829f3 into main Sep 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant