我想通过白名单实现只允许特定手机设备扫描和连接,用的是从机例程,由于手机直接连接的话是3类mac地址,不能直接通过LL_AddWhiteListDevice将手机设备加入白名单,我发现有这么个参数
按照解释,我的理解是每次有设备绑定后就清空解析名单,将该设备加入解析名单,而解析名单包含在白名单中,当我使能该参数后,当有手机和芯片配对绑定,之后修改广播策略为只允许白名单中的设备扫描和连接,白名单的功能正常。但是默认只允许绑定一个设备,白名单中就只能有一个设备,但我希望白名单设备数量可以大于1,我看了config.h中的说明
修改了SNVnum和Lib_Write_Flash
但是依然不能绑定两个设备,如果绑定了一个设备,第二个设备再绑定时就会失败。
另外我想知道
GAPBOND_AUTO_SYNC_RL和GAPBOND_AUTO_SYNC_WL开启了到底有什么功能,解析名单和白名单是什么关系
有没有获取白名单设备数量和设备地址的函数,我看那个蓝牙库里面似乎没有
谢谢
二编:
前面的问题基本解决了,我现在想实现当绑定设备数量达到最大值后,后续设备的绑定遵循先入先出的规则,但是我看了这个参数
当我开启了,达到最大设备后再有设备配对的话就会把之前的设备都删除,设备数量就变成了1.如果我关闭,则新设备虽然会显示配对绑定成功,但是并不会存到flash中,实际上没有绑定。
我看了绑定用到的擦写flash的函数,
因为具体的实现都被封装了,但我猜测,每次新设备绑定时,先把原来的绑定信息从flash中读出,再将新设备的信息插到后面,然后再擦写flash。如果想实现先入先出,我的想法是在Lib_Read_Flash中判断如果达到了最大数量,地址就+0x100,这样就会从第二个设备开始读取,但这样也有问题,因为我不知道当我关闭了GAPBOND_ERASE_AUTO,还会不会执行绑定操作,而且其他情况也可能会调用该函数,比如GAPBOND_AUTO_SYNC_RL,这样就会导致遗漏第一个设备。所以如果我想实现先入先出的话能怎么做呢