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

APS ACK 的问题

想问一下,当我开启aps ack时,如果的我终端设备发送数据给协调器后,

1、协调器正确接收到数据,是单播返回给终端设备一个ack还是给应用层一个ack

2、如果1是正确的当终端检测到协调器正确的ack后,再开启下一次传输,那如果接收到了错误的zck,应用层是否需要用户处理?

3、有没有这种情况,协调器实际接收到了终端设备发来的数据,但是还没来及的给终端一个ack,会导致终端又发送了一次?

YiKai Chen:

1. 不知道你说的”是单播返回给终端设备一个ack”是什麼、幾本上就是会给应用层一个ack
2. 应用层要自己處理
3. Z-Stack底層不會、除非你應用程序部分这樣作

user4711142:

请问能否讲解一下aps ack 的流程?有没有类似的帖子或者guides?

user4711142:

回复 YiKai Chen:

搞不清楚,如果我发送的时候,令options = AF_ACK_REQUEST时,我应该怎么做?再协调器和终端两个设备上,要做哪些处理?能否讲解一下思路,以终端单播数据给协调器为例

Alvin Chen:

回复 user4711142:

去ZigBee alliance 下载specification

YiKai Chen:

回复 user4711142:

协调器上不用特別处理,终端设备上,就是記住你發送的sequence number然後在你终端设备zclXXX_event_loop的case AF_DATA_CONFIRM_CMD: 裡面去檢查有沒有收到相同sequence number的APS ack

user4711142:

回复 YiKai Chen:

您好,
1、我在ZDAPP_event_loop中case:AF_DATA_CONFIRM_CMD在串口打印提示信息。只有在上电的时候会执行一次
2、在zclXXX_event_loop中case:AF_DATA_CONFIRM_CMD每次都有相同的提示信息。
想问一下这两个有什么区别?第二种情况消息发送出去了,是给设备本身应用层的ack。还是接受方给发送方的ACK?

user4711142:

回复 user4711142:

我协调器广播的时候,竟然也会进入zclXXX_event_loop中case:AF_DATA_CONFIRM_CMD

Alvin Chen:

回复 user4711142:

这是正常的啊,有设备回复了ack 就会进入。

user4711142:

回复 YiKai Chen:

这个是两次的抓包文件。想知道哪个才是真正的ACK 消息,如图片所示,有两种ack的消息形式,这两种都是谁发出的?

ACK2.psd

YiKai Chen:

回复 user4711142:

Length=27的那個封包才是APS ack,length=5的是mac ack,其實你需要的是一個好的sniffer,比如說Ubiqua

赞(0)
未经允许不得转载:TI中文支持网 » APS ACK 的问题
分享到: 更多 (0)