CH579M observer模式下扫描掉包

如题,感觉CH579M扫描没有手机用nrfconnect扫描效率高,有一个ibeacon设置的广播频率是1s钟发10个包,手机扫描设备的频次非常高,几乎不丢包,但是ch579会持续丢好几秒。直接用的官方例程里的hex文件,尝试修改扫描参数如下:

// Scan duration in (625us)

#define DEFAULT_SCAN_WIN                 160


// Scan duration in (625us)

#define DEFAULT_SCAN_INT                 160

可是感觉也没有提升,请帮忙看下原因!


image.png

image.png


这里尝试将扫描的个数拉大一些试试看。

image.png


改这个值没有用哦,如果搜不到的情况下是一个都搜不到,不是说超了最大扫描数搜不到


改这个值没有用哦,如果搜不到的情况下是一个都搜不到,不是说超了最大扫描数搜不到


上面你写的是100ms往外发送一次包,然后扫描的时候也是100ms扫描一次,这个就会出现正好扫描不到的情况。

这里你需要将#define DEFAULT_SCAN_INT                 160  这个参数减小,同时将扫描的个数拉大一些。


您好,我今天又看了下这部分的代码,发现这个地方之前我修改应该是不会生效的。

因为我是改的是.h文件里划线这行,但是这个.h修改是不会影响.lib文件的,因为.lib是官方提供的,所以就只能是默认参数扫描。首先请官方帮我明确下我这个判断是否正确,如果正确,我想知道有没有办法来修改这个SCAN_WIND?我发现芯片的扫描成功率确实没有手机好。

盼复

捕获.PNG


参数修改肯定不是直接修改库里面的参数内容,发一封邮件到邮箱lpc@wch.cn,后续提供你一份扫描速度加快的程序参考。


Lpc,您好,我今天看了下CH573例程里的demo,有一个设置是这样设置的,

    GAP_SetParamValue(TGAP_DISC_SCAN, DEFAULT_SCAN_DURATION);

对比了CH579的代码,我发现其实是可以用GAP_SetParamValue这个函数去设置扫描窗口和扫描间隔的,这样的话是不是就可以去控制扫描窗口和间隔了?还需要更换你们的lib库来提高扫描成功率吗?

    GAP_SetParamValue(TGAP_DISC_SCAN_INT, 160);

    GAP_SetParamValue(TGAP_DISC_SCAN_WIND, 160);  



更新库的目的与设置扫描窗口的目的不一样,更新库是针对在单个设备下扫描稳定性进行提高。

从机设备在100ms的情况进行一次广播,理论上扫描大于100ms可以大概率搜索到,579的窗口已经最大,将单次扫描设备给大一些:

#define DEFAULT_MAX_SCAN_RES                  40;

扫描间隔给小一些:

#define DEFAULT_SCAN_DURATION                 160

之前微信有进行过联系,可注意查看。


只有登录才能回复,可以选择微信账号登录