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