[Ember Zigbee]Zigbee3.0设备建网流程

 针对Simplicity Studio 4,EmberZNet协议栈Zigbee3.0设备入网流程

Platform:Simplicity Studio 4、EmberZNet SDK 6.4.1.0

【SPP】Content:

EmberZNet  Zigbee3.0设备建网流程

1、在.isc文件工程的Plugins添加a插件【必须】与b插件【可选】

                    

2、调用emberAfPluginNetworkCreatorStart(bool centralizedNetwork)函数启动NetworkCreator

    

     此函数一调用最终执行扫描信道调度函数scheduleScans()

3、进入scheduleScans()函数

       

    自动扫描网络和信道时,仅通道扫描时间,协议栈默认是:

               EMBER_AF_PLUGIN_NETWORK_CREATOR_SCAN_DURATION 4

    扫描类型协议栈有以下几种类型:

enum
{/** An energy scan scans each channel for its RSSI value. */EMBER_ENERGY_SCAN,/** An active scan scans each channel for available networks. */EMBER_ACTIVE_SCAN,/** A fake scan that is used to turn off the radio. */EMBER_START_RADIO_OFF_SCAN,/** A green power channel delivery scan. */EMBER_STACK_GP_CHANNEL_DELIVERY_SCAN,EMBER_LAST_SCAN_TYPE = EMBER_STACK_GP_CHANNEL_DELIVERY_SCAN
};

4、扫描完成调到scanHandler(EmberAfPluginScanDispatchScanResults *results)函数

 

5、进入handleScanComplete(EmberAfPluginScanDispatchScanResults *results)函数

6、进入tryToFormNetwork(void)函数

    A处的值均是使用halCommonGetRandom()获取的随机数赋值

    B处判断是否是次级信道,如果是并且currentChannelMask为0,则选择一个最糟糕的信道来创建

7、接上图6 

C处设置网络安全模式且随机创建一个网络KEY

D处一直轮询,直到通道为上面设置的通道位置,则往下执行

E处在设置的通道建立网络

F处如果建网成功,则执行用户层的网络创建完成callback

G处跳出while循环

8、如果想要以自己指定的PANID、发射功率、通道、集中or分布式建立网络则可使用emberAfPluginNetworkCreatorNetworkForm()函数


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部