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.

CC2530组网中信道和PAN_ID问题

Other Parts Discussed in Thread: Z-STACK

我使用的是Z-Stack Mesh 1.0.0协议栈,在设置信道和PAN_ID的时候,使用方法如下:

//设置PAN_ID和Channel
void Set_Panid(uint16 panid,uint32 Channel)
{
_NIB.nwkPanId = panid;
_NIB.channelList=Channel;
NLME_UpdateNV(0x01);
SystemReset();
}

读取信道和PAN_ID

 osal_memcpy(&channel, &_NIB.channelList, sizeof(uint32));   //获取到channel  终端节点读出来是默认信道

osal_memcpy(&PAN_ID, &_NIB.nwkPanId, sizeof(uint16));   //获取到PAN ID

在协调器和终端节点的预编译中均加入了NV_RESTORE

现象是,协调器的信道和PAN_ID可以修改,终端节点的PAN_ID可以修改,但是终端节点的信道不能修改

问题:

1、终端节点的PAN_ID可以修改,但是如果不修改,终端节点的PAN_ID也不是cfg当中的值,我尝试修改cfg的PAN_ID,下载给终端节点,则无法与协调器通信,所以我就不明白了,终端节点的PAN_ID到底是像协调器一样,从cfg当中获取默认值(结果发现并不是),还是搜索同信道的协调器的PAN_ID并加入网络(但是修改终端节点的PAN_ID,信道与协调器一致的情况下,并不能加入协调器),我想知道如何通过程序给终端节点一个固定的PAN_ID?

上述的结论我是通过文章开头的代码测试的,统一信道下的协调器和终端节点,不同PAN_ID,结果读取终端节点的PAN_ID,转换成字符串  显示为>>>?  ,如果在cfg中,俩个的PAN_ID为同一个值,则读取的就是设置的这个PAN_ID

2、终端节点的信道是默认的信道,无法修改,我想知道如何通过程序修改终端节点的信道?