Ping
1. 关于白名单过滤机制
当设备绑定之后,再次开启广播时可以使用白名单过滤机制,白名单是一组蓝牙地址的列表,设备只接受来自位于白名单中蓝牙设备的扫描和连接请求。
2. 如何开启白名单过滤机制
(1) 将广播参数的“filter_pol”字段配置为“GAP_ADV_ALLOW_SCAN_WLST_CON_WLST”, 即表示开启了白单过滤策略,设备配对绑定之后, SDK会自动把对端设备的身份地址添加到白名单列表中,因此无需用户添加,只需在广播参数配置中开启白名单过滤策略即可;
(2) 广播参数需要设置为GAP_DISC_MODE_NON_DISCOVERABLE , 因为在开启白名单的情况下,只能使用不可发现模式;
3. GR551X最大支持添加多少个白名单?
GR551x controller 协议栈可以支持添加 10 个白名单,但是只支持添加 3 个解析列表,而对于手机端的 RPA地址而言,只有当 RPA 地址被成功解析之后才能通过白名单的过滤策略。在绑定多个设备之后,如果再次开启的广播是带了白名单过滤策略的,那么有可能会因为无法解析手机端的RPA 地址导致设备无法连接。因此当用户绑定设备多于 3 个的情况下,建议开启广播时不要带白名单过滤策略。
4. 恢复出厂设置时,如何清除存储在NVDS区域的白名单信息?
调用 ble_gap_whitelist_clear()接口清除白名单信息,ble_gap_bond_devs_clear()接口清除配对绑定信息。
备注说明:
1. 如果开启白名单功能,默认需要开启隐私功能;
2. 在开启白名单的情况下,只能使用不可发现模式,即广播参数需要设置为GAP_DISC_MODE_NON_DISCOVERABLE;
Ping
如果开启白名单功能,默认需要开启隐私功能,参考如下API说明:
/**
****************************************************************************************
* @brief Set privacy related parameters.
* @param[in] renew_dur: Duration before regenerating a device address when privacy is enabled in seconds. Range: 0x0001 (1s) ~ 0xA1B8 (11.5 hr).
* The suggested time is 900s(15 minutes).
* @param[in] enable_flag: Indicate the controller privacy is enabled or disabled.
*
* @retval ::SDK_SUCCESS: Operation is successful.
* @retval ::SDK_ERR_INVALID_PARAM: Invalid parameter supplied.
****************************************************************************************
*/
uint16_t ble_gap_privacy_params_set(uint16_t renew_dur, bool enable_flag);
185***329
为什么我将广播参数的“filter_pol”字段配置为“GAP_ADV_ALLOW_SCAN_WLST_CON_WLST”后没有效呢?我是开启白名单功能前 “filter_pol”字段配置为“GAP_ADV_ALLOW_SCAN_ANY_CON_ANY ” 连接手机蓝牙配对白名单列表加入地址后才把配置改为 GAP_ADV_ALLOW_SCAN_WLST_CON_WLST,但是白名单列表那台手机搜不到蓝牙设备,没有广播!这个白名单有相关的咧程吗?
打开微信,使用“扫一扫”即可关注