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.

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

怎样设置重发次数和重发间隔

  • 您可以f8wConfig.cfg中查看

    /* The maximum number of retries allowed after a transmission failure */
    -DAPSC_MAX_FRAME_RETRIES=3

  • Susan Yang,你好,谢谢回复。

    关于重发次数,我这边测试发现3个参数可以设置:

    第一个,macPibDefaults.maxFrameRetries,这个似乎是MAC层的重发,重发间隔很短,4ms左右,具体设置重发间隔的参数还没有找到。

    第二个,NWK_MAX_DATA_RETRIES,这个似乎是NWK层的重发,对应用层发的普通数据包(不需分包)是有效的,重发间隔400ms左右,具体设置重发间隔的参数还没有找到。对应用层发出的需要分包的数据包,这个参数是无效的。

    第三个,APSC_MAX_FRAME_RETRIES,这个参数对应用层发出的需要分包的数据包有效,重发间隔(100 mSec) * (_NIB.MaxDepth * zgApsAckWaitMultiplier)。

    应用层发出的普通数据包,若一直无响应,总共发送次数:NWK_MAX_DATA_RETRIES   * ( macPibDefaults.maxFrameRetries + 1 )

    应用层发出的需分包的数据包,若一直无响应,总共发送次数:APSC_MAX_FRAME_RETRIES * ( macPibDefaults.maxFrameRetries + 1 )

    以上是我的测试结果,还有两点疑惑:

    1、macPibDefaults.maxFrameRetries和NWK_MAX_DATA_RETRIES这两种重发的间隔设置参数没有找到。

    2、同样是应用层通过AF_DataRequest发出的数据包,未拆分的数据包和拆分过的数据包 重发次数、重发间隔竟然是分开设置的,有点不明白呀

  • zhou chen1 你好,我现在也想修改data request包的发送间隔,请问你找到了么

  • /* Minimum number of milliseconds to delay between each beacon request
    * in a joining cycle.
    */
    -DBEACON_REQUEST_DELAY=3000//自己修改的 原来100 2017.6.16

    /* Mask for the random beacon request delay. This value is masked with the
    * return from osal_rand() to get a random delay time for each joining cycle.
    * This random value is added to DBEACON_REQUEST_DELAY. For example, a value
    * of 0x00FF will be a beacon request delay of 0 to 255 milliseconds.
    */
    -DBEACON_REQ_DELAY_MASK=0x0FFF//自己修改的 原来0x00FF 2017.6.16