Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Cherry-pick] Adds refrigerator application (#35433) #36138

Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
[Silabs] Adds refrigerator application (#35433)
* Added the refrigerator application

* Added Implementation of the application

* Added RefrigeratorManager

* Added changes for the callback and the attribute update

* Added changes fot attribute data type

* added changes for the refrigrator UI

* Updated the wifi args and open thread files

* Added changes for refrigerator UI

* Added build fixes

* Fixed build errors

* Added changes for new zap attributes

* Added changes for the readme file

* Added date and spelling mistake changes

* Added changes for spelling mistake

* Added updated zap matter file and removed the commented code

* Removed the unwanted services from gn file

* Added function header

* Updated task name and removed the incorrect data

* Added callbacks

* Modified the datat type and the removed the callback

* Removed unwated changes

* Added changes for authors

* Restyled by whitespace

* Restyled by clang-format

* Restyled by gn

* Added changes according to comments

* Added the WiFi boards in the board list

* Update examples/refrigerator-app/silabs/include/CHIPProjectConfig.h

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/README.md

Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com>

* Fixed  the unint32_t alignment for the

* Added changes according to comment

* Removing warning

* Replaced the SILABS_LOGS with CHIPLog

* Corrected the application name

* Update examples/refrigerator-app/silabs/README.md

Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com>

* Update examples/refrigerator-app/silabs/README.md

Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com>

* Update examples/refrigerator-app/silabs/src/RefrigeratorUI.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/AppTask.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/AppTask.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/AppTask.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/RefrigeratorManager.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/AppTask.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/RefrigeratorManager.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/src/RefrigeratorManager.cpp

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Update examples/refrigerator-app/silabs/include/AppTask.h

Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>

* Removed commented code

* Updated read me for OTA documentation for SiWx917

* Adds changes for refrigerator modes and callbacks

* Added chip logs

* Updated the error message

* Restyled by whitespace

* Restyled by clang-format

* Updated refrigerator app matter file

* Added the changes related  to zap file and the mode supported

* Restyled by whitespace

* Restyled by clang-format

* Added changes for Temperature Controller feature Map

* Updated featureMap value for matter file

* Removed the temperature level

* Removed the startup and on mode from attributes

* Setting min and max temperature for the controlled cabinet

* Removed the Temperature level attribute from the Temperature controller

* Removed the min and max temperature

* Removed the attribute update for refrigerator and temperature cluster

* Added changes for the zap file

* Added restyle changes

* Updated matter file

* Added OTA requester

* Added changes for the attribute

* Added changes for the zap

---------

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: Rohan Sahay <Rohan.Sahay@silabs.com>
Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com>
  • Loading branch information
4 people committed Oct 18, 2024
commit 4b89d89abd66616f033087be42498df75ea411ba
243 changes: 243 additions & 0 deletions examples/refrigerator-app/silabs/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
# Copyright (c) 2024 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/efr32_sdk.gni")
import("//build_overrides/pigweed.gni")

import("${build_root}/config/defaults.gni")
import("${efr32_sdk_build_root}/silabs_executable.gni")

import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
import("${chip_root}/src/platform/device.gni")
import("${chip_root}/third_party/silabs/silabs_board.gni")

if (chip_enable_pw_rpc) {
import("//build_overrides/pigweed.gni")
import("$dir_pw_build/target_types.gni")
}

assert(current_os == "freertos")

silabs_project_dir = "${chip_root}/examples/refrigerator-app/silabs"
examples_common_plat_dir = "${chip_root}/examples/platform/silabs"

if (wifi_soc) {
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
} else {
import("${efr32_sdk_build_root}/efr32_sdk.gni")
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
}

import("${examples_common_plat_dir}/args.gni")

declare_args() {
# Dump memory usage at link time.
chip_print_memory_usage = false

# Enable the temperature sensor
# Some boards do not have a temperature sensor
use_temp_sensor = false
}

if (wifi_soc) {
siwx917_sdk("sdk") {
sources = [
"${examples_common_plat_dir}/FreeRTOSConfig.h",
"${silabs_project_dir}/include/CHIPProjectConfig.h",
]

include_dirs = [
"${chip_root}/src/platform/silabs/SiWx917",
"${silabs_project_dir}/include",
"${examples_plat_dir}",
"${chip_root}/src/lib",
"${examples_common_plat_dir}",
]

defines = []
if (chip_enable_pw_rpc) {
defines += [
"HAL_VCOM_ENABLE=1",
"PW_RPC_ENABLED",
]
}
}
} else {
efr32_sdk("sdk") {
sources = [
"${examples_common_plat_dir}/FreeRTOSConfig.h",
"${silabs_project_dir}/include/CHIPProjectConfig.h",
]

include_dirs = [
"${chip_root}/src/platform/silabs/efr32",
"${silabs_project_dir}/include",
"${examples_plat_dir}",
"${chip_root}/src/lib",
"${examples_common_plat_dir}",
]

if (use_wf200) {
include_dirs += [ "${examples_plat_dir}/wf200" ]
}

if (chip_enable_ble_rs911x) {
include_dirs += [
"${chip_root}/src/platform/silabs/efr32/rs911x",
"${examples_plat_dir}/rs911x",
"${examples_plat_dir}/rs911x/hal",
]
}

defines = []
if (chip_enable_pw_rpc) {
defines += [
"HAL_VCOM_ENABLE=1",
"PW_RPC_ENABLED",
]
}

if (use_temp_sensor) {
include_dirs += [
"${efr32_sdk_root}/platform/driver/i2cspm/inc",
"${efr32_sdk_root}/app/bluetooth/common/sensor_rht",
"${efr32_sdk_root}/app/bluetooth/common/sensor_rht/config",
"${efr32_sdk_root}/hardware/driver/si70xx/inc",
"${efr32_sdk_root}/app/bluetooth/common/sensor_select",
"${efr32_sdk_root}/platform/common/config",
]

defines += [ "USE_TEMP_SENSOR" ]
}
}
}

silabs_executable("refrigerator_app") {
output_name = "matter-silabs-refrigerator-example.out"
defines = []
include_dirs = [
"include",
"${chip_root}/examples/refrigerator-app/refrigerator-common/include",
]

sources = [
"${chip_root}/examples/refrigerator-app/refrigerator-common/src/static-supported-temperature-levels.cpp",
"${examples_common_plat_dir}/main.cpp",
"src/AppTask.cpp",
"src/RefrigeratorManager.cpp",
"src/ZclCallbacks.cpp",
"src/refrigerator-and-temperature-controlled-cabinet-mode.cpp",
]

if (use_temp_sensor) {
sources += [
"${efr32_sdk_root}/hardware/driver/si70xx/src/sl_si70xx.c",
"${efr32_sdk_root}/platform/common/src/sl_status.c",
"${efr32_sdk_root}/platform/driver/i2cspm/src/sl_i2cspm.c",
"${efr32_sdk_root}/platform/emlib/src/em_i2c.c",
"${examples_common_plat_dir}/TemperatureSensor.cpp",
"${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_i2cspm_init.c",
]
}

if (!disable_lcd) {
sources += [ "src/RefrigeratorUI.cpp" ]
}

deps = [
":sdk",
app_data_model,
]

if (wifi_soc) {
deps += [ "${examples_plat_dir}:siwx917-common" ]
} else {
deps += [ "${examples_plat_dir}:efr32-common" ]
}

if (chip_enable_pw_rpc) {
defines += [
"PW_RPC_ENABLED",
"PW_RPC_ATTRIBUTE_SERVICE=1",
"PW_RPC_BUTTON_SERVICE=1",
"PW_RPC_DESCRIPTOR_SERVICE=1",
"PW_RPC_DEVICE_SERVICE=1",
]

sources += [
"${chip_root}/examples/common/pigweed/RpcService.cpp",
"${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp",
"${examples_common_plat_dir}/PigweedLogger.cpp",
"${examples_common_plat_dir}/Rpc.cpp",
]

deps += [
"$dir_pw_hdlc:default_addresses",
"$dir_pw_hdlc:rpc_channel_output",
"$dir_pw_stream:sys_io_stream",
"${chip_root}/config/efr32/lib/pw_rpc:pw_rpc",
"${chip_root}/examples/common/pigweed:attributes_service.nanopb_rpc",
"${chip_root}/examples/common/pigweed:button_service.nanopb_rpc",
"${chip_root}/examples/common/pigweed:descriptor_service.nanopb_rpc",
"${chip_root}/examples/common/pigweed:device_service.nanopb_rpc",
]

if (wifi_soc) {
deps += [ "${examples_plat_dir}/pw_sys_io:pw_sys_io_siwx917" ]
} else {
deps += [ "${examples_common_plat_dir}/pw_sys_io:pw_sys_io_silabs" ]
}

deps += pw_build_LINK_DEPS

include_dirs += [
"${chip_root}/examples/common",
"${chip_root}/examples/common/pigweed/efr32",
]
}

ldscript = "${examples_common_plat_dir}/ldscripts/${silabs_family}.ld"

inputs = [ ldscript ]

ldflags = [ "-T" + rebase_path(ldscript, root_build_dir) ]

if (chip_print_memory_usage) {
ldflags += [
"-Wl,--print-memory-usage",
"-fstack-usage",
]
}

# WiFi Settings
if (chip_enable_wifi) {
ldflags += [
"-Wl,--defsym",
"-Wl,SILABS_WIFI=1",
]
}

output_dir = root_out_dir
}

group("silabs") {
deps = [ ":refrigerator_app" ]
}

group("default") {
deps = [ ":silabs" ]
}
Loading
Loading