TI中文支持网
TI专业的中文技术问题搜集分享网站

清除NV中遇到的一些问题

1协调器和节点都开启了INIT和RESTORE,协调器清除了NV后,

自动重启,PANID变了,节点还是能自动加入协调器(协调器上电后是不允许新节点入网的)

zgWriteStartupOptions( ZG_STARTUP_SET, (ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE) );
SystemResetSoft();

用同样的方法,节点清除NV后就不能加入协调器了,请问为什么协调器清除NV后之前加过他的节点还能再次加入?

Alvin Chen:

请问为什么协调器清除NV后之前加过他的节点还能再次加入?
不能

user5367314:

回复 Alvin Chen:

但实际上协调器清除NV后,之前加过他的节点还是自动加入了

YiKai Chen:

回复 user5367314:

檢查看看是不是协调器清除NV後再重新組網用的PANID跟network key是一樣的

user5367314:

回复 YiKai Chen:

协调器清除NV后自动重启,PANID有变化,但是节点还是能加入,network key是什么?

YiKai Chen:

回复 user5367314:

network key是通信時加解密用的鑰匙,你用的Z-Stack 版本是?

user5367314:

回复 YiKai Chen:

3.0 Home

YiKai Chen:

回复 user5367314:

你測試用的是原始例程跟TI CC2530DK?

user5367314:

回复 YiKai Chen:

1.是基于官方门锁的例程改的,现在测试即使重新刷协调器固件,协调器和节点都加了NV,
节点入网后不断电,此时再给协调器重新刷固件,协调器启动后节点就自动加进来了,
但是保持协调不断电,重刷节点的固件,这时节点就加不了协调器了,
必须按一下协调器上允许入网的按键
是不是协调器还没执行禁止入网的函数,节点就加进来了,所以出现这样的现象
下面是我禁止入网函数加的地方,是不是加在这里不合适?case ZDO_STATE_CHANGE:zclSampleDoorLockController_NwkState = (devStates_t)(MSGpkt->hdr.status);// now on the networkif ( (zclSampleDoorLockController_NwkState == DEV_ZB_COORD) ||(zclSampleDoorLockController_NwkState == DEV_ROUTER)||(zclSampleDoorLockController_NwkState == DEV_END_DEVICE) ){NLME_PermitJoiningRequest(0);}
2.2530的按键时长识别,用osal_start_timerEx和osal_stop_timerEx
有个问题,按下按键后开启定时器,但是直到定时的时间到才能触发

定时器停止,这样就必须等定时时间到才能判断是长按还是短按,

会导致按键按了之后要等一段时间才能响应,有没有什么解决办法?

YiKai Chen:

回复 user5367314:

1. Z-stack 3.0的例程协调器預設就是不允许入网,並不需要更動什麼,我用原始的例程在TI CC2530DK測試是沒有你說這個問題的,應該是你改動程序造成的,建議你在查一下你自己加上去的程序
2. 可以縮短定时的时间,然後多檢查幾次,連續多次都判讀按键是在按下狀態來判斷是长按还是短按

na miner:

学习这个内容了

赞(0)
未经允许不得转载:TI中文支持网 » 清除NV中遇到的一些问题
分享到: 更多 (0)