由于对esp32平台的不熟悉以及现如今网上关于matter的资料也比较少,在搭建esp-matter的开发环境过程中,出现了许多问题,通过许久的努力最终勉强搭建完成,希望通过这篇文章的记录能给大家带来帮助。
文章目录
使用Git命令克隆esp_matter的Github源码仓库,因为Matter官方库里包含许多第三方库,所以克隆的速度有点缓慢,请耐心等候…
git clone --recursive https://github.com/espressif/esp-matter.git
源码下载完后,开始配置相关的依赖工具:
#进入下载目录,执行install.sh脚本
cd esp-matter
./install.sh
做个软连接之后可以正常使用gcc工具
sudo ln -s /usr/bin/gcc-9 /usr/bin/gcc -f
sudo ln -s /usr/bin/gcc-nm-9 /usr/bin/gcc-nm -f
sudo ln -s /usr/bin/g++-nm-9 /usr/bin/g++-nm -f
sudo ln -s /usr/bin/g++-ar-9 /usr/bin/g++-ar -f
sudo ln -s /usr/bin/g++-9 /usr/bin/g++ -f
#修改文件路径:esp-matter/connectedhomeip/connectedhomeip/src/controller/CHIPDeviceControllerFactory.cpp
diff --git a/src/controller/CHIPDeviceControllerFactory.cpp b/src/controller/CHIPDeviceControllerFactory.cpp
index 45ab785..c7acef8 100644
--- a/src/controller/CHIPDeviceControllerFactory.cpp
+++ b/src/controller/CHIPDeviceControllerFactory.cpp
@@ -248,6 +248,7 @@ CHIP_ERROR DeviceControllerFactory::InitSystemState(FactoryInitParams params)
DeviceProxyInitParams deviceInitParams = {
.sessionManager = stateParams.sessionMgr,
.sessionResumptionStorage = stateParams.sessionResumptionStorage.get(),
+ .certificateValidityPolicy = nullptr,
.exchangeMgr = stateParams.exchangeMgr,
.fabricTable = stateParams.fabricTable,
.clientPool = stateParams.caseClientPool,
#修改文件路径:esp-matter/connectedhomeip/connectedhomeip/src/platform/Linux/bluez/MainLoop.h
diff --git a/src/platform/Linux/bluez/MainLoop.h b/src/platform/Linux/bluez/MainLoop.h
index e2a06e1..da5e97a 100644
--- a/src/platform/Linux/bluez/MainLoop.h
+++ b/src/platform/Linux/bluez/MainLoop.h
@@ -53,14 +53,14 @@ public:
template <class T>
bool Schedule(int (*callback)(T *), T * value)
{
- return RunOnBluezThread(G_SOURCE_FUNC(callback), value);
+ return RunOnBluezThread(GSourceFunc(callback), value);
}
/// Convenience method to require less casts to void*
template <class T>
bool ScheduleAndWait(int (*callback)(T *), T * value)
{
- return RunOnBluezThreadAndWait(G_SOURCE_FUNC(callback), value);
+ return RunOnBluezThreadAndWait(GSourceFunc(callback), value);
}
/// Schedules a method to be executed after the main loop has finished
@@ -80,7 +80,7 @@ public:
return false;
}
- mCleanup = G_SOURCE_FUNC(callback);
+ mCleanup = GSourceFunc(callback);
mCleanupArgument = static_cast<void *>(value);
return true;
(END)
编译通过则有以下画面:


最后执行. ./export.sh 添加环境变量,至此Matter_SDK的环境已经完成了,编译ESP-Matter的示例代码,还需要安装ESP_IDF环境参与编译工作,具体的ESP_IDF环境搭建请移步我的另一篇博文…
我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack