ble精准指定广播次数和时间的问题

ble精准指定广播次数和时间的问题

一:问题出现的原因:
客人的问题是想在例如广播间隔是300ms ,我想在他发送广播前 我能更新广播包 ,或者我update后 能立刻发送出去的问题;

二:问题的具体分析和解决方法:
想精准的控制更新广播包,那就只能让每次广播只发送一次,然后就停止,让客人更新广播数据,再次启动广播的方式,经查询sdk中有max_adv_evts 这个接口可以控制发送广播的次数;

在这里插入图片描述
在这里插入图片描述

在禁用广告之前应发送的最大广告事件。将该值设置为0将禁用该限制。当该参数指定的广告事件数(如果不为0)达到时,广告将自动停止,并引发类型为@ref BLE_GAP_EVT_ADV_SET_TERMINATED的事件;
我们将adv_param.max_adv_evts = 1;然后在启动广播,广播在执行一次后,立刻停止,并通过BLE_GAP_EVT_ADV_SET_TERMINATED 回调中,重新配置广播参数,在次重新sd_ble_gap_adv_start 后可以输出启动广播,这样子就可以保证准确的每次更新的广播数据都可以保证发出一次;(开始广告后不应有较长的延迟,超过几毫秒 + 10ms 随机因素)
如果想保证300ms发一包,那就在BLE_GAP_EVT_ADV_SET_TERMINATED事件收到后,做一个定时器,等待300ms后,立刻将包发出;这样即可达到客人的目标;

三 测试结果:
客人反馈此方法可以达到定时时间内发送一次广播数据;

四:关于此问题的相关资料如果有需要可以联系我们,加下面nordic ble qq交流群:921114908
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值