[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()函数

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值