蓝牙Inquriy 过程详解
2024-09-02 00:09:43
问题
今天遇到了一个问题,就是自己的耳机产品,手机经常搜不到,从日志里面查看,发现原因是平时手机蓝牙发送的是inquiry mode =2 出问题的时候,inquiry mode =1 由于
本设备很多东西是靠inquiry mode 2 里面的扩展信息来标记连接状态的,所以会出现连接不上的情况。借此机会,要把蓝牙的这块复习一下,也顺便把问题梳理一下。
inquriy 的流程
从下面的图可以很清楚的看到,一般是主设备发送inquriy 的ID包,从设备收到这个帧之后,会发送inquriy response,response帧一般有两种,一种是无扩展的FHS帧,另外一种是带扩展的数据包。具体的扩展数据要看两个设备的协商了。这里引出一个问题,从设备在什么场景下要回复什么帧呢?这里牵出了inquiry的类型。
inqure 类型
从下面的蓝牙协议栈中可以看出,inquriy 帧有三种类型指定的发送,从设备会根据主设备的inquriy mode类型来发送具体的类型的帧来回复不同的response类型,这个也就清楚了,从设备是根据主设备的inquriy mode来返回不同类型。
几个疑问
主设备什么场景下会发送inquriy mode 1的帧?
从设备的表现看来,应该是主设备一般是发送mode =2的帧,只是遇到slave不回复的时候,主设备以为是信号不好,就启动退避机制,开始发送mode=1的帧,如果仍旧还收不到,那就会启动mode=0的退避机制,这个只是我的个人推测,不知道是否正确,还希望有些理解更深的大牛帮忙确认一下?
最新文章
- 直播推流端弱网优化策略 | 直播 SDK 性能优化实践
- poj 2503:Babelfish(字典树,经典题,字典翻译)
- 浅析MongoDB数据库的海量数据存储应用
- Uxf框架引入Rest控制器特性
- GIT 专贴
- myeclipse 配置weblogic
- Error -26612: HTTP Status-Code=500 (Internal Server Error) ...
- Spring注解@Scheduled定时任务
- linux 安装phpMyAdmin
- sql 自连接
- c# listview导出excel文件
- javaweb 国际化
- css浮动布局
- Java基础(1) - 语法 &; 概念
- python爬虫之git的团队协作
- java sort排序原理
- Markdown语法说明(转)
- [转载] JAVA面试题和项目面试核心要点精华总结(想进大公司必看)
- 如何评测一个P2P平台是否可靠
- 【转】Visual Studio团队资源管理器 Git 源码管理工具简单入门