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.
按您所说的做,现在遥控初始化的时候加网成功了。但现在有个新问题,也就是只有我在网关启动允许加网进程之后,遥控才能加网,这样的话,如果遥控在初始化的时候加网不成功,则以后就不能再加网。因此我想稍作优化如下:
遥控上电之后执行一个循环函数,每隔15秒向网关发送一次入网请求,直到入网成功则不再发送,因此我需要找到一个定时循环的函数,比如说每隔100ms就能执行一次的函数,我把初始化的代码zllInitiator_ClassicalCommissioningStart()加入到该函数。但目前为止,我还没找到这样的函数,请问遥控能找到这样的函数吗?
我在void zllInitiator_Init( uint8 task_id )函数最后增加如下一段代码:
uint8 state;
NLME_GetRequest( nwkNwkState, 0, &state );
if ( state < NWK_ROUTER )
{
osal_start_timerEx( zllInitiator_TaskID, ZLL_SAMPLEREMOTE_START_EVT, 5000 );
}
在uint16 zllInitiator_event_loop( uint8 task_id, uint16 events )这个函数最后,增加了如下一段代码:
if ( !loopCntStatus ) {
if ( events & ZLL_SAMPLEREMOTE_START_EVT)
{
zllInitiator_ClassicalCommissioningStart();
osal_start_timerEx( zllInitiator_TaskID, ZLL_SAMPLEREMOTE_START_EVT, 15000 );
return (events ^ ZLL_SAMPLEREMOTE_START_EVT);
}
} 这里loopCntStatus是我自己增加的一个全局变量,初始值为0,加入Beabone成功后置位1。
已经可以实现我的想法,也就是让遥控器上电之后每隔15秒发送一次入网请求,直到入网成功。
现在有个新问题:我发现每次重新上电(更换电池),遥控器中TouchLink的灯都不能控制了,必须要重新TouchLink才能控制,好像一切恢复了出厂设置,我希望不恢复出厂设置,继续保留已经TouchLink的设备,请问要怎样修改才行?