TI中文支持网
TI专业的中文技术问题搜集分享网站

AF_DataRequest()返回0x00 抓包却没有数据发出

一个协调器 一个节点 ZHA1.22a,协调器收到串口数据通过无线转发给节点,通过串口打印发现偶尔有AF_DataRequest()返回成功,抓包却没有这个数据的情况。

相同的程序,使用cc2538作为协调器就会出现这个情况,cc2530作为协调器却没有这种情况。

xiaoming huang1:

请问TI的大神们,AF_DataRequest()返回0x00 可以确定数据被发送出去吗

Susan Yang:

回复 xiaoming huang1:

请问您是否有收到AF_DATA_CONFIRM_CMD?当option中使能了AF_ACK_REQUEST时,会有AF_DATA_CONFIRM_CMD事件返回

Aries Lord:

回复 xiaoming huang1:

不能,返回0x00只是表示数据只是到了NWK层的buffer里面,你的AF_DataRequest函数返回速度取决于你cortex M3 MCU的处理速度,而buffer里面的数据到射频取决于IEEE802.15.4的250kbps的速度。

buffer里面的数据是否发出去,在消息AF_DATA_CONFIRM_CMD中查询返回的status,该消息由发射FIFO发射完后的中断产生。

xiaoming huang1:

回复 Aries Lord:

感谢Susan Yang 和 Aries Lord的回复! 使能AF_ACK_REQUEST是于增加了AF层的重发机制,当消息得不到APS层应答时,会重发。 我在Z-Stack Home 1.2.2a.44539的SampleDoorLock上只增加 间隔200ms发送数据及打印 的功能,且不使能AF_ACK_REQUEST,当做协调器测试数据传输成功率,数据中的序列号依次增加,以此判断是否丢包。sniffer抓包256包中有10包数据没有发送出来,但串口打印出所有序列号,及zcl_SendCommand的返回值0x00,有可能是什么愿意能导致丢包呢?1.psd

xiaoming huang1:

回复 xiaoming huang1:

最终发现是供电的原因,换了一个更好的电源就没有丢包的情况了

sg cai:

回复 xiaoming huang1:

您好,请问您是怎么定位到供电影响的,方便透露下吗

xiaoming huang1:

回复 sg cai:

你也碰到类似的情况了吗?方便说下吗?

sg cai:

回复 xiaoming huang1:

就有观测到你标题描述的情况,不知道怎么定位问题了就问下

赞(0)
未经允许不得转载:TI中文支持网 » AF_DataRequest()返回0x00 抓包却没有数据发出
分享到: 更多 (0)