蓝牙连接hci 命令和事件的交互

参考:在HCI层看蓝牙的连接过程_hci 获取蓝牙pin码-CSDN博客

我这边查看的是core 5.2

一、数据交互流程

1、ACL连接建立后的可选流程

参考蓝牙core5.2: vol2 --> PartF --> 4

1.1 AUTHENTICATION REQUESTED

Authentication can be explicitly executed at any time after a
connection has been established. If no Link Key is available then the Link Key
is required from the Host.

身份验证可以在连接建立后的任何时间显式执行。如果没有可用的链接密钥,则需要主机提供链接密钥

1.2 简单配对信息交互

2、SYNCHRONOUS CONNECTION SETUP (SCO和ESCO连接流程)

Using the HCI_Setup_Synchronous_Connection command, a Host can add a
synchronous logical channel to the link. A synchronous logical link can be
provided by creating a SCO or an eSCO logical transport.
Note: An ACL connection must be established before a synchronous
connection can be created.

HCI Setup Synchronous Connection命令用来在链路上添加同步逻辑通道。同步逻辑链路可以通过创建SCO或eSCO逻辑传输来提供。

注意:创建同步连接前,必须先建立ACL连接

分三个场景,这儿只列出来一个场景

二、hci命令和事件

Link Key Request Reply command

core5.2: vol4 --> PartE --> 7.1.10

Description:
The HCI_Link_Key_Request_Reply command is used to reply to an
HCI_Link_Key_Request event from the Controller, and specifies the Link Key
stored on the Host to be used as the link key for the connection with the other
BR/EDR Controller specified by BD_ADDR. The HCI_Link_Key_Request
event will be generated when the BR/EDR Controller needs a Link Key for a
connection.
When the BR/EDR Controller generates an HCI_Link_Key_Request event in
order for the local Link Manager to respond to the request from the remote Link
Manager (as a result of an HCI_Create_Connection or
HCI_Authentication_Requested command from the remote Host), the local
Host shall respond with either an HCI_Link_Key_Request_Reply or
HCI_Link_Key_Request_Negative_Reply command before the remote Link
Manager detects LMP response timeout.

翻译:HCI Link Key Request Reply命令用于回复控制器发出的HCI Link Key Request事件,并指定存储在主机上的Link Key作为与BD ADDR指定的另一个BR/EDR控制器连接的Link Key。当BR/EDR控制器需要用于连接的Link Key时,将生成HCI Link Key Request事件。当BR/EDR控制器生成HCI链路密钥请求事件,以便本地链路管理器响应来自远程链路管理器的请求时(作为HCI创建连接或HCI认证请求的结果)

困惑1:Link Key Request一开始以为是一个hci命令,由host发起,但是却在命令里找不到这个,只能找到Link Key Request Reply?

答:Link Key Request event  是一个事件,是从controller里向host发起的,不是由蓝牙协议栈发起, 在蓝牙core的 在vol4 --> PartE --> 7.7.23

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络实践】(十二)大学校园网综合项目设计

本系列包含: (一)以太网帧分析与网际互联协议报文结构分析 (二)地址解析协议分析与传输控制协议特性分析 (三)交换机的基本操作、配置、 虚拟局域网配置和应用 (四)交…

制造企业数据治理体系搭建与业务赋能实践

当下制造企业正面临着前所未有的机遇与挑战,从多环节业务协同的复杂性,到海量数据资源的沉睡与孤岛化;从个性化定制需求的爆发,到供应链效率优化的迫切性——如何通过数据治理将“数据包袱”转化为“数据资产”,已成为…

python高级编程一(生成器与高级编程)

@TOC 生成器 生成器使用 通过列表⽣成式,我们可以直接创建⼀个列表。但是,受到内存限制,列表容量肯定是有限的。⽽且,创建⼀个包含100万个元素的列表,不仅占⽤很⼤的存储空间,如果我们仅仅需要访问前⾯⼏个元素,那后⾯绝⼤多数元素占 ⽤的空间都⽩⽩浪费了。所以,如果…

智能指针之设计模式2

前面介绍了工厂模式控制了智能指针和资源对象的创建过程,现在介绍一下智能指针是如何利用代理模式来实现“类指针(like-pointer)”的功能,并控制资源对象的销毁过程的。 2、代理模式 代理模式是为其它对象提供一种代理以控制对这…

探索R语言:在线学习资源汇总

