你好,
我试图实现一个系统,其中只有白名单的设备被允许扫描,但每个设备都被允许发送一个连接请求。
我查过了adv_filt_policy在user_config.h过滤策略有这样一个选项。但是,当我设置此选项时,我无法看到我的设备并发送连接请求。你能给我一些指示,告诉我如何解决这个问题并实现这样的想法吗?
我的目标是指示白名单设备何时发送扫描请求。
目前,我的工作是基于ble_app_securitySDK和的示例scan_request_tracker的例子。
问候,
哈米德
关键词:
设备:
嗨hamiddhosseini,
您使用的SDK版本是什么?白名单是在最新SDK发行版(版本6.0.14.1114)中添加的。请参见app_easy_whitelist.c中的app_easy_manage_wlist() API。
请问你们是否在使用那个API?
谢谢,PM_Dialog
我使用的是SDK 6.0.14,我有app_easy_manage_wlist ()API。
但是,我应该能够向设备发送连接请求,不管白名单,因为广告过滤策略设置为ADV_ALLOW_SCN_WLST_CON_ANY。现在,我不能发送扫描请求和连接请求。
此外,我有以下几个问题:
1-设备配对后不自动加入白名单吗?
2-如果不是自动的,我应该在配对成功后将设备添加到白名单。然后我必须检查该设备是否存在于白名单中。但是,白名单操作不包括搜索方法。如何在白名单中进行搜索?
最好的问候,
哈米德
嗨哈米德,
当app_easy_manage_wlist()被调用时,设备BD地址存储在gap_ral_dev_info结构中。你能分享一下你是如何使用app_easy_manage_wlist() API的吗?您是否正在使用SDK示例?
谢谢,PM_Dialog
你好,
正如前面提到的,我使用的是SDK的ble_app_security示例,并添加了scan_request_track。这些示例一起工作很好,我可以看到发送扫描请求的设备的地址。
此时,我希望触发一个事件,以防来自白名单设备的扫描请求。话虽如此,我有两个选择:
1-更改adv_filt_policy为ADV_ALLOW_SCAN_WLST_CON_ANY;这将自动阻止非白名单设备发送扫描请求。然而,这种改变会导致设备完全停止广告。它不会崩溃,但没有广告包。
2-我的第二个选择是允许每个设备发送扫描请求,并在scan_request_cb中搜索白名单中的设备。但是,app_easy_manage_wlist()没有用于搜索白名单的任何命令,因此我目前没有使用它。
嗨哈米德,
请问这个问题和这个问题是否有关联?
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/verifying-scaners-identity
谢谢,PM_Dialog
是的,想法是一样的。在这里我讨论的是第一个选项,但由于这似乎是不可能的,我开始实现第二个选项,我觉得我需要开始一个新的主题。
嗨哈米德,
谢谢你的澄清。所以,让我们在你的其他论坛讨论这个问题。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/problem-advertisement-filtering-policy
谢谢,PM_Dialog
好吧