微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于连续调用AF_DataRequest的问题

关于连续调用AF_DataRequest的问题

时间:10-02 整理:3721RD 点击:

最近在使用过程中发现,如果在一个循环中多次调用AF_DataRequest的话,如果总的APS payload超过70字节,就会发生有些包没有发送出去的问题。

这个问题的原因,我猜测是ZStack底层的缓冲区有限导致的。

那么问题就来了,怎么才能知道当前AF_DataRequest处于可以调用的状态呢?只有知道这个我才能设计上层的缓冲机制,从而避免短时间内多次调用AF_DataRequest产生的丢包问题

当应用层的Payload超过单包能发送的Payload以后,底层会自动实现分包发送。

你出现丢包的原因可能是快速连续调用AF_DataRequest

建议你在两次调用AF_DataRequest的时候,最一点延时。

VV您好,连续的两次调用AF_DataRequest加多少延时比较合适,我在做的是两次AF_DataRequest间隔500ms,end device端不会马上收到coordinator发送的包,有的包会延时几百个ms.

个人觉得,按照经验也好,或者实测也好,确定一个延时,并不是个好办法,而是个无奈的办法。难道协议栈就没办法指示它的发送通道是否有空闲?

协调器的数据到End Device的时间,是取决于End Device的data Request的时间。

协调器刚开始是把数据buffer在底层,等待End Device来Data Request的时候才把数据发出去的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top