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.

【福利 - 信道、PANID动态更换,beacon request次数与速率控制 】

大家好,上一次写了一个【ZigBee白名单方案库文件或源码出售】,私下有很多小伙伴找我再做一个关于信道和PANID以及网络方面相关的模块,如有意愿可以添加QQ:326575140进行咨询,如果你正在浏览的是Internet of Things的网站,请猛戳屏幕右侧的QQ交谈与我联系。

现在具体的功能如下几点:

1、  信道和PANID设置

在某些手动划分网络的情况下,可以使用此功能改变设备的信道和PANID,例如一些工业使用场景中,有外部配置设备,可以对设备的网络进行有效管理。或者一些其他应用场景。

2、  Beacon次数限制

对于某些低功耗设备来说,掉线后一直发送beacon是一个非常浪费电池电量的事情,通过调用我写的文件中的API函数,可以有效的,实时的控制设备beacon的次数,例如设置成为6次,那么设备beacon次数达到6次后自动停止搜索网络,等待下次开启搜索。

3、  Beacon频率设置

在某些情况下,我们需要设备能够以更快的速度beacon加入网络,或者刚开始的时候快速加入,掉网后以更慢一点的速度进行beacon,通过调用文件的API可以有效的设置设备的beacon速率,已达到相关应用的目的。

 

下面是具体的实现步骤介绍:

1、  在工程的ZDO文件夹中添加 ZDNwkConfig.h 和 ZDNwkConfig.lib两个文件:

2、  在ZDApp.c中的ZDApp_Init函数中添加ZDNwkConfigUpdateRequest函数,记得包含ZDNwkConfig.h头文件。

3、  在ZDApp.c中的ZDApp_event_loop函数中下图位置添加ZDONwkConfigSearchNwk函数,并注释掉

ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode,

                     DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );函数。

4、  预编译使能NV_RESTORE。

5、  调用提供的API接口与你自己的应用层相结合就可以使用了。

 

下面给大家讲解下API的使用方法,接口函数在ZDNwkConfig.h中,如下图:


如果要配置信道为15信道,PANID为0x1234的话,直接在你的程序中调用

ZDNwkConfigSaveRequest函数,如:

如果需要配置设备的beacon次数或者beacon之间的速率,可以调用ZDNwkConfigStartBeacon进行设置,具体的速率请参考NLMEDE.h

假如现在我们有个终端节点,我想让他beacon10次之后就不发beacon request了,并且每次beacon request的速率是480ms ,那么我们只需要简单调用ZDNwkConfigStartBeacon(10,5);通过抓包你会发现,10次beacon request之后设备不再发送,如果传递的次数是0xFFFF,那么beacon request的次数将不会受到限制。

如果要停止beacon request只需要调用ZDNwkConfigStopBeacon函数即可。

后面还会另做一个关于PM2,PM3模式的切换和电源稳定的管理,包括支持串口唤醒,PM2或PM3模式下稳定串口传输或者外设采集等支持。

 

前一篇文章:【ZigBee白名单方案库文件或源码出售

【如有违反TI论坛的相关规定,可以将此篇帖子删除,为了生活,多有抱歉,望TI的工作人员海涵。】