怎样设置重发次数和重发间隔
Susan Yang:
您可以f8wConfig.cfg中查看
/* The maximum number of retries allowed after a transmission failure */-DAPSC_MAX_FRAME_RETRIES=3
AndyChen:
回复 Susan Yang:
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发出的数据包,未拆分的数据包和拆分过的数据包 重发次数、重发间隔竟然是分开设置的,有点不明白呀
JIM GREEN8:
回复 AndyChen:
zhou chen1 你好,我现在也想修改data request包的发送间隔,请问你找到了么
guangpeng lao:
回复 JIM GREEN8:
/* 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