861|0

81

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

matter设备--为light_bulb添加温湿度endpoint [复制链接]

准备

由于matter使用zap对endpoint/cluster等进行添加/编辑/删除等操作,所以需要安装zap工具.

zap工具必须版本一直,可以通过<ncs目录>modules/lib/matter/scripts/setup/nrfconnect/get_zap.py来安装,命令如下:

cd <ncs>/modules/lib/matter
python scripts/setup/nrfconnect/get_zap.py -l ~/Programs/ -o

~/Programs/是指定的安装目录.

<ncs>表示ncs安装目录.

 

配置

命令格式如下:

zap src/light_bulb.zap --zcl <ncs>/modules/lib/matter/src/app/zap-templates/zcl/zcl.json --gen <ncs>/modules/lib/matter/src/app/zap-templates/app-templates.json

需要注意的是zcl.json和app-tamplates.json文件不可以拷贝到其他地方,我是了会报错,拷贝之后可能需要修改里面的内容.

然后会出现配置界面如下:

 

我已经添加了endpoint-2,endpoint添加是使用+ADD POINT按钮,点了之后会出现以下界面:

 

device可以下拉进行选择,选和是自己的就行.

温湿度传感器endpoint的内容如下:

 

通过过滤器只显示使能的cluster后就是上面的界面.

根据实际情况进行属性,命令等设置.

完成后保存退出即可.

 

生成源码

使用以下命令进行代码生成

python <ncs>/modules/lib/matter/scripts/tools/zap/generate.py <工程目录>/src/light_bulb.zap -t <ncs>/modules/lib/matter/src/app/zap-templates/app-templates.json -o <工程目录>/src/zap-generated

工程目录和ncs推荐使用绝对路径.

如果出现'Exception: Could not find a suitable clang-format'提示,可以通过apt安装clang-format进行解决.

 

修改

源码生成之后,需要修改app_task.cpp中的以下函数:

void AppTask::UpdateClustersState();

void AppTask::UpdateTemperatureClusterState();

void AppTask::UpdatePressureClusterState();

void AppTask::UpdateRelativeHumidityClusterState();

温湿度传感器默认设备是bme680,根据实际情况添加驱动然后修改源码

UpdateClustersState中修改对传感器进行采集部分.源码如下:

const int result = sensor_sample_fetch(sBme688SensorDev);

UpdateTemperatureClusterState中对数据行进转换,合规检测等,然后通过

Clusters::TemperatureMeasurement::Attributes::MeasuredValue::Set(kTemperatureMeasurementEndpointId, newValue);

进行数据的提交.

UpdatePressureClusterState和UpdateRelativeHumidityClusterState也是类似.

可以根据实际情况进行删减.

 

至此设备端的修改完成.

此帖出自无线连接论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表