我是靠谱客的博主 聪慧流沙,最近开发中收集的这篇文章主要介绍EFR32网关获取节点信息代码流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

用了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网关获取节点信息代码流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部