Z-Stack acknowledgements

本文介绍了Z-Stack协议栈中的两种消息确认机制:MAC ACK和APS ACK。MAC ACK默认开启并通常足够保证网络可靠性;APS ACK在应用层提供额外确认,确保发送设备得知数据已到达目的地。文章还讲解了如何禁用MAC ACK及使用AF_DATA_CONFIRM_CMD跟踪确认。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:

  1. 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)
  2. When a MAC acknowledgement (next hop acknowledgement) is received
  3. 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); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值