Matter - ZAP 使用

笔者最近在 Matter 设备开发中遇到了需要对设备的 Endpoint 进行修改的问题,实际上 CSA 官方有提供一个叫做 ZAP 的工具,可以很方便的对设备 Endpoint 进行修改配置,今天就跟大家简单的分享这个工具的使用。

在 ZAP 的 GitHub 页面中有介绍,ZAP 是基于连接标准联盟 (Connectivity Standards Alliance) 制定的 Zigbee 集群库 (Zigbee Cluster Library) 规范为应用程序和库提供的通用生成引擎和用户界面。实际上 ZAP 在 Matter 开发中也可以使用到。

1. Matter 数据模型简介

在下文中可能会提及部分关于 Matter 数据模型的内容,这里给大家先简单说明下,在 Matter 网络中,一个具有一组功能和能力的设备可以作为一个 Node,在网络中可以唯一寻址,一个 Node 可以有多个 Endpoint,Endpoint 包含了这个 Node 支持的一些功能,也就是 Cluster,其中 Node 的 Endpoint 0 是专用于描述自身的信息。Cluster 就是一些功能服务的实体了,例如 On/Off Cluster,用于设备的开启关闭,例如灯、风扇等。

 

2. ZAP 安装

首先在 https://github.com/project-chip/zap GitHub 上下载 ZAP 的安装包,在下载目录中进行安装,这里笔者已经是第二次安装。

sudo dpkg -i zap-linux.deb 

3. ZAP 使用

进入到 Matter 工程目录下都会看到有一个 zap 文件夹,以 NXP 的 lighting-app 例程为例,在 …/matter/Desktop/matter/examples/lighting-app/nxp/zap 目录下会看到 lighting-on-off.zap 文件,使用 ZAP 将其打开。

zap lighting-on-off.zap 

4. Endpoint 修改

通过上面的步骤打开 lighting-on-off.zap 后,会显示如下界面;

点击左边的 Endpoint ,会展开 Endpoint 的信息,在右边的窗口可以查看 Endpoint 中的包含的 Cluster ;


此时界面中显示的 Cluster 是所有的,点击 Show 旁边的选项栏,可以选择只查看改 endpoint 使能的 cluster;


可以看到默认 Demo 中的这个 endpoint 1 包含了两个在 lighting 中非常常用的 cluster On/Off 和 Level Control;

前面也有提到,一个 Node 可以有多个 endpoint,在 ZAP 中点击 ADD NEW ENDPOINT 可以添加新的 endpoint,在弹出来的窗口中选择添加对应的 Device,点击 CREATE 完成添加;

5. 生成代码

按照自己的需求修改完 ZAP 文件后,Ctrl+s 保存 ZAP 文件的修改,此时并没有修改完全,进行工程编译会报错,还需要替换掉工程目录下对应的 ZAP 源文件,点击 GENERATE 导出文件。

选择导出的文件夹,以下是 ZAP 生成的文件;


将这些生成的文件替换掉原本目录中的源文件,这里我们前面修改的是 NXP 的 lighting-app 的例程,因此对应目录的路径是 …/matter/Desktop/matter/zzz_generated/lighting-app/nxp/zap-generated

替换完成后 endpoint 的修改也就完成了,就可以继续进行应用功能的开发了,以上就是今天的全部内容,如果有错误或者遗漏欢迎大家指正,共同学习,谢谢。

参考文档

22-22349-001_Matter-1.0-Core-Specification.pdf        ---Connectivity Standards Alliance
Getting started with K32W0x1 in Matter.pdf                  --- NXP

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论