如何设置数据包的重发次数、重发间隔
怎样设置重发次数和重发间隔
您可以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