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

关于AF_DATA_CONFIRM_CMD事件能否准确知道数据是否发送成功?

协议栈版本Z_Mesh V1.0.0,一个协调器,一个路由,两者相隔不超过5米,点播发送。测试说明,模拟OAD更新测试,协调器发送数据给路由,路由不需要回复,只做一件事,直接串口输出接收到的所有数据。协调器每次发送一包数据(64Bytes)后收到AF_DATA_CONFIRM_CMD事件Success返回后才继续发送,失败则延时1~2秒再进行重发,主要观察发送数据的准确性以及重传的现象。从抓包数据可以看出,连续发送数据一段时间后,协调器发送的数据会出现错误,比如64个字节会少了一些字节,并且通过路由接收端输出的数据对比,确实是少了字节。此外通过抓包还看到,有些数据协调器发出来了(即收到了AF_DATA_CONFIRM_CMD事件Success返回),但接收端并没有收到。现在就想确定,AF_DATA_CONFIRM_CMD事件能否准确反映数据已经发到对方处?还是发送数据量大等其它原因导致数据出现错乱,丢包等现象。麻烦各位TI的技术解答一下。

Alvin Chen:

数据到了接收方的MAC层,接收方会回复一个MAC ACK,然后发送方在收到这个MAC ACK以后,会从底层发送一个confirm到应用层。

YiKai Chen:

當有收到AF_DATA_CONFIRM_CMD就代表接收端有收到,這是確定的

zexin zeng:

回复 YiKai Chen:

我一开始也是这么认为,但我这边反复测试发现的结果就是发送端收到成功返回,但接收端确实没有收到。

zexin zeng:

回复 Alvin Chen:

现在的问题是,发送端收到成功的confirm,但数据并没有去到接收端。

YiKai Chen:

回复 zexin zeng:

試試在接收端設個斷點在afIncomingData裡面用IAR調適看看吧

赞(0)
未经允许不得转载:TI中文支持网 » 关于AF_DATA_CONFIRM_CMD事件能否准确知道数据是否发送成功?
分享到: 更多 (0)