Biu~笔记:高通蓝牙ADK6.x(4)-- 闲谈Earbud软件架构

Biu~哈喽大家好,今天我们来扯扯dan,聊聊人生吧。曾几何时,小编也想躺着沙发上,靠脸吃饭。想到妻妾成群,日渐消瘦的模样,犹如一盆冷水突然泼我脸上,“好恐怖啊!”

然后小编就开始发奋研究CSR ADK4.0,sink和source都是小编研究的对象。从4.0到现在的6.4,经过无数个加班努力,终于弄懂了一点点,很欣慰。

在ADK6.x中就没看到source的身影了,取而代之是earbud,这个不是source的进化版,而是sink的分身。“耳塞”,主要特色就是tws,包括tws plus,可以说是专门为tws耳机量身定做的一个工程。还有就是和sink框架不同,除了底层一些库以外,可以说是完全不同。有些人觉得开发难度加大了,但小编觉得好玩好多。

       首先earbud没有配置工具。没有配置工具,没有配置工具,所有的UI、设置都是靠代码实现,Interesting!但整个框架,看上去还是很明了易懂的。那我们就开始聊聊框架吧。

  1. 它依旧沿用了message机制,各种任务之间通过消息传递,有点不同的是,这里有个tasklisk,就是一个消息触发了,会往多个task发,方便。
  2. 为了管理各种复杂的逻辑,还加了一个rules机制,这个机制是这个应用层的核心,大部分运行内容从这里出发,这里和sink的机制有很大的不同,小编认为,这很nice,了解完rules的东西基本了解完这个earbud的应用功能了,所以推荐看代码先从rules开始,这和sink不同,sink一般是从状态机下手,earbud就要两个配合一起看rules和sm。默默地你会发现,贼多状态机,每个协议一个状态机,每个功能模块一个状态机。
  3. 默认代码就集成了传感器部分,加速度和接近传感器,构成了一个叫physical 状态机。这部分的识别可以在整个运行系统里面体现到。主要是用到接近传感器,识别戴上和取下,代码里用的最多,还有些功能没有这个还不能用,这也是主状态机主要成员之一
  4. TWS,两个独立耳机通过无线连接形成一个整体,这之间少不了通讯。在sink中这个通讯只是传达简单的avrcp的控制指令。而在earbud,这个功能做了很大的提升,不仅可以传指令,还同步了状态,让两个独立耳机使用起来更像一个整体(因为延时关系,同步不及时会有很多问题,这部分开发时会慢慢体会到,嘻嘻嘻)除了同步的实现,代码中还有一个比较低调的使用,这个功能也是实现同步控制,但是不同于同步状态的是,它有没有同步那么多,那么复杂,就只是一条通知或一条指令,这部分后续博文会详细说说


说的是闲谈嘛,意思就是说说擦边又不很重点,又不很没用的东西,简单的一句就是看文档。


多看文档,多上官网

多看文档,多上官网

多看文档,多上官网 

参考文档:80-CH016-1  ADK 6.3.x Earbuds Application User Guide


 


 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

发芽韭菜

发芽韭菜

2021年3月4日
ADK 6.3.x Earbuds Application User Guide 博主能发给我一下吗? xenonshow@qq.com
Biu~

Biu~

2020年2月12日
博主,什么时候出新的ADK框架讲解啊