藍牙連接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.pswp.cn/diannao/78881.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/78881.shtml
英文地址,請注明出處:http://en.pswp.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模型交互文本片段,用于指導模型生成符合預期輸出結果,提示詞的目的是為模型提供一個上下文的任務,以便模型能夠更準確地理解用戶的意圖,并…