【Matter】如何在Linux平台下测试Matter应用级通信(虚拟设备)

简介: 我们使用chip tool结合生成的QR码进行调试,重新打开一个终端,使用默认的chip tool工具(记住不是之前构建应用程序生成的chip tool),通过QR码可以快捷迅速地将虚拟设备添加到网络中,我们使用chip tool对设备进行调试

如何在Linux平台下测试Matter应用级通信(虚拟设备)


准备工作

1. 递归克隆Matter仓库

执行如下命令:

git clone --recurse-submodules git@github.com:project-chip/connectedhomeip.git

如果克隆过程中发生报错,请执行如下命令来同步子模块:

git submodule update --init

由于我们的环境构建配置均是基于Matter1.0,所以我们需要切换到v1.0分支下

git checkout v1.0

2. Matter依赖项安装

Matter 构建依赖于以下软件包及环境库:

sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \
     libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \
     python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev

如果通过build_examples.py-with-ui 变体进行构建,也要安装 SDL2:

sudo apt-get install libsdl2-dev

3. Matter环境构建

执行scripts/activate.sh脚本。该脚本负责下载 GN、ninja,并使用用于构建和测试的库设置 Python 环境。

source scripts/activate.sh

image-20230619083303148

如果显示环境已过期可执行如下命令进行更新(一般如果没提示环境已过期的提示不建议执行这一步,编译会花一段时间):

source scripts/bootstrap.sh

4. 安装zap

注意:zap 包目前不可用arm64(比如在 Raspberry PI 上编译时)。

  • Step1:ZAP需要Node.js来运行,请先确保你的计算机上已经安装了Node.js。可以使用以下命令:
node -v

如果安装的话不出意外会出现版本号。

  • Step2:zap安装
cd connectedhomeip/scripts/tools/zap

python3 zap_download.py

下面是安装日志:

root@kurisaw-virtual-machine:/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/scripts/tools/zap# python3 zap_download.py 
2023-06-19 13:28:22 root INFO    Found required zap version to be: v2023.04.27-nightly
2023-06-19 13:28:22 root INFO    Fetching: https://github.com/project-chip/zap/releases/download/v2023.04.27-nightly/zap-linux.zip
2023-06-19 13:29:20 root INFO    Data downloaded, extracting ...
2023-06-19 13:29:25 root INFO    Done extracting.
export ZAP_INSTALL_PATH=/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly
  • Step3:配置zap环境变量

我们看上面 zap 安装日志,其中最后导出了zap 的安装路径为/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly,在此目录下有个 zap 脚本,我们这个位置一定要记住!!

设置ZAP_DEVELOPMENT_PATH环境变量(这里的路径需要根据上面安装zap后提示的路径进行设置,不能一昧照抄)

export ZAP_DEVELOPMENT_PATH=/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly
  • Step4:运行zap引导程序

执行如下代码:

./run_zaptool.sh

效果如下:

image-20230619134658521

  • Step4:为了方便我们后续使用zap,我们设置root终端下自启动:
sudo su

vi ~/.bashrc

.bashrc文件最末添加如下代码,也就是配置zap环境变量

export ZAP_DEVELOPMENT_PATH=/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly

保存退出!

应用程序构建

在官方文档中提供有两种构建方式:

  • 通过脚本构建
  • 使用 Gn 和 Ninja 命令构建

1. 通过脚本构建

./build_script.sh EXAMPLE_DIR OUTPUT_DIR [ARGUMENTS]
  • build_script.sh 是脚本的文件名;
  • EXAMPLE_DIR 是示例项目的目录路径;
  • OUTPUT_DIR 是构建输出的目录路径;
  • [ARGUMENTS] 是可选的其他参数,用于设置gn和ninja命令的选项。

1.1 构建示例

./scripts/examples/gn_build_example.sh examples/placeholder/linux out/debug/simulated/ chip_tests_zap_config=\"app1\"

image-20230619083551820

1.2 运行构建

./out/simulated/chip-app1

image-20230619084309631

2. 通过 gn 和 ninja 构建应用程序

2.1 构建示例

source scripts/activate.sh
gn gen --check --root=examples/placeholder/linux out/simulated --args="chip_tests_zap_config=\"app1\""
ninja -C out/simulated

2.2 运行构建

cd 

./out/app1/chip-app1

image-20230619151054483

测试应用程序

在前面的应用程序构建那一节中我们已经完成了应用程序的构建并且成功运行了构建,同时我们在日志中也可以看到生成了QR码的链接,我们将其复制到浏览器打开即可得到二维码

image-20230619151353417

我们使用chip tool结合生成的QR码进行调试,重新打开一个终端,使用默认的chip tool工具(记住不是之前构建应用程序生成的chip tool),通过QR码可以快捷迅速地将虚拟设备添加到网络中,我们使用chip tool对设备进行调试:

cd out/debug

./chip-tool onoff on 0x654321 1
./chip-tool onoff off 0x654321 1
./chip-tool onoff read accepted-command-list 0x654321 1
./chip-tool onoff read on-time 0x654321 1

image-20230619153015727

具体更多的使用命令可参考:Chip tool


参考

目录
相关文章
|
4天前
|
消息中间件 运维 监控
Linux命令lsipc:深入解析与实战应用
`lsipc` (通常指 `ipcs`) 是Linux命令,用于查看系统中的IPC资源,包括消息队列、信号量和共享内存。它显示详细信息,支持过滤,并且需要相应权限。示例用法:显示共享内存(`-m`)、查询消息队列(`-q -i ID`)、查看关联进程(`-m -p`)。注意权限、操作影响及定期监控。结合`ipcrm`等工具可进行更深入管理。
|
3天前
|
人工智能 分布式计算 DataWorks
首批!阿里云完成中国信通院数据智能平台专项测试
2024年5月31日,在中国信通院组织的首批数据智能平台专项测试中,阿里云数据智能平台解决方案(MaxCompute、DataWorks、PAI)顺利完成测试。
47 5
首批!阿里云完成中国信通院数据智能平台专项测试
|
2天前
|
敏捷开发 jenkins 测试技术
探索自动化测试在敏捷开发中的应用
随着软件开发方法的不断演进,敏捷开发逐渐成为主流。然而,在不断迭代的开发过程中,确保软件质量却成了一大挑战。本文探讨了自动化测试在敏捷开发环境中的重要性、应用场景以及最佳实践,以期为开发团队提供有效的参考。
15 2
|
3天前
|
数据挖掘 Linux 数据处理
探索Linux下的Lua命令:轻量级脚本语言在数据处理和分析中的应用
**探索Linux上的Lua:轻量级脚本语言用于数据处理。Lua通过命令行解释器执行,适用于游戏开发、数据分析及自动化。特点包括小巧、高效、可扩展和动态类型。使用`lua`或`luajit`,配合-e、-l、-i参数执行脚本或互动模式。示例:执行`hello.lua`脚本打印"Hello, Lua!"。最佳实践涉及版本兼容、性能优化、使用C API、测试和文档编写。**
|
4天前
|
SQL 监控 中间件
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
|
5天前
|
存储 Linux 数据处理
Linux中的link命令:深入解析与实际应用
**Linux的`ln`命令详解:创建硬链接和软链接。硬链接共享相同inode,不占额外空间;软链接(符号链接)如快捷方式,可跨文件系统。使用`-s`创建软链接,`-f`强制覆盖。注意选择合适链接类型,避免循环链接,确保目标存在。**
|
5天前
|
Unix Linux 异构计算
用于实时 Linux® 的 TwinCAT Runtime,基于 Linux® 的实时控制器开辟了新的应用可能性
**TwinCAT Runtime for Linux®** 打开了倍福实时控制的新领域,支持在同一PC上运行多个独立实例,促进硬件整合和效率提升。基于Debian的定制Linux发行版,内置实时内核,允许GPU驱动的高速应用如机器视觉。利用Docker等容器技术,实现模块化控制和资源优化,降低工程成本。此发行版将逐步扩展到更多倍福设备,为Linux用户提供熟悉的TwinCAT编程环境和增强的灵活性。
|
6天前
|
Ubuntu Linux C语言
【opencv】opencv在windows和linux的应用
【opencv】opencv在windows和linux的应用
|
6天前
|
Linux 程序员 芯片
【Linux驱动】普通字符设备驱动程序框架
【Linux驱动】普通字符设备驱动程序框架
|
7天前
|
Linux 数据处理
Linux命令中的tic:深入了解与高效应用
`tic`是Linux中用于处理 Tektronix 4015 终端文本解释的命令,源于troff文本格式化系统。尽管现代系统不再常见该终端,`tic`仍用于特定数据处理,尤其是与troff配合,将troff输出转换为特定格式。使用时注意兼容性、输入格式和参数调整,如`-a`设定宽高比。通过`man tic`可获取更多详情。示例:`troff document.tr | tic`。了解这些能更好地处理特定文本格式任务。