欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 【0x000E】HCI_PIN_Code_Request_Negative_Reply命令详解

【0x000E】HCI_PIN_Code_Request_Negative_Reply命令详解

2024/12/21 19:25:38 来源:https://blog.csdn.net/weixin_37800531/article/details/144519871  浏览:    关键词:【0x000E】HCI_PIN_Code_Request_Negative_Reply命令详解

目录

一、命令概述

 二、命令事件及参数说明

2.1. HCI_PIN_Code_Request_Negative_Reply命令事件格式

2.2. BD_ADDR(蓝牙设备地址)

三、生成事件及参数说明

3.1.HCI_Command_Complete 事件

3.2. Status(状态)

3.3. BD_ADDR(蓝牙设备地址)

四、命令执行流程

4.1. 命令发起背景

4.2. 命令格式与参数

4.3. 命令在蓝牙协议栈中的传输路径

4.4. 蓝牙控制器的处理过程

4.5. 对配对过程及通信的影响

4.6. 反馈机制

4.7. 示例代码

五、使用场景

六、注意事项

6.1. 安全影响方面

6.2. 兼容性考虑方面

6.3. 应用层反馈方面

6.4. 命令发送与处理

6.5. 其他注意事项


HCI_PIN_Code_Request_Negative_Reply命令用于在蓝牙设备配对过程中,当主机(Host)无法为连接指定一个PIN码时,回复来自BR/EDR(基本速率/增强数据速率)控制器的PIN码请求事件。这个命令会导致与远程设备的配对请求失败。

一、命令概述

当BR/EDR控制器生成一个HCI_PIN_Code_Request事件,以响应来自远程链路管理器(Link Manager)的请求时(通常是由于远程主机发送了HCI_Create_Connection或HCI_Authentication_Requested命令),本地主机需要在远程链路管理器检测到LMP(链路管理协议)响应超时之前,使用HCI_PIN_Code_Request_Reply或HCI_PIN_Code_Request_Negative_Reply命令进行回复。

如果主机无法为连接指定一个PIN码,则应发送HCI_PIN_Code_Request_Negative_Reply命令。这会导致配对请求失败,并且远程设备将不会与本地设备建立连接。 

 二、命令事件及参数说明

2.1. HCI_PIN_Code_Request_Negative_Reply命令事件格式

HCI_PIN_Code_Request_Negative_Reply命令事件格式遵循蓝牙HCI协议的规范。该命令的格式如下:

  • 事件类型:HCI Command Packet(命令分组),以0x01开头。

  • 操作码(Opcode):由操作码组字段(OGF)和操作码命令字段(OCF)组成。对于HCI_PIN_Code_Request_Negative_Reply命令,OGF为0x01,OCF为0x000E(或简写为0x040E,其中高4位为OGF,低8位为OCF)。

  • 参数总长度:表示后续参数的总长度,以字节为单位。

  • 参数(BD_ADDR):6个字节,表示请求PIN码的远程蓝牙设备的地址。

2.2. BD_ADDR(蓝牙设备地址)

当 HCI_PIN_Code_Request_Negative_Reply 命令被发送时,BD_ADDR 参数用于指定哪个设备的 PIN 码请求被拒绝。控制器会使用这个地址来识别哪个远程设备正在尝试与本地设备建立连接,并因其无法提供有效的 PIN 码而被拒绝。

BD_ADDR 代表着蓝牙设备地址(Bluetooth Device Address),它是一个在全球范围内唯一标识每个蓝牙设备的标识符,类似于网络通信中设备的 MAC 地址。在复杂的蓝牙网络环境或者多设备同时存在的场景中,通过 BD_ADDR 能清晰地界定命令的目标设备,避免出现误操作或者回复到错误设备的情况,保证整个命令执行的准确性和针对性。蓝牙MAC地址-CSDN博客

三、生成事件及参数说明

3.1.HCI_Command_Complete 事件

HCI_PIN_Code_Request_Negative_Reply命令执行完成后,会生成一个HCI_Command_Complete事件。这个事件包含了:

  • Num_HCI_Command_Packets:一个表示主机可以发送到控制器的HCI命令包数量的字段(这通常是一个固定的值,对于大多数命令来说都是1)。
  • Command_Opcode:执行完成的命令的操作码。
  • Return_Parameters:对于某些命令来说,这里可能包含额外的返回参数(对于HCI_PIN_Code_Request_Negative_Reply来说,通常不会有额外的参数)。
  • Status:表示命令执行结果的状态码(与上面提到的状态码相同)。

3.2. Status(状态)

Status用于指示 HCI_PIN_Code_Request_Negative_Reply 命令是否成功执行。大小为 1 个八位组(octet),即 1 字节。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com