-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
146 changed files
with
11,635 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Copyright (c) 2023 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") | ||
|
||
# The location of the build configuration file. | ||
buildconfig = "${build_root}/config/BUILDCONFIG.gn" | ||
|
||
# CHIP uses angle bracket includes. | ||
check_system_includes = true | ||
|
||
default_args = { | ||
target_cpu = "arm" | ||
|
||
target_os = "freertos" | ||
|
||
import("//args.gni") | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# Copyright (c) 2023 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/asr.gni") | ||
import("//build_overrides/build.gni") | ||
import("//build_overrides/chip.gni") | ||
import("${asr_sdk_build_root}/asr_sdk.gni") | ||
import("${build_root}/config/defaults.gni") | ||
import("${chip_root}/src/lib/lib.gni") | ||
import("${chip_root}/src/platform/device.gni") | ||
import("${chip_root}/third_party/asr/asr_executable.gni") | ||
|
||
import("cfg.gni") | ||
|
||
assert(current_os == "freertos") | ||
|
||
asr_project_dir = "${chip_root}/examples/all-clusters-app/asr" | ||
examples_plat_dir = "${chip_root}/examples/platform/asr" | ||
|
||
declare_args() { | ||
# Dump memory usage at link time. | ||
chip_print_memory_usage = false | ||
} | ||
|
||
asr_sdk_sources("all_clusters_app_sdk_sources") { | ||
include_dirs = [ | ||
"${chip_root}/src/platform/ASR", | ||
"${asr_project_dir}/include", | ||
"${examples_plat_dir}", | ||
] | ||
|
||
defines = [ | ||
"ASR_LOG_ENABLED=1", | ||
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", | ||
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", | ||
] | ||
|
||
if (chip_enable_factory_data) { | ||
defines += [ | ||
"CONFIG_ENABLE_ASR_FACTORY_DATA_PROVIDER=1", | ||
"CONFIG_ENABLE_ASR_FACTORY_DEVICE_INFO_PROVIDER=1", | ||
] | ||
} | ||
|
||
if (chip_lwip_ip6_hook) { | ||
defines += [ | ||
"CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT", | ||
"CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT", | ||
] | ||
} | ||
|
||
sources = [ "${asr_project_dir}/include/CHIPProjectConfig.h" ] | ||
|
||
public_configs = [ "${asr_sdk_build_root}:asr_sdk_config" ] | ||
} | ||
|
||
asr_executable("clusters_app") { | ||
include_dirs = [] | ||
defines = [] | ||
output_name = "chip-asr-clusters-example.out" | ||
|
||
sources = [ | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", | ||
"${examples_plat_dir}/CHIPDeviceManager.cpp", | ||
"${examples_plat_dir}/LEDWidget.cpp", | ||
"${examples_plat_dir}/init_Matter.cpp", | ||
"${examples_plat_dir}/init_asrPlatform.cpp", | ||
"${examples_plat_dir}/shell/matter_shell.cpp", | ||
"src/AppTask.cpp", | ||
"src/ButtonHandler.cpp", | ||
"src/DeviceCallbacks.cpp", | ||
"src/main.cpp", | ||
] | ||
|
||
if (chip_enable_ota_requestor) { | ||
sources += [ "${examples_plat_dir}/init_OTARequestor.cpp" ] | ||
} | ||
|
||
deps = [ | ||
":all_clusters_app_sdk_sources", | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common", | ||
"${chip_root}/examples/common/QRCode", | ||
"${chip_root}/examples/providers:device_info_provider", | ||
"${chip_root}/src/lib", | ||
"${chip_root}/src/setup_payload", | ||
] | ||
|
||
include_dirs += [ | ||
"include", | ||
"${examples_plat_dir}", | ||
"${asr_project_dir}/include", | ||
"${chip_root}/examples/all-clusters-app/all-clusters-common/include", | ||
"${chip_root}/src", | ||
"${chip_root}/src/lib", | ||
"${chip_root}/src/lib/support", | ||
"${chip_root}/src/app/util", | ||
] | ||
|
||
defines = [ "ASR_NETWORK_LAYER_BLE=${chip_config_network_layer_ble}" ] | ||
|
||
if (chip_build_libshell) { | ||
defines += [ "CONFIG_ENABLE_CHIP_SHELL=1" ] | ||
sources += [ "${examples_plat_dir}/shell/launch_shell.cpp" ] | ||
include_dirs += [ "${examples_plat_dir}/shell" ] | ||
} | ||
|
||
if (chip_print_memory_usage) { | ||
ldflags += [ | ||
"-Wl,--print-memory-usage", | ||
"-fstack-usage", | ||
] | ||
} | ||
|
||
output_dir = root_out_dir | ||
} | ||
|
||
group("asr") { | ||
deps = [ ":clusters_app" ] | ||
} | ||
|
||
group("default") { | ||
deps = [ ":asr" ] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# Matter ASR All Clusters Example | ||
|
||
A prototype application that demonstrates device commissioning and cluster | ||
control on ASR platform. | ||
|
||
--- | ||
|
||
- [Matter ASR All Clusters Example](#matter-asr-all-clusters-example) | ||
- [Supported Chips](#supported-chips) | ||
- [Building and Commissioning](#building-and-commissioning) | ||
- [Cluster Control](#cluster-control) | ||
- [Light switch press button and light status LED](#light-switch-press-button-and-light-status-led) | ||
|
||
--- | ||
|
||
## Supported Chips | ||
|
||
The Matter demo application is supported on: | ||
|
||
- ASR582X | ||
- ASR595X | ||
|
||
## Building and Commissioning | ||
|
||
Please refer | ||
[Building and Commissioning](../../../docs/guides/asr_getting_started_guide.md#building-the-example-application) | ||
guides to get started | ||
|
||
``` | ||
./scripts/build/build_examples.py --target asr-$ASR_BOARD-all-clusters build | ||
``` | ||
|
||
## Cluster Control | ||
|
||
After successful commissioning, use `chip-tool` to control the board | ||
|
||
For example, read sensor measured value: | ||
|
||
``` | ||
./chip-tool temperaturemeasurement read measured-value <NODE ID> 1 | ||
./chip-tool relativehumiditymeasurement read measured-value <NODE ID> 1 | ||
./chip-tool pressuremeasurement read measured-value <NODE ID> 1 | ||
``` | ||
|
||
Or,control the OnOff Cluster attribute: | ||
|
||
``` | ||
./chip-tool onoff read on-off <NODE ID> 1 | ||
./chip-tool onoff on <NODE ID> 1 | ||
./chip-tool onoff off <NODE ID> 1 | ||
./chip-tool onoff toggle <NODE ID> 1 | ||
``` | ||
|
||
## Light switch press button and light status LED | ||
|
||
This demo uses button to test changing the light states and LED to show the | ||
state of these changes. | ||
|
||
| Name | Pin | | ||
| :----: | :---: | | ||
| LED | PAD6 | | ||
| BUTTON | PAD12 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Copyright (c) 2023 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/chip.gni") | ||
import("//build_overrides/pigweed.gni") | ||
import("//cfg.gni") | ||
import("${chip_root}/src/platform/ASR/args.gni") | ||
|
||
asr_target_project = | ||
get_label_info(":all_clusters_app_sdk_sources", "label_no_toolchain") | ||
|
||
declare_args() { | ||
# Disable lock tracking, since our FreeRTOS configuration does not set | ||
# INCLUDE_xSemaphoreGetMutexHolder | ||
chip_stack_lock_tracking = "none" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../build_overrides/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Copyright (c) 2023 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. | ||
|
||
declare_args() { | ||
chip_enable_factory_data = false | ||
|
||
chip_lwip_ip6_hook = false | ||
|
||
setupPinCode = 20202021 | ||
|
||
setupDiscriminator = 3840 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* | ||
* Copyright (c) 2021 Project CHIP Authors | ||
* Copyright (c) 2019 Google LLC. | ||
* | ||
* 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. | ||
*/ | ||
|
||
#pragma once | ||
|
||
// ---- Lighting Example App Config ---- | ||
|
||
#define APP_TASK_NAME "APP" | ||
|
||
#define APP_EVENT_QUEUE_SIZE 10 | ||
#define APP_TASK_STACK_SIZE (1024 * 4) | ||
#define APP_WAIT_LOOP 1000 | ||
|
||
#define MATTER_DEVICE_NAME "ASR-Clusters" | ||
|
||
#define GPIO_TASK_NAME "gpio" | ||
#define GPIO_TASK_STACK_SIZE 1024 | ||
|
||
#define APP_BUTTON_PRESSED 0 | ||
#define APP_BUTTON_RELEASED 1 | ||
|
||
#define SWITCH1_BUTTON GPIO12_INDEX | ||
#define SWITCH2_BUTTON GPIO13_INDEX | ||
|
||
#define LIGHT1_LED PWM_OUTPUT_CH4 | ||
#define LIGHT2_LED PWM_OUTPUT_CH6 | ||
|
||
// Time it takes in ms for the simulated actuator to move from one | ||
// state to another. | ||
#define ACTUATOR_MOVEMENT_PERIOS_MS 2000 | ||
|
||
// ASR Logging | ||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
void appError(int err); | ||
void ASR_LOG(const char * aFormat, ...); | ||
|
||
#ifdef __cplusplus | ||
} | ||
|
||
#include <lib/core/CHIPError.h> | ||
void appError(CHIP_ERROR error); | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
/* | ||
* | ||
* Copyright (c) 2021 Project CHIP Authors | ||
* Copyright (c) 2018 Nest Labs, Inc. | ||
* | ||
* 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. | ||
*/ | ||
|
||
#pragma once | ||
#include <cstdint> | ||
|
||
struct AppEvent; | ||
typedef void (*EventHandler)(AppEvent *); | ||
|
||
struct AppEvent | ||
{ | ||
enum AppEventTypes | ||
{ | ||
kEventType_Button = 0, | ||
kEventType_Timer, | ||
kEventType_Light, | ||
kEventType_Install, | ||
}; | ||
|
||
uint16_t Type; | ||
|
||
union | ||
{ | ||
struct | ||
{ | ||
uint8_t ButtonIdx; | ||
uint8_t Action; | ||
} ButtonEvent; | ||
struct | ||
{ | ||
void * Context; | ||
} TimerEvent; | ||
}; | ||
|
||
EventHandler Handler; | ||
}; |
Oops, something went wrong.