嗨,在一个项目中,我们想要广告2秒后,扫描3秒。我实现了广告和扫描切换机制,但我有一些问题。我如何可以设置扫描窗口和扫描间隔值?我想扫描信标3秒?
我定义这些值
cmd - > op。代码= GAPM_SCAN_ACTIVE;
cmd - > op。addr_src = GAPM_STATIC_ADDR;
cmd - >间隔= MS_TO_BLESLOTS (3000);//总间隔3000毫秒
cmd - >窗口= MS_TO_BLESLOTS (1000);//每个通道1000ms
cmd - >模式= GAP_GEN_DISCOVERY;
cmd - > filt_policy = SCAN_ALLOW_ADV_ALL;
cmd - > filter_duplic = SCAN_FILT_DUPLIC_EN;
但是扫描时间大约需要7.94秒
扫描完成状态为69 (GAP_ERR_TIMEOUT)
设备:
嗨btdev,
请尝试使用GAPM_SCAN_PASSIVE而不是GAPM_SCAN_ACTIVE。在被动扫描配置中,中心只接收广告数据,不发送扫描请求(SCAN_REQ)以从外设接收扫描响应(SCAN_RESP)。关于超时,您应该设置第二个计时器来停止扫描过程。然后,您应该添加另一个回调.app_on_scanning_completed = scanning_completed。在scanning_completed()中,您应该将设备重新配置为外设并重新启动广告。
谢谢,PM_Dialog
嗨,我添加了一个计时器。并扫描完成的回调(在user_callback.h中)。在运行扫描停止后3秒,但不打印扫描停止打印和不运行扫描完成回调。只需在3秒后停止应用
嗨btdev,
您提到,一旦扫描过程完成,就不会触发回调函数。你是否在user_callback_config.h文件中的user_app_call_callbacks sttacture的.app_on_scanning_completed项中注册了回调函数?当扫描停止时,代码会去哪里?
谢谢,PM_Dialog