嗨,对话小组,
我动态地改变了广告数据,它仍然有效,但有些事情非常敏感,有时会引起稳定性问题。
我通过使用globle变量更改了避免数据,该变量由一个以1秒为周期的计时器更新,然后是app\u adv\u stop(),然后是app\u adv\u start。如果app\u adv\u stop()直接后跟app\u adv\u start(),则不起作用,没有广告。如果我把一些东西放在两者之间,它也不起作用。只有在中间插入I++之类的东西时,它才能正常工作。
当我经常改变状态来测试它的稳定性时,有时广告会停止或无法连接。我用了128号样本。
期待你的回答和帮助。
谢谢!
亚历克斯
你好,亚历克斯,
也许问题是,还有
GAPM\u CANCEL\u命令
消息挂起发送者应用程序高级停止
. 也许一个“正确的方法”是使用GAP事件处理程序。正常开放应用程序任务处理程序.h并搜索GAPM\ CMP\ EVT公司
. 如果尚未添加,则添加,但默认情况下应添加。查找函数gapm\u cmp\u evt\u处理程序
在里面应用程序任务.c. 查找,例如。,案例GAPM\u ADV\u UNDIRECT
. 希望这有帮助!嗨,亚历克斯,
请看一下Beacon用户手册,其中解释了如何操作:
http://support.dialog semiconductor.com/system/files/UM-B-019\u DA14580\u Be。。。
我建议你也看一下信标软件:
http://support.dialog-semiconductor.com/da14580-reference-design-beacon
答案如下:
如何动态改变广告数据?
1在da14580\u config.h头文件中定义CFG\u DYNAMIC\u BEACON\u数据。
可以使用在广告模式下的app\u asynch\u trm()函数中计算到BLE事件结束的转换的过程。当广播当前数据时,此过程检查BLE event状态何时移到BLE\ event\ END以统计广告事件。
BLE状态是通过调用函数app\u last\u rwble\u evt\u get()获得的。当达到最大广告迭代次数时,广告数据将自动动态更改。
2信标参考软件中的广告迭代次数由app\u sleep.h头文件中definition MAX\u Beacon\u advertive\u COUNTER的值确定。
一旦发生超时,必须执行GAPM\u CANCEL操作。这可以通过调用app\u adv\u stop()函数来完成。
完成GAPM\u CANCEL操作后,将启动广告间隔计时器。
然后可以通过调用计时器处理程序中的app\u adv\u start()函数来重新启动广告。
当做,
对话小组。