1、是否可以通过更改协议栈完成?因为旧版本协议栈可以通过NLME_PermitJoiningRequest(255);来实现
2、如果不能实现,我定义了一个循环事件
if(events & MYAPP_PER_JOIN_EVT) //循环开启入网窗口
{
NLME_PermitJoiningRequest(254);//允许一直入网。254秒
osal_start_timerEx(zclGenericApp_TaskID,MYAPP_PER_JOIN_EVT,100000); //100s后产生允许入网事件
return ( events ^ MYAPP_PER_JOIN_EVT );
}
定时器事件是100秒后产生一个事件,是否可行,定时器时间是否太长?
3、协议栈中的定时定时器事件是通过什么来实现的?是单片机自带的定时器实现的,还是根据晶振的时钟脉冲进行软件计时实现的?
Viki Shi:
不能,这是zigbee3.0的新特性之一。如果需要一直开启,可以设置定时器,到点后重新开启permit join。但是为了网络安全,不建议一直开启入网。。
Permit join can no longer be enabled forever as networks will automatically close joining after a maximum of 254 seconds. To extend the time the network is open, you may send out permit join requests periodically to restart the timer. Requests to open the network without enabling joining at the trust center are no longer supported.
YiKai Chen:
1. Z-Stack 3.0.2不允許一直开启入网
2. 可以,這樣沒什麼問題
3. 是单片机自带的定时器