NWK_INDIRECT_MSG_MAX_PER、NWK_INDIRECT_MSG_MAX_ALL、NWK_MAX_DATABUFS_TOTAL之间的关系?
大家好!
最近本人在做协调器缓存发送命令的测试,发现NWK_INDIRECT_MSG_MAX_PER是缓冲发送给同一个终端设备命令的最大缓冲条数,这个宏的默认值是3,就是说协调器或路由设备给终端同时发送超过3条命令时,若终端设备来不及发送data request获取,协调器或路由器将会丢弃命令。
把NWK_INDIRECT_MSG_MAX_PER改大会提高协调器给终端发送命令的缓冲能力,但是下面有定义:
#define NWK_INDIRECT_MSG_MAX_ALL \
(NWK_MAX_DATABUFS_TOTAL - NWK_INDIRECT_MSG_MAX_PER)
没看到NWK_INDIRECT_MSG_MAX_ALL和NWK_MAX_DATABUFS_TOTAL使用的地方,害怕贸然改动NWK_INDIRECT_MSG_MAX_PER会引起什么问题,希望大家有经验的帮忙解答一下,这几个参数的关系,值取多少比较好,谢谢。
NWK_INDIRECT_MSG_MAX_PER
Maximum msgs to hold per associated device.是指给每个设备buffer了多少个数据
NWK_MAX_DATABUFS_TOTAL
Total number of buffers 是指 buffer的总数
参考协议栈内的说明
// Maximum msgs to hold per associated device.
#define NWK_INDIRECT_MSG_MAX_PER 3
// Maximum total msgs to hold for all associated devices. 为所有关联设备hold的最大msgs
#define NWK_INDIRECT_MSG_MAX_ALL \
(NWK_MAX_DATABUFS_TOTAL - NWK_INDIRECT_MSG_MAX_PER)