【0x0045】HCI_Write_Inquiry_Mode详解

目录

一、命令概述

二、命令格式及参数说明

2.1. HCI_Write_Inquiry_Mode命令格式

2.2. Inquiry_Mode

三、响应事件格式及参数

3.1. HCI_Command_Complete事件格式

3.2. 参数说明

3.2.1. 事件代码(Event Code)

3.2.2. 参数总长度(Parameter Total Length)

3.2.3. 事件参数(Event Parameters)

四、命令执行流程

4.1. 命令发起阶段(主机端)

4.2. 命令接收与解析阶段(蓝牙控制器端)

4.3. 执行查询模式设置阶段(蓝牙控制器端)

4.4. 完成操作与事件反馈阶段(蓝牙控制器端)

4.5. 主机接收事件并处理阶段(主机端)

4.6. 示例代码

 五、使用场景

5.1. 蓝牙设备发现

5.2. 蓝牙设备连接前的准备

5.3. 蓝牙设备配对与绑定

5.4. 蓝牙设备管理与监控

5.5. 设备连接维护场景

5.6. 多设备协同工作场景

5.7. 蓝牙协议栈开发与调试

六、注意事项

6.1. 参数设置方面

6.2. 命令执行顺序和时机方面

6.3. 事件处理方面

6.4. 硬件和资源限制方面

6.5. 安全性方面

6.6. 执行流程方面


HCI_Write_Inquiry_Mode指令是蓝牙技术中用于设置本地BR/EDR(Basic Rate/Enhanced Data Rate)控制器查询模式(Inquiry Mode)的HCI(Host Controller Interface)指令。通过该命令,可以控制蓝牙设备如何主动去发现周围其他可连接的蓝牙设备,以满足不同应用场景下设备发现与连接的需求。

一、命令概述

HCI_Write_Inquiry_Mode命令允许主机(Host)配置本地BR/EDR控制器(Controller)在查询(Inquiry)过程中的工作模式。查询是蓝牙设备发现机制的一部分,允许一个蓝牙设备(称为主设备或Master)搜索其通信范围内的其他蓝牙设备(称为从设备或Slave)。

通过设置不同的查询模式,主机可以控制蓝牙控制器在查询过程中返回的信息类型和详细程度。这有助于主机根据具体需求优化设备发现过程,例如,在需要获取更多设备详细信息时选择RSSI和EIR查询模式,而在仅需要基本设备信息时选择标准查询模式以节省资源和时间。

二、命令格式及参数说明

  • HCI 命令通用格式基础
    • HCI(主机控制器接口)命令通常遵循一定的格式,包括操作码(Opcode)和参数部分。操作码用于标识命令的类型,由操作码组字段(OGF - Opcode Group Field)和操作码命令字段(OCF - Opcode Command Field)组成。对于HCI_Write_Inquiry_Mode命令,有其特定的操作码组合,通过这个操作码,蓝牙设备的主机可以向蓝牙控制器表明这是一个设置查询模式的命令。
    • 参数部分则跟在操作码之后,用于传递具体的设置信息,如查询模式的参数值。这些参数的格式和长度等都要符合蓝牙协议的规定。
  • 可能的字节顺序和数据类型
    • 在指令格式中,数据的字节顺序(大端序或小端序)也需要遵循蓝牙协议规定。例如,如果参数是一个多字节的整数,那么其存储顺序可能是按照大端序(高位字节在前)或者小端序(低位字节在前)来排列的。而且参数的数据类型(如无符号整数、有符号整数等)也是明确规定的,这保证了指令在不同设备之间的一致性和可理解性。

2.1. HCI_Write_Inquiry_Mode命令格式

HCI_Write_Inquiry_Mode命令通常遵循蓝牙核心规范中定义的HCI指令格式。

具体来说,它可能包括一个操作码(Opcode),后跟一个或多个参数,用于指定所需的查询模式。

2.2. Inquiry_Mode

Inquiry_Mode是一个关键参数,用于指定查询模式。不同的模式会影响查询结果的详细程度和格式。

