乐鑫技术交流
直播中

陈文博

8年用户 958经验值
擅长:测量仪表
私信 关注
[问答]

请问esp_ble_gattc_open()是会同时触发ESP_GATTC_CONNECT_EVT和ESP_GATTC_OPEN_EVT两个事件吗?

请问esp_ble_gattc_open()是会同时触发ESP_GATTC_CONNECT_EVT和ESP_GATTC_OPEN_EVT两个事件吗?是只有gatt层面的open,没有gap层面的connect API;但是同时有gatt层面的close,以及gap层面的disconnect对嘛?
                                 

回帖(1)

goodmbby

2024-6-12 17:27:06
首先,我们来了解一下ESP_GATTC_CONNECT_EVT和ESP_GATTC_OPEN_EVT这两个事件。

1. ESP_GATTC_CONNECT_EVT:这个事件表示GATT客户端已经成功连接到GATT服务器。这个事件通常在调用esp_ble_gattc_open()函数后触发。

2. ESP_GATTC_OPEN_EVT:这个事件表示GATT客户端已经成功打开了一个GATT连接。这个事件通常在ESP_GATTC_CONNECT_EVT事件之后触发。

现在我们来回答您的问题:

1. esp_ble_gattc_open()是否会同时触发ESP_GATTC_CONNECT_EVT和ESP_GATTC_OPEN_EVT两个事件?

答:不会。当调用esp_ble_gattc_open()函数时,首先会触发ESP_GATTC_CONNECT_EVT事件,表示GATT客户端已经成功连接到GATT服务器。然后,在连接建立后,会触发ESP_GATTC_OPEN_EVT事件,表示GATT客户端已经成功打开了一个GATT连接。

2. 是否只有gatt层面的open,没有gap层面的connect API?

答:是的。在ESP BLE GATT客户端中,您需要使用esp_ble_gattc_open()函数来打开GATT连接。这个函数会处理GATT层面的连接和打开操作。而对于GAP层面的连接,ESP BLE已经为您处理了,您不需要手动调用GAP层面的connect API。

3. 是否同时有gatt层面的close,以及gap层面的disconnect?

答:是的。在ESP BLE GATT客户端中,您可以使用esp_ble_gattc_close()函数来关闭GATT连接。这个函数会处理GATT层面的关闭操作。同时,ESP BLE也会处理GAP层面的disconnect操作,您不需要手动调用GAP层面的disconnect API。

总结一下,当您调用esp_ble_gattc_open()函数时,会先触发ESP_GATTC_CONNECT_EVT事件,然后触发ESP_GATTC_OPEN_EVT事件。在ESP BLE GATT客户端中,您需要使用esp_ble_gattc_open()和esp_ble_gattc_close()函数来处理GATT层面的连接和关闭操作,而GAP层面的连接和断开操作由ESP BLE自动处理。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分