嗨,在一个项目中,我们想广告2秒后,扫描3秒。我实现了广告和扫描切换机制,但我有一些问题。如何设置扫描窗口和扫描间隔值?我想扫描信标大约3秒钟?
我定义了价值观
cmd->op.code=GAPM\u SCAN\u ACTIVE;
cmd->op.addr\u src=GAPM\u STATIC\u addr;
cmd->interval=MS_TO_BLESLOTS(3000);//总间隔3000 ms
cmd->window=MS_TO_BLESLOTS(1000);//每个通道1000 ms
cmd->mode=GAP\u GEN\u发现;
cmd->filt\u policy=SCAN\u ALLOW\u ADV\u ALL;
cmd->filter\u duplic=SCAN\u FILT\u duplic;
但是扫描时间大约需要7.94秒
扫描完成状态为69(间隙错误超时)
设备:
你好,btdev,
请尝试使用GAPM\u SCAN\u PASSIVE而不是GAPM\u SCAN\u ACTIVE。在被动扫描配置中,中央仅接收广告数据,不发送扫描请求(scan_REQ)以便从外围设备接收扫描响应(scan_RESP)。关于超时,您应该设置第二个计时器来停止扫描过程。然后,您应该添加另一个回调。app\u on\u scanning\u completed=扫描\u completed。在scanning_completed()中,您应该将设备重新配置为外设并重新启动广告。
谢谢,下午好
嗨,我加了个计时器。并扫描已完成的回调(在user\u callback.h中)。在运行扫描停止后3秒,但不打印扫描停止printf和不运行扫描完成回调。只需在3秒后停止应用程序
你好,btdev,
您提到扫描过程一完成,就不会触发回调函数。您是否在user\u callbacks\config.h文件中的user\u app\u callbacks sttacture的.app\u on\u scanning\u completed项中注册了回调函数?当扫描停止时,代码会去哪里?
谢谢,下午好