不同的扫描性能

11个职位/0个新职位
最后一篇文章
亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
不同的扫描性能

我们测试了以下两个传感器:
A: 使用connection manager+(SDK)monitor\u fe\u usb进行测试
B: 使用基于smarttag ref设计代码开发的扫描代码进行测试

A和B分别使用BLE USB加密狗来扫描某个BLE节点,该节点总是在广告中。。。

试验结果:
使用:通过单击连接管理器的“扫描”按钮,每次日志窗口都可以通过BLE广告节点快速报告/打印广告数据(例如在屏幕上打印约1秒)
我们在gapm_adv_report_ind_handler()的第一行设置断点;
然后单击Keil中的run按钮。
每次点击“run”,只需1秒到10秒(每次点击“run”得到的结果不同)
播发扫描的数据并在断点处停止。)

在我们的应用程序中:
-对于扫描模式配置,我们有以下配置:

无效应用程序扫描(void)
{

//创建内核消息以开始扫描
struct gapm\u start\u scan\u cmd*msg=(struct gapm\u start\u scan\u 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);
//最大对等连接
msg->mode=GAP\u GEN\u发现;
//msg->mode=间隙\观察者\模式;
消息->操作码=GAPM\扫描\激活;
消息->操作地址=GAPM\公共地址;
msg->filter\u duplic=扫描\u FILT\u duplic\u EN;
msg->interval=10;//APP\u SCAN\u interval;
msg->window=5;//应用程序扫描窗口;

//发送消息
发送消息(msg);
}

void app\u configuration\u func(ke\u task\u id\u t const task\u id,struct gapm\u set\u dev\u config\u cmd*cmd)
{
//操作选择
cmd->operation=GAPM\u SET\u DEV\u CONFIG;

//设备角色
cmd->role=GAP\u CENTRAL\u MST;

//定义的最大传输单位
cmd->max_mtu = 160;  //APP_CFG_MAX_MTU
}

-在gapm\u cmp\u evt\u handler()中,我们有下面几行使其保持扫描。
案例GAPM\扫描\被动:
案例GAPM\扫描\激活:
{
应用程序扫描();
}

我们不知道什么是连接管理器“引导为中心”的过程,但测试结果是如此不同(连接管理器扫描节点很快…但我们的代码扫描节点很慢…),请建议什么是它的主要问题,我们应该如何解决它。

谢谢您!

JE\U对话框
离线
最后一次见到:5天9小时前
工作人员
已加入:2013-12-05 14:02
你好,亚历克斯,我有助理

你好,亚历克斯,我已经协助我们在中国的本地团队跟进你。致以最诚挚的问候

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
还没修好。。。

还没修好。。。
我们进一步测试如下:
Connection Manager+CM固件扫描快速获取广告数据(每次扫描1~2s内);
主机应用程序+监视器\u fe\u usb扫描获取播发数据速度慢(每次扫描1秒~10秒)
SPS\U主机扫描获取播发数据的速度很慢(每次扫描从1秒到10秒)。
(在测试中,我们将播发节点adv\u间隔分别设置为20ms和100ms,但与测试结果没有差异)
所以找SDK或者参考设计示例软件(Monitor,SPS),扫描速度慢。对于CM来说,它很快。
我们需要在我们的应用程序快速扫描,所以请帮助建议我们应该做什么。

谢谢您!

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
已经过去一个星期了…是的

已经过去一个星期了…我们确实需要一些帮助。
换句话说,我们需要一个关于如何在短时间内(比如500毫秒?)扫描对等广播ADV\u数据的指导。。。还是可行?

乔奇姆韦
离线
最后一次见到:1年2个月前
上师
已加入:2014-01-14 06:45
你可以试着改变你的想法

您可以尝试更改扫描窗口/间隔。
扫描窗口是它实际扫描的时间,而扫描间隔是它在每次扫描窗口开始之间等待的时间,即扫描间隔减去扫描窗口是每次扫描之间睡眠的时间。如果将“扫描窗口”设置为“扫描间隔”,则扫描时丢失播发数据包的可能性最低。当然,这会消耗更多的电流。
要求扫描窗口<=扫描间隔。
尝试将扫描窗口设置为50而不是5。
此外,发现的时间还将取决于您在外围设备上的广告间隔。较短的播发间隔意味着较短的发现时间,但会使用外围设备上电池的更多电流。

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
谢谢你,乔西姆…这是

谢谢你,乔西姆……我把间隔时间设为1362,把窗口设为1320,就修好了。请关上这张票。

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
我们在下面做了更多的测试

我们做了更多的测试…测试中设置的参数如下:
广告面:
-:adv_interval=0x20;//初始化后不更改值0x20;我们还尝试了0x40、0x100等。
-:cmd->操作码=GAPM\u ADV\u无向;
命令->操作地址=GAPM\公共地址;
cmd->intv\u max=adv\u interval;
cmd->intv\u min=adv\u interval;
cmd->channel\u map=APP\u ADV\u CHMAP;//0x07;
命令->信息主机模式=可发现的间隙;

扫描面:
-:我们尝试了不同的窗口/间隔设置:
//msg->interval=10;//APP\u SCAN\u interval;
//msg->window=10;//应用程序扫描窗口;
//msg->interval=1336;//APP\u SCAN\u interval;
//msg->window=1320;//应用程序扫描窗口;
msg->interval=100;//APP\u SCAN\u interval;
msg->window=100;//应用程序扫描窗口;

-:在gapm\u adv\u report\u ind\u handler()中,取消扫描;在gapm\u cmp\u evt\u handler()中,重新开始扫描;

在大多数测试用例中(假设10个测试中有8个测试,我们每次都会更改adv数据,以便读取扫描数据更新),扫描可以在1秒内获得adv,但仍然需要2秒或更长的时间才能成功扫描adv数据。
我们需要每个外围adv数据更新扫描中心在1秒内(500毫秒将更好),请建议任何其他方法,我们可以尝试得到改进?谢谢您。

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
我会更感激你的

我将感谢更多的指导,以提高…谢谢!

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
请帮忙…谢谢!

请帮忙…谢谢!

亚历克斯
离线
最后一次见到:2年3个月前
已加入:2014-08-20 03:39
问题仍然悬而未决。。

问题仍然悬而未决…只需要工厂指导/建议,请支持。谢谢!

JE\U对话框
离线
最后一次见到:5天9小时前
工作人员
已加入:2013-12-05 14:02
你好,亚历克斯,我会安排的

你好,亚历克斯,我会安排当地人联系。。BR JE\u对话框