zigbee网络提供3种网络设备类型,分别是协调器、路由器和终端节点。
协调器是一个全功能设备,在整个网络中的权限最高,功能最强大。它是一个网络的建立者,维护整个zigbee网络。在协议栈中,每个源文件都可以定义多个功能设备的实现函数。它们都通过编译来实现各个设备的需要。
顺便说下,左边的那个EditConfigurations 可以增加或删除下图中Workspace下面下拉菜单里的内容
通过选择这个下拉菜单里的Router , EndDevice ,Coordinator,程序时怎样识别它们的?
首先说明不是在:Options C/C++ Compile Preprocessor里面区别的。
当选择 Coordinator,Router , EndDevice时,在Options-> C/C++ Compile-> Extra Options这个选项里面包含的文件不一样:
Coordinator:
Router:
EndDevice:
Coordinator包含f8wCoord,cfgRouter 包含f8wRouter.cfg,EndDevice包含f8wEndev.cfg,这几个文件在协议栈Tools文件夹里看到:
f8wCoord.cfg
f8wRouter.cfg
DZDO_COORDINATOR表示定义ZDO_COORDINATOR,-D表示在程序里定义后面的标识符(我的理解)
然后打开协议栈NWK文件下的ZGlobals.h 里面就是关于协调器路由器终端设备的宏定义