我在做一个ZigBee节点无线配置的工具,想通过ZigBee协调器给其他节点发送无线数据包修改终端节点的channel和panid,修改成功后再吧协调器也给改成对应的channel和panid,并重新组网。现在遇到了一个问题:协调器在其他节点入网之前能用串口随意修改channel和panid,能改成功并重新组网,但是只要有节点连入协调器组的网络,协调器的channel和panid就再也改不掉了,不论是重启还是重新上电,都改不了,只能重新烧写程序,把整个flash刷掉才行。
程序设置channel和panid后是将这些参数存入flash的,设置后上电将新的参数从flash读出并赋值给
_NIB.nwkPanId = pan_id; //你想要的PANID
_NIB.nwkLogicalChannel = channel; //正在使用的逻辑信道 _NIB.channelList = chanlist; //可以扫描的信道
按理说没节点入网时能随意改,入网之后改因该也没问题的,顶多修改后复位一下应该能改成功的,感觉是在节点入网后,ZigBee协议栈在哪又存了一遍channel和panid,之后只从那个地方读取channel和panid参数了,不知道有没有TI大神遇到过这个问题没有,遇到了又是如何解决的,求帮助……
Viki Shi:
请参考这边: http://blog.csdn.net/u011195662/article/details/70242017 需要重启设备
JianDong xiong:
回复 Viki Shi:
我按照那个链接操作配置了,但是没有解决问题。协调器在节点没连上的情况下能多次修改panid和channel,但是一旦有节点连上协调器,协调器就改不了了,我的节点能多次修改panid和channel