3 Zigbee应用程序框架开发指南 - 应用程序框架目录结构
4 Zigbee应用程序框架开发指南 - 生成应用程序配置文件
5 Zigbee应用程序框架开发指南 - 应用程序框架API
6 Zigbee应用程序框架开发指南 - 应用程序框架Callback接口
11 Zigbee应用程序框架开发指南 - 命令行接口(CLI)
15 Zigbee应用程序框架开发指南 - 应用程序框架插件
16 Zigbee应用程序框架开发指南 - 扩展ZigBee Cluster Library (ZCL)
17 Zigbee应用程序框架开发指南 - 使用Ember AppBuilder设计应用程序
3 应用程序框架目录结构
当您生成一个项目时,默认情况下它会生成到您的workspace目录中,在一个以项目名称命名的文件夹中。本节中提到的其他目录可以在SimplicityStudio Zigbee protocol SDK文件夹中找到(\SiliconLabs\SimplicityStudio<version>\developer\sdks\gecko_sdk_suite<version>\protocol\ Zigbee)。
tool/appbuilder: AppBuilder使用的配置和模板文件。
当您将AppBuilder指向一个Stack安装时,它会查看这个目录,以在该Stack发布时加载最新ZCL实现的XML描述。
您可以在AppBuilder中的“Zigbee Stack”选项卡上将自定义cluster .xml文件加载到项目中。有关创建自定义cluster的更多信息,请参见simple Studio AppBuilder帮助中的Help | Help Contents | Simplicity Studio AppBuilder | Creating custom clusters.。
app/framework: 所有的Zigbee应用程序框架代码都位于app/framework中。代码的主要部分被分解到它们自己的目录中。
app/framework/cli: 与应用程序框架的命令行接口实现相关的代码。CLI的核心代码包含在app/util/serial/command-interpreter2.c中。CLI包括数据类型检查和命令使用反馈等。结果:
- 所有命令都需要与该命令相关联的所有参数。如果缺少参数,CLI将提供用户关于特定命令使用情况的反馈。
- 与CLI传递的参数必须采用以下格式之一:
<int>: 123(decimal)或0x1ABC(hex)
<string>: “foo”(string) 或{0A 1B 2C}(bytes数组)
app/framework/include: 所有用于Zigbee应用程序框架的外部api。
此目录镜像stack中包含目录的使用。它是所有面向外部的应用程序接口的单一位置。
app/framework/plugin: 所有Silicon labs创建的ZCL cluster代码
这个目录包含Silicon Labs团队为处理cluster命令而创建的所有cluster代码。通过从Ember AppBuilder的插件窗格中选择插件,可以选择将此代码包含在应用程序中。如果您选择不包含插件,那么您需要为所有需要的cluster命令实现回调。
app/framework/scenarios: 所有使用应用程序框架的示例应用程序场景
这些示例场景可以在AppBuilder中打开,方法是启动一个新项目,选择一个框架,然后选择一个示例应用程序。AppBuilder为给定的场景实例请求一个新的应用程序名称,并将样例回调代码复制到app/builder中同名的目录中。参见QSG106: Getting Started with EmberZNet了解关于构建和闪烁示例应用程序的详细描述。
app/framework/security: 所有与ZigBee安全相关的实用程序代码与密钥建立相关的代码位于app/framework/cluster中
app/framework/util: 应用程序的主线、消息处理和Zigbee应用程序框架使用的任何其他util程序代码。
这个目录包含了Zigbee应用程序框架的核心内容。这个目录中包括管理多端点支持的属性的属性存储文件。此外,用于访问、读取和写入属性的API包含在文件attributetable.h, 和attribute-storage.h中。