杰理可视化SDK开发-耳机端本地按键上报ANC模式状态给APP端同步显示
📅 2026/7/10 19:18:02
👁️ 次浏览
前言现在为止也开发了许多杰理TWS蓝牙耳机、音响项目SDK的案子在调试案子时不断的向前辈们学习到了很多关于蓝牙音响、蓝牙TWS耳机专业的知识。想在做一个学习汇总方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习本章详细讲解杰理SDK中耳机端本地按键触发时上报切换ANC模式状态给APP端同步显示调试一个AC7006F6芯片的TWS蓝牙耳机项目目前项目的功能是有ANC主动降噪和APP功能在耳机端连接手机端APP后APP的界面有三种ANC模式。奇怪是的耳机端进行切换ANC模式操作可是APP端的界面并没同步显示一只处于在ANC模式关界面可当我在APP上进行按键设置操作之后耳机端再次切换ANC模式这个时候APP界面就会同步显示遇到这个问题就非常奇怪就需要抓取打印日志log分析了第一段日志log分析默认流程未经过APP设置—— 本地直通无状态上报在第一段日志中长按触发后的关键路径如下1、按键事件直接通过app_key_msg_handler以APP_MSG_POWER_KEY_LONG消息处理。2、耳机立刻执行本地ANC模式切换 (new_mode:ANC_ON) 并播放提示音。3、全程没有任何rcsp相关日志也没有发出任何数据给手机APP无send记录。结论 此时按键功能是纯本地行为切换ANC后并不会通过蓝牙向APP上报状态。在第二段日志log分析APP设置按键后的流程 —— RCSP接管主动同步状态在第二段日志中长按触发后路径变为1、按键消息首先被 RCSPRemote Control Service Protocol模块 拦截日志中明确出现rcsp key msg receive。2、RCSP内部对按键进行了重新映射 (key_remap: 0x10001, 0x0, 0x1)然后触发两条并行操作1、调用anc_tone_sync_play执行本地ANC切换及提示音播放2、立即构造并发送MSG_JL_UPDATE_ANC_VOICE指令给手机APPsend 2161ac-81-1通知ANC状态更新。3、因此APP能收到通知界面得以同步。结论此时按键被RCSP接管在完成本地切换的同时会主动通过BLE/SPP协议将新的ANC状态上报给APP从而实现UI同步。总结耳机固件默认将“长按2秒”映射为本地功能APP_MSG_POWER_KEY_LONG该功能仅切换ANC并播放音效未设计成自动上报状态给APP。当你在APP端将按键重新设置为“ANC模式切换”后APP会下发配置使该按键事件被RCSP服务接管相当于启用了一个远程控制通道。RCSP的处理函数中除了执行本地ANC切换外还强制调用了状态同步接口向APP推送最新ANC模式。因此只要APP未下发配置修改就始终走“本地无上报”流程一旦通过APP配置按键则转为“RCSP上报”流程APP界面自然就能同步显示了。解决方案要在本地按键处理未通过APP设置时也能向APP发送状态包需要在 ANC 模式切换成功之后主动调用 RCSP 的状态上报接口。以下是具体分析和修改方法。1、可以直接使用现有函数rcsp_adv_voice_mode_update()因为它内部已经包含了更新全局 ANC 信息、同步TWS、判断TWS角色仅在主机或单耳时触发JL_rcsp_event_to_user(MSG_JL_UPDATE_ANC_VOICE)、代码讲解void rcsp_adv_voice_mode_update(u8 mode) { u8 anc_info[25] {0}; get_anc_voice_info(anc_info); // 获取全局 ANC 信息 anc_info[0] mode; // 更新模式 if (mode) { memcpy(anc_info 1, anc_info 1 mode * 8, 8); // 将对应模式的数据移到开头 } deal_anc_voice(anc_info, 1, 0); // 应用 ANC 设置、写入VM、同步TWS // TWS 从机不直接上报由主机统一上报 if (TWS连接 本机为从机) { tws_api_send_data_to_sibling(...); // 通知主机 return; } // 主机或单耳模式直接触发状态上报 JL_rcsp_event_to_user(DEVICE_EVENT_FROM_RCSP, MSG_JL_UPDATE_ANC_VOICE, NULL, 0); }2、需要在APP_MSG_POWER_KEY_LONG消息的处理函数中在new_mode:ANC_ON执行完毕后加入上报逻辑。代码讲解#if (RCSP_MODE RCSP_ADV_ANC_VOICE) // 只有连接到 APP 且有 RCSP 功能时才上报 if (get_rcsp_connect_status()) { u8 current_mode anc_mode_get(); // 获取切换后的模式0/1/2 rcsp_adv_voice_mode_update(current_mode); } #endif修改完成为什么这样就能同步因为rcsp_adv_voice_mode_update最终会调用JL_rcsp_event_to_user(DEVICE_EVENT_FROM_RCSP, MSG_JL_UPDATE_ANC_VOICE, NULL, 0);改事件被JL_rcsp_event_handler捕获然后调用rcsp_device_status_update(COMMON_FUNCTION,BIT(RCSP_DEVICE_STATUS_ATTR_TYPE_ANC_VOICE));该函数会将当前的ANC模式、各档位增益等数据打包成RCSP协议包通过BLE/SPP发送给APP。APP收到后解析并更新UI从而完成界面同步。制作不易喜欢的小伙伴给个小赞赞喜欢我的小伙伴点个关注有不懂的地方和需要的资源随时问我哟
在开源操作系统的发展史上,2026 年注定是一个被反复提及的转折之年。就在最近,Canonical 官方发出了关键的维护红线通告:Ubuntu 25.10(Questing Quokka)已于 2026 年 7 月 9 日正式停止维护(End of Life&am…
📅 2026/7/10 19:18:02
告别系统安装烦恼:Rufus如何用3个步骤解决你的USB启动盘制作难题 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus
你是否曾因为制作系统安装U盘而头疼?面对复杂的BIOS设置、…
📅 2026/7/10 19:17:02
3步智能修复机械键盘连击问题的革命性解决方案 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker
你是否曾在敲击"hello"时却输入…
📅 2026/7/10 19:17:02
第54篇:AQS抽象队列同步器(2026版) 📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第53篇:volatile与JMM | ➡️ 下一篇:第55篇:线程池ThreadPoolExecutor…
📅 2026/7/10 20:28:26
为什么Nemotron-Labs-Audex-30B-A3B能在保持文本智能的同时实现音频理解?深度技术解析 【免费下载链接】Nemotron-Labs-Audex-30B-A3B 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-Labs-Audex-30B-A3B
Nemotron-Labs-Audex-30B-A3B是一款…
📅 2026/7/10 20:28:26
终极指南:使用llama-nemotron-embed-vl-1b-v2构建高效的视觉文档检索应用 🚀 【免费下载链接】llama-nemotron-embed-vl-1b-v2 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/llama-nemotron-embed-vl-1b-v2
在当今AI驱动的信息时代&…
📅 2026/7/10 20:28:26
掌握三指拖拽:在Windows上解锁macOS级触控板操作体验 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnW…
📅 2026/7/10 20:28:26
作者 | Ma Bin
在CST2026版本中,无参数优化器进行了大量的优化。其中最大的变化就是CST已经将Tosca的求解器集成在CST安装包内。这意味着之前因为某种神秘原因而无法使用ToscaCST组合进行无参数优化的用户,现在可以不安装Tosca直接使用CST完成无参优化的…
📅 2026/7/10 20:28:26
一、为什么接口自动化测试,适合用AI赋能?
大家可自行先思考一个问题:
AI赋能测试全流程,为什么优先推荐从接口自动化切入?
有三个典型原因:
接口输入结构化,AI最擅长"吃"
接口有OpenA…
📅 2026/7/10 0:00:53
终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock
原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…
📅 2026/7/10 0:00:53
YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…
📅 2026/7/10 0:00:53
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/9 15:10:35
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/9 14:14:01
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/9 15:10:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/9 15:10:36
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/9 15:10:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/9 15:10:36