现在实现协调器增加白名单,达到过滤入网设备的功能(两个终端,一个路由,父节点均为协调器)。
但是当两个终端连接路由器,路由器连接协调器时,路由器也需要添加白名单,这个该怎么办,如何实现白名单的同步?
YiKai Chen:
路由器照理不需要添加白名单,一般就都是由协调器的白名单來过滤入网设备
user4711142:
回复 YiKai Chen:
终端的父节点为路由器,如果路由器不做一个白名单,会导致终端设备随意加入路由器中,无法达到过滤效果
YiKai Chen:
回复 user4711142:
設備入網後會廣播end node annoucement,你可以在协调器接收end node annoucement,然後用白名单过滤,收到的end node annoucement的IEEE address不在白名单,就進行leave request.
user4711142:
回复 YiKai Chen:
不好意思,没看懂,协调器接收end node annoucement的在程序的哪个位置?我是在ZDO_JoinIndicationCB中进行白名单过滤的,您的方法能不能详细说一下?
YiKai Chen:
回复 user4711142:
ZDO_ProcessDeviceAnnce
user4711142:
回复 YiKai Chen:
我安装的是2.3版本,ZDApp.c文件中没有这个函数,是我的协议栈版本太低了么?
YiKai Chen:
回复 user4711142:
可能是
user4711142:
回复 YiKai Chen:
有没有TI新版协议栈的链接?
YiKai Chen:
回复 user4711142:
Z-STACK
user4711142:
回复 YiKai Chen:
我在旧版协议栈中找到了您说的函数:
CONST zdpMsgProcItem_t zdpMsgProcs[] =
{
#if ( RFD_RCVC_ALWAYS_ON==TRUE ) || ( ZG_BUILD_RTR_TYPE )// These aren't processed by sleeping end devices.{ NWK_addr_req,zdpProcessAddrReq },{ Device_annce,ZDO_ProcessDeviceAnnce },
#endif……
}
这个函数是先将设备加入网络,如果MAC不匹配,将其退离网络?