节点最大子节点数目问题?
#if ( STACK_PROFILE_ID == ZIGBEEPRO_PROFILE )
uint8 CskipRtrs[1] = {0};
uint8 CskipChldrn[1] = {0};
数组定义全部是0,节点最大子节点数目是多少呢?
PRO 协议就不使用cskip了,子节点最大数量如下定义,搜索NWK_MAX_DEVICES和NWK_MAX_ROUTERS的定义
// Variables for MAX Sleeping End Devices
CONST uint8 gNWK_MAX_SLEEPING_END_DEVICES = NWK_MAX_DEVICES - NWK_MAX_ROUTERS
您的意思是:在PRO协议下,处于任意深度的路由器的子设备数量都由NWK_MAX_DEVICES和NWK_MAX_ROUTERS决定?
是滴,这个参数就是决定单个节点能带的子节点数量。
是不是只需要修改这两个参数,其余的都不需要修改吗?
#if !defined( NWK_MAX_DEVICE_LIST )
#define NWK_MAX_DEVICE_LIST 20 // Maximum number of devices in the
// Assoc/Device list.
#endif
// Don't change this value to set the number of devices. Change
// NWK_MAX_DEVICE_LIST above
#define NWK_MAX_DEVICES ( NWK_MAX_DEVICE_LIST + 1 ) // One extra space for parent
#define NWK_MAX_ROUTERS
我做了试验:设置网络深度为1,协调器可以有超过9个路由器节点;但是上面宏定义是6
据了解,新协议栈已经去掉了NWK_MAX_ROUTERS的要求,只与NWK_MAX_DEVICE有关,你可以试试
NWK_MAX_ROUTERS你是定义这个为1吗?还是NWK_MAX_DEVICE_LIST 这定义为6?假如协调器是A,其余是B,C等。你的网络拓扑是A下面是B,C等,还是A->B->C->等呢?
拓扑结构是a->b->c... 已经解决 确实和max_router这个宏无关