btstack协议栈实战篇--GAP Link Key Management

2024-06-08 20:04

本文主要是介绍btstack协议栈实战篇--GAP Link Key Management,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

btstack协议栈---总目录-CSDN博客

目录

     1.GAP 链接密钥逻辑

     2.蓝牙逻辑

     3.主应用程序设置

    4.log信息


        展示了如何遍历存储在 NVS 中的经典链接密钥,链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换,例如在桌面系统上,则每个控制器都需要一个链接密钥数据库。我们需要等待直到蓝牙堆栈启动并根据控制器的 BD ADDR 选择正确的链接密钥数据库。

     1.GAP 链接密钥逻辑

        列出存储的链接密钥。

     2.蓝牙逻辑

        在列出存储的链接密钥之前等待蓝牙启动。

     3.主应用程序设置

        主应用程序代码注册 HCI 数据包处理器并启动蓝牙堆栈。

/* @section GAP Link Key Logic ** @text List stored link keys*/ 
static void list_link_keys(void){bd_addr_t  addr;link_key_t link_key;link_key_type_t type;btstack_link_key_iterator_t it;int ok = gap_link_key_iterator_init(&it);if (!ok) {printf("Link key iterator not implemented\n");return;}printf("Stored link keys: \n");while (gap_link_key_iterator_get_next(&it, addr, link_key, &type)){printf("%s - type %u, key: ", bd_addr_to_str(addr), (int) type);printf_hexdump(link_key, 16);}printf(".\n");gap_link_key_iterator_done(&it);
}/* @section Bluetooth Logic ** @text Wait for Bluetooth startup before listing the stored link keys*/ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){UNUSED(channel);UNUSED(size);if (packet_type != HCI_EVENT_PACKET) return;switch(hci_event_packet_get_type(packet)){case BTSTACK_EVENT_STATE:if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){list_link_keys();break;}break;default:break;}
}/* @section Main Application Setup** @text Listing MainConfiguration shows main application code.* It registers the HCI packet handler and starts the Bluetooth stack.*//* LISTING_START(MainConfiguration): Setup packet handler for GAP inquiry */
int btstack_main(int argc, const char * argv[]);
int btstack_main(int argc, const char * argv[]) {(void)argc;(void)argv;hci_event_callback_registration.callback = &packet_handler;hci_add_event_handler(&hci_event_callback_registration);// turn on!hci_power_control(HCI_POWER_ON);return 0;
}
/* LISTING_END */

       4.log信息

这篇关于btstack协议栈实战篇--GAP Link Key Management的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043171

相关文章

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is