TI Zigbee中协调器和其他设备固定PANID通信

网络
zigbee因为有通过固定PANID通信的需求,因此进行了了大量的实验,上了很多论坛,在这里总结一下,为大家提供一定的帮助

 最近一直在研究zigbee,因为有通过固定PANID通信的需求,因此做了大量的实验,上了很多论坛,我想我必须总结一下,以免大家再走一遍我这样的路。

非常感谢很多写下技术文档和在TI论坛上积极回复的工程师。

一. 通过配置文件设置PANID

最简单的方式是修改

f8wConfig.cfg 中的-DZDAPP_CONFIG_PAN_ID

另外预定义NV_RESTORE和NV_INIT.

但有两个问题:

1.当协调器断电之后,重新上电时,周围已经有另一协调器也是这个PANID,则设备无法与原协调器连接上。

2. 要更换PANID,只能重新修改f8wConfig.cfg

二. 代码修改:

这是我的按键sw3的代码,供大家参考,通信时,真正起作用的是 _NIB.nwkPanId。

当附近有其他协调器时,其PANID会自动加1,而不会按照代码设置的PANID进行设置,即_NIB.nwkPanId=设置的PANID值+1;协调器组网之后,可以读取_NIB.nwkPanId的值,以其他方式设置到路由器和终端设备。

if ( keys & HAL_KEY_SW_3 )

{

// set specific PANID

#if HOME_AUTO_SET_PANID

uint16 panID;

zb_ReadConfiguration( ZCD_NV_PANID, sizeof(uint16), &panID );

if(panIDSetValue==panID-1)

panIDSetValue=panID+1;

if(_NIB.nwkPanId != panIDSetValue||panID!=panIDSetValue){

panID=panIDSetValue;

panIDSetValue++;

if(panIDSetValue==0x3FFF)

panIDSetValue=0x0001;

//save the panid value for APP

osal_nv_write( ZD_NV_REMOTE_CONTROL_STUDYNUM,0, sizeof(uint16), &panIDSetValue );

//save the panid value for Zigbee Stack

zb_WriteConfiguration( ZCD_NV_PANID, sizeof(uint16), &panID );

_NIB.nwkPanId = panID;

NLME_UpdateNV(NWK_NV_NIB_ENABLE);

#ifdef LCD_SUPPORTED

HalLcdWriteStringValue("New PANID",panID,16, lcdLineCounter );

lcdLineCounter++;

lcdLineCounter=((lcdLineCounter%8)<3)?(3):(lcdLineCounter%8);

#endif

//for Router, can not connetct cordevice, after cordevice's PANID has modify

zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);

SystemResetSoft();

}

#endif

}

责任编辑:何妍 来源: CSDN博客
相关推荐

2011-11-08 16:49:06

ZigBee协议栈Z-Stack

2011-11-10 10:06:36

ZigBee绑定

2016-12-05 09:50:17

2010-05-25 17:01:52

思科统一通信

2014-07-08 10:11:51

2024-04-02 09:40:39

多线程Java原子性

2021-07-30 11:21:39

物联网网络安全IoT

2019-03-05 17:15:49

德州仪器TIBAW

2022-11-14 08:45:24

UbuntuLinux扬声器

2021-06-21 08:06:54

微软Edge浏览器

2024-04-15 10:07:59

2015-08-19 10:49:02

2013-10-30 09:45:48

Zigbee蓝牙无线

2015-12-09 10:50:24

智能路灯ZigBee技术无线技术

2023-03-30 07:46:51

RTXTi显卡

2022-11-07 15:29:06

UbuntuLinuxCPU

2023-06-27 06:52:41

2014-06-09 13:21:27

2010-09-16 16:15:15

2021-06-30 19:42:49

LinuxOpenRazer开源
点赞
收藏

51CTO技术栈公众号