0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux平臺下測試Matter應(yīng)用級通信?

冬至子 ? 來源:kurisaW ? 作者:kurisaW ? 2023-11-21 14:26 ? 次閱讀

硬件準(zhǔn)備

PC機需要支持藍(lán)牙4.0及以上版本,如果沒有的話需要購買一個USB藍(lán)牙適配器,而且需要支持Linux,可以參考購買這款藍(lán)牙適配器

準(zhǔn)備工作

1.遞歸克隆Matter倉庫

執(zhí)行如下命令:

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

如果克隆過程中發(fā)生報錯,請執(zhí)行如下命令來同步子模塊:

git submodule update --init

由于我們的環(huán)境構(gòu)建配置均是基于Matter1.0,所以我們需要切換到v1.0分支下

git checkout v1.0

2.Matter依賴項安裝

Matter 構(gòu)建依賴于以下軟件包及環(huán)境庫:

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 變體進行構(gòu)建,也要安裝 SDL2:

sudo apt-get install libsdl2-dev

3.Matter環(huán)境構(gòu)建

執(zhí)行scripts/activate.sh腳本。該腳本負(fù)責(zé)下載 GN、ninja,并使用用于構(gòu)建和測試的庫設(shè)置 Python 環(huán)境。

source scripts/activate.sh

1.jpg

如果顯示環(huán)境已過期可執(zhí)行如下命令進行更新(一般如果沒提示環(huán)境已過期的提示不建議執(zhí)行這一步,編譯會花一段時間):

source scripts/bootstrap.sh

4.安裝zap

注意:zap 包目前不可用arm64(比如在 Raspberry PI 上編譯時)。

Step1:ZAP需要Node.js來運行,請先確保你的計算機上已經(jīng)安裝了Node.js??梢允褂靡韵旅睿?/p>

node -v

如果安裝的話不出意外會出現(xiàn)版本號。

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環(huán)境變量
我們看上面 zap 安裝日志,其中最后導(dǎo)出了zap 的安裝路徑為/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly,在此目錄下有個 zap 腳本,我們這個位置一定要記?。?!

設(shè)置ZAP_DEVELOPMENT_PATH環(huán)境變量(這里的路徑需要根據(jù)上面安裝zap后提示的路徑進行設(shè)置,不能一昧照抄)

export ZAP_DEVELOPMENT_PATH=/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly
Step4:運行zap引導(dǎo)程序

執(zhí)行如下代碼:

./run_zaptool.sh

效果如下:

1.jpg

Step4:為了方便我們后續(xù)使用zap,我們設(shè)置root終端下自啟動:
sudo su
vi ~/.bashrc
在.bashrc文件最末添加如下代碼,也就是配置zap環(huán)境變量

export ZAP_DEVELOPMENT_PATH=/home/kurisaw/Desktop/esp/esp-gitee-tools/esp-matter/connectedhomeip/connectedhomeip/.zap/zap-v2023.04.27-nightly
保存退出!

應(yīng)用程序構(gòu)建
在官方文檔中提供有兩種構(gòu)建方式:

通過腳本構(gòu)建
使用 Gn 和 Ninja 命令構(gòu)建

1.通過腳本構(gòu)建

./build_script.sh EXAMPLE_DIR OUTPUT_DIR [ARGUMENTS]
build_script.sh 是腳本的文件名;
EXAMPLE_DIR 是示例項目的目錄路徑;
OUTPUT_DIR 是構(gòu)建輸出的目錄路徑;
[ARGUMENTS] 是可選的其他參數(shù),用于設(shè)置gn和ninja命令的選項。

1.1 構(gòu)建示例
./scripts/examples/gn_build_example.sh examples/placeholder/linux out/debug/simulated/ chip_tests_zap_config="app1"
"
1.jpg

1.2 運行構(gòu)建

./out/simulated/chip-app1

1.jpg

2.通過 gn 和 ninja 構(gòu)建應(yīng)用程序

2.1 構(gòu)建示例

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 運行構(gòu)建

cd
./out/app1/chip-app1

1.jpg

測試應(yīng)用程序
在前面的應(yīng)用程序構(gòu)建那一節(jié)中我們已經(jīng)完成了應(yīng)用程序的構(gòu)建并且成功運行了構(gòu)建,同時我們在日志中也可以看到生成了QR碼的鏈接,我們將其復(fù)制到瀏覽器打開即可得到二維碼

1.jpg

我們使用chip tool結(jié)合生成的QR碼進行調(diào)試,重新打開一個終端,使用默認(rèn)的chip tool工具(記住不是之前構(gòu)建應(yīng)用程序生成的chip tool),通過QR碼可以快捷迅速地將虛擬設(shè)備添加到網(wǎng)絡(luò)中,我們使用chip tool對設(shè)備進行調(diào)試:

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    587

    瀏覽量

    27181
  • 藍(lán)牙適配器
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    8782
  • PC機
    +關(guān)注

    關(guān)注

    2

    文章

    200

    瀏覽量

    28332
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84079
收藏 人收藏

    評論

    相關(guān)推薦

    【嵌入式編程】如何在Linux平臺安裝zint開源庫

    Linux編程】如何在Linux平臺安裝zint開源庫?
    的頭像 發(fā)表于 08-23 19:10 ?3703次閱讀
    【嵌入式編程】如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>平臺</b>安裝zint開源庫

    【TI CC2541申請】在linux平臺下開發(fā)BLE套件

    申請理由:項目描述:公司有一些消費電子項目已經(jīng)用到了cc2541 藍(lán)牙,我想申請一套在linux下開發(fā),因為公司以后開發(fā)單片機全部在linux+eclipse+gdb平臺下開發(fā),想早點上手1、在
    發(fā)表于 09-12 18:35

    何在Windows平臺下編譯esp8266 SOC源碼。

    何在Windows平臺下編譯esp8266 SOC源碼。主要遇到的問題,及解決方法。1源碼中注釋的漢字亂碼問題2代碼編輯窗口字號大小的調(diào)整3 build project命令不可用。因為有圖片,還是直接下載附件查看吧。
    發(fā)表于 04-21 10:26

    Linux和Windows平臺下SD啟動卡測試步驟

    當(dāng)使用SD卡或者tftp燒寫且無法從nand啟動時需要制作sd啟動卡幫助重新燒寫系統(tǒng);前段時間,講解了天嵌IMX6UL開發(fā)板分別在Linux平臺下和Windows平臺下制作SD啟動卡,如何檢驗制作
    發(fā)表于 12-15 10:57

    AP6255在海思平臺下linux系統(tǒng)驅(qū)動和fwnv

    分享AP6255在海思平臺下linux系統(tǒng)驅(qū)動和fwnv
    發(fā)表于 03-08 10:11

    Linux平臺下面安裝Maven步驟說明

    的構(gòu)建、報告和文檔等步驟。曾是Jakarta項目的子項目,現(xiàn)為獨立Apache項目?! ∧敲?,如何在Linux平臺下面安裝Maven呢?下面說明如何安裝及配置Maven。下載壓縮包
    發(fā)表于 07-23 06:14

    何在LabVIEW平臺下設(shè)計應(yīng)變測量系統(tǒng)?

    何在LabVIEW平臺下設(shè)計應(yīng)變測量系統(tǒng)?LabVIEW在測試測量領(lǐng)域有什么優(yōu)勢?
    發(fā)表于 04-12 06:32

    一種基于Linux平臺下的FPGA的驅(qū)動開發(fā)方法

    本文系統(tǒng)的介紹了ARM基于Linux平臺下的FPGA的驅(qū)動開發(fā)方法。
    發(fā)表于 05-07 06:04

    初級小白實戰(zhàn)資料,零基礎(chǔ)入門rk3399平臺下linux4.4+android8.1開發(fā)

    直播時間:7月30日(本周五)19:30直播主題:一起玩安卓刷機與Linux設(shè)備驅(qū)動(基于RK3399平臺下Linux4.4+Android8.1開發(fā))直播講師:信盈達高級講師 鐘亮直播鏈接:點擊
    發(fā)表于 07-27 17:53

    在嵌入式Linux平臺下的功耗管理技術(shù)

    產(chǎn)品的設(shè)計瓶頸,嵌入式功耗管理技術(shù)成為解決這一問題的有效手段.本文基于自主設(shè)計的嵌入式低功耗硬件平臺,通過系統(tǒng)休眠和系統(tǒng)運行兩方面重點探討了在嵌入式Linux平臺下的功耗管理技術(shù).本文首先介紹和分析了Li...
    發(fā)表于 11-05 08:01

    Linux平臺下電信計費網(wǎng)關(guān)研究

    設(shè)計了基于Linux 內(nèi)核的電信計費網(wǎng)關(guān)模型,實現(xiàn)了一種在x86 硬件上使用Linux 內(nèi)核進行包過濾的計費系統(tǒng)原型. 論文的主要研究工作:使用Netfilter 框架,完成了網(wǎng)絡(luò)層的數(shù)據(jù)包重組、以
    發(fā)表于 04-24 10:03 ?19次下載

    WinCE平臺下的CDMA信號測試系統(tǒng)的設(shè)計與實現(xiàn)

    WinCE平臺下的CDMA信號測試系統(tǒng)的設(shè)計與實現(xiàn)
    發(fā)表于 10-25 09:45 ?4次下載
    WinCE<b class='flag-5'>平臺下</b>的CDMA信號<b class='flag-5'>測試</b>系統(tǒng)的設(shè)計與實現(xiàn)

    Linux平臺下Mini210S裸機程序開發(fā)指南

    Linux平臺下Mini210S裸機程序開發(fā)指南
    發(fā)表于 10-29 10:52 ?59次下載
    <b class='flag-5'>Linux</b>的<b class='flag-5'>平臺下</b>Mini210S裸機程序開發(fā)指南

    何在Linux下搭建GNU Radio平臺及它的應(yīng)用分析

    GNU Radio是一個開源的軟件無線電開發(fā)平臺,可以通過圖形化界面或C++、Python等文本語言快速開發(fā)軟件無線電應(yīng)用,本文介紹了Linux下GNU Radio平臺的搭建及如何在
    的頭像 發(fā)表于 01-02 07:56 ?4060次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>下搭建GNU Radio<b class='flag-5'>平臺</b>及它的應(yīng)用分析

    何在在線訂購平臺下訂單

    該視頻介紹如何在我們的在線訂購平臺下訂單。
    的頭像 發(fā)表于 05-30 09:48 ?1801次閱讀