如何在Linux平台下测试Matter应用级通信?

电子说

1.3w人已加入

描述

硬件准备

PC机需要支持蓝牙4.0及以上版本,如果没有的话需要购买一个USB蓝牙适配器,而且需要支持Linux,可以参考购买这款蓝牙适配器

准备工作

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

PC机

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

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

效果如下:

PC机

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"
"
PC机

1.2 运行构建

./out/simulated/chip-app1

PC机

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

PC机

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

PC机

我们使用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

PC机

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分