使用ZStack 2.3.0-1.4.0协议栈,项目要求在有多个协调器节点并且路由节点不知到正确PanID的情况下,路由节点能够依次接入,发送登陆数据,直到找到正确的网络节点。
目前,采用以下代码来实现修改PanID:
osal_nv_write(ZCD_NV_PANID, 0,sizeof(uint16), &pan_id);NLME_UpdateNV(0x01); SystemResetSoft();
出现的问题是路由节点会一直重启并加入新网络,并且当正确的协调器断电时,路由节点会一直读写Flash,导致硬件故障。
有没有不用重启硬件,如何软件断开现有网络,根据新的PanID加入新的网络?
JKing Wen:
你好,为什么我这样设置了之后,PANID不修改成功呢pan_id=0x1122;_NIB.nwkPanId = pan_id;NLME_UpdateNV(0x01);SystemReset();默认协调器跟终端PANID=0x2abc, 然后只修改协调器的PANID=0x1122, 最后终端都还能进到这个网。说明协调器的PANID没有修改成功.
应该如何动态修改PANID 呢
谢谢!
P M:
回复 JKing Wen:
JKing,你好 我碰到跟你一样的问题 ,(终端)修改PanId或者channel的时候 总是加入不到网络中,你最后是怎么实现的呢?求教…
Tao Yang7:
回复 JKing Wen:
遇到同样的问题,需要在线同时修改协调器和终端的PANID,请问你解决了吗?请教!
P M:
回复 Tao Yang7:
Hi,Tao Yang
我这边有一个方法可以实现,你加我QQ(645919447) 交流一下!
TI中文支持网