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

2023-10-11 22:30

本文主要是介绍[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()函数

这篇关于[Ember Zigbee]Zigbee3.0设备建网流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/191293

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

C++/《C/C++程序编译流程》

程序的基本流程如图:   1.预处理        预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。 读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理将所有的“#define”删除,并且展开所有的宏定义处理所有的条件编译指令,如:“#if”、“