aps ack返回值
时间:10-02
整理:3721RD
点击:
AF_DataRequest发送时打开了AF_ACK_REQUEST选项,使能aps ack,希望得到端到端的ack,而不仅仅是一跳的。
请问,在GenericApp_ProcessEvent中处理AF_DATA_CONFIRM_CMD的时候,如果aps ack失败,返回的错误码是什么,ZApsNoAck吗?
测试结果来看,直连ZC的时候,错误码是ZMacNoACK,mesh的时候,错误码是ZNwkNoRoute,看着像MAC ack。
这样就没法分辨返回的是 MAC ack还是APS ack。应用希望只关心APS ack,再做一些业务处理。
请TI大神帮忙解答一下,谢谢。
MAC ACK是点到点的,当节点收到数据的目的地址和自己的MAC add一样的时候,就会回复MAC ACK出去,带有Seq number作为match对象取代了目标地址的功能。其他节点都会收到,但并不会做处理。而APS ACK是应用层的ACK,端到端的,只有Destination得点会发出去,中间的经过的路由不会发送。
在协议栈的ACK机制中,MAC层ACK是默认开启的。
谢谢,概念知道的。
我想问的是在AF_DATA_CONFIRM_CMD处理ack的时候,如何判断是不是APS ACK?
我开了应用层的APS ACK,希望在AF_DATA_CONFIRM_CMD处理APS ACK。