一、收集关于特定R主题的问题和答案(Q&A) 1. Stack overflow Empowering the world to develop technology through collective knowledge – Stack Overflowhttps://stackoverflow.co/ 二、Rstudio工具栏help Rstudio中有个Cheat sheet&#xf…

《C语言中以数组作为参数的探讨》

🚀个人主页:BabyZZの秘密日记 📖收入专栏:C语言 🌍文章目入 一、数组作为参数的传递机制二、数组参数的声明方式(一)省略数组大小(二)指定数组大小(三&#x…

深入解析区块链技术:原理、应用与未来展望

1 区块链技术原理 1.1 基本概念 区块链本质上是一个分布式账本,它由一系列按照时间顺序排列的数据块组成,每个数据块包含了一定时间内的交易信息。这些数据块通过密码学技术相互链接,形成一个不可篡改的链条。其核心特点包括去中心化、不可篡…

selenium快速入门

一、操作浏览器 from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By# 设置选项 q1 Options() q1.add_argument("--no-sandbo…

面试如何应用大模型

在面试中,如果被问及如何应用大模型,尤其是面向政务、国有企业或大型传统企业的数字化转型场景,你可以从以下几个角度进行思考和回答: 1. 确定应用大模型的目标与痛点 首先,明确应用大模型的业务目标,并结合企业的实际需求分析可能面临的痛点。这些企业通常会关注如何提…

嵌入式常见概念的介绍

目录 一、MCU、MPU、ARM (一)MCU(微控制器) (二)MPU(微处理器) (三)ARM(架构) 二、DSP (一)数字信号处理…

深度强化学习(DRL)框架与多目标调度优化详解

深度强化学习(DRL)框架与多目标调度优化详解 (截至2025年4月,结合最新研究进展) 一、DRL主流框架及核心算法 通用DRL框架 Ray RLlib:支持分布式训练,集成PPO、A3C、DQN等算法,适用于…

centos 安装python3.9.9

这里写自定义目录标题 安装编译依赖 sudo yum -y groupinstall "Development Tools" sudo yum -y install openssl-devel bzip2-devel libffi-devel wget zlib-devel yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel …

【动态规划】深入动态规划:背包问题

文章目录 前言01背包例题一、01背包二、分割等和子集三、目标和四、最后一块石头的重量|| 完全背包例题一、完全背包二、 零钱兑换三、零钱兑换||四、完全平方数 前言 什么是背包问题,怎么解决算法中的背包问题呢? 背包问题 (Knapsack problem) 是⼀种组…

Vue 接口请求 Nginx配置实时压缩 速度起飞

生效之前 nginx配置如下 gzip on; gzip_min_length 1k; gzip_buffers 16 256k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types application/json application/javascript text/javascript text/css text/plain; gzip_vary on; 生效之后 #user…

Mitosis:跨框架的UI组件解决方案

Mitosis 是一个开源工具,可以将 JSX 组件转换为 Angular、React、Qwik、Vue、Svelte、Solid 和 React Native 等框架的功能齐全的组件。 Stars 数13019Forks 数593 主要特点 跨框架兼容性:Mitosis 允许开发者编写一次组件,然后编译成多个主流…

齐次坐标系统:什么是齐次坐标?为什么要引入齐次坐标?

齐次坐标系统:计算机图形学的基础 在计算机图形学、计算机视觉、相机标定、三维建模等领域,齐次坐标是一个非常重要的数学工具。本文将介绍:齐次坐标的基本概念、数学原理、我们为什么要引入齐次坐标、及其在实际应用中的价值。 文章目录 齐…

JS的大数运算(注意:原生的只支持整数计算!!!)

JS的大数运算(注意:原生的只支持整数计算!!!) 一、JS的大数运算(注意:原生的只支持整数计算!!!)1. 数字精度限制2. 大数解决方案2.1. …

Android 之美国关税问题导致 GitHub 403 无法正常访问,责任在谁?

这几天各国关税问题导致世界动荡不安,如今GitHub又无法正常访问,是不是Google到时候也无法正常使用了。

JAVA中正则表达式的入门与使用

JAVA中正则表达式的入门与使用 一,基础概念 正则表达式(Regex) 用于匹配字符串中的特定模式,Java 中通过 java.util.regex 包实现,核心类为: Pattern:编译后的正则表达式对象。 Matcher&#…

Prompt_Engineering提示词工程(一)

一、Prompt(提示词) Prompt(提示词)是给AI模型交互文本片段,用于指导模型生成符合预期输出结果,提示词的目的是为模型提供一个上下文的任务,以便模型能够更准确地理解用户的意图,并…