【瑞昱RTL8763E】 Watch 连接

1 Watch 连接概要

Watch 的连接包括两种类型设备的连接:1)手机设备;2)耳机音响设备。 主要涉及到设备 inquiry scan 和 page scan 状态切换,ACL 链路的连接和 HFP,PBAP,A2DP,AVRCP 等 profile 的连接。

2 Watch page & inquiry scan

Watch 的连接开发需要结合 page & inquiry scan 两个状态切换,其中蓝牙的蓝牙设备开启 inquiry scan 模式,才能够被别的蓝牙设备搜索到。蓝牙设备开启 page scan 模式,才能够响应其他蓝牙设备的连接请 求。 Watch 设计框架:首次刷机初始状态 page scan 和 inquiry scan 的状态为 page scan 打开,inquiry scan 关 闭。查询设备连接信息表后根据连接状态设置两个属性值。 目前主要的实现逻辑在 app_bt_policy.c 中,具体逻辑如图所示:

3 Watch 设备连接

Watch 设备的连接主要包括和手机设备,以及耳机设备的连接。 Watch 连接设计中使用设备连接信息表对连接过的设备进行管理。具体表格结构如图所示:

3.1 watch 连接耳机设备 

watch 连接耳机的主要步骤: a) watch 扫描设备 b) 发起连接 c) acl 连接 d) profile 连接(A2DP 和 AVRCP) e) 连接成功。 连接过程中,扫描设备的结果用设备扫描信息表格来管理,用于保存临时的连接数据,连接的主要流 程如图所示:

3.2 手机连接 watch 设备

手机扫描连接 watch 设备需要根据 page 和 inquiry scan 的状态。主要步骤: a) 手机扫描设备 b) 发起连接 c) acl 连接 d) profile 连接(HFP 和 PBAP) e) 连接成功。 主要的流程如图所示:

 3.3 设备连接信息表

        设备扫描信息表主要用来维护设备的基本信息,主要包括设备的连接情况,设备的名称地址,以及设 备的优先级。根据连接的状态对表格进行增/删/改/查。 为防止断电数据丢失,表格内容同步保存在 fdl 中.上电后从 fdl 中获取数据到 app_db 中.正常使用同步 保存到 app_db 和 fdl 中。 优先级根据设备的连接先后顺序,连接的状态,active 和 inactive 的状态来设置和更新。最后可以根据 设备优先级显示高优先级的设备。主要实现在 app_bond.c 中,目前根据 ACL 的连接状态来更新表格的状 态。

3.4 设备连接逻辑

        目前 watch 设备连接耳机设备的方式有三种: a) 扫描连接,扫描连接的时候,会断开当前连接的耳机音箱设备,连接主动扫描连接的设备。 b) 在已配对列表直接发起连接,会断开当前连接的耳机音箱设备,连接主动发起连接的设备。 c) 耳机回连 watch,耳机回连必须在 watch 没有连接的场景下才能回连成功。 手机连接 watch 逻辑:手机发起连接,watch 必须在没有连接的设备的情况下,才能连接成功。 Watch 和手机的连接,watch 和音响设备的连接互相不会产生影响.

4 回连

        Watch 回连需要依靠设备连接信息表,在上电之后回连表格中的设备,还需要根据不同类型的设备断 开的原因来设置是否需要回连。 当前回连的机制还没有完善,未来逐渐完善.目前主要依靠耳机和手机自身的回连策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值