Inquiry_Mode的模式包括标准查询模式(可能不包含RSSI或EIR信息)、带RSSI的查询模式(包含设备信号强度信息)以及RSSI和EIR查询模式(同时包含设备信号强度和扩展查询响应信息)。 

  • 0x00:标准查询结果事件格式
    • 描述:标准查询结果事件格式,作为默认设置。
    • 应用场景:此模式返回的查询结果仅涵盖被发现设备的基本信息,如设备地址等,不包含RSSI(接收信号强度指示)信息。它适用于设备发现与初步筛选阶段,帮助用户快速识别并筛选出周围的蓝牙设备,为后续操作提供基础数据。
  • 0x01:带RSSI的查询结果格式

    • 描述:查询结果带有RSSI信息的格式。
    • 应用场景:此模式不仅返回设备的基本信息,还包含RSSI信息,有助于评估与被发现设备之间的连接质量和距离。在需要根据信号强度选择优先连接设备的场景中,如多耳机连接选择,此模式尤为适用。
  • 0x02:带RSSI的查询结果格式或扩展查询结果格式

    • 描述:可以是带有RSSI的格式或扩展查询结果格式。
    • 应用场景:此模式提供了更大的灵活性。它既可以返回带有RSSI的常规查询结果,用于信号强度分析;也可以返回更详细的扩展查询结果,满足对设备信息要求更高的场景,如蓝牙设备调试或高级应用场景。
  • 其他值

    • 描述:保留用于未来扩展或新功能添加。
    • 注意事项:在当前的蓝牙协议应用中,应避免使用这些保留值,以确保兼容性和稳定性。这些保留值为未来的技术发展和功能升级预留了空间。

Inquiry_Mode参数是蓝牙查询操作中用于指定结果格式的关键参数。通过正确配置该参数,用户可以优化设备发现过程,并获取所需的设备信息。在选择Inquiry_Mode时,应根据实际应用场景和需求进行权衡,以确保查询结果的准确性和实用性。同时,遵循蓝牙协议的规范,避免使用保留值,以确保系统的稳定性和兼容性。

三、响应事件格式及参数

当HCI_Write_Inquiry_Mode命令执行完毕后,会生成一个HCI_Command_Complete事件(除非该事件被屏蔽)。这是蓝牙HCI(Host Controller Interface,主机控制器接口)协议中的标准行为。

3.1. HCI_Command_Complete事件格式

HCI_Write_Inquiry_Mode命令的响应事件(HCI_Command_Complete)通常遵循蓝牙HCI(Host Controller Interface)协议的通用事件格式。

该事件包含有关命令执行结果的信息,一般包括事件头(Event Header)和事件参数(Event Paramete

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915141.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】指针的运算

指针的增量操作: int i 10; int *p &i;printf("p %p\n", p);//1024p; // 增加int 4个字节大小printf("p %p\n", p);//1028指针的增量运算取决于指针的数据类型,它将会增加数据类型的大小的字节。 指针的减量操作与增量同理…

电商系统开发:Spring Boot框架实战

3 系统分析 当用户确定开发一款程序时,是需要遵循下面的顺序进行工作,概括为:系统分析–>系统设计–>系统开发–>系统测试,无论这个过程是否有变更或者迭代,都是按照这样的顺序开展工作的。系统分析就是分析系…

【数据库】数据库迁移的注意事项有哪些?

数据库迁移是一个复杂且关键的过程,需要谨慎处理以确保数据的完整性和应用程序的正常运行。以下是一些数据库迁移时需要注意的事项: 1. 充分的前期准备 1.1 评估迁移需求 明确目标:确定迁移的具体目标,例如添加新字段、修改现…

pgsql和mysql的自增主键差异

1. 当有历史数据存在时, mysql的自增主键是默认从最大值自增。 pgsql的自增主键取初始值开始逐个尝试,所以存在可能与历史数据的主键重复的情况。 pgsql解决上述问题的方式:重设自增值。 SELECT SETVAL(t_db_filed_id_seq, (SELECT MAX(&q…

opencv入门学习总结

opencv学习总结 不多bb,直接上代码!!! 案例一: import cv2 # 返回当前安装的 OpenCV 库的版本信息 并且是字符串格式 print(cv2.getVersionString()) """ 作用:它可以读取不同格式的图像文…

【VBA实战】用Excel制作排序算法动画续

为什么会产生用excel来制作排序算法动画的念头,参见【VBA实战】用Excel制作排序算法动画一文。这篇文章贴出我所制作的所有排序算法动画效果和源码,供大家参考。 冒泡排序: 插入排序: 选择排序: 快速排序:…

Go 语言已立足主流,编程语言排行榜24 年 11 月

Go语言概述 Go语言,简称Golang,是由Google的Robert Griesemer、Rob Pike和Ken Thompson在2007年设计,并于2009年11月正式宣布推出的静态类型、编译型开源编程语言。Go语言以其提高编程效率、软件构建速度和运行时性能的设计目标,…

《基于深度学习的车辆行驶三维环境双目感知方法研究》

复原论文思路: 《基于深度学习的车辆行驶三维环境双目感知方法研究》 1、双目测距的原理 按照上述公式算的话,求d的话,只和xl-xr有关系,这样一来,是不是只要两张图像上一个测试点的像素位置确定,对应的深…

机器学习在医疗健康领域的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 机器学习在医疗健康领域的应用 机器学习在医疗健康领域的应用 机器学习在医疗健康领域的应用 引言 机器学习概述 定义与原理 发展…

2024136读书笔记|《飞鸟集》——使生如夏花之绚烂,死如秋叶之静美

2024136读书笔记|《飞鸟集》——使生如夏花之绚烂,死如秋叶之静美 《飞鸟集》[印]泰戈尔,一本有意思的诗集,中英文对照着读更有意思。“你是谁,读者,百年后读着我的诗?”让我觉得有些久别重逢,忽…

爱芯元智创始人仇肖莘荣获《财富》中国最具影响力的商界女性

爱芯元智宣布,《财富》(中文版)揭晓了2024年度“中国最具影响力的商界女性”榜单(Most Powerful Women,简称MPW),爱芯元智创始人兼董事长仇肖莘博士荣登《财富》“MPW未来榜”,彰显了…

windows下qt5.12.11使用ODBC远程连接mysql数据库

1、下载并安装mysql驱动,下载地址:https://dev.mysql.com/downloads/ 2、配置ODBC数据源,打开64位的ODBC数据源配置工具:

河南省的一级科技查新机构有哪些?

科技查新,简称查新,是指权威机构对查新项目的新颖性作出文献评价的情报咨询服务。这一服务在科研立项、成果鉴定、项目申报等方面发挥着至关重要的作用。河南省作为中国的重要科技和教育基地,拥有多个一级科技查新机构,为本省及全…

Selenium:设置元素等待、上传文件、下载文件

前言:在工作和学习selenium自动化过程中记录学习知识点,深化知识点 1. 设置元素等待 元素定位之元素等待-- WebDriver提供了两种类型的等待:显示等待和隐式等待。 1.1 显示等待 显式等待使WebDriver等待某个条件处理时继续执行&#xff…

智慧医疗:纹理特征VS卷积特征

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

hadoop健康舆情研究-计算机毕业设计源码05954

目 录 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 系统流程…

重学 Android 自定义 View 系列(六):环形进度条

目标 自定义一个环形进度条,可以自定义其最大值、当前进度、背景色、进度色,宽度等信息。 最终效果如下(GIF展示纯色有点问题): 1. 结构分析 背景圆环:表示进度条的背景。进度圆环:表示当前…

⚙️ 如何调整重试策略以适应不同的业务需求?

调整 Kafka 生产者和消费者的重试策略以适应不同的业务需求,需要根据业务的特性和容错要求来进行细致的配置。以下是一些关键的调整策略: 业务重要性: 对于关键业务消息,可以增加重试次数,并设置较长的重试间隔&#x…

总结拓展十五:特殊采购业务——寄售采购

1、寄售采购的定义 寄售采购是指供应商提供物料,并将它们存储在你处,在贵公司将这些物料从寄售库存提取(转自有)之前,该供应商一直是这些物料法律上的所有者。只有当这些物料被贵司转自有领用后,供应商才会…

RK3568平台开发系列讲解(GPIO篇)GPIO的sysfs调试手段

🚀返回专栏总目录 文章目录 一、内核配置二、GPIO sysfs节点介绍三、命令行控制GPIO3.1、sd导出GPIO3.2、设置GPIO方向3.3、GPIO输入电平读取3.4、GPIO输出电平设置四、Linux 应用控制GPIO4.1、控制输出4.2、输入检测4.3、使用 GPIO 中断沉淀、分享、成长,让自己和他人都能有…