ESP_IDF BLE学习笔记
Generic Access / Generic Attribute
Generic Access 是一组用于定义设备的通用属性的服务和特性。它包括设备名称、外观、外设优选连接参数等。通过 Generic Access,设备可以向其他设备广播其基本信息,并且其他设备可以通过读取这些信息来识别和连接到该设备。
Generic Attribute 是一组用于定义设备的通用属性的服务和特性。它包括设备的服务和特性的定义、读写权限、通知和指示等。通过 Generic Attribute,设备可以提供一些自定义的属性,其他设备可以通过读取和写入这些属性来与设备进行交互。
这两个选项是 BLE 开发中必须配置的基本选项,它们定义了设备的基本信息和通信属性,以便设备可以与其他 BLE 设备进行通信和交互。
CONFIG_SET_RAW_ADV_DATA
设置原始广播数据。在 BLE 中,设备可以通过广播数据向周围的设备宣传自己的存在和提供的服务。通常情况下,设备会使用一些标准的 BLE 广播数据格式,如 Generic Access Profile (GAP) 中定义的格式,来广播设备的基本信息,如设备名称、外观等。
然而,有时候我们可能需要自定义广播数据的内容和格式,以满足特定的需求。在 ESP32 BLE 开发中,可以使用 CONFIG_SET_RAW_ADV_DATA 配置选项来设置原始广播数据。通过这个选项,可以指定自定义的广播数据内容和格式,从而实现更灵活和个性化的广播。
raw_adv_data[]
原始广播数据
每行数据:长度/类型/内容
raw_scan_rsp_data[]
扫描响应数据
gap_event_handler
GAP 是 BLE 协议栈中的一个部分,用于管理设备的广播、连接和断开连接等基本操作。LOG 连接断开广播事件。
预备写入事件
当遇到很大的数据块超过了单个蓝牙包的大小,就会开启分批次将写入的存储。直到最后一个包读取完成,进入的都是预备写入状态。
if (!param->write.is_prep){...}
else {
//预备写入状态
example_prepare_write_event_env(gatts_if, &prepare_write_env, param);
}
ESP_GATTS_EXEC_WRITE_EVT
当遇到很大的数据块超过了单个蓝牙包的大小,过量蓝牙写入事件。
gatts_event_handler
由于一个设备可以开启很多 GATT 服务器,当收到注册事件(ESP_GATTS_REG_EVT)时,会将每个配置文件的 GATT 接口 (gatts_if) 存储到相应的配置文件实例中。