EFR32xG21 网关开发-- 系统SDK框架的一点认识

至此,用SilicionLabs方案搭建的网关基本功能已经完成,就系统SDK实现zigbee网关的框架做一点总结认识,抛转引玉~

Zigbee网关的开发涉及工程建立、编译,执行。相关联需要了解依赖的SDK目录含义、工程配置原理,以及懂得整个软件框架运行原理,下面就关键项展开介绍。
一、网关SDK目录详情
1、存储空间
源码包默认有2.5G多
经过一番裁剪之后,SDK用到文件大约有20M。

2、目录详情
SDK目录包含了Silicon Labs开发环境需要的所有代码,在安装时同样可以配置,比如现在我们支持Zigbee,所有相关代码都会自动下载更新。

SDK目录如下:
在这里插入图片描述

在linux环境下使用tree命令,可以打印目录详情。tree -d 只打印目录项,不展开。
在这里插入图片描述
二、网关工程编译介绍
思想指导:Silicon Labs芯片的开发思想是插件化,可以手动勾选配置支持项。通过简单的勾选,生成回调函数,在工程项目文件中暴露出来,具体的函数实现在SDK中,plugin目录。
1、Callbacks使用

在这里插入图片描述
Callback中勾选的参数,影响callbacks.h
在这里插入图片描述
2、Plugins使用

在这里插入图片描述
Plugins中勾选的参数,影响如下

在这里插入图片描述

可见最终会被Z3GatewayHost工程外部回调函数调用
3、具体函数介绍
3.1、普通回调示例

simple-main.c ->emberAfMain()
Af-main-host.c ->emAfInit() // 该函数实现在znet-bookkeeping.c中
znet-bookkeeping.c -> 注册了很多回调函数,暴露在外面
void emAfInit(void)
{
  emberAfMainInitCallback();  // Global
  emberAfInit();  // Global
  emberAfPluginGatewayInitCallback();  // Plugin: gateway
  emberAfPluginNetworkCreatorSecurityInitCallback();  // Plugin: network-creator-security
}

3.2、Plugin支持MQTT示例
emberAfPluginGatewayRelayMqttInitCallback 在Z3GatewayHost_endpoint_config.h中
在这里插入图片描述
这个宏定义的实现在util.c的emberAfInit()
在这里插入图片描述
emberAfInit()函数如上述在znet-bookkeeping.c定义实现
三、网关设计
1、网关硬件结构图

在这里插入图片描述

Zigbee协调器通过串口与主控连接,支持硬件流控
2、网关设计原理
Zigbee协调器与Host端通过串口连接,Host端可以接入互联网,通过Socket或者Mqtt等网络协议与外界通信,达到间接控制Zigbee网络的目的。
3、软件设计模型
3.1线程化模型
Socket Server接收命令
轮训获取数据状态

3.2、数据流向
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值