0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:kurisaW 作者:kurisaW 2023-11-21 14:26 次阅读

硬件准备

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

1.jpg

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

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

效果如下:

1.jpg

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"
"
1.jpg

1.2 运行构建

./out/simulated/chip-app1

1.jpg

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

1.jpg

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

1.jpg

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

1.jpg

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

    关注

    4

    文章

    567

    浏览量

    26923
  • 蓝牙适配器
    +关注

    关注

    0

    文章

    21

    浏览量

    8748
  • PC机
    +关注

    关注

    2

    文章

    198

    浏览量

    28079
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83468
收藏 人收藏

    评论

    相关推荐

    【嵌入式编程】如何在Linux平台安装zint开源库

    Linux编程】如何在Linux平台安装zint开源库?
    的头像 发表于 08-23 19:10 3274次阅读
    【嵌入式编程】如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>平台</b>安装zint开源库

    【TI CC2541申请】在linux平台下开发BLE套件

    申请理由:项目描述:公司有一些消费电子项目已经用到了cc2541 蓝牙,我想申请一套在linux下开发,因为公司以后开发单片机全部在linux+eclipse+gdb平台下开发,想早点上手1、在
    发表于 09-12 18:35

    何在Windows平台下编译esp8266 SOC源码。

    何在Windows平台下编译esp8266 SOC源码。主要遇到的问题,及解决方法。1源码中注释的汉字乱码问题2代码编辑窗口字号大小的调整3 build project命令不可用。因为有图片,还是直接下载附件查看吧。
    发表于 04-21 10:26

    Linux和Windows平台下SD启动卡测试步骤

    当使用SD卡或者tftp烧写且无法从nand启动时需要制作sd启动卡帮助重新烧写系统;前段时间,讲解了天嵌IMX6UL开发板分别在Linux平台下和Windows平台下制作SD启动卡,如何检验制作
    发表于 12-15 10:57

    AP6255在海思平台下linux系统驱动和fwnv

    分享AP6255在海思平台下linux系统驱动和fwnv
    发表于 03-08 10:11

    基于Android7.1 高通8953 平台下零死角玩转设备树DTS【2018更新】【申精】

    、address和size编址及reg描述【创科之龙_安卓开发】第06课_如何理解设备树CPU编地址和内存映射设备【创科之龙_安卓开发】第7课_高通平台下设备树优势与老的linux有什么优点【创科之龙_安卓
    发表于 07-09 20:20

    Linux平台下面安装Maven步骤说明

    的构建、报告和文档等步骤。曾是Jakarta项目的子项目,现为独立Apache项目。  那么,如何在Linux平台下面安装Maven呢?下面说明如何安装及配置Maven。下载压缩包
    发表于 07-23 06:14

    何在LabVIEW平台下设计应变测量系统?

    何在LabVIEW平台下设计应变测量系统?LabVIEW在测试测量领域有什么优势?
    发表于 04-12 06:32

    一种基于Linux平台下的FPGA的驱动开发方法

    本文系统的介绍了ARM基于Linux平台下的FPGA的驱动开发方法。
    发表于 05-07 06:04

    初级小白实战资料,零基础入门rk3399平台下linux4.4+android8.1开发

    直播时间:7月30日(本周五)19:30直播主题:一起玩安卓刷机与Linux设备驱动(基于RK3399平台下Linux4.4+Android8.1开发)直播讲师:信盈达高级讲师 钟亮直播链接:点击
    发表于 07-27 17:53

    在嵌入式Linux平台下的功耗管理技术

    产品的设计瓶颈,嵌入式功耗管理技术成为解决这一问题的有效手段.本文基于自主设计的嵌入式低功耗硬件平台,通过系统休眠和系统运行两方面重点探讨了在嵌入式Linux平台下的功耗管理技术.本文首先介绍和分析了Li...
    发表于 11-05 08:01

    WinCE平台下的CDMA信号测试系统的设计与实现

    WinCE平台下的CDMA信号测试系统的设计与实现
    发表于 10-25 09:45 4次下载
    WinCE<b class='flag-5'>平台下</b>的CDMA信号<b class='flag-5'>测试</b>系统的设计与实现

    Linux平台下Mini210S裸机程序开发指南

    Linux平台下Mini210S裸机程序开发指南
    发表于 10-29 10:52 59次下载
    <b class='flag-5'>Linux</b>的<b class='flag-5'>平台下</b>Mini210S裸机程序开发指南

    何在Linux下搭建GNU Radio平台及它的应用分析

    GNU Radio是一个开源的软件无线电开发平台,可以通过图形化界面或C++、Python等文本语言快速开发软件无线电应用,本文介绍了Linux下GNU Radio平台的搭建及如何在
    的头像 发表于 01-02 07:56 3730次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>下搭建GNU Radio<b class='flag-5'>平台</b>及它的应用分析

    何在在线订购平台下订单

    该视频介绍如何在我们的在线订购平台下订单。
    的头像 发表于 05-30 09:48 1687次阅读