请教蓝牙配网Blefi和gatt server共存的问题
请教蓝牙配网Blefi和gatt server共存的问题
请教下有个项目既要使用蓝牙配网Blefi,又要使用ble作为服务器(gatt server),这2者能否共存?blefi例程中esp_ble_gap_register_callback(esp_blufi_gap_event_handler),和gatt server例程中esp_ble_gap_register_callback(gap_event_handler)注册gap event callback是否冲突?怎么处理能够共存?
-
- Posts: 41
- Joined: Thu May 04, 2023 3:49 am
Re: 请教蓝牙配网Blefi和gatt server共存的问题
1-gap event callback 会发生冲突
2-如果这两个功能都要使用,可以考虑将这两个功能的 gap event callback 合成一个。在同一个回调函数中处理 gap 事件。
2-如果这两个功能都要使用,可以考虑将这两个功能的 gap event callback 合成一个。在同一个回调函数中处理 gap 事件。
Re: 请教蓝牙配网Blefi和gatt server共存的问题
好的,谢谢,请问有没有合并demo可以参考?ESP_zhanghaipeng wrote: ↑Fri Jun 02, 2023 7:57 am1-gap event callback 会发生冲突
2-如果这两个功能都要使用,可以考虑将这两个功能的 gap event callback 合成一个。在同一个回调函数中处理 gap 事件。
Re: 请教蓝牙配网Blefi和gatt server共存的问题
你好,我把blufi例程中esp_blufi_gap_register_callback->esp_ble_gap_register_callback BLUFI注册GAP回调的函数注释掉,在gatt_server_service_table例程中gap_event_handler的ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT中调用esp_ble_gap_start_advertising 2次,参数分别为blufi的blufi_adv_params和gatt_server_service_table例程本身的adv_params。这里不知道应该调用一个还是2次?ESP_zhanghaipeng wrote: ↑Fri Jun 02, 2023 7:57 am1-gap event callback 会发生冲突
2-如果这两个功能都要使用,可以考虑将这两个功能的 gap event callback 合成一个。在同一个回调函数中处理 gap 事件。
另外:
blufi和gatt_server,这2个例程注册完事件后都需要调用esp_ble_gap_set_device_name和esp_ble_gap_config_adv_data函数,那么共存时该怎么调用?只需要在一个enevt_call中调用一次,还是都需要调用?
-
- Posts: 41
- Joined: Thu May 04, 2023 3:49 am
Re: 请教蓝牙配网Blefi和gatt server共存的问题
问题一:
- 设置一次 adv param(使用 blufi_adv_params)。
- 设置一次 adv data(使用 blufi_adv_data)。
- 调用一次 esp_ble_gap_start_advertising。
问题二:
在共存时,只能使用 blufi 的设置,因为这些信息被使用到。
在创建数据库时,可以同时创建 blufi 和自定义 GATT 服务器的服务,实现共存功能。
以上是最简单的共存实现方法,但是 adv param 和 adv data 只能使用 blufi 的。
备注:
如果想使用两者的 adv data 数据,可以使用定时器功能,轮流发送两者的广播数据。这样客户端就能同时发现两者的广播数据。然而,adv param 仍然只能使用 blufi 的,因为 adv param 中的信息会影响一些配置。
- 设置一次 adv param(使用 blufi_adv_params)。
- 设置一次 adv data(使用 blufi_adv_data)。
- 调用一次 esp_ble_gap_start_advertising。
问题二:
在共存时,只能使用 blufi 的设置,因为这些信息被使用到。
在创建数据库时,可以同时创建 blufi 和自定义 GATT 服务器的服务,实现共存功能。
以上是最简单的共存实现方法,但是 adv param 和 adv data 只能使用 blufi 的。
备注:
如果想使用两者的 adv data 数据,可以使用定时器功能,轮流发送两者的广播数据。这样客户端就能同时发现两者的广播数据。然而,adv param 仍然只能使用 blufi 的,因为 adv param 中的信息会影响一些配置。
Who is online
Users browsing this forum: No registered users and 102 guests