Z-Stack acknowledgements
[复制链接]
Z-Stack acknowledgements For non-broadcast messages, there are basically 2 types of message retry:end-to-end acknowledgement (APS ACK) and single-hop acknowledgement (MAC ACK).MAC ACKs are always on by default and are usually sufficient to guarantee ahigh degree of reliability in the network. To provide additional reliability,as well as to enable the sending device get confirmation that a packet has beendelivered to its destination, APS acknowledgements may be used. APS acknowledgement is done at the APS layer and is an acknowledgementsystem from the destination device to the source device. The sending devicewill hold the message until the destination device sends an APS ACK message indicatingthat it received the message. This feature can be enabled/disabled for eachmessage sent with the options field of the call to AF_DataRequest(). Theoptions field is a bit map of options, so OR in AF_ACK_REQUEST to enable APSACK for the message that you are sending. The number of times that the messageis retried (if APS ACK message isn’t received) and the timeout between retriesare configuration items in f8wConfig.cfg. APSC_MAX_FRAME_RETRIES is the numberof retries the APS layer will send the message if it doesn’t receive an APS ACKbefore giving up. APSC_ACK_WAIT_DURATION_POLLED is the time between retries.
Using the AF_DATA_CONFIRM_CMD system event in the Z-stack totrack acknowledgements. The AF_DATA_CONFIRM_CMD system event is received at the application layerwhen 1 of 3 conditions occur: - When an APS ACK is received (if APS ACK service is being used by passing in AF_ACK_REQUEST as a value for the options field)
- When a MAC acknowledgement (next hop acknowledgement) is received
- Transmission failed
The acknowledgement is not propagated up to the AF layer, only the eventthat one is received in the cases of 1) and 2) as mentioned above.
As part of the data confirm structure, the user has access to the endpoint andtransaction ID members. The application developer can load the transIDparameter as part of the AF_DataRequest() and use the transaction ID from theconfirm to track acknowledgements.
Diable the Mac ACK in Z-Stack In the function ZMacDataReq( ):
pData->TxOptions &= !(MAC_TXOPTION_ACK);
|