-
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.
Merge branch 'master' into feature/update-door-lock-cluster-definitions
- Loading branch information
Showing
196 changed files
with
5,817 additions
and
2,463 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
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
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,144 @@ | ||
# Simulated Device How-To (Linux) | ||
|
||
This document contains instructions on how to build, run, and interact with a | ||
simulated device. All virtual accessories live in | ||
[examples/placeholder/linux/apps](../../examples/placeholder/linux/apps). | ||
|
||
Each accessory needs to be hosted into a subfolder. It will be the name of the | ||
application. For example `app1` will create a binary named `chip-app1`. | ||
|
||
If some parameters need to be overridden, a `CHIPProjectConfig.h` file can be | ||
placed under an ‘include’ folder into the app folder. For example | ||
`examples/placeholder/linux/apps/app1/include/CHIPProjectConfig.h` | ||
|
||
In order to generate specific tests for a given accessory, a | ||
[examples/placeholder/linux/apps/app1/tests.js](../../examples/placeholder/linux/apps/app1/tests.js) | ||
file can be added into the application directory. The tests listed there are the | ||
one that will be executed once the application has been commissioned. | ||
|
||
Simulated Device: simulation of an application in which tests can be added. It | ||
is defined by a ZAP config file and tests can be added with a | ||
[YAML file](../../src/app/tests/suites/certification/Test_TC_DM_1_3_Simulated.yaml). | ||
|
||
### Prerequisite | ||
|
||
- [Building Prerequisites](./BUILDING.md#prerequisites) | ||
- [Prepare For Building](./BUILDING.md#prepare-for-building) | ||
|
||
## Generating and building the default Simulated App with Script | ||
|
||
In order to utilize the app against a commissioner or controller, the app will | ||
need to be specifically built. | ||
|
||
1. To generate the ZAP files, and build the `chip-app1` binary completing the | ||
following steps: | ||
|
||
``` | ||
./scripts/examples/gn_build_test_example.sh app1 | ||
``` | ||
## Build the App only | ||
In order to utilize the app against a commissioner or controller, the app will | ||
need to be specifically built. | ||
1. To only build the `chip-app1` binary completing the following steps: | ||
``` | ||
source scripts/activate.sh | ||
CHIP_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" | ||
GN_ARGS="chip_tests_zap_config=\"app1\"" | ||
GN_ARGS+="chip_project_config_include_dirs=[\"$CHIP_ROOT/examples/placeholder/linux/apps/app1/include\", \"$CHIP_ROOT/config/standalone\"]" | ||
GN_ARGS+="chip_config_network_layer_ble=false" | ||
gn gen --check --fail-on-unused-args --root=examples/placeholder/linux out/simulated --args="$GN_ARGS" | ||
ninja -C out/simulated | ||
``` | ||
## Running the app | ||
Now that the building is completed there is a `chip-app1` binary created. This | ||
binary can be executed on a linux os. | ||
1. To generate the ZAP files, and build the `chip-app1` binary completing the | ||
following steps: | ||
``` | ||
./out/simulated/chip-app1 | ||
``` | ||
## Running the app with test parameter | ||
Now that the building is completed there is a `chip-app1` binary created. This | ||
binary can be executed on a linux os with test commands. | ||
1. To generate the ZAP files, and build the `chip-app1` binary completing the | ||
following steps: | ||
``` | ||
./out/simulated/chip-app1 --command [TEST NAME] | ||
``` | ||
## Interacting with the simulated app | ||
Now that the building the app and starting it is complete, you will be able to | ||
interact with it using chip-tool | ||
1. Follow the instruction to build chip-tool in the | ||
[chip-tool readme](../../examples/chip-tool). | ||
2. Run this command to initiate the pairing. | ||
``` | ||
./out/debug/standalone/chip-tool pairing ethernet 0x654321 20202021 3842 [IP ADDRESS of App] 5542 | ||
``` | ||
3. Run this command to complete the commissioning. | ||
``` | ||
./out/debug/standalone/chip-tool generalcommissioning commissioning-complete 0x654321 0 | ||
``` | ||
4. Most tests will start at this point and now an send cluster commands with | ||
chip-tool as follow. | ||
``` | ||
./out/debug/standalone/chip-tool onoff on 0x654321 1 | ||
./out/debug/standalone/chip-tool onoff read on-off 0x654321 1 | ||
./out/debug/standalone/chip-tool onoff write on-time 1 0x654321 1 | ||
``` | ||
See [chip-tool readme](../../examples/chip-tool) for additional commands. | ||
## Adding simulated Tests via YAML | ||
In order to validate commissioner/controller behavior, tests need to be added to | ||
the simulated device test framework. To achieve this, YAML files are created and | ||
new code is generated. | ||
1. YAML test file are located in | ||
[YAML folder](../../src/app/tests/suites/certification/) | ||
2. Test names must follow a strict format dues to CI of test recognition. The | ||
format is as follows: | ||
- Test_TC\_[`CATEGORY ABBREVIATION`]\_[`SECTION NUMBER`]\_[`SUBSECTION | ||
NUMBER`]\_Simulated.yaml | ||
- <strong>`IMPORTANT`: The test name must end in Simulated with the | ||
capital.</strong> | ||
3. Available properties can be found in | ||
[YAML Test Name](../../src/app/tests/suites/README.md) | ||
4. An Additional property is as follows: | ||
| Name | Description | | ||
| ---- | --------------------------------------------------------------------------- | | ||
| wait | The command that is expected to be received on the app from the controller. | | ||
5. [Test_TC_DM_1_3_Simulated](../../src/app/tests/suites/certification/Test_TC_DM_1_3_Simulated.yaml) | ||
is an example of a written test that runs on the simulated device. | ||
6. Next, it will need to be added to | ||
[examples/placeholder/linux/apps/app1/tests.js](../../examples/placeholder/linux/apps/app1/tests.js). | ||
in the following array | ||
```javascript | ||
const tests = ["Test_TC_DM_1_3_Simulated"]; | ||
``` | ||
7. Then, the code will be generated using ZAP. Follow | ||
[Gen Script](#generating-and-building-the-default-simulated-app-with-script) | ||
to do so. | ||
8. When submitting code for review, create 2 commits. One for YAML changes and | ||
second for generated code. |
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
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
34 changes: 34 additions & 0 deletions
34
examples/bridge-app/bridge-common/include/CHIPProjectAppConfig.h
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,34 @@ | ||
/* | ||
* | ||
* Copyright (c) 2020 Project CHIP Authors | ||
* All rights reserved. | ||
* | ||
* 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. | ||
*/ | ||
|
||
/** | ||
* @file | ||
* Example project configuration file for CHIP. | ||
* | ||
* This is a place to put application or project-specific overrides | ||
* to the default configuration values for general CHIP features. | ||
* | ||
*/ | ||
|
||
#pragma once | ||
|
||
// overrides CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT in CHIPProjectConfig | ||
#define CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT 16 | ||
|
||
// include the CHIPProjectConfig from config/standalone | ||
#include <CHIPProjectConfig.h> |
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
Oops, something went wrong.