概述
前言
用了Z3GatewayHost 做协调器网关,设备入网要经历几个阶段
- 设备请求入网(Beacon Request、Association Request、Data Request)
- 进入网络后网关分配短地址(Association Response)
- 网关发出Active Endpoints Request
- 网关发出 Simple Descriptor Request
通过以上命令,可以获取到入网节点信息,比如短地址、设备endpoint等
一般添加设备时,会发现网关SDK做了处理,自动会发送 Active Endpoints Request 和 Simple Descriptor Request,不需要用户去处理,就SDK这部分做下介绍、记录
这个SDK的总体架构是while(1)循环中处理多个event事件,而每一个event其实是一个队列,用来记录不同的事件详情
入网过程中的设备属性发现,就是一个Device Discovery的队列,定义在了device-table-discovery.c文件中
新加入的节点会走到下面函数,并且state 为 DEVICE_DISCOVERY_STATE_ENDPOINTS_SEND
推到队列之后,主循环会遍历到这个“事件”,由下面这个EventHandler去处理
可以看到接下来会去发出Active Endpoints Request,那么什么时候会发出Simple Descriptor Request呢?答案是Active Endpoints Response 做应答时,随后发出
这个“事件”最终会在这个主Event Handler处理函数中执行
至此,获取信息的命令都已发出,我们拿到了加入网络的设备节点信息
最后
以上就是聪慧流沙为你收集整理的EFR32网关获取节点信息代码流程的全部内容,希望文章能够帮你解决EFR32网关获取节点信息代码流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复