DA14585窗口大小和扫描间隔

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
4个职位/0个新职位
最后一篇文章
ltdev公司
离线
最后一次见到:3个月4天前
已加入:2018-11-12 09:19
DA14585窗口大小和扫描间隔

嗨,在一个项目中,我们想广告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(间隙错误超时)

设备:
PM\U对话框
离线
最后一次见到:1天15小时前
工作人员
已加入:2018-02-08 11:03
你好,btdev,

你好,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()中,您应该将设备重新配置为外设并重新启动广告。

谢谢,下午好

ltdev公司
离线
最后一次见到:3个月4天前
已加入:2018-11-12 09:19
//扫描停止计时器回调
//扫描停止计时器回调void scanStopTimer_CB(void){arch_printf(“扫描停止\r\n”);struct gapm\u cancel\u cmd*cmd=(struct gapm\u cancel\u cmd*)KE\u MSG\u ALLOC(gapm\u cancel\u cmd,TASK\u gapm,TASK\u APP,gapm\u cancel\u cmd);cmd->operation=GAPM\u SCAN\u PASSIVE;//设置GAPM_SCAN_PASSIVE ke_msg_send(cmd);//发送消息}//scan start function static void user\u scan\u start(void){struct gapm\u start\u scan\u cmd*cmd=KE\u MSG\u ALLOC(gapm\u start\u scan\u cmd,TASK\u gapm,TASK\u APP,gapm\u start\u scan\u cmd);cmd->op.code=GAPM\u SCAN\u PASSIVE;cmd->op.addr\u src=GAPM\u STATIC\u addr;命令->间隔=10;命令->窗口=5;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\u EN;//发送消息ke_msg_Send(cmd);//我们现在是可连接的//ke\u state\u set(TASK\u APP,APP\u connectable);scanStopTimer=app\u easy\u timer(300,scanStopTimer\u CB);arch_printf(“扫描开始\r\n”);}//。scan completed callback void user_on_scan_complete(const uint8_t param){arch_printf(“播发开始=%d\r\n”,param);//开始其他进程//}

嗨,我加了个计时器。并扫描已完成的回调(在user\u callback.h中)。在运行扫描停止后3秒,但不打印扫描停止printf和不运行扫描完成回调。只需在3秒后停止应用程序

PM\U对话框
离线
最后一次见到:1天15小时前
工作人员
已加入:2018-02-08 11:03
你好,btdev,

你好,btdev,

您提到扫描过程一完成,就不会触发回调函数。您是否在user\u callbacks\config.h文件中的user\u app\u callbacks sttacture的.app\u on\u scanning\u completed项中注册了回调函数?当扫描停止时,代码会去哪里?

谢谢,下午好