Skip to content

Commit 61d43f1

Browse files
committed
Merge branch 'fabric_admin_add_rpc' into fabric_admin_populate
2 parents b0c3ffd + e965259 commit 61d43f1

File tree

111 files changed

+2001
-815
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+2001
-815
lines changed

.github/workflows/tests.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,7 @@ jobs:
506506
run: |
507507
mkdir -p out/trace_data
508508
scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --load-from-env /tmp/test_env.yaml --script src/controller/python/test/test_scripts/mobile-device-test.py'
509+
scripts/run_in_python_env.sh out/venv 'python3 ./src/python_testing/execute_python_tests.py --env-file /tmp/test_env.yaml --search-directory src/python_testing'
509510
scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --script "src/python_testing/TestMatterTestingSupport.py" --script-args "--trace-to json:out/trace_data/test-{SCRIPT_BASE_NAME}.json --trace-to perfetto:out/trace_data/test-{SCRIPT_BASE_NAME}.perfetto"'
510511
scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --script "src/python_testing/TestSpecParsingSupport.py" --script-args "--trace-to json:out/trace_data/test-{SCRIPT_BASE_NAME}.json --trace-to perfetto:out/trace_data/test-{SCRIPT_BASE_NAME}.perfetto"'
511512
scripts/run_in_python_env.sh out/venv './scripts/tests/TestTimeSyncTrustedTimeSourceRunner.py'

.mergify.yml

+21-12
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
11
pull_request_rules:
2+
- name: Label conflicting pull requests
3+
description: Add a label to a pull request with conflict to spot it easily
4+
conditions:
5+
- conflict
6+
- '-closed'
7+
actions:
8+
label:
9+
toggle:
10+
- conflict
211
- name: Automatic merge on PullApprove
312
conditions:
413
- or:
5-
- "check-success=pullapprove"
6-
- label="fast track"
7-
- "#approved-reviews-by>=1"
8-
- "#review-threads-unresolved=0"
9-
- "-draft"
10-
- "label!=docker" # Don't auto merge docker images
11-
- "#check-failure=0" # Don't auto merge with a failure
12-
- "#check-pending=0" # Don't auto merge with anything pending
13-
- "check-success~=Build" # Don't auto merge unless a build has succeeded, needed because above is true on a fresh PR before builds
14+
- check-success=pullapprove
15+
- label="fast track"
16+
- '#approved-reviews-by>=1'
17+
- '#review-threads-unresolved=0'
18+
- '-draft'
19+
- label!=docker
20+
- '#check-failure=0'
21+
- '#check-pending=0'
22+
- check-success~=Build
1423
- or:
15-
- "check-success=pullapprove"
16-
- "check-skipped=pullapprove"
17-
- "check-neutral=pullapprove"
24+
- check-success=pullapprove
25+
- check-skipped=pullapprove
26+
- check-neutral=pullapprove
1827
actions:
1928
merge:
2029
method: squash

examples/all-clusters-app/infineon/psoc6/README.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ will then join the network.
3030

3131
## Building
3232

33-
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
33+
- Download and install
34+
[Modustoolbox Software v3.2](https://www.infineon.com/modustoolbox)
3435

35-
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
36-
`scripts/examples/gn_psoc6_example.sh` for downloading the Software and
36+
Refer to `integrations/docker/images/stage-2/chip-build-infineon/Dockerfile`
37+
or `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
3738
related tools.
3839

3940
- Install some additional tools (likely already present for Matter
@@ -62,11 +63,12 @@ will then join the network.
6263
6364
- Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the
6465
`MODE SELECT` button. `KITPROG3 STATUS` LED is ON confirms board is in
65-
proper mode.
66+
proper mode. (Modustoolbox Software needs to be installed)
6667
6768
- On the command line:
6869
6970
$ cd ~/connectedhomeip
71+
$ export CY_TOOLS_PATHS=<Modustoolbox install location>/tools_3.2
7072
$ python3 out/infineon-psoc6-all-clusters/chip-psoc6-clusters-example.flash.py
7173
7274
## Commissioning and cluster control

examples/all-clusters-minimal-app/infineon/psoc6/README.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ will then join the network.
3030

3131
## Building
3232

33-
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
33+
- Download and install
34+
[Modustoolbox Software v3.2](https://www.infineon.com/modustoolbox)
3435

35-
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
36-
`scripts/examples/gn_psoc6_example.sh` for downloading the Software and
36+
Refer to `integrations/docker/images/stage-2/chip-build-infineon/Dockerfile`
37+
or `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
3738
related tools.
3839

3940
- Install some additional tools (likely already present for Matter
@@ -62,11 +63,12 @@ will then join the network.
6263
6364
- Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the
6465
`MODE SELECT` button. `KITPROG3 STATUS` LED is ON confirms board is in
65-
proper mode.
66+
proper mode. (Modustoolbox Software needs to be installed)
6667
6768
- On the command line:
6869
6970
$ cd ~/connectedhomeip
71+
$ export CY_TOOLS_PATHS=<Modustoolbox install location>/tools_3.2
7072
$ python3 out/infineon-psoc6-all-clusters-minimal/chip-psoc6-clusters-minimal-example.flash.py
7173
7274
## Commissioning and cluster control

examples/common/pigweed/protos/fabric_bridge_service.options

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ chip.rpc.SynchronizedDevice.unique_id max_size:33
22
chip.rpc.SynchronizedDevice.vendor_name max_size:33
33
chip.rpc.SynchronizedDevice.product_name max_size:33
44
chip.rpc.SynchronizedDevice.node_label max_size:33
5-
chip.rpc.SynchronizedDevice.hardware_version_string max_size:33
6-
chip.rpc.SynchronizedDevice.software_version_string max_size:33
5+
chip.rpc.SynchronizedDevice.hardware_version_string max_size:65
6+
chip.rpc.SynchronizedDevice.software_version_string max_size:65

examples/fabric-bridge-app/fabric-bridge-common/BUILD.gn

+13-1
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,24 @@ config("config") {
1919
include_dirs = [ "include" ]
2020
}
2121

22-
chip_data_model("fabric-bridge-common") {
22+
chip_data_model("fabric-bridge-common-zap") {
2323
zap_file = "fabric-bridge-app.zap"
2424
is_server = true
2525
cflags = [ "-DDYNAMIC_ENDPOINT_COUNT=16" ]
2626
}
2727

28+
# This includes all the clusters that only exist on the dynamic endpoint.
29+
source_set("fabric-bridge-common") {
30+
public_configs = [ ":config" ]
31+
32+
sources = [
33+
"${chip_root}/src/app/clusters/ecosystem-information-server/ecosystem-information-server.cpp",
34+
"${chip_root}/src/app/clusters/ecosystem-information-server/ecosystem-information-server.h",
35+
]
36+
37+
public_deps = [ ":fabric-bridge-common-zap" ]
38+
}
39+
2840
source_set("fabric-bridge-lib") {
2941
public_configs = [ ":config" ]
3042

examples/fabric-bridge-app/fabric-bridge-common/src/BridgedDeviceManager.cpp

+10-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ constexpr int kNodeLabelSize = 32;
5252
constexpr int kUniqueIdSize = 32;
5353
constexpr int kVendorNameSize = 32;
5454
constexpr int kProductNameSize = 32;
55-
constexpr int kHardwareVersionSize = 32;
56-
constexpr int kSoftwareVersionSize = 32;
55+
constexpr int kHardwareVersionSize = 64;
56+
constexpr int kSoftwareVersionSize = 64;
5757

5858
// Current ZCL implementation of Struct uses a max-size array of 254 bytes
5959
constexpr int kDescriptorAttributeArraySize = 254;
@@ -114,6 +114,13 @@ DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(bridgedDeviceBasicAttrs)
114114
kSoftwareVersionSize, 0),
115115
DECLARE_DYNAMIC_ATTRIBUTE_LIST_END();
116116

117+
// Declare Ecosystem Information cluster attributes
118+
DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(ecosystemInformationBasicAttrs)
119+
DECLARE_DYNAMIC_ATTRIBUTE(EcosystemInformation::Attributes::RemovedOn::Id, EPOCH_US, kNodeLabelSize, ATTRIBUTE_MASK_NULLABLE),
120+
DECLARE_DYNAMIC_ATTRIBUTE(EcosystemInformation::Attributes::DeviceDirectory::Id, ARRAY, kDescriptorAttributeArraySize, 0),
121+
DECLARE_DYNAMIC_ATTRIBUTE(EcosystemInformation::Attributes::LocationDirectory::Id, ARRAY, kDescriptorAttributeArraySize, 0),
122+
DECLARE_DYNAMIC_ATTRIBUTE_LIST_END();
123+
117124
// Declare Administrator Commissioning cluster attributes
118125
DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(AdministratorCommissioningAttrs)
119126
DECLARE_DYNAMIC_ATTRIBUTE(AdministratorCommissioning::Attributes::WindowStatus::Id, ENUM8, 1, 0),
@@ -133,6 +140,7 @@ constexpr CommandId administratorCommissioningCommands[] = {
133140
DECLARE_DYNAMIC_CLUSTER_LIST_BEGIN(bridgedNodeClusters)
134141
DECLARE_DYNAMIC_CLUSTER(Descriptor::Id, descriptorAttrs, ZAP_CLUSTER_MASK(SERVER), nullptr, nullptr),
135142
DECLARE_DYNAMIC_CLUSTER(BridgedDeviceBasicInformation::Id, bridgedDeviceBasicAttrs, ZAP_CLUSTER_MASK(SERVER), nullptr, nullptr),
143+
DECLARE_DYNAMIC_CLUSTER(EcosystemInformation::Id, ecosystemInformationBasicAttrs, ZAP_CLUSTER_MASK(SERVER), nullptr, nullptr),
136144
DECLARE_DYNAMIC_CLUSTER(AdministratorCommissioning::Id, AdministratorCommissioningAttrs, ZAP_CLUSTER_MASK(SERVER),
137145
administratorCommissioningCommands, nullptr) DECLARE_DYNAMIC_CLUSTER_LIST_END;
138146

examples/fabric-bridge-app/linux/RpcServer.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "pw_rpc_system_server/rpc_server.h"
2121
#include "pw_rpc_system_server/socket.h"
2222

23+
#include <app/clusters/ecosystem-information-server/ecosystem-information-server.h>
2324
#include <lib/core/CHIPError.h>
2425

2526
#include <string>
@@ -115,6 +116,10 @@ pw::Status FabricBridge::AddSynchronizedDevice(const chip_rpc_SynchronizedDevice
115116
return pw::Status::Unknown();
116117
}
117118

119+
CHIP_ERROR err = EcosystemInformation::EcosystemInformationServer::Instance().AddEcosystemInformationClusterToEndpoint(
120+
device->GetEndpointId());
121+
VerifyOrDie(err == CHIP_NO_ERROR);
122+
118123
return pw::OkStatus();
119124
}
120125

examples/fabric-bridge-app/linux/main.cpp

+10-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
#include <app/AttributeAccessInterfaceRegistry.h>
2727
#include <app/CommandHandlerInterfaceRegistry.h>
28+
#include <app/clusters/ecosystem-information-server/ecosystem-information-server.h>
2829

2930
#if defined(PW_RPC_FABRIC_BRIDGE_SERVICE) && PW_RPC_FABRIC_BRIDGE_SERVICE
3031
#include "RpcClient.h"
@@ -35,8 +36,15 @@
3536
#include <sys/ioctl.h>
3637
#include <thread>
3738

38-
using namespace chip;
39+
// This is declared here and not in a header because zap/embr assumes all clusters
40+
// are defined in a static endpoint in the .zap file. From there, the codegen will
41+
// automatically use PluginApplicationCallbacksHeader.jinja to declare and call
42+
// the respective Init callbacks. However, because EcosystemInformation cluster is only
43+
// ever on a dynamic endpoint, this doesn't get declared and called for us, so we
44+
// need to declare and call it ourselves where the application is initialized.
45+
void MatterEcosystemInformationPluginServerInitCallback();
3946

47+
using namespace chip;
4048
using namespace chip::app;
4149
using namespace chip::app::Clusters;
4250
using namespace chip::app::Clusters::AdministratorCommissioning;
@@ -177,6 +185,7 @@ void ApplicationInit()
177185
{
178186
ChipLogDetail(NotSpecified, "Fabric-Bridge: ApplicationInit()");
179187

188+
MatterEcosystemInformationPluginServerInitCallback();
180189
CommandHandlerInterfaceRegistry::RegisterCommandHandler(&gAdministratorCommissioningCommandHandler);
181190
registerAttributeAccessOverride(&gBridgedDeviceBasicInformationAttributes);
182191

examples/lighting-app/infineon/psoc6/README.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@ will then join the network.
3131

3232
## Building
3333

34-
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
34+
- Download and install
35+
[Modustoolbox Software v3.2](https://www.infineon.com/modustoolbox)
3536

36-
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
37-
`scripts/examples/gn_psoc6_example.sh` for downloading the Software and
37+
Refer to `integrations/docker/images/stage-2/chip-build-infineon/Dockerfile`
38+
or `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
3839
related tools.
3940

4041
- Install some additional tools (likely already present for Matter
@@ -43,7 +44,7 @@ will then join the network.
4344
python3-pip
4445

4546
- Supported hardware:
46-
[CY8CKIT-062S2-43012](https://www.cypress.com/CY8CKIT-062S2-43012)
47+
[CY8CKIT-062S2-43012](https://www.infineon.com/CY8CKIT-062S2-43012)
4748

4849
* Build the example application:
4950

@@ -59,11 +60,12 @@ will then join the network.
5960

6061
- Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the
6162
`MODE SELECT` button. `KITPROG3 STATUS` LED is ON confirms board is in
62-
proper mode.
63+
proper mode. (Modustoolbox Software needs to be installed)
6364

6465
- On the command line:
6566

6667
$ cd ~/connectedhomeip
68+
$ export CY_TOOLS_PATHS=<Modustoolbox install location>/tools_3.2
6769
$ python3 out/infineon-psoc6-light/chip-psoc6-lighting-example.flash.py
6870

6971
## Commissioning and cluster control

examples/lock-app/infineon/psoc6/README.md

+11-9
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ will then join the network.
3333

3434
## Building
3535

36-
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
36+
- Download and install
37+
[Modustoolbox Software v3.2](https://www.infineon.com/modustoolbox)
3738

38-
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
39-
`scripts/examples/gn_psoc6_example.sh` for downloading the Software and
39+
Refer to `integrations/docker/images/stage-2/chip-build-infineon/Dockerfile`
40+
or `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
4041
related tools.
4142

4243
- Install some additional tools (likely already present for Matter
@@ -45,7 +46,7 @@ will then join the network.
4546
python3-pip
4647

4748
- Supported hardware:
48-
[CY8CKIT-062S2-43012](https://www.cypress.com/CY8CKIT-062S2-43012)
49+
[CY8CKIT-062S2-43012](https://www.infineon.com/CY8CKIT-062S2-43012)
4950

5051
* Build the example application:
5152

@@ -66,11 +67,12 @@ more instructions_
6667

6768
- Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the
6869
`MODE SELECT` button. `KITPROG3 STATUS` LED is ON confirms board is in
69-
proper mode.
70+
proper mode. (Modustoolbox Software needs to be installed)
7071

7172
- On the command line:
7273

7374
$ cd ~/connectedhomeip
75+
$ export CY_TOOLS_PATHS=<Modustoolbox install location>/tools_3.2
7476
$ python3 out/infineon-psoc6-lock/chip-psoc6-lock-example.flash.py
7577

7678
## Commissioning and cluster control
@@ -116,12 +118,12 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
116118

117119
### Cluster control
118120

119-
- After successful commissioning, use the OnOff cluster command to toggle
120-
device between On or Off states.
121+
- After successful commissioning, use the doorlock cluster command to toggle
122+
device between lock or Unlock states.
121123

122-
`$ ./out/debug/chip-tool onoff on 1234 1`
124+
`$ ./out/debug/chip-tool doorlock lock-door 1234 1 --timedInteractionTimeoutMs 100`
123125

124-
`$ ./out/debug/chip-tool onoff off 1234 1`
126+
`$ ./out/debug/chip-tool doorlock unlock-door 1234 1 --timedInteractionTimeoutMs 100`
125127

126128
- Cluster OnOff can also be done using the `USER_BTN1` button on the board.
127129
This button is configured with `APP_LOCK_BUTTON` in `include/AppConfig.h`.

examples/network-manager-app/network-manager-common/network-manager-app.matter

+2
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,7 @@ provisional cluster ThreadBorderRouterManagement = 1106 {
15181518
provisional readonly attribute int16u threadVersion = 2;
15191519
provisional readonly attribute boolean interfaceEnabled = 3;
15201520
provisional readonly attribute nullable int64u activeDatasetTimestamp = 4;
1521+
provisional readonly attribute nullable int64u pendingDatasetTimestamp = 5;
15211522
readonly attribute command_id generatedCommandList[] = 65528;
15221523
readonly attribute command_id acceptedCommandList[] = 65529;
15231524
readonly attribute event_id eventList[] = 65530;
@@ -1879,6 +1880,7 @@ endpoint 1 {
18791880
callback attribute threadVersion;
18801881
callback attribute interfaceEnabled;
18811882
callback attribute activeDatasetTimestamp;
1883+
callback attribute pendingDatasetTimestamp;
18821884
callback attribute generatedCommandList;
18831885
callback attribute acceptedCommandList;
18841886
callback attribute eventList;

0 commit comments

Comments
 (0)