【ESP32学习笔记】 BLE初识,简介,配置

2.2 GATT (Generic Attribute Profile)
GATT (通用属性配置) ,它定义两个 BLE 设备通过 Service 和 Characteristic 进行通信;

GATT 就是使用了 ATT(Attribute Protocol)协议,ATT层定义了一个通信的基本框架,数据的基本结构,以及通信的指令,Service 和 characteristic 就是GATT层定义的, GATT层用来赋予每个数据一个具体的内涵,让数据变得有结构和意义。

前面说过 server 端提供服务,服务就是数据,而数据就是一条一条的attribute,而service和characteristic 就是数据的逻辑呈现,或者说用户能看到的数据最终都转化为 service 和 characteristic。

一旦两个设备建立起了连接,GATT 就开始起作用了,这里需要说明的是,GATT 连接必需先经过 GAP 协议。

GATT 连接需要特别注意的是:GATT 连接是独占的。也就是一个 BLE 外设同时只能被一个中心设备连接;

中心设备和外设需要双向通信的话,唯一的方式就是建立 GATT 连接。

2.3 GAP(Generic Access Profile)
Generic Access Profile(通用访问规范) 它在用来控制设备连接和广播,用于提供蓝牙设备的通用访问功能,包括设备发现、连接、鉴权、服务发现等等。

GATT是建立连接后通信规范, 而蓝牙是通过GAP建立通信的。

GAP 使你的设备被其他设备可见,并决定了你的设备是否可以或者怎样与合同设备进行交互。

GAP 给设备定义了若干角色,其中主要的两个是:外围设备(Peripheral)和中心设备(Central)。

外围设备:这一般就是非常小或者简单的低功耗设备,用来提供数据,并连接到一个更加相对强大的中心设备。例如小米手环。
中心设备:中心设备相对比较强大,用来连接其他外围设备。例如手机等。
2.4 ATT(Attribute Protocol)
ATT(Attribute Protocol)属性层是 GATT 和 GAP 的基础,它定义了BLE协议栈上层的数据结构和组织方式。

ATT协议定义了两种角色:服务器角色和客户端角色。

站在蓝牙协议栈角度来看,ATT层定义了一个通信的基本框架,数据的基本结构,以及通信的指令,而GATT层就是前文所述的service和characteristic,GATT层用来赋予每个数据一个具体的内涵,让数据变得有结构和意义。

GATT 是脱胎于 ATT ,ATT 是 Attribute Protocol Specification 属性规范协议,注意ATT是协议,而GATT是规范,两者不同点在于 ATT规定了数据格式,而 GATT 则是按照 ATT 的格式将具体数据填充进去。

linux 命令行下 新建组件命令

djx@djx-virtual-machine:~/esp/gatt_server_service_table$ idf.py -C components create-component led
Executing action: create-component
The component was created in /home/djx/esp/gatt_server_service_table/components/led

ESP-IDF:关于添加自己的components组件时使用基础库报错:No such file or directory时的原因以及其解决办法
需要在组件目录的CMakeLists.txt 添加内容如下:
idf_component_register(SRCS “led.c”
REQUIRES driver
INCLUDE_DIRS “include”)
再次编译,既编译通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值