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

news/2024/10/31 5:34:33/

如何在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/zappython3 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 suvi ~/.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-20230619084309631

测试应用程序

在前面的应用程序构建那一节中我们已经完成了应用程序的构建并且成功运行了构建,同时我们在日志中也可以看到生成了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


参考

  • simulated_device_linux
  • zap

http://www.ppmy.cn/news/470707.html

相关文章

【备战秋招】每日一题:2023.05-B卷-华为OD机试 - 经典屏保

为了更好的阅读体检,可以查看我的算法学习博客恢复数字序列 题目描述 D V D DVD DVD机在视频输出时,为了保护电视显像管,在待机状态会显示"屏保动画”,如下图所示, D V D DVD DVD L o g o Logo Logo在屏幕内来回…

Flink将数据写入CSV文件后文件中没有数据

Flink中有一个过时的sink方法:writeAsCsv,这个方法是将数据写入CSV文件中,有时候我们会发现程序启动后,打开文件查看没有任何数据,日志信息中也没有任何报错,这里我们结合源码分析一下这个原因. 这里先看一下数据处理的代码 代码中我是使用的自定义数据源生产数据的方式,为了方…

红米note2能刷机没显示无服务器,我的红米note2彻底黑屏变砖了,进不了Fastboot和Recovery模式了,还能救回来吗?...

满意答案 mojsi 2020.03.09 采纳率:44% 等级:12 已帮助:7771人 小米2手机,进入recovery模式和fastboot模式的方法:recovery模式进入方式:关机按住音量上开机键recovery模式进入方式:关机按住…

红米手机TWRP读不了刷机包成功解决记录

我有部没用的红米4A手机,打算刷个魔趣试试,结果问题来了 我的魔趣版本要求TWRP3.2.1以上,好不容易找到红米4A的TWRP3.3.1 结果遇到recovery读不了刷机包问题,百度一下,说是data要格式化, 我用3.3.1版本格式…

红米note手机GPS定位不了

http://jingyan.baidu.com/article/380abd0a71bc061d90192ce2.html 方法/步骤 打开红米的“安全中心” 选择“授权管理” 点击“应用权限管理” 选择“应用管理” 选择地图程序 将“定位”勾选,再重新打开导航,GPS就可以定位了。 来自 “ ITPUB博…

红米除线刷的另外一种救砖方法fastboot

原文来自:https://jingyan.baidu.com/article/48a42057e945bca9242504d7.html , 按照它操做了一下,虽然没有救活我的红米1,但是让我更好的了解了红米的fastboot功能,可以留着作参考。斜体的内容是我加入的,…

红米note9 4G无缘无故不开机 重启后不开机 插充电器无反应 通病维修视频教程

红米note9 4G 不开机 通病 红米note9进9008 红米note9重启,不是电源虚焊,不是cpu和字库虚焊 返修 总结起来大概是换电源IC后可以开机,重新固化电源IC或CPU可以开机,但是用几天后还是会死机没反应,故障依旧。无限返修。…

山东泰安电力学校,华为ensp考试

文章目录 一、考试要求二、作者的拓扑图,作者的x27,y5三、每个设备的代码(可直接复制粘贴运行,端口和连线要一样)SW1SW2R0R1R2 四、每个部分的有运行截图SW1SW2R0R1R2 五、运行成功截图 一、考试要求 考试初始化文件下…