当前位置:首页 > 物联网学习笔记 > 正文

zstack修改协议栈规范拓扑结构自定义网络类型

不多说,协议栈规范相关宏定义在nwk_globals.h中。

// Controls the operational mode of network
#define NWK_MODE_STAR 0
#define NWK_MODE_TREE 1
#define NWK_MODE_MESH 2

// Controls various stack parameter settings
#define NETWORK_SPECIFIC 0
#define HOME_CONTROLS 1
#define ZIGBEEPRO_PROFILE 2
#define GENERIC_STAR 3
#define GENERIC_TREE 4

// Channel mask
#define MAX_CHANNELS_868MHZ 0x00000001
#define MAX_CHANNELS_915MHZ 0x000007FE

#if !defined ( MAX_CHANNELS_24GHZ )
#define MAX_CHANNELS_24GHZ 0x07FFF800
#endif

#if defined ( ZIGBEEPRO )
#define STACK_PROFILE_ID ZIGBEEPRO_PROFILE //修改此处宏定义即可
#else
#define STACK_PROFILE_ID HOME_CONTROLS
#endif

#if ( STACK_PROFILE_ID == ZIGBEEPRO_PROFILE )//宏定义所对应的网络类型
此处省略……
#elif ( STACK_PROFILE_ID == HOME_CONTROLS )
此处省略……
#elif ( STACK_PROFILE_ID == GENERIC_STAR )
此处省略……
#elif ( STACK_PROFILE_ID == NETWORK_SPECIFIC )
此处省略……

对于这个#if defined ( ZIGBEEPRO )中的ZIGBEEPRO是在配置文件f8wConfig.cfg中定义的如下:
/* Enable ZigBee-Pro */
-DZIGBEEPRO
老版本的协议栈是在编译选项里的哦。

如果你有特殊需求想屏蔽这个-DZIGBEEPRO,可能会出现以下错误:
Linking
Error[e46]: Undefined external “rtgSrcTable” referred in AddrMgr ( C:\Texas Instruments\
ZStack-CC2530-2.5.0\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external “rtgSrcRelayList” referred in AddrMgr ( C:\Texas Instruments\
ZStack-CC2530-2.5.0\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external “gNWK_CONFLICTED_ADDR_EXPIRY_TIME” referred
in nwk ( C:\Texas Instruments\ZStack-CC2530-2.5.0\Projects\zstack\Libraries\TI2530DB\
bin\Router-Pro.lib )
Error while running Linker

解决办法如下图
DZIGBEEPRO

上一篇: 下一篇:

报歉!评论已关闭。