调整每个连接事件的数字数据包

了解更多常见问题解答教程

3个帖子/ 0新
最后一篇
杰曼伯特
离线
最后一次露面:3个月3周前
加入:2014-10-24 14:17
调整每个连接事件的数字数据包

你好,

我们需要限制每个BLE连接事件收到和发送的最大数据包数。对话框FAE通知我们以下调用来控制此行为:

ble_maxevtime_set(0,n);//其中n是每个ce的最大数据包数

我在BLE连接后立即添加了此呼叫。但是,它看起来好像堆栈随后覆盖此值。考虑以下方案:
1.在“连接请求指示处理程序中”添加以下代码:BLE_MAXEVTIME_SET(0,4);
2.启动BLE连接并指示几百个字节。使用数据包嗅探器,我观察到,DA14581在CE中发出了超过4个数据包。
3.阅读位置0x8007e(地址,其中ble_maxevtime_set(0,n)写入,使用调试器验证)并找到该值不是4,但是16。
4.将位置0x8007e写回4.再次指示几百个字节。使用嗅探器,我现在验证每个CE发出的数据包数现在4。

什么以及为什么BLE堆栈覆盖ble_maxevtime_set()更改的位置?

设备:
mt_dialog.
离线
最后一次露面:2天19小时前
职员
加入:2015-06-08 11:34
嗨jameshiebert,

嗨jameshiebert,

堆栈不会在没有事件的情况下更改值,大多数可能是来自中央边的连接参数更新是堆栈的原因,如果连接发生在连接之后没有参数更新,则该值将保持置位,堆栈将在更新参数接收时重新配置值,以便适应指示的新连接间隔。如果在连接参数完成后设置值,则该值应保持稳固。

谢谢mt_dialog.

杰曼伯特
离线
最后一次露面:3个月3周前
加入:2014-10-24 14:17
完美,我会试试。

完美,我会试试。谢谢!