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.

the process of event "AF_DATA_CONFIRM_CMD"



When we set the option parameter of function AF_DataRequest() to AF_ACK_REQUEST, the AF_DATA_CONFIRM_CMD enent indicates whether the data have been received successfully by the destined end.  If the status dosen't equal to ZSuccess, that indicates the destined end hasn't received the data after APSC_MAX_FRAME_RETRIES retransmission(is this right?). When this happens , I wan't to retransmit that data. But how can I get that data? Is the lost data placed into a buffer? The next code is founded on the web,but I don't find the answer what to do if ( sentStatus != ZSuccess ). 

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 ZComDef.h]
          // The message fields are defined in AF.h
          afDataConfirm = (afDataConfirm_t *)MSGpkt;
          sentEP = afDataConfirm->endpoint;
          sentStatus = afDataConfirm->hdr.status;
          sentTransID = afDataConfirm->transID;
          (void)sentEP;
          (void)sentTransID;

          // Action taken when confirmation is received.
          if ( sentStatus != ZSuccess )
          {
            /
          }
          break;
     
        default:
          break;

  • The ZStack doesn't keep the retransmit that data for you. You need to keep them by yourself.

  • HI,

    you mean APSC_MAX_FRAME_RETRIES is not effect?

    and i test the zstack 2.5.1.even i set AF_ACK_REQUEST in AF .and yes,if the data send successfully.and i can see a APS ACK in the sniffer.and there is not the aps ack without the AF_ACK_REQUEST .

    but if i power down the receiver.and then send the data ,i can not find the retry data. so i do not know the APSC_MAX_FRAME_RETRIES  mean.why i can not see 3 times retrying send?