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

ZigBee协议栈PANID问题

协调器和节点的PANID是一样的但是协调器通过下面这个函数改变PANID号后,节点没有修改PANID,节点为什么还是会和协调器连接。
static void SetPanIding(uint8 *node) //修改PANID函数
{
uint8 flag = 0xff;
uint16 PanIdBuf = 0x00;
PanIdBuf = node[7];
PanIdBuf = PanIdBuf << 8;
PanIdBuf |= node[8];
flag = osal_nv_write(ZCD_NV_PANID, 0, sizeof(uint16), &PanIdBuf); //设置PANID
//_NIB.nwkPanId = PanIdBuf;
//NLME_UpdateNV(0x01);
if(flag == SUCCESS)
{
SystemResetSoft(); //软启动
}
}

Viki Shi:

重启后PANID是哪一个?修改有没有成功?

fenglei shi:

回复 Viki Shi:

协调器自动软重启,通过下面查看后,发现协调器PANID已经修改了

node[7] = zgConfigPANID >> 8; node[8] = zgConfigPANID & 0xFF; HalUARTWrite(SERIAL_COM_PORT, node, DataLength(1));

fenglei shi:

回复 Viki Shi:

请问,协调器PANID设置为0xffff,节点设置为其他PANID,不能连接,是需要设置什么宏定义吗?

ben wang:

_NIB.nwkPanId = PanIdBuf;NLME_UpdateNV(0x01);

这样就对了,本来的子设备就连接不了了,成为了孤儿

赞(0)
未经允许不得转载:TI中文支持网 » ZigBee协议栈PANID问题
分享到: 更多 (0)