微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > z-stack节点入网根据MAC地址来过滤的最终解决方案。

z-stack节点入网根据MAC地址来过滤的最终解决方案。

时间:10-02 整理:3721RD 点击:

3187.ZDO Lib 2.5.1a.7z

1,节点入网时,需在协调器输入节点的MAC地址。可以在一个环境中布置多个协调器,只需在协调器上输入需要入网的节点的MAC地址,节点就能入到指定的协调器。

2,如果网络中存在路由器,路由器可以把入网的节点发布在协调器上,协调器可以判断是否可以入网。

3,配合PermitJoin使用效果更好。

哥们    我现在就在做1的功能

按照网上的direct join的方法都不成功,终端还是能自动加入coo的网络,

请教你是怎么做到的!

感激不尽。。。。。

看附加哈,NLME_DirectJoinRequest只能针对非低功耗的节点。

哪有附件啊?没看到啊、、。。。

大神   请问  你的1中所说,意思是要输入节点的MAC地址,那我怎么去判断入的是哪个协调器的网络?

难道说特定的协调器,这个协调器得节点给协调器发起请求时带上MAC地址?

chen jack2

哪有附件啊?没看到啊、、。。。

3187.ZDO Lib 2.5.1a.7z就是附件

sample例程下路由还是自动加入协调器啊,怎么修改默认功耗

初始化函数

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。这只是举例,具体的实现可以根据你们的应用自己完成。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top