
1,节点入网时,需在协调器输入节点的MAC地址。可以在一个环境中布置多个协调器,只需在协调器上输入需要入网的节点的MAC地址,节点就能入到指定的协调器。
2,如果网络中存在路由器,路由器可以把入网的节点发布在协调器上,协调器可以判断是否可以入网。
3,配合PermitJoin使用效果更好。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

1,节点入网时,需在协调器输入节点的MAC地址。可以在一个环境中布置多个协调器,只需在协调器上输入需要入网的节点的MAC地址,节点就能入到指定的协调器。
2,如果网络中存在路由器,路由器可以把入网的节点发布在协调器上,协调器可以判断是否可以入网。
3,配合PermitJoin使用效果更好。
看附加哈,NLME_DirectJoinRequest只能针对非低功耗的节点。
chen jack2 说:哪有附件啊?没看到啊、、。。。
3187.ZDO Lib 2.5.1a.7z就是附件
初始化函数
void osalInitTasks( void )
{
uint8 taskID = 0;
tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));
macTaskInit( taskID++ );
nwk_init( taskID++ );
Hal_Init( taskID++ );
#if defined( MT_TASK )
MT_TaskInit( taskID++ );
#endif
APS_Init( taskID++ );
#if defined ( ZIGBEE_FRAGMENTATION )
APSF_Init( taskID++ );
#endif
ZDApp_Init( taskID++ );
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
ZDNwkMgr_Init( taskID++ );
#endif
ZDE_Init( taskID++ );
APP_Init(taskID++);
}
任务函数
const pTaskEventHandlerFn tasksArr[] = {
macEventLoop,
nwk_event_loop,
Hal_ProcessEvent,
#if defined( MT_TASK )
MT_ProcessEvent,
#endif
APS_event_loop,
#if defined ( ZIGBEE_FRAGMENTATION )
APSF_ProcessEvent,
#endif
ZDApp_event_loop,
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
ZDNwkMgr_event_loop,
#endif
ZDE_event_loop,
APP_event_loop,
};
可以参考下之前的帖子 https://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/113481.aspx
可以根据你的应用设置白名单的数组。当有新加入节点时,可以比较新节点的长地址与白名单表格中的长地址是否匹配,若没找到则让其leave network。这只是举例,具体的实现可以根据你们的应用自己完成。