A协调器用仿真器下载好程序在线仿真,并运行程序。B路由器上电加入网络同时协调器记录上路由器的网络地址。B路由器断电。利用PC串口向协调器发送字符123456789,再由协调器发送数据给B路由节点。由于B路由器节点断电A协调器重发数据给B节点。为什么把重发次数APSC_MAX_FRAME_RETRIES参数值改大或改下都一样,无线抓到的数据以下:
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你弄明白这个问题了吗?明白的话希望你能帮我解答一下
我用的是zigbee2007pro协议栈,我想再终端设备调用AF_Data_Request()函数发送数据时,发送选项参数加上AF_ACK_REQUEST。我的问题是:1、接收端需要做什么处理?如果要处理的话在应用层怎么处理?
2、发送端如果接收到APS ACK,是在AF_DATA_CONFIRM_CMD事件下处理吗?是的话需要怎么处理?
这两个机制是明白了,但是我昨天做实验验证的时候,在不使能AF_ACK_REQUEST的情况下,发送端的应用层还会进入到AF_DATA_CONFIRM_CMD事件里面,感觉有点奇怪,不是只有使能AF_ACK_REQUEST了,当收到APS ACK时才进入到AF_DATA_CONFIRM_CMD事件下吗?
另外我还有两个问题:1、使能AF_ACK_REQUEST,就是发送端在调用AF_DataRequest()函数时,将发送选项参数加上AF_ACK_REQUEST这个掩码就使能了是吗?
2、如果发送端接收到目的地址端的APS ACK 响应,发送端就会触发AF_DATA_CONFIRM_CMD事件,然后在这个事件下是提取消息中的pkt->hdr.status 值,根据不同的值来判断成功或者不成功吗?不知道理解的对不对。现在我不知道发回来响应时什么内容,也不知道如何去判断成不成功。
希望你能够解答我的疑惑,最好能能有个例程片段嘿嘿,谢谢
AF_DataRequest返回SUCESS就必出现AF_DATA_CONFIRM_CMD,AF_DATA_CONFIRM_CMD在不使能MAC ACK(广播)的时候,表示你要发送的数据的最后一个字节已离开CC2530了。
你可以根据status,
case AF_DATA_CONFIRM_CMD:
// This message is received as a confirmation of a data packet sent.
// The status is of ZStatus_t type [defined in NLMEDE.h]
// The message fields are defined in AF.h
afDataConfirm = (afDataConfirm_t *)msgPtr;
sentEP = afDataConfirm->endpoint;
sentStatus = afDataConfirm->hdr.status;