zigbee如何设置重发次数

        zigbee在发送数据不成功的时候,会启用重发机制,而这个重发机制分为:MAC重发,APSC重发,NWK重发,而APSC和NWK重发是以接收到MAC ACK为前提,否则不会重发。


一、重发次数的定义

         应用层发出的普通数据包,若一直无响应,如果收不到MAC ACK,则重发发送次数=macPibDefaults.maxFrameRetries + 1;如果收到了MAC ACK则重发次数=NWK_MAX_DATA_RETRIES   * ( macPibDefaults.maxFrameRetries + 1 )

        应用层发出的需分包的数据包,若一直无响应,如果收不到MAC ACK,则重发发送次数=macPibDefaults.maxFrameRetries + 1;如果收到了MAC ACK则重发次数=APSC_MAX_FRAME_RETRIES   * ( macPibDefaults.maxFrameRetries + 1 )

二、 重发次数的设置

        MAC重发次数次数在“mac_pib.c”文件里的macPibDefaults数组里面定义,默认是重发3次。

当maxFrameRetries=0的时候,从下面抓包数据可知,协调器对短地址为0xBA89的终端发送了三组数据,每组一条,每次间隔大概400ms。


当maxFrameRetries=1的时候,从下面抓包数据可知,如果终端没回MAC ACK,则协调器会发送三组数据,每组发送两条,

但是哪里控制发送三组数据我暂时还没找到。

         APSC重发和NWK重发设置的位置位于“f8wConfig.cfg”文件

/* The maximum number of retries allowed after a transmission failure APSC分发包重发次数(条件收到MAC ACK)*/
-DAPSC_MAX_FRAME_RETRIES=3


/* Max number of times retry looking for the next hop address of a message NWK应用层重发次数(条件收到NWK ACK)*/
-DNWK_MAX_DATA_RETRIES=3








参考资料:

1.重发机制问题

2.如何设置数据包的重发次数、重发间隔

3.zigbee延时重发机制的使用



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值