diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml
index 815293204b09de..6178273668cba1 100644
--- a/.github/workflows/darwin-tests.yaml
+++ b/.github/workflows/darwin-tests.yaml
@@ -37,7 +37,7 @@ jobs:
strategy:
matrix:
- build_variant: [no-ble-asan-clang]
+ build_variant: [no-ble-no-shell-asan-clang]
env:
BUILD_VARIANT: ${{matrix.build_variant}}
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index baea4ca5ed57ed..9395f841a90c75 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -37,7 +37,7 @@ jobs:
strategy:
matrix:
- build_variant: [no-ble-tsan-clang]
+ build_variant: [no-ble-no-shell-tsan-clang]
chip_tool: [""]
env:
BUILD_VARIANT: ${{matrix.build_variant}}
@@ -331,7 +331,7 @@ jobs:
strategy:
matrix:
- build_variant: [no-ble-asan-clang, no-ble-tsan-clang]
+ build_variant: [no-ble-no-shell-asan-clang, no-ble-no-shell-tsan-clang]
chip_tool: [""]
env:
BUILD_VARIANT: ${{matrix.build_variant}}
diff --git a/data_model/in_progress/clusters/ACL-Cluster.xml b/data_model/1.4/clusters/ACL-Cluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/ACL-Cluster.xml
rename to data_model/1.4/clusters/ACL-Cluster.xml
diff --git a/data_model/in_progress/clusters/AccountLogin.xml b/data_model/1.4/clusters/AccountLogin.xml
similarity index 100%
rename from data_model/in_progress/clusters/AccountLogin.xml
rename to data_model/1.4/clusters/AccountLogin.xml
diff --git a/data_model/in_progress/clusters/AdminCommissioningCluster.xml b/data_model/1.4/clusters/AdminCommissioningCluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/AdminCommissioningCluster.xml
rename to data_model/1.4/clusters/AdminCommissioningCluster.xml
diff --git a/data_model/in_progress/clusters/AirQuality.xml b/data_model/1.4/clusters/AirQuality.xml
similarity index 100%
rename from data_model/in_progress/clusters/AirQuality.xml
rename to data_model/1.4/clusters/AirQuality.xml
diff --git a/data_model/in_progress/clusters/AlarmBase.xml b/data_model/1.4/clusters/AlarmBase.xml
similarity index 100%
rename from data_model/in_progress/clusters/AlarmBase.xml
rename to data_model/1.4/clusters/AlarmBase.xml
diff --git a/data_model/in_progress/clusters/ApplicationBasic.xml b/data_model/1.4/clusters/ApplicationBasic.xml
similarity index 100%
rename from data_model/in_progress/clusters/ApplicationBasic.xml
rename to data_model/1.4/clusters/ApplicationBasic.xml
diff --git a/data_model/in_progress/clusters/ApplicationLauncher.xml b/data_model/1.4/clusters/ApplicationLauncher.xml
similarity index 100%
rename from data_model/in_progress/clusters/ApplicationLauncher.xml
rename to data_model/1.4/clusters/ApplicationLauncher.xml
diff --git a/data_model/in_progress/clusters/AudioOutput.xml b/data_model/1.4/clusters/AudioOutput.xml
similarity index 100%
rename from data_model/in_progress/clusters/AudioOutput.xml
rename to data_model/1.4/clusters/AudioOutput.xml
diff --git a/data_model/in_progress/clusters/BallastConfiguration.xml b/data_model/1.4/clusters/BallastConfiguration.xml
similarity index 100%
rename from data_model/in_progress/clusters/BallastConfiguration.xml
rename to data_model/1.4/clusters/BallastConfiguration.xml
diff --git a/data_model/in_progress/clusters/BasicInformationCluster.xml b/data_model/1.4/clusters/BasicInformationCluster.xml
similarity index 97%
rename from data_model/in_progress/clusters/BasicInformationCluster.xml
rename to data_model/1.4/clusters/BasicInformationCluster.xml
index 168a0353761159..483cd643e65bda 100644
--- a/data_model/in_progress/clusters/BasicInformationCluster.xml
+++ b/data_model/1.4/clusters/BasicInformationCluster.xml
@@ -60,7 +60,7 @@ Davis, CA 95616, USA
-
+
@@ -303,11 +303,6 @@ Davis, CA 95616, USA
-
-
-
-
-
diff --git a/data_model/in_progress/clusters/Binding-Cluster.xml b/data_model/1.4/clusters/Binding-Cluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/Binding-Cluster.xml
rename to data_model/1.4/clusters/Binding-Cluster.xml
diff --git a/data_model/in_progress/clusters/BooleanState.xml b/data_model/1.4/clusters/BooleanState.xml
similarity index 100%
rename from data_model/in_progress/clusters/BooleanState.xml
rename to data_model/1.4/clusters/BooleanState.xml
diff --git a/data_model/in_progress/clusters/BooleanStateConfiguration.xml b/data_model/1.4/clusters/BooleanStateConfiguration.xml
similarity index 100%
rename from data_model/in_progress/clusters/BooleanStateConfiguration.xml
rename to data_model/1.4/clusters/BooleanStateConfiguration.xml
diff --git a/data_model/in_progress/clusters/Channel.xml b/data_model/1.4/clusters/Channel.xml
similarity index 100%
rename from data_model/in_progress/clusters/Channel.xml
rename to data_model/1.4/clusters/Channel.xml
diff --git a/data_model/in_progress/clusters/ColorControl.xml b/data_model/1.4/clusters/ColorControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/ColorControl.xml
rename to data_model/1.4/clusters/ColorControl.xml
diff --git a/data_model/in_progress/clusters/CommissionerControlCluster.xml b/data_model/1.4/clusters/CommissionerControlCluster.xml
similarity index 98%
rename from data_model/in_progress/clusters/CommissionerControlCluster.xml
rename to data_model/1.4/clusters/CommissionerControlCluster.xml
index d3b8380aaba929..d02e9592ee232d 100644
--- a/data_model/in_progress/clusters/CommissionerControlCluster.xml
+++ b/data_model/1.4/clusters/CommissionerControlCluster.xml
@@ -116,7 +116,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/in_progress/clusters/ConcentrationMeasurement.xml b/data_model/1.4/clusters/ConcentrationMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/ConcentrationMeasurement.xml
rename to data_model/1.4/clusters/ConcentrationMeasurement.xml
diff --git a/data_model/in_progress/clusters/ContentAppObserver.xml b/data_model/1.4/clusters/ContentAppObserver.xml
similarity index 100%
rename from data_model/in_progress/clusters/ContentAppObserver.xml
rename to data_model/1.4/clusters/ContentAppObserver.xml
diff --git a/data_model/in_progress/clusters/ContentControl.xml b/data_model/1.4/clusters/ContentControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/ContentControl.xml
rename to data_model/1.4/clusters/ContentControl.xml
diff --git a/data_model/in_progress/clusters/ContentLauncher.xml b/data_model/1.4/clusters/ContentLauncher.xml
similarity index 100%
rename from data_model/in_progress/clusters/ContentLauncher.xml
rename to data_model/1.4/clusters/ContentLauncher.xml
diff --git a/data_model/in_progress/clusters/DemandResponseLoadControl.xml b/data_model/1.4/clusters/DemandResponseLoadControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/DemandResponseLoadControl.xml
rename to data_model/1.4/clusters/DemandResponseLoadControl.xml
diff --git a/data_model/in_progress/clusters/Descriptor-Cluster.xml b/data_model/1.4/clusters/Descriptor-Cluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/Descriptor-Cluster.xml
rename to data_model/1.4/clusters/Descriptor-Cluster.xml
diff --git a/data_model/in_progress/clusters/DeviceEnergyManagement.xml b/data_model/1.4/clusters/DeviceEnergyManagement.xml
similarity index 100%
rename from data_model/in_progress/clusters/DeviceEnergyManagement.xml
rename to data_model/1.4/clusters/DeviceEnergyManagement.xml
diff --git a/data_model/in_progress/clusters/DiagnosticLogsCluster.xml b/data_model/1.4/clusters/DiagnosticLogsCluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/DiagnosticLogsCluster.xml
rename to data_model/1.4/clusters/DiagnosticLogsCluster.xml
diff --git a/data_model/in_progress/clusters/DiagnosticsEthernet.xml b/data_model/1.4/clusters/DiagnosticsEthernet.xml
similarity index 100%
rename from data_model/in_progress/clusters/DiagnosticsEthernet.xml
rename to data_model/1.4/clusters/DiagnosticsEthernet.xml
diff --git a/data_model/in_progress/clusters/DiagnosticsGeneral.xml b/data_model/1.4/clusters/DiagnosticsGeneral.xml
similarity index 99%
rename from data_model/in_progress/clusters/DiagnosticsGeneral.xml
rename to data_model/1.4/clusters/DiagnosticsGeneral.xml
index 1266705ba6d0dc..44b891fbcd6ea4 100644
--- a/data_model/in_progress/clusters/DiagnosticsGeneral.xml
+++ b/data_model/1.4/clusters/DiagnosticsGeneral.xml
@@ -263,6 +263,7 @@ Davis, CA 95616, USA
+
diff --git a/data_model/in_progress/clusters/DiagnosticsSoftware.xml b/data_model/1.4/clusters/DiagnosticsSoftware.xml
similarity index 100%
rename from data_model/in_progress/clusters/DiagnosticsSoftware.xml
rename to data_model/1.4/clusters/DiagnosticsSoftware.xml
diff --git a/data_model/in_progress/clusters/DiagnosticsThread.xml b/data_model/1.4/clusters/DiagnosticsThread.xml
similarity index 100%
rename from data_model/in_progress/clusters/DiagnosticsThread.xml
rename to data_model/1.4/clusters/DiagnosticsThread.xml
diff --git a/data_model/in_progress/clusters/DiagnosticsWiFi.xml b/data_model/1.4/clusters/DiagnosticsWiFi.xml
similarity index 100%
rename from data_model/in_progress/clusters/DiagnosticsWiFi.xml
rename to data_model/1.4/clusters/DiagnosticsWiFi.xml
diff --git a/data_model/in_progress/clusters/DishwasherAlarm.xml b/data_model/1.4/clusters/DishwasherAlarm.xml
similarity index 100%
rename from data_model/in_progress/clusters/DishwasherAlarm.xml
rename to data_model/1.4/clusters/DishwasherAlarm.xml
diff --git a/data_model/in_progress/clusters/DoorLock.xml b/data_model/1.4/clusters/DoorLock.xml
similarity index 100%
rename from data_model/in_progress/clusters/DoorLock.xml
rename to data_model/1.4/clusters/DoorLock.xml
diff --git a/data_model/in_progress/clusters/ElectricalEnergyMeasurement.xml b/data_model/1.4/clusters/ElectricalEnergyMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/ElectricalEnergyMeasurement.xml
rename to data_model/1.4/clusters/ElectricalEnergyMeasurement.xml
diff --git a/data_model/in_progress/clusters/ElectricalPowerMeasurement.xml b/data_model/1.4/clusters/ElectricalPowerMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/ElectricalPowerMeasurement.xml
rename to data_model/1.4/clusters/ElectricalPowerMeasurement.xml
diff --git a/data_model/in_progress/clusters/EnergyCalendar.xml b/data_model/1.4/clusters/EnergyCalendar.xml
similarity index 100%
rename from data_model/in_progress/clusters/EnergyCalendar.xml
rename to data_model/1.4/clusters/EnergyCalendar.xml
diff --git a/data_model/in_progress/clusters/EnergyEVSE.xml b/data_model/1.4/clusters/EnergyEVSE.xml
similarity index 100%
rename from data_model/in_progress/clusters/EnergyEVSE.xml
rename to data_model/1.4/clusters/EnergyEVSE.xml
diff --git a/data_model/in_progress/clusters/EnergyPreference.xml b/data_model/1.4/clusters/EnergyPreference.xml
similarity index 100%
rename from data_model/in_progress/clusters/EnergyPreference.xml
rename to data_model/1.4/clusters/EnergyPreference.xml
diff --git a/data_model/in_progress/clusters/FanControl.xml b/data_model/1.4/clusters/FanControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/FanControl.xml
rename to data_model/1.4/clusters/FanControl.xml
diff --git a/data_model/in_progress/clusters/FlowMeasurement.xml b/data_model/1.4/clusters/FlowMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/FlowMeasurement.xml
rename to data_model/1.4/clusters/FlowMeasurement.xml
diff --git a/data_model/in_progress/clusters/GeneralCommissioningCluster.xml b/data_model/1.4/clusters/GeneralCommissioningCluster.xml
similarity index 82%
rename from data_model/in_progress/clusters/GeneralCommissioningCluster.xml
rename to data_model/1.4/clusters/GeneralCommissioningCluster.xml
index a569fef5d44118..01450f959dfea3 100644
--- a/data_model/in_progress/clusters/GeneralCommissioningCluster.xml
+++ b/data_model/1.4/clusters/GeneralCommissioningCluster.xml
@@ -64,6 +64,11 @@ Davis, CA 95616, USA
+
+
+
+
+
@@ -81,6 +86,21 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -131,37 +151,52 @@ Davis, CA 95616, USA
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
@@ -223,9 +258,12 @@ Davis, CA 95616, USA
-
-
-
+
+
+
+
+
+
@@ -234,9 +272,15 @@ Davis, CA 95616, USA
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/Group-Key-Management-Cluster.xml b/data_model/1.4/clusters/Group-Key-Management-Cluster.xml
similarity index 99%
rename from data_model/in_progress/clusters/Group-Key-Management-Cluster.xml
rename to data_model/1.4/clusters/Group-Key-Management-Cluster.xml
index 784bdc903ec186..1974047c01acf0 100644
--- a/data_model/in_progress/clusters/Group-Key-Management-Cluster.xml
+++ b/data_model/1.4/clusters/Group-Key-Management-Cluster.xml
@@ -220,7 +220,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/in_progress/clusters/Groups.xml b/data_model/1.4/clusters/Groups.xml
similarity index 100%
rename from data_model/in_progress/clusters/Groups.xml
rename to data_model/1.4/clusters/Groups.xml
diff --git a/data_model/in_progress/clusters/Humidistat.xml b/data_model/1.4/clusters/Humidistat.xml
similarity index 100%
rename from data_model/in_progress/clusters/Humidistat.xml
rename to data_model/1.4/clusters/Humidistat.xml
diff --git a/data_model/in_progress/clusters/ICDManagement.xml b/data_model/1.4/clusters/ICDManagement.xml
similarity index 81%
rename from data_model/in_progress/clusters/ICDManagement.xml
rename to data_model/1.4/clusters/ICDManagement.xml
index 830f62fba2a63f..b6f76f48e2b137 100644
--- a/data_model/in_progress/clusters/ICDManagement.xml
+++ b/data_model/1.4/clusters/ICDManagement.xml
@@ -103,7 +103,6 @@ Davis, CA 95616, USA
-
@@ -112,6 +111,59 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/in_progress/clusters/Identify.xml b/data_model/1.4/clusters/Identify.xml
similarity index 100%
rename from data_model/in_progress/clusters/Identify.xml
rename to data_model/1.4/clusters/Identify.xml
diff --git a/data_model/in_progress/clusters/IlluminanceMeasurement.xml b/data_model/1.4/clusters/IlluminanceMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/IlluminanceMeasurement.xml
rename to data_model/1.4/clusters/IlluminanceMeasurement.xml
diff --git a/data_model/in_progress/clusters/JointFabricDatastoreCluster.xml b/data_model/1.4/clusters/JointFabricDatastoreCluster.xml
similarity index 99%
rename from data_model/in_progress/clusters/JointFabricDatastoreCluster.xml
rename to data_model/1.4/clusters/JointFabricDatastoreCluster.xml
index 137edd2857f74d..4557cfae7fdf41 100644
--- a/data_model/in_progress/clusters/JointFabricDatastoreCluster.xml
+++ b/data_model/1.4/clusters/JointFabricDatastoreCluster.xml
@@ -60,7 +60,9 @@ Davis, CA 95616, USA
-
+
+
+
diff --git a/data_model/in_progress/clusters/JointFabricPKICluster.xml b/data_model/1.4/clusters/JointFabricPKICluster.xml
similarity index 95%
rename from data_model/in_progress/clusters/JointFabricPKICluster.xml
rename to data_model/1.4/clusters/JointFabricPKICluster.xml
index 847d2548e3b1f1..41c9823626b528 100644
--- a/data_model/in_progress/clusters/JointFabricPKICluster.xml
+++ b/data_model/1.4/clusters/JointFabricPKICluster.xml
@@ -60,7 +60,9 @@ Davis, CA 95616, USA
-
+
+
+
@@ -121,18 +123,17 @@ Davis, CA 95616, USA
-
+
-
-
+
-
+
diff --git a/data_model/in_progress/clusters/KeypadInput.xml b/data_model/1.4/clusters/KeypadInput.xml
similarity index 100%
rename from data_model/in_progress/clusters/KeypadInput.xml
rename to data_model/1.4/clusters/KeypadInput.xml
diff --git a/data_model/in_progress/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/1.4/clusters/Label-Cluster-FixedLabelCluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/Label-Cluster-FixedLabelCluster.xml
rename to data_model/1.4/clusters/Label-Cluster-FixedLabelCluster.xml
diff --git a/data_model/in_progress/clusters/Label-Cluster-LabelCluster.xml b/data_model/1.4/clusters/Label-Cluster-LabelCluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/Label-Cluster-LabelCluster.xml
rename to data_model/1.4/clusters/Label-Cluster-LabelCluster.xml
diff --git a/data_model/in_progress/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/1.4/clusters/Label-Cluster-UserLabelCluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/Label-Cluster-UserLabelCluster.xml
rename to data_model/1.4/clusters/Label-Cluster-UserLabelCluster.xml
diff --git a/data_model/in_progress/clusters/LaundryDryerControls.xml b/data_model/1.4/clusters/LaundryDryerControls.xml
similarity index 100%
rename from data_model/in_progress/clusters/LaundryDryerControls.xml
rename to data_model/1.4/clusters/LaundryDryerControls.xml
diff --git a/data_model/in_progress/clusters/LaundryWasherControls.xml b/data_model/1.4/clusters/LaundryWasherControls.xml
similarity index 100%
rename from data_model/in_progress/clusters/LaundryWasherControls.xml
rename to data_model/1.4/clusters/LaundryWasherControls.xml
diff --git a/data_model/in_progress/clusters/LevelControl.xml b/data_model/1.4/clusters/LevelControl.xml
similarity index 98%
rename from data_model/in_progress/clusters/LevelControl.xml
rename to data_model/1.4/clusters/LevelControl.xml
index de342812287b0f..404b1250e90acc 100644
--- a/data_model/in_progress/clusters/LevelControl.xml
+++ b/data_model/1.4/clusters/LevelControl.xml
@@ -136,7 +136,7 @@ Davis, CA 95616, USA
-
+
@@ -145,6 +145,7 @@ Davis, CA 95616, USA
+
diff --git a/data_model/in_progress/clusters/LocalizationConfiguration.xml b/data_model/1.4/clusters/LocalizationConfiguration.xml
similarity index 100%
rename from data_model/in_progress/clusters/LocalizationConfiguration.xml
rename to data_model/1.4/clusters/LocalizationConfiguration.xml
diff --git a/data_model/in_progress/clusters/LocalizationTimeFormat.xml b/data_model/1.4/clusters/LocalizationTimeFormat.xml
similarity index 100%
rename from data_model/in_progress/clusters/LocalizationTimeFormat.xml
rename to data_model/1.4/clusters/LocalizationTimeFormat.xml
diff --git a/data_model/in_progress/clusters/LocalizationUnit.xml b/data_model/1.4/clusters/LocalizationUnit.xml
similarity index 100%
rename from data_model/in_progress/clusters/LocalizationUnit.xml
rename to data_model/1.4/clusters/LocalizationUnit.xml
diff --git a/data_model/in_progress/clusters/LowPower.xml b/data_model/1.4/clusters/LowPower.xml
similarity index 100%
rename from data_model/in_progress/clusters/LowPower.xml
rename to data_model/1.4/clusters/LowPower.xml
diff --git a/data_model/in_progress/clusters/MediaInput.xml b/data_model/1.4/clusters/MediaInput.xml
similarity index 100%
rename from data_model/in_progress/clusters/MediaInput.xml
rename to data_model/1.4/clusters/MediaInput.xml
diff --git a/data_model/in_progress/clusters/MediaPlayback.xml b/data_model/1.4/clusters/MediaPlayback.xml
similarity index 100%
rename from data_model/in_progress/clusters/MediaPlayback.xml
rename to data_model/1.4/clusters/MediaPlayback.xml
diff --git a/data_model/in_progress/clusters/Messages.xml b/data_model/1.4/clusters/Messages.xml
similarity index 100%
rename from data_model/in_progress/clusters/Messages.xml
rename to data_model/1.4/clusters/Messages.xml
diff --git a/data_model/in_progress/clusters/MicrowaveOvenControl.xml b/data_model/1.4/clusters/MicrowaveOvenControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/MicrowaveOvenControl.xml
rename to data_model/1.4/clusters/MicrowaveOvenControl.xml
diff --git a/data_model/in_progress/clusters/ModeBase.xml b/data_model/1.4/clusters/ModeBase.xml
similarity index 100%
rename from data_model/in_progress/clusters/ModeBase.xml
rename to data_model/1.4/clusters/ModeBase.xml
diff --git a/data_model/in_progress/clusters/ModeSelect.xml b/data_model/1.4/clusters/ModeSelect.xml
similarity index 100%
rename from data_model/in_progress/clusters/ModeSelect.xml
rename to data_model/1.4/clusters/ModeSelect.xml
diff --git a/data_model/in_progress/clusters/Mode_DeviceEnergyManagement.xml b/data_model/1.4/clusters/Mode_DeviceEnergyManagement.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_DeviceEnergyManagement.xml
rename to data_model/1.4/clusters/Mode_DeviceEnergyManagement.xml
diff --git a/data_model/in_progress/clusters/Mode_Dishwasher.xml b/data_model/1.4/clusters/Mode_Dishwasher.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_Dishwasher.xml
rename to data_model/1.4/clusters/Mode_Dishwasher.xml
diff --git a/data_model/in_progress/clusters/Mode_EVSE.xml b/data_model/1.4/clusters/Mode_EVSE.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_EVSE.xml
rename to data_model/1.4/clusters/Mode_EVSE.xml
diff --git a/data_model/in_progress/clusters/Mode_LaundryWasher.xml b/data_model/1.4/clusters/Mode_LaundryWasher.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_LaundryWasher.xml
rename to data_model/1.4/clusters/Mode_LaundryWasher.xml
diff --git a/data_model/in_progress/clusters/Mode_MicrowaveOven.xml b/data_model/1.4/clusters/Mode_MicrowaveOven.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_MicrowaveOven.xml
rename to data_model/1.4/clusters/Mode_MicrowaveOven.xml
diff --git a/data_model/in_progress/clusters/Mode_Oven.xml b/data_model/1.4/clusters/Mode_Oven.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_Oven.xml
rename to data_model/1.4/clusters/Mode_Oven.xml
diff --git a/data_model/in_progress/clusters/Mode_RVCClean.xml b/data_model/1.4/clusters/Mode_RVCClean.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_RVCClean.xml
rename to data_model/1.4/clusters/Mode_RVCClean.xml
diff --git a/data_model/in_progress/clusters/Mode_RVCRun.xml b/data_model/1.4/clusters/Mode_RVCRun.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_RVCRun.xml
rename to data_model/1.4/clusters/Mode_RVCRun.xml
diff --git a/data_model/in_progress/clusters/Mode_Refrigerator.xml b/data_model/1.4/clusters/Mode_Refrigerator.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_Refrigerator.xml
rename to data_model/1.4/clusters/Mode_Refrigerator.xml
diff --git a/data_model/in_progress/clusters/Mode_WaterHeater.xml b/data_model/1.4/clusters/Mode_WaterHeater.xml
similarity index 100%
rename from data_model/in_progress/clusters/Mode_WaterHeater.xml
rename to data_model/1.4/clusters/Mode_WaterHeater.xml
diff --git a/data_model/in_progress/clusters/NetworkCommissioningCluster.xml b/data_model/1.4/clusters/NetworkCommissioningCluster.xml
similarity index 99%
rename from data_model/in_progress/clusters/NetworkCommissioningCluster.xml
rename to data_model/1.4/clusters/NetworkCommissioningCluster.xml
index 1a511ed18fda3a..8ee15e1b47ad3d 100644
--- a/data_model/in_progress/clusters/NetworkCommissioningCluster.xml
+++ b/data_model/1.4/clusters/NetworkCommissioningCluster.xml
@@ -185,7 +185,7 @@ Davis, CA 95616, USA
-
+
@@ -452,7 +452,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/in_progress/clusters/OTAProvider.xml b/data_model/1.4/clusters/OTAProvider.xml
similarity index 100%
rename from data_model/in_progress/clusters/OTAProvider.xml
rename to data_model/1.4/clusters/OTAProvider.xml
diff --git a/data_model/in_progress/clusters/OTARequestor.xml b/data_model/1.4/clusters/OTARequestor.xml
similarity index 100%
rename from data_model/in_progress/clusters/OTARequestor.xml
rename to data_model/1.4/clusters/OTARequestor.xml
diff --git a/data_model/in_progress/clusters/OccupancySensing.xml b/data_model/1.4/clusters/OccupancySensing.xml
similarity index 100%
rename from data_model/in_progress/clusters/OccupancySensing.xml
rename to data_model/1.4/clusters/OccupancySensing.xml
diff --git a/data_model/in_progress/clusters/OnOff.xml b/data_model/1.4/clusters/OnOff.xml
similarity index 100%
rename from data_model/in_progress/clusters/OnOff.xml
rename to data_model/1.4/clusters/OnOff.xml
diff --git a/data_model/in_progress/clusters/OperationalCredentialCluster.xml b/data_model/1.4/clusters/OperationalCredentialCluster.xml
similarity index 99%
rename from data_model/in_progress/clusters/OperationalCredentialCluster.xml
rename to data_model/1.4/clusters/OperationalCredentialCluster.xml
index 338a8af007c5b9..26ae2c57a257b2 100644
--- a/data_model/in_progress/clusters/OperationalCredentialCluster.xml
+++ b/data_model/1.4/clusters/OperationalCredentialCluster.xml
@@ -264,7 +264,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/in_progress/clusters/OperationalState.xml b/data_model/1.4/clusters/OperationalState.xml
similarity index 100%
rename from data_model/in_progress/clusters/OperationalState.xml
rename to data_model/1.4/clusters/OperationalState.xml
diff --git a/data_model/in_progress/clusters/OperationalState_Oven.xml b/data_model/1.4/clusters/OperationalState_Oven.xml
similarity index 100%
rename from data_model/in_progress/clusters/OperationalState_Oven.xml
rename to data_model/1.4/clusters/OperationalState_Oven.xml
diff --git a/data_model/in_progress/clusters/OperationalState_RVC.xml b/data_model/1.4/clusters/OperationalState_RVC.xml
similarity index 100%
rename from data_model/in_progress/clusters/OperationalState_RVC.xml
rename to data_model/1.4/clusters/OperationalState_RVC.xml
diff --git a/data_model/in_progress/clusters/PowerSourceCluster.xml b/data_model/1.4/clusters/PowerSourceCluster.xml
similarity index 99%
rename from data_model/in_progress/clusters/PowerSourceCluster.xml
rename to data_model/1.4/clusters/PowerSourceCluster.xml
index a0b6b91c565dd8..82491aaa741720 100644
--- a/data_model/in_progress/clusters/PowerSourceCluster.xml
+++ b/data_model/1.4/clusters/PowerSourceCluster.xml
@@ -67,10 +67,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -636,7 +636,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/in_progress/clusters/PowerSourceConfigurationCluster.xml b/data_model/1.4/clusters/PowerSourceConfigurationCluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/PowerSourceConfigurationCluster.xml
rename to data_model/1.4/clusters/PowerSourceConfigurationCluster.xml
diff --git a/data_model/in_progress/clusters/PowerTopology.xml b/data_model/1.4/clusters/PowerTopology.xml
similarity index 100%
rename from data_model/in_progress/clusters/PowerTopology.xml
rename to data_model/1.4/clusters/PowerTopology.xml
diff --git a/data_model/in_progress/clusters/PressureMeasurement.xml b/data_model/1.4/clusters/PressureMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/PressureMeasurement.xml
rename to data_model/1.4/clusters/PressureMeasurement.xml
diff --git a/data_model/in_progress/clusters/ProxyConfiguration-Cluster.xml b/data_model/1.4/clusters/ProxyConfiguration-Cluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/ProxyConfiguration-Cluster.xml
rename to data_model/1.4/clusters/ProxyConfiguration-Cluster.xml
diff --git a/data_model/in_progress/clusters/ProxyDiscovery-Cluster.xml b/data_model/1.4/clusters/ProxyDiscovery-Cluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/ProxyDiscovery-Cluster.xml
rename to data_model/1.4/clusters/ProxyDiscovery-Cluster.xml
diff --git a/data_model/in_progress/clusters/PumpConfigurationControl.xml b/data_model/1.4/clusters/PumpConfigurationControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/PumpConfigurationControl.xml
rename to data_model/1.4/clusters/PumpConfigurationControl.xml
diff --git a/data_model/in_progress/clusters/RefrigeratorAlarm.xml b/data_model/1.4/clusters/RefrigeratorAlarm.xml
similarity index 100%
rename from data_model/in_progress/clusters/RefrigeratorAlarm.xml
rename to data_model/1.4/clusters/RefrigeratorAlarm.xml
diff --git a/data_model/in_progress/clusters/ResourceMonitoring.xml b/data_model/1.4/clusters/ResourceMonitoring.xml
similarity index 100%
rename from data_model/in_progress/clusters/ResourceMonitoring.xml
rename to data_model/1.4/clusters/ResourceMonitoring.xml
diff --git a/data_model/in_progress/clusters/Scenes.xml b/data_model/1.4/clusters/Scenes.xml
similarity index 100%
rename from data_model/in_progress/clusters/Scenes.xml
rename to data_model/1.4/clusters/Scenes.xml
diff --git a/data_model/in_progress/clusters/ServiceArea.xml b/data_model/1.4/clusters/ServiceArea.xml
similarity index 99%
rename from data_model/in_progress/clusters/ServiceArea.xml
rename to data_model/1.4/clusters/ServiceArea.xml
index 2533d4b549d2f0..3ea629625cb1ee 100644
--- a/data_model/in_progress/clusters/ServiceArea.xml
+++ b/data_model/1.4/clusters/ServiceArea.xml
@@ -227,7 +227,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/in_progress/clusters/SmokeCOAlarm.xml b/data_model/1.4/clusters/SmokeCOAlarm.xml
similarity index 100%
rename from data_model/in_progress/clusters/SmokeCOAlarm.xml
rename to data_model/1.4/clusters/SmokeCOAlarm.xml
diff --git a/data_model/in_progress/clusters/Switch.xml b/data_model/1.4/clusters/Switch.xml
similarity index 100%
rename from data_model/in_progress/clusters/Switch.xml
rename to data_model/1.4/clusters/Switch.xml
diff --git a/data_model/in_progress/clusters/TargetNavigator.xml b/data_model/1.4/clusters/TargetNavigator.xml
similarity index 100%
rename from data_model/in_progress/clusters/TargetNavigator.xml
rename to data_model/1.4/clusters/TargetNavigator.xml
diff --git a/data_model/in_progress/clusters/TemperatureControl.xml b/data_model/1.4/clusters/TemperatureControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/TemperatureControl.xml
rename to data_model/1.4/clusters/TemperatureControl.xml
diff --git a/data_model/in_progress/clusters/TemperatureMeasurement.xml b/data_model/1.4/clusters/TemperatureMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/TemperatureMeasurement.xml
rename to data_model/1.4/clusters/TemperatureMeasurement.xml
diff --git a/data_model/in_progress/clusters/Thermostat.xml b/data_model/1.4/clusters/Thermostat.xml
similarity index 100%
rename from data_model/in_progress/clusters/Thermostat.xml
rename to data_model/1.4/clusters/Thermostat.xml
diff --git a/data_model/in_progress/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/1.4/clusters/ThermostatUserInterfaceConfiguration.xml
similarity index 100%
rename from data_model/in_progress/clusters/ThermostatUserInterfaceConfiguration.xml
rename to data_model/1.4/clusters/ThermostatUserInterfaceConfiguration.xml
diff --git a/data_model/in_progress/clusters/ThreadBorderRouterManagement.xml b/data_model/1.4/clusters/ThreadBorderRouterManagement.xml
similarity index 100%
rename from data_model/in_progress/clusters/ThreadBorderRouterManagement.xml
rename to data_model/1.4/clusters/ThreadBorderRouterManagement.xml
diff --git a/data_model/in_progress/clusters/ThreadNetworkDirectory.xml b/data_model/1.4/clusters/ThreadNetworkDirectory.xml
similarity index 100%
rename from data_model/in_progress/clusters/ThreadNetworkDirectory.xml
rename to data_model/1.4/clusters/ThreadNetworkDirectory.xml
diff --git a/data_model/in_progress/clusters/TimeSync.xml b/data_model/1.4/clusters/TimeSync.xml
similarity index 100%
rename from data_model/in_progress/clusters/TimeSync.xml
rename to data_model/1.4/clusters/TimeSync.xml
diff --git a/data_model/in_progress/clusters/ValidProxies-Cluster.xml b/data_model/1.4/clusters/ValidProxies-Cluster.xml
similarity index 100%
rename from data_model/in_progress/clusters/ValidProxies-Cluster.xml
rename to data_model/1.4/clusters/ValidProxies-Cluster.xml
diff --git a/data_model/in_progress/clusters/ValveConfigurationControl.xml b/data_model/1.4/clusters/ValveConfigurationControl.xml
similarity index 100%
rename from data_model/in_progress/clusters/ValveConfigurationControl.xml
rename to data_model/1.4/clusters/ValveConfigurationControl.xml
diff --git a/data_model/in_progress/clusters/WakeOnLAN.xml b/data_model/1.4/clusters/WakeOnLAN.xml
similarity index 100%
rename from data_model/in_progress/clusters/WakeOnLAN.xml
rename to data_model/1.4/clusters/WakeOnLAN.xml
diff --git a/data_model/in_progress/clusters/WaterContentMeasurement.xml b/data_model/1.4/clusters/WaterContentMeasurement.xml
similarity index 100%
rename from data_model/in_progress/clusters/WaterContentMeasurement.xml
rename to data_model/1.4/clusters/WaterContentMeasurement.xml
diff --git a/data_model/in_progress/clusters/WaterHeaterManagement.xml b/data_model/1.4/clusters/WaterHeaterManagement.xml
similarity index 100%
rename from data_model/in_progress/clusters/WaterHeaterManagement.xml
rename to data_model/1.4/clusters/WaterHeaterManagement.xml
diff --git a/data_model/in_progress/clusters/WiFiNetworkManagement.xml b/data_model/1.4/clusters/WiFiNetworkManagement.xml
similarity index 100%
rename from data_model/in_progress/clusters/WiFiNetworkManagement.xml
rename to data_model/1.4/clusters/WiFiNetworkManagement.xml
diff --git a/data_model/in_progress/clusters/WindowCovering.xml b/data_model/1.4/clusters/WindowCovering.xml
similarity index 96%
rename from data_model/in_progress/clusters/WindowCovering.xml
rename to data_model/1.4/clusters/WindowCovering.xml
index 09133513af736a..dd6d2293cc31f2 100644
--- a/data_model/in_progress/clusters/WindowCovering.xml
+++ b/data_model/1.4/clusters/WindowCovering.xml
@@ -305,23 +305,33 @@ Davis, CA 95616, USA
-
-
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
@@ -343,10 +353,14 @@ Davis, CA 95616, USA
-
+
+
+
-
+
+
+
@@ -480,7 +494,6 @@ Davis, CA 95616, USA
-
@@ -523,7 +536,7 @@ Davis, CA 95616, USA
-
+
@@ -534,7 +547,7 @@ Davis, CA 95616, USA
-
+
@@ -546,7 +559,7 @@ Davis, CA 95616, USA
-
+
@@ -558,7 +571,7 @@ Davis, CA 95616, USA
-
+
@@ -570,7 +583,7 @@ Davis, CA 95616, USA
-
+
@@ -582,7 +595,7 @@ Davis, CA 95616, USA
-
+
@@ -593,7 +606,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/in_progress/clusters/bridge-clusters-ActionsCluster.xml b/data_model/1.4/clusters/bridge-clusters-ActionsCluster.xml
similarity index 98%
rename from data_model/in_progress/clusters/bridge-clusters-ActionsCluster.xml
rename to data_model/1.4/clusters/bridge-clusters-ActionsCluster.xml
index 4874aca26bc504..354e24c424417d 100644
--- a/data_model/in_progress/clusters/bridge-clusters-ActionsCluster.xml
+++ b/data_model/1.4/clusters/bridge-clusters-ActionsCluster.xml
@@ -166,6 +166,7 @@ Davis, CA 95616, USA
+
@@ -189,6 +190,7 @@ Davis, CA 95616, USA
+
diff --git a/data_model/in_progress/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/1.4/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
similarity index 97%
rename from data_model/in_progress/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
rename to data_model/1.4/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
index 62633f55cf08cc..3f7eda5f1ea87c 100644
--- a/data_model/in_progress/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
+++ b/data_model/1.4/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
@@ -62,7 +62,7 @@ Davis, CA 95616, USA
-
+
@@ -141,9 +141,6 @@ Davis, CA 95616, USA
-
-
-
diff --git a/data_model/in_progress/clusters/bridge-clusters-EcosystemInformationCluster.xml b/data_model/1.4/clusters/bridge-clusters-EcosystemInformationCluster.xml
similarity index 87%
rename from data_model/in_progress/clusters/bridge-clusters-EcosystemInformationCluster.xml
rename to data_model/1.4/clusters/bridge-clusters-EcosystemInformationCluster.xml
index ddebe95679370e..67c2bbbd108cd0 100644
--- a/data_model/in_progress/clusters/bridge-clusters-EcosystemInformationCluster.xml
+++ b/data_model/1.4/clusters/bridge-clusters-EcosystemInformationCluster.xml
@@ -120,18 +120,4 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/in_progress/clusters/cluster_ids.json b/data_model/1.4/clusters/cluster_ids.json
similarity index 100%
rename from data_model/in_progress/clusters/cluster_ids.json
rename to data_model/1.4/clusters/cluster_ids.json
diff --git a/data_model/in_progress/device_types/Aggregator.xml b/data_model/1.4/device_types/Aggregator.xml
similarity index 90%
rename from data_model/in_progress/device_types/Aggregator.xml
rename to data_model/1.4/device_types/Aggregator.xml
index a99ee1108c3b50..be604976521c54 100644
--- a/data_model/in_progress/device_types/Aggregator.xml
+++ b/data_model/1.4/device_types/Aggregator.xml
@@ -55,12 +55,12 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
-
@@ -68,5 +68,10 @@ Davis, CA 95616, USA
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/AirPurifier.xml b/data_model/1.4/device_types/AirPurifier.xml
similarity index 100%
rename from data_model/in_progress/device_types/AirPurifier.xml
rename to data_model/1.4/device_types/AirPurifier.xml
diff --git a/data_model/in_progress/device_types/AirQualitySensor.xml b/data_model/1.4/device_types/AirQualitySensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/AirQualitySensor.xml
rename to data_model/1.4/device_types/AirQualitySensor.xml
diff --git a/data_model/in_progress/device_types/BaseDeviceType.xml b/data_model/1.4/device_types/BaseDeviceType.xml
similarity index 100%
rename from data_model/in_progress/device_types/BaseDeviceType.xml
rename to data_model/1.4/device_types/BaseDeviceType.xml
diff --git a/data_model/in_progress/device_types/BasicVideoPlayer.xml b/data_model/1.4/device_types/BasicVideoPlayer.xml
similarity index 100%
rename from data_model/in_progress/device_types/BasicVideoPlayer.xml
rename to data_model/1.4/device_types/BasicVideoPlayer.xml
diff --git a/data_model/in_progress/device_types/BatteryStorage.xml b/data_model/1.4/device_types/BatteryStorage.xml
similarity index 100%
rename from data_model/in_progress/device_types/BatteryStorage.xml
rename to data_model/1.4/device_types/BatteryStorage.xml
diff --git a/data_model/in_progress/device_types/BridgedNode.xml b/data_model/1.4/device_types/BridgedNode.xml
similarity index 86%
rename from data_model/in_progress/device_types/BridgedNode.xml
rename to data_model/1.4/device_types/BridgedNode.xml
index 6f309001975627..1ea7a1984f57f5 100644
--- a/data_model/in_progress/device_types/BridgedNode.xml
+++ b/data_model/1.4/device_types/BridgedNode.xml
@@ -55,13 +55,13 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
-
@@ -79,5 +79,18 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/CastingVideoClient.xml b/data_model/1.4/device_types/CastingVideoClient.xml
similarity index 100%
rename from data_model/in_progress/device_types/CastingVideoClient.xml
rename to data_model/1.4/device_types/CastingVideoClient.xml
diff --git a/data_model/in_progress/device_types/CastingVideoPlayer.xml b/data_model/1.4/device_types/CastingVideoPlayer.xml
similarity index 100%
rename from data_model/in_progress/device_types/CastingVideoPlayer.xml
rename to data_model/1.4/device_types/CastingVideoPlayer.xml
diff --git a/data_model/in_progress/device_types/ColorDimmerSwitch.xml b/data_model/1.4/device_types/ColorDimmerSwitch.xml
similarity index 100%
rename from data_model/in_progress/device_types/ColorDimmerSwitch.xml
rename to data_model/1.4/device_types/ColorDimmerSwitch.xml
diff --git a/data_model/in_progress/device_types/ColorTemperatureLight.xml b/data_model/1.4/device_types/ColorTemperatureLight.xml
similarity index 100%
rename from data_model/in_progress/device_types/ColorTemperatureLight.xml
rename to data_model/1.4/device_types/ColorTemperatureLight.xml
diff --git a/data_model/in_progress/device_types/ContactSensor.xml b/data_model/1.4/device_types/ContactSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/ContactSensor.xml
rename to data_model/1.4/device_types/ContactSensor.xml
diff --git a/data_model/in_progress/device_types/ContentApp.xml b/data_model/1.4/device_types/ContentApp.xml
similarity index 100%
rename from data_model/in_progress/device_types/ContentApp.xml
rename to data_model/1.4/device_types/ContentApp.xml
diff --git a/data_model/in_progress/device_types/ControlBridge.xml b/data_model/1.4/device_types/ControlBridge.xml
similarity index 100%
rename from data_model/in_progress/device_types/ControlBridge.xml
rename to data_model/1.4/device_types/ControlBridge.xml
diff --git a/data_model/in_progress/device_types/CookSurface.xml b/data_model/1.4/device_types/CookSurface.xml
similarity index 100%
rename from data_model/in_progress/device_types/CookSurface.xml
rename to data_model/1.4/device_types/CookSurface.xml
diff --git a/data_model/in_progress/device_types/Cooktop.xml b/data_model/1.4/device_types/Cooktop.xml
similarity index 100%
rename from data_model/in_progress/device_types/Cooktop.xml
rename to data_model/1.4/device_types/Cooktop.xml
diff --git a/data_model/in_progress/device_types/DeviceEnergyManagement.xml b/data_model/1.4/device_types/DeviceEnergyManagement.xml
similarity index 100%
rename from data_model/in_progress/device_types/DeviceEnergyManagement.xml
rename to data_model/1.4/device_types/DeviceEnergyManagement.xml
diff --git a/data_model/in_progress/device_types/DimmableLight.xml b/data_model/1.4/device_types/DimmableLight.xml
similarity index 100%
rename from data_model/in_progress/device_types/DimmableLight.xml
rename to data_model/1.4/device_types/DimmableLight.xml
diff --git a/data_model/in_progress/device_types/DimmablePlug-InUnit.xml b/data_model/1.4/device_types/DimmablePlug-InUnit.xml
similarity index 100%
rename from data_model/in_progress/device_types/DimmablePlug-InUnit.xml
rename to data_model/1.4/device_types/DimmablePlug-InUnit.xml
diff --git a/data_model/in_progress/device_types/DimmerSwitch.xml b/data_model/1.4/device_types/DimmerSwitch.xml
similarity index 100%
rename from data_model/in_progress/device_types/DimmerSwitch.xml
rename to data_model/1.4/device_types/DimmerSwitch.xml
diff --git a/data_model/in_progress/device_types/Dishwasher.xml b/data_model/1.4/device_types/Dishwasher.xml
similarity index 100%
rename from data_model/in_progress/device_types/Dishwasher.xml
rename to data_model/1.4/device_types/Dishwasher.xml
diff --git a/data_model/in_progress/device_types/DoorLock.xml b/data_model/1.4/device_types/DoorLock.xml
similarity index 98%
rename from data_model/in_progress/device_types/DoorLock.xml
rename to data_model/1.4/device_types/DoorLock.xml
index e2eb1e9152085d..622b9a8bfc6300 100644
--- a/data_model/in_progress/device_types/DoorLock.xml
+++ b/data_model/1.4/device_types/DoorLock.xml
@@ -85,6 +85,7 @@ Davis, CA 95616, USA
+
diff --git a/data_model/in_progress/device_types/DoorLockController.xml b/data_model/1.4/device_types/DoorLockController.xml
similarity index 100%
rename from data_model/in_progress/device_types/DoorLockController.xml
rename to data_model/1.4/device_types/DoorLockController.xml
diff --git a/data_model/in_progress/device_types/EVSE.xml b/data_model/1.4/device_types/EVSE.xml
similarity index 100%
rename from data_model/in_progress/device_types/EVSE.xml
rename to data_model/1.4/device_types/EVSE.xml
diff --git a/data_model/in_progress/device_types/ElectricalSensor.xml b/data_model/1.4/device_types/ElectricalSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/ElectricalSensor.xml
rename to data_model/1.4/device_types/ElectricalSensor.xml
diff --git a/data_model/in_progress/device_types/EnergyTariff.xml b/data_model/1.4/device_types/EnergyTariff.xml
similarity index 100%
rename from data_model/in_progress/device_types/EnergyTariff.xml
rename to data_model/1.4/device_types/EnergyTariff.xml
diff --git a/data_model/in_progress/device_types/EnergyTariffCalendar.xml b/data_model/1.4/device_types/EnergyTariffCalendar.xml
similarity index 100%
rename from data_model/in_progress/device_types/EnergyTariffCalendar.xml
rename to data_model/1.4/device_types/EnergyTariffCalendar.xml
diff --git a/data_model/in_progress/device_types/ExtendedColorLight.xml b/data_model/1.4/device_types/ExtendedColorLight.xml
similarity index 100%
rename from data_model/in_progress/device_types/ExtendedColorLight.xml
rename to data_model/1.4/device_types/ExtendedColorLight.xml
diff --git a/data_model/in_progress/device_types/ExtractorHood.xml b/data_model/1.4/device_types/ExtractorHood.xml
similarity index 100%
rename from data_model/in_progress/device_types/ExtractorHood.xml
rename to data_model/1.4/device_types/ExtractorHood.xml
diff --git a/data_model/in_progress/device_types/Fan.xml b/data_model/1.4/device_types/Fan.xml
similarity index 100%
rename from data_model/in_progress/device_types/Fan.xml
rename to data_model/1.4/device_types/Fan.xml
diff --git a/data_model/in_progress/device_types/FlowSensor.xml b/data_model/1.4/device_types/FlowSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/FlowSensor.xml
rename to data_model/1.4/device_types/FlowSensor.xml
diff --git a/data_model/in_progress/device_types/GenericSwitch.xml b/data_model/1.4/device_types/GenericSwitch.xml
similarity index 100%
rename from data_model/in_progress/device_types/GenericSwitch.xml
rename to data_model/1.4/device_types/GenericSwitch.xml
diff --git a/data_model/in_progress/device_types/HeatPump.xml b/data_model/1.4/device_types/HeatPump.xml
similarity index 100%
rename from data_model/in_progress/device_types/HeatPump.xml
rename to data_model/1.4/device_types/HeatPump.xml
diff --git a/data_model/in_progress/device_types/HumidifierDehumidifier.xml b/data_model/1.4/device_types/HumidifierDehumidifier.xml
similarity index 100%
rename from data_model/in_progress/device_types/HumidifierDehumidifier.xml
rename to data_model/1.4/device_types/HumidifierDehumidifier.xml
diff --git a/data_model/in_progress/device_types/HumiditySensor.xml b/data_model/1.4/device_types/HumiditySensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/HumiditySensor.xml
rename to data_model/1.4/device_types/HumiditySensor.xml
diff --git a/data_model/in_progress/device_types/JointFabricAdmin.xml b/data_model/1.4/device_types/JointFabricAdmin.xml
similarity index 100%
rename from data_model/in_progress/device_types/JointFabricAdmin.xml
rename to data_model/1.4/device_types/JointFabricAdmin.xml
diff --git a/data_model/in_progress/device_types/LaundryDryer.xml b/data_model/1.4/device_types/LaundryDryer.xml
similarity index 100%
rename from data_model/in_progress/device_types/LaundryDryer.xml
rename to data_model/1.4/device_types/LaundryDryer.xml
diff --git a/data_model/in_progress/device_types/LaundryWasher.xml b/data_model/1.4/device_types/LaundryWasher.xml
similarity index 100%
rename from data_model/in_progress/device_types/LaundryWasher.xml
rename to data_model/1.4/device_types/LaundryWasher.xml
diff --git a/data_model/in_progress/device_types/LightSensor.xml b/data_model/1.4/device_types/LightSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/LightSensor.xml
rename to data_model/1.4/device_types/LightSensor.xml
diff --git a/data_model/in_progress/device_types/MicrowaveOven.xml b/data_model/1.4/device_types/MicrowaveOven.xml
similarity index 100%
rename from data_model/in_progress/device_types/MicrowaveOven.xml
rename to data_model/1.4/device_types/MicrowaveOven.xml
diff --git a/data_model/in_progress/device_types/ModeSelectDeviceType.xml b/data_model/1.4/device_types/ModeSelectDeviceType.xml
similarity index 100%
rename from data_model/in_progress/device_types/ModeSelectDeviceType.xml
rename to data_model/1.4/device_types/ModeSelectDeviceType.xml
diff --git a/data_model/in_progress/device_types/MountedDimmableLoadControl.xml b/data_model/1.4/device_types/MountedDimmableLoadControl.xml
similarity index 100%
rename from data_model/in_progress/device_types/MountedDimmableLoadControl.xml
rename to data_model/1.4/device_types/MountedDimmableLoadControl.xml
diff --git a/data_model/in_progress/device_types/MountedOnOffControl.xml b/data_model/1.4/device_types/MountedOnOffControl.xml
similarity index 100%
rename from data_model/in_progress/device_types/MountedOnOffControl.xml
rename to data_model/1.4/device_types/MountedOnOffControl.xml
diff --git a/data_model/in_progress/device_types/NetworkInfraIntro.xml b/data_model/1.4/device_types/NetworkInfraIntro.xml
similarity index 100%
rename from data_model/in_progress/device_types/NetworkInfraIntro.xml
rename to data_model/1.4/device_types/NetworkInfraIntro.xml
diff --git a/data_model/in_progress/device_types/NetworkInfraManager.xml b/data_model/1.4/device_types/NetworkInfraManager.xml
similarity index 97%
rename from data_model/in_progress/device_types/NetworkInfraManager.xml
rename to data_model/1.4/device_types/NetworkInfraManager.xml
index 58cbae2e7ab440..a4d17e11c0faaa 100644
--- a/data_model/in_progress/device_types/NetworkInfraManager.xml
+++ b/data_model/1.4/device_types/NetworkInfraManager.xml
@@ -57,7 +57,7 @@ Davis, CA 95616, USA
-->
-
+
diff --git a/data_model/in_progress/device_types/OccupancySensor.xml b/data_model/1.4/device_types/OccupancySensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/OccupancySensor.xml
rename to data_model/1.4/device_types/OccupancySensor.xml
diff --git a/data_model/in_progress/device_types/OnOffLight.xml b/data_model/1.4/device_types/OnOffLight.xml
similarity index 100%
rename from data_model/in_progress/device_types/OnOffLight.xml
rename to data_model/1.4/device_types/OnOffLight.xml
diff --git a/data_model/in_progress/device_types/OnOffLightSwitch.xml b/data_model/1.4/device_types/OnOffLightSwitch.xml
similarity index 100%
rename from data_model/in_progress/device_types/OnOffLightSwitch.xml
rename to data_model/1.4/device_types/OnOffLightSwitch.xml
diff --git a/data_model/in_progress/device_types/OnOffPlug-inUnit.xml b/data_model/1.4/device_types/OnOffPlug-inUnit.xml
similarity index 100%
rename from data_model/in_progress/device_types/OnOffPlug-inUnit.xml
rename to data_model/1.4/device_types/OnOffPlug-inUnit.xml
diff --git a/data_model/in_progress/device_types/OnOffSensor.xml b/data_model/1.4/device_types/OnOffSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/OnOffSensor.xml
rename to data_model/1.4/device_types/OnOffSensor.xml
diff --git a/data_model/in_progress/device_types/OtaProvider.xml b/data_model/1.4/device_types/OtaProvider.xml
similarity index 100%
rename from data_model/in_progress/device_types/OtaProvider.xml
rename to data_model/1.4/device_types/OtaProvider.xml
diff --git a/data_model/in_progress/device_types/OtaRequestor.xml b/data_model/1.4/device_types/OtaRequestor.xml
similarity index 100%
rename from data_model/in_progress/device_types/OtaRequestor.xml
rename to data_model/1.4/device_types/OtaRequestor.xml
diff --git a/data_model/in_progress/device_types/Oven.xml b/data_model/1.4/device_types/Oven.xml
similarity index 100%
rename from data_model/in_progress/device_types/Oven.xml
rename to data_model/1.4/device_types/Oven.xml
diff --git a/data_model/in_progress/device_types/PowerSource.xml b/data_model/1.4/device_types/PowerSource.xml
similarity index 100%
rename from data_model/in_progress/device_types/PowerSource.xml
rename to data_model/1.4/device_types/PowerSource.xml
diff --git a/data_model/in_progress/device_types/PressureSensor.xml b/data_model/1.4/device_types/PressureSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/PressureSensor.xml
rename to data_model/1.4/device_types/PressureSensor.xml
diff --git a/data_model/in_progress/device_types/Pump.xml b/data_model/1.4/device_types/Pump.xml
similarity index 100%
rename from data_model/in_progress/device_types/Pump.xml
rename to data_model/1.4/device_types/Pump.xml
diff --git a/data_model/in_progress/device_types/PumpController.xml b/data_model/1.4/device_types/PumpController.xml
similarity index 100%
rename from data_model/in_progress/device_types/PumpController.xml
rename to data_model/1.4/device_types/PumpController.xml
diff --git a/data_model/in_progress/device_types/RainSensor.xml b/data_model/1.4/device_types/RainSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/RainSensor.xml
rename to data_model/1.4/device_types/RainSensor.xml
diff --git a/data_model/in_progress/device_types/Refrigerator.xml b/data_model/1.4/device_types/Refrigerator.xml
similarity index 100%
rename from data_model/in_progress/device_types/Refrigerator.xml
rename to data_model/1.4/device_types/Refrigerator.xml
diff --git a/data_model/in_progress/device_types/RoboticVacuumCleaner.xml b/data_model/1.4/device_types/RoboticVacuumCleaner.xml
similarity index 93%
rename from data_model/in_progress/device_types/RoboticVacuumCleaner.xml
rename to data_model/1.4/device_types/RoboticVacuumCleaner.xml
index fd30668cd2e084..446410dfb7c60a 100644
--- a/data_model/in_progress/device_types/RoboticVacuumCleaner.xml
+++ b/data_model/1.4/device_types/RoboticVacuumCleaner.xml
@@ -55,10 +55,11 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
@@ -75,5 +76,8 @@ Davis, CA 95616, USA
+
+
+
\ No newline at end of file
diff --git a/data_model/in_progress/device_types/RoomAirConditioner.xml b/data_model/1.4/device_types/RoomAirConditioner.xml
similarity index 100%
rename from data_model/in_progress/device_types/RoomAirConditioner.xml
rename to data_model/1.4/device_types/RoomAirConditioner.xml
diff --git a/data_model/in_progress/device_types/RootNodeDeviceType.xml b/data_model/1.4/device_types/RootNodeDeviceType.xml
similarity index 94%
rename from data_model/in_progress/device_types/RootNodeDeviceType.xml
rename to data_model/1.4/device_types/RootNodeDeviceType.xml
index c96759503bfb13..13473e44cacb60 100644
--- a/data_model/in_progress/device_types/RootNodeDeviceType.xml
+++ b/data_model/1.4/device_types/RootNodeDeviceType.xml
@@ -55,16 +55,24 @@ Connectivity Standards Alliance
508 Second Street, Suite 206
Davis, CA 95616, USA
-->
-
+
+
+
+
+
+
+
+
+
diff --git a/data_model/in_progress/device_types/SecondaryNetworkInterface.xml b/data_model/1.4/device_types/SecondaryNetworkInterface.xml
similarity index 100%
rename from data_model/in_progress/device_types/SecondaryNetworkInterface.xml
rename to data_model/1.4/device_types/SecondaryNetworkInterface.xml
diff --git a/data_model/in_progress/device_types/SmokeCOAlarm.xml b/data_model/1.4/device_types/SmokeCOAlarm.xml
similarity index 100%
rename from data_model/in_progress/device_types/SmokeCOAlarm.xml
rename to data_model/1.4/device_types/SmokeCOAlarm.xml
diff --git a/data_model/in_progress/device_types/SolarPower.xml b/data_model/1.4/device_types/SolarPower.xml
similarity index 100%
rename from data_model/in_progress/device_types/SolarPower.xml
rename to data_model/1.4/device_types/SolarPower.xml
diff --git a/data_model/in_progress/device_types/Speaker.xml b/data_model/1.4/device_types/Speaker.xml
similarity index 100%
rename from data_model/in_progress/device_types/Speaker.xml
rename to data_model/1.4/device_types/Speaker.xml
diff --git a/data_model/in_progress/device_types/TemperatureControlledCabinet.xml b/data_model/1.4/device_types/TemperatureControlledCabinet.xml
similarity index 100%
rename from data_model/in_progress/device_types/TemperatureControlledCabinet.xml
rename to data_model/1.4/device_types/TemperatureControlledCabinet.xml
diff --git a/data_model/in_progress/device_types/TemperatureSensor.xml b/data_model/1.4/device_types/TemperatureSensor.xml
similarity index 100%
rename from data_model/in_progress/device_types/TemperatureSensor.xml
rename to data_model/1.4/device_types/TemperatureSensor.xml
diff --git a/data_model/in_progress/device_types/Thermostat.xml b/data_model/1.4/device_types/Thermostat.xml
similarity index 100%
rename from data_model/in_progress/device_types/Thermostat.xml
rename to data_model/1.4/device_types/Thermostat.xml
diff --git a/data_model/in_progress/device_types/ThreadBorderRouter.xml b/data_model/1.4/device_types/ThreadBorderRouter.xml
similarity index 100%
rename from data_model/in_progress/device_types/ThreadBorderRouter.xml
rename to data_model/1.4/device_types/ThreadBorderRouter.xml
diff --git a/data_model/in_progress/device_types/VideoRemoteControl.xml b/data_model/1.4/device_types/VideoRemoteControl.xml
similarity index 100%
rename from data_model/in_progress/device_types/VideoRemoteControl.xml
rename to data_model/1.4/device_types/VideoRemoteControl.xml
diff --git a/data_model/in_progress/device_types/WaterFreezeDetector.xml b/data_model/1.4/device_types/WaterFreezeDetector.xml
similarity index 100%
rename from data_model/in_progress/device_types/WaterFreezeDetector.xml
rename to data_model/1.4/device_types/WaterFreezeDetector.xml
diff --git a/data_model/in_progress/device_types/WaterHeater.xml b/data_model/1.4/device_types/WaterHeater.xml
similarity index 93%
rename from data_model/in_progress/device_types/WaterHeater.xml
rename to data_model/1.4/device_types/WaterHeater.xml
index 9d038d89c55563..975e9f2bb4b850 100644
--- a/data_model/in_progress/device_types/WaterHeater.xml
+++ b/data_model/1.4/device_types/WaterHeater.xml
@@ -68,9 +68,6 @@ Davis, CA 95616, USA
-
-
-
@@ -80,9 +77,6 @@ Davis, CA 95616, USA
-
-
-
diff --git a/data_model/in_progress/device_types/WaterLeakDetector.xml b/data_model/1.4/device_types/WaterLeakDetector.xml
similarity index 100%
rename from data_model/in_progress/device_types/WaterLeakDetector.xml
rename to data_model/1.4/device_types/WaterLeakDetector.xml
diff --git a/data_model/in_progress/device_types/WaterValve.xml b/data_model/1.4/device_types/WaterValve.xml
similarity index 100%
rename from data_model/in_progress/device_types/WaterValve.xml
rename to data_model/1.4/device_types/WaterValve.xml
diff --git a/data_model/in_progress/device_types/WindowCovering.xml b/data_model/1.4/device_types/WindowCovering.xml
similarity index 100%
rename from data_model/in_progress/device_types/WindowCovering.xml
rename to data_model/1.4/device_types/WindowCovering.xml
diff --git a/data_model/in_progress/device_types/WindowCoveringController.xml b/data_model/1.4/device_types/WindowCoveringController.xml
similarity index 100%
rename from data_model/in_progress/device_types/WindowCoveringController.xml
rename to data_model/1.4/device_types/WindowCoveringController.xml
diff --git a/data_model/in_progress/scraper_version b/data_model/1.4/scraper_version
similarity index 100%
rename from data_model/in_progress/scraper_version
rename to data_model/1.4/scraper_version
diff --git a/data_model/1.4/spec_sha b/data_model/1.4/spec_sha
new file mode 100644
index 00000000000000..094141d3c099c6
--- /dev/null
+++ b/data_model/1.4/spec_sha
@@ -0,0 +1 @@
+2760ea4338a4b612ac025bfa5677e6918041c1d4
diff --git a/data_model/in_progress/spec_sha b/data_model/in_progress/spec_sha
deleted file mode 100644
index a399f222280c76..00000000000000
--- a/data_model/in_progress/spec_sha
+++ /dev/null
@@ -1 +0,0 @@
-ec20ddf482db8deffe8b2eb745e34d2f9cea72b2
diff --git a/docs/testing/python.md b/docs/testing/python.md
index 9c2edcfc85caf0..07e157c459f8cd 100644
--- a/docs/testing/python.md
+++ b/docs/testing/python.md
@@ -628,7 +628,10 @@ example DUT on the host and includes factory reset support
- Don’t forget to set the PICS file to the ci-pics-values
- If there are steps in your test that will fail on CI (e.g. test vendor
checks), gate them on the PICS_SDK_CI_ONLY
- - `is_ci = self.check_pics('PICS_SDK_CI_ONLY')`
+ - ```python
+ if not self.is_pics_sdk_ci_only:
+ ... # Step that will fail on CI
+ ```
The CI test runner uses a structured environment setup that can be declared
using structured comments at the top of the test file. To use this structured
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn b/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn
index bdc878cc0f5250..19fa822ec24688 100644
--- a/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn
+++ b/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn
@@ -170,7 +170,7 @@ rt_executable("all_cluster_app") {
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
"${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
"${common_example_dir}/icd/source/ICDUtil.cpp",
- "${common_example_dir}/matter_button/source/AppMatterButtonEmpty.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationEmpty.cpp",
]
deps = [
diff --git a/examples/contact-sensor-app/nxp/common/include/AppEvent.h b/examples/contact-sensor-app/nxp/common/include/AppEvent.h
index b292afaddf8c18..562c0b4df66dcb 100644
--- a/examples/contact-sensor-app/nxp/common/include/AppEvent.h
+++ b/examples/contact-sensor-app/nxp/common/include/AppEvent.h
@@ -24,4 +24,5 @@ typedef void (*EventHandler)(const AppEvent &);
struct AppEvent
{
EventHandler Handler;
+ void * extra;
};
diff --git a/examples/contact-sensor-app/nxp/k32w1/BUILD.gn b/examples/contact-sensor-app/nxp/k32w1/BUILD.gn
index 8e215d4c7d6517..1b57e5f3cf9061 100644
--- a/examples/contact-sensor-app/nxp/k32w1/BUILD.gn
+++ b/examples/contact-sensor-app/nxp/k32w1/BUILD.gn
@@ -149,6 +149,11 @@ mcxw71_k32w1_executable("contact_sensor_app") {
"${common_example_dir}/clusters/source/ZclCallbacks.cpp",
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
"${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonApp.cpp",
+ "${common_example_dir}/matter_button/source/ButtonBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationAppAndBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonWithTimer.cpp",
"${common_example_dir}/operational_keystore/source/OperationalKeystoreS200.cpp",
"${example_platform_dir}/factory_data/source/AppFactoryDataExample.cpp",
]
@@ -193,10 +198,7 @@ mcxw71_k32w1_executable("contact_sensor_app") {
"${example_platform_dir}/button",
]
- sources += [
- "${example_platform_dir}/button/ButtonManager.cpp",
- "${example_platform_dir}/clusters/Identify.cpp",
- ]
+ sources += [ "${example_platform_dir}/clusters/Identify.cpp" ]
if (chip_enable_ota_requestor) {
sources += [ "${example_platform_dir}/ota/OtaUtils.cpp" ]
diff --git a/examples/contact-sensor-app/nxp/mcxw71/BUILD.gn b/examples/contact-sensor-app/nxp/mcxw71/BUILD.gn
index cf22ec5c658509..8bba2393f8fc43 100644
--- a/examples/contact-sensor-app/nxp/mcxw71/BUILD.gn
+++ b/examples/contact-sensor-app/nxp/mcxw71/BUILD.gn
@@ -148,6 +148,11 @@ mcxw71_k32w1_executable("contact_sensor_app") {
"${common_example_dir}/clusters/source/ZclCallbacks.cpp",
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
"${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonApp.cpp",
+ "${common_example_dir}/matter_button/source/ButtonBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationAppAndBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonWithTimer.cpp",
"${common_example_dir}/operational_keystore/source/OperationalKeystoreS200.cpp",
"${example_platform_dir}/factory_data/source/AppFactoryDataExample.cpp",
]
@@ -192,10 +197,7 @@ mcxw71_k32w1_executable("contact_sensor_app") {
"${example_platform_dir}/button",
]
- sources += [
- "${example_platform_dir}/button/ButtonManager.cpp",
- "${example_platform_dir}/clusters/Identify.cpp",
- ]
+ sources += [ "${example_platform_dir}/clusters/Identify.cpp" ]
if (chip_enable_ota_requestor) {
sources += [ "${example_platform_dir}/ota/OtaUtils.cpp" ]
diff --git a/examples/laundry-washer-app/nxp/rt/rw61x/BUILD.gn b/examples/laundry-washer-app/nxp/rt/rw61x/BUILD.gn
index cb0b7ba0a96439..7f22eca6b2c085 100644
--- a/examples/laundry-washer-app/nxp/rt/rw61x/BUILD.gn
+++ b/examples/laundry-washer-app/nxp/rt/rw61x/BUILD.gn
@@ -171,7 +171,7 @@ rt_executable("laundry-washer") {
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
"${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
"${common_example_dir}/icd/source/ICDUtil.cpp",
- "${common_example_dir}/matter_button/source/AppMatterButtonEmpty.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationEmpty.cpp",
]
deps = [
diff --git a/examples/lighting-app/nxp/common/include/AppEvent.h b/examples/lighting-app/nxp/common/include/AppEvent.h
index b292afaddf8c18..562c0b4df66dcb 100644
--- a/examples/lighting-app/nxp/common/include/AppEvent.h
+++ b/examples/lighting-app/nxp/common/include/AppEvent.h
@@ -24,4 +24,5 @@ typedef void (*EventHandler)(const AppEvent &);
struct AppEvent
{
EventHandler Handler;
+ void * extra;
};
diff --git a/examples/lighting-app/nxp/k32w1/BUILD.gn b/examples/lighting-app/nxp/k32w1/BUILD.gn
index 54030a789763ea..57a1b7921fcaf9 100644
--- a/examples/lighting-app/nxp/k32w1/BUILD.gn
+++ b/examples/lighting-app/nxp/k32w1/BUILD.gn
@@ -156,6 +156,11 @@ mcxw71_k32w1_executable("light_app") {
"${common_example_dir}/clusters/source/ZclCallbacks.cpp",
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
"${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonApp.cpp",
+ "${common_example_dir}/matter_button/source/ButtonBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationAppAndBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonWithTimer.cpp",
"${common_example_dir}/operational_keystore/source/OperationalKeystoreS200.cpp",
"${example_platform_dir}/factory_data/source/AppFactoryDataExample.cpp",
]
@@ -180,10 +185,7 @@ mcxw71_k32w1_executable("light_app") {
"${example_platform_dir}/button",
]
- sources += [
- "${example_platform_dir}/button/ButtonManager.cpp",
- "${example_platform_dir}/clusters/Identify.cpp",
- ]
+ sources += [ "${example_platform_dir}/clusters/Identify.cpp" ]
if (chip_enable_ota_requestor) {
sources += [ "${example_platform_dir}/ota/OtaUtils.cpp" ]
diff --git a/examples/lighting-app/nxp/k32w1/README.md b/examples/lighting-app/nxp/k32w1/README.md
index c47449bf249490..d61ab1e42431d4 100644
--- a/examples/lighting-app/nxp/k32w1/README.md
+++ b/examples/lighting-app/nxp/k32w1/README.md
@@ -220,8 +220,8 @@ by running:
The console should have already been installed in the virtual environment. From
the `chip-console`, a user can send specific commands to the device.
-For button commands, please run `rpcs.chip.rpc.Button.Event(index)` based on the
-table below:
+For button commands, please run `rpcs.chip.rpc.Button.Event(idx=index)` based on
+the table below:
| index | action |
| ----- | --------------------------------------------- |
diff --git a/examples/lighting-app/nxp/mcxw71/BUILD.gn b/examples/lighting-app/nxp/mcxw71/BUILD.gn
index efd3af6fd5e19a..f7e9c42b6e752c 100644
--- a/examples/lighting-app/nxp/mcxw71/BUILD.gn
+++ b/examples/lighting-app/nxp/mcxw71/BUILD.gn
@@ -156,6 +156,11 @@ mcxw71_k32w1_executable("light_app") {
"${common_example_dir}/clusters/source/ZclCallbacks.cpp",
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
"${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonApp.cpp",
+ "${common_example_dir}/matter_button/source/ButtonBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationAppAndBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonWithTimer.cpp",
"${common_example_dir}/operational_keystore/source/OperationalKeystoreS200.cpp",
"${example_platform_dir}/factory_data/source/AppFactoryDataExample.cpp",
]
@@ -183,10 +188,7 @@ mcxw71_k32w1_executable("light_app") {
"${example_platform_dir}/button",
]
- sources += [
- "${example_platform_dir}/button/ButtonManager.cpp",
- "${example_platform_dir}/clusters/Identify.cpp",
- ]
+ sources += [ "${example_platform_dir}/clusters/Identify.cpp" ]
if (chip_enable_ota_requestor) {
sources += [ "${example_platform_dir}/ota/OtaUtils.cpp" ]
diff --git a/examples/lock-app/nxp/common/main/include/AppEvent.h b/examples/lock-app/nxp/common/main/include/AppEvent.h
index 065078a52e7a72..06522efbee9f70 100644
--- a/examples/lock-app/nxp/common/main/include/AppEvent.h
+++ b/examples/lock-app/nxp/common/main/include/AppEvent.h
@@ -48,4 +48,5 @@ struct AppEvent
};
EventHandler Handler;
+ void * extra;
};
diff --git a/examples/lock-app/nxp/k32w1/BUILD.gn b/examples/lock-app/nxp/k32w1/BUILD.gn
index 602398e0d604b4..c10cc05475ffee 100644
--- a/examples/lock-app/nxp/k32w1/BUILD.gn
+++ b/examples/lock-app/nxp/k32w1/BUILD.gn
@@ -154,6 +154,11 @@ mcxw71_k32w1_executable("lock_app") {
sources += [
"${common_example_dir}/app_task/source/AppTaskBase.cpp",
"${common_example_dir}/app_task/source/AppTaskFreeRTOS.cpp",
+ "${common_example_dir}/matter_button/source/ButtonApp.cpp",
+ "${common_example_dir}/matter_button/source/ButtonBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationAppAndBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonWithTimer.cpp",
#"${common_example_dir}/clusters/source/ZclCallbacks.cpp",
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
@@ -221,10 +226,7 @@ mcxw71_k32w1_executable("lock_app") {
"${example_platform_dir}/button",
]
- sources += [
- "${example_platform_dir}/button/ButtonManager.cpp",
- "${example_platform_dir}/clusters/Identify.cpp",
- ]
+ sources += [ "${example_platform_dir}/clusters/Identify.cpp" ]
if (chip_enable_ota_requestor) {
sources += [ "${example_platform_dir}/ota/OtaUtils.cpp" ]
diff --git a/examples/lock-app/nxp/mcxw71/BUILD.gn b/examples/lock-app/nxp/mcxw71/BUILD.gn
index 6d105f16ffd163..0c34d3d8083a20 100644
--- a/examples/lock-app/nxp/mcxw71/BUILD.gn
+++ b/examples/lock-app/nxp/mcxw71/BUILD.gn
@@ -154,6 +154,11 @@ mcxw71_k32w1_executable("lock_app") {
sources += [
"${common_example_dir}/app_task/source/AppTaskBase.cpp",
"${common_example_dir}/app_task/source/AppTaskFreeRTOS.cpp",
+ "${common_example_dir}/matter_button/source/ButtonApp.cpp",
+ "${common_example_dir}/matter_button/source/ButtonBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonManager.cpp",
+ "${common_example_dir}/matter_button/source/ButtonRegistrationAppAndBle.cpp",
+ "${common_example_dir}/matter_button/source/ButtonWithTimer.cpp",
#"${common_example_dir}/clusters/source/ZclCallbacks.cpp",
"${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
@@ -221,10 +226,7 @@ mcxw71_k32w1_executable("lock_app") {
"${example_platform_dir}/button",
]
- sources += [
- "${example_platform_dir}/button/ButtonManager.cpp",
- "${example_platform_dir}/clusters/Identify.cpp",
- ]
+ sources += [ "${example_platform_dir}/clusters/Identify.cpp" ]
if (chip_enable_ota_requestor) {
sources += [ "${example_platform_dir}/ota/OtaUtils.cpp" ]
diff --git a/examples/platform/nxp/common/app_task/source/AppTaskFreeRTOS.cpp b/examples/platform/nxp/common/app_task/source/AppTaskFreeRTOS.cpp
index 5b8e3eab70be40..ec394b4ac40fc4 100644
--- a/examples/platform/nxp/common/app_task/source/AppTaskFreeRTOS.cpp
+++ b/examples/platform/nxp/common/app_task/source/AppTaskFreeRTOS.cpp
@@ -21,7 +21,7 @@
#include
#include
-#include "AppMatterButton.h"
+#include "ButtonRegistration.h"
#include "CHIPDeviceManager.h"
#include
@@ -98,10 +98,10 @@ CHIP_ERROR chip::NXP::App::AppTaskFreeRTOS::AppMatter_Register()
#endif
/* Register Matter buttons */
- err = AppMatterButton_registerButtons();
+ err = chip::NXP::App::RegisterButtons();
if (err != CHIP_NO_ERROR)
{
- ChipLogError(DeviceLayer, "Error during AppMatterButton_registerButtons");
+ ChipLogError(DeviceLayer, "Error during button registration");
return err;
}
return err;
diff --git a/examples/platform/nxp/common/matter_button/include/Button.h b/examples/platform/nxp/common/matter_button/include/Button.h
new file mode 100644
index 00000000000000..7485cf9bd88f76
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/include/Button.h
@@ -0,0 +1,52 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#pragma once
+
+#include "fsl_component_button.h"
+
+#include
+
+namespace chip::NXP::App {
+
+/**
+ * @brief This class is an abstraction over an SDK button.
+ *
+ */
+class Button
+{
+public:
+ using Callback = button_status_t (*)(void * handle, button_callback_message_t * message, void * param);
+
+ virtual ~Button() = default;
+
+ virtual CHIP_ERROR Init() = 0;
+ virtual void HandleShortPress() = 0;
+ virtual void HandleLongPress() = 0;
+ virtual void HandleDoubleClick() = 0;
+
+ /**
+ * @brief This is an SDK handle for a button.
+ *
+ * It should be set in the Init method, based on a newly defined
+ * handle or an already defined handle owned by the SDK.
+ */
+ button_handle_t handle = nullptr;
+};
+
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/include/ButtonApp.h b/examples/platform/nxp/common/matter_button/include/ButtonApp.h
new file mode 100644
index 00000000000000..3ace28f30a4094
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/include/ButtonApp.h
@@ -0,0 +1,44 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#pragma once
+
+#include "Button.h"
+
+namespace chip::NXP::App {
+/**
+ * @brief This class implements a custom app button behavior.
+ *
+ * | Action | Effect |
+ * | ------------ | --------------------------------- |
+ * | Short press | Switch a cluster attribute state |
+ * | Long press | Schedule a soft reset taking into |
+ * | | account Matter shutdown mechanism |
+ * | Double click | Do nothing |
+ *
+ */
+class ButtonApp : public Button
+{
+public:
+ virtual CHIP_ERROR Init() override;
+ virtual void HandleShortPress() override;
+ virtual void HandleLongPress() override;
+ virtual void HandleDoubleClick() override;
+};
+
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/include/ButtonBle.h b/examples/platform/nxp/common/matter_button/include/ButtonBle.h
new file mode 100644
index 00000000000000..75b35f25d355f1
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/include/ButtonBle.h
@@ -0,0 +1,48 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#pragma once
+
+#include "ButtonWithTimer.h"
+
+namespace chip::NXP::App {
+
+/**
+ * @brief This class implements a customized default button behavior.
+ *
+ * | Action | Effect |
+ * | ------------ | -------------------------------------------------- |
+ * | Short press | If a factory reset is scheduled, cancel it. |
+ * | | Else if the device is commissioned and a factory |
+ * | | reset is not scheduled, switch to ICD active mode. |
+ * | | Otherwise, switch commissioning state. |
+ * | Long press | Schedule a factory reset |
+ * | Double click | Toggle SIT mode request through DSLS mechanism |
+ *
+ */
+class ButtonBle : public ButtonWithTimer
+{
+public:
+ virtual CHIP_ERROR Init() override;
+ virtual void HandleShortPress() override;
+ virtual void HandleLongPress() override;
+ virtual void HandleDoubleClick() override;
+ virtual void HandleTimerExpire() override;
+};
+
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/include/ButtonDefault.h b/examples/platform/nxp/common/matter_button/include/ButtonDefault.h
new file mode 100644
index 00000000000000..4241f0465acf25
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/include/ButtonDefault.h
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#pragma once
+
+#include "Button.h"
+
+namespace chip::NXP::App {
+/**
+ * @brief This class implements a default button behavior.
+ *
+ * | Action | Effect |
+ * | ------------ | -------------------------- |
+ * | Short press | Switch commissioning state |
+ * | Long press | Schedule a factory reset |
+ * | Double click | Do nothing |
+ *
+ */
+class ButtonDefault : public Button
+{
+public:
+ virtual CHIP_ERROR Init() override;
+ virtual void HandleShortPress() override;
+ virtual void HandleLongPress() override;
+ virtual void HandleDoubleClick() override;
+};
+
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/include/ButtonManager.h b/examples/platform/nxp/common/matter_button/include/ButtonManager.h
new file mode 100644
index 00000000000000..44ad191e2eef12
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/include/ButtonManager.h
@@ -0,0 +1,58 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#pragma once
+
+#include "Button.h"
+
+#include
+
+namespace chip::NXP::App {
+
+/**
+ * @brief This class describes a manager over Button operations.
+ *
+ */
+class ButtonManager
+{
+public:
+ static ButtonManager sInstance;
+
+ CHIP_ERROR Init();
+
+ /**
+ * @brief API for registering a Button object.
+ *
+ */
+ CHIP_ERROR RegisterButton(Button & button);
+
+ /**
+ * @brief Generic callback for all registered buttons.
+ *
+ * Event handling is delegated to Button objects.
+ *
+ */
+ static button_status_t HandleCallbacks(void * buttonHandle, button_callback_message_t * message, void * callbackParam);
+};
+
+inline ButtonManager & ButtonMgr()
+{
+ return ButtonManager::sInstance;
+}
+
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/include/AppMatterButton.h b/examples/platform/nxp/common/matter_button/include/ButtonRegistration.h
similarity index 60%
rename from examples/platform/nxp/common/matter_button/include/AppMatterButton.h
rename to examples/platform/nxp/common/matter_button/include/ButtonRegistration.h
index dd00a5c80d719f..c47eeba7acbddc 100644
--- a/examples/platform/nxp/common/matter_button/include/AppMatterButton.h
+++ b/examples/platform/nxp/common/matter_button/include/ButtonRegistration.h
@@ -1,7 +1,6 @@
/*
*
- * Copyright (c) 2022 Project CHIP Authors
- * Copyright 2023-2024 NXP
+ * Copyright (c) 2024 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,29 +16,17 @@
* limitations under the License.
*/
-#ifndef _MATTER_BUTTON_H_
-#define _MATTER_BUTTON_H_
+#pragma once
#include
-#ifdef __cplusplus
-extern "C" {
-#endif
+namespace chip::NXP::App {
-namespace chip {
-namespace NXP {
-namespace App {
/**
- * API allowing to register matter buttons
+ * @brief API used by app task to register buttons.
+ *
+ * The default implementation will register a single ButtonDefault instance.
*/
-CHIP_ERROR AppMatterButton_registerButtons(void);
-
-} // namespace App
-} // namespace NXP
-} // namespace chip
-
-#ifdef __cplusplus
-}
-#endif
+CHIP_ERROR RegisterButtons();
-#endif /* _MATTER_BUTTON_H_ */
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/include/ButtonWithTimer.h b/examples/platform/nxp/common/matter_button/include/ButtonWithTimer.h
new file mode 100644
index 00000000000000..6620bae9ec0288
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/include/ButtonWithTimer.h
@@ -0,0 +1,50 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#pragma once
+
+#include "Button.h"
+#include "FreeRTOS.h"
+#include "timers.h"
+
+namespace chip::NXP::App {
+/**
+ * @brief This class implements a default button with timer behavior.
+ *
+ * This class provides an API for starting/cancelling the timer. It can
+ * be used by derived classes to define their own timer handler behavior.
+ */
+class ButtonWithTimer : public Button
+{
+public:
+ ButtonWithTimer();
+
+ virtual CHIP_ERROR Init() override;
+ virtual void HandleShortPress() override;
+ virtual void HandleLongPress() override;
+ virtual void HandleDoubleClick() override;
+
+ virtual void HandleTimerExpire();
+
+ void CancelTimer();
+ void StartTimer(uint32_t aTimeoutInMs);
+
+ TimerHandle_t timer;
+};
+
+} // namespace chip::NXP::App
diff --git a/examples/platform/nxp/common/matter_button/source/AppMatterButton.cpp b/examples/platform/nxp/common/matter_button/source/AppMatterButton.cpp
deleted file mode 100644
index be5adc975c2f79..00000000000000
--- a/examples/platform/nxp/common/matter_button/source/AppMatterButton.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * Copyright (c) 2022 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.
- */
-
-#include "AppMatterButton.h"
-#include "AppTaskBase.h"
-#include "board_comp.h"
-#include "fsl_component_timer_manager.h"
-#include "fwk_platform.h"
-#include
-
-static BUTTON_HANDLE_DEFINE(sdkButtonHandle);
-
-static button_status_t AppMatterButton_ButtonCallback(void * buttonHandle, button_callback_message_t * message,
- void * callbackParam)
-{
- switch (message->event)
- {
- case kBUTTON_EventShortPress:
- case kBUTTON_EventOneClick:
- chip::NXP::App::GetAppTask().SwitchCommissioningStateHandler();
- break;
- case kBUTTON_EventLongPress:
- chip::NXP::App::GetAppTask().FactoryResetHandler();
- break;
- default:
- break;
- }
- return kStatus_BUTTON_Success;
-}
-
-CHIP_ERROR chip::NXP::App::AppMatterButton_registerButtons(void)
-{
- button_config_t buttonConfig;
- button_status_t bStatus;
- CHIP_ERROR err = CHIP_NO_ERROR;
-
- do
- {
- /* Init the Platform Timer Manager */
- if (PLATFORM_InitTimerManager() != 0)
- {
- err = CHIP_ERROR_UNEXPECTED_EVENT;
- ChipLogError(DeviceLayer, "tmr init error");
- break;
- }
-
- /* Init board buttons */
- bStatus = BOARD_InitButton((button_handle_t) sdkButtonHandle);
- if (bStatus != kStatus_BUTTON_Success)
- {
- err = CHIP_ERROR_UNEXPECTED_EVENT;
- ChipLogError(DeviceLayer, "button init error");
- break;
- }
- bStatus = BUTTON_InstallCallback((button_handle_t) sdkButtonHandle, AppMatterButton_ButtonCallback, NULL);
-
- if (bStatus != kStatus_BUTTON_Success)
- {
- err = CHIP_ERROR_UNEXPECTED_EVENT;
- ChipLogError(DeviceLayer, "button init error");
- break;
- }
- } while (0);
-
- return err;
-}
diff --git a/examples/platform/nxp/common/matter_button/source/ButtonApp.cpp b/examples/platform/nxp/common/matter_button/source/ButtonApp.cpp
new file mode 100644
index 00000000000000..3b03b413ec2a93
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/source/ButtonApp.cpp
@@ -0,0 +1,57 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#include "ButtonApp.h"
+#include "AppTaskBase.h"
+
+extern "C" {
+#include "app.h"
+#include "board_comp.h"
+}
+
+CHIP_ERROR chip::NXP::App::ButtonApp::Init()
+{
+ // Button is initialized in otSysInit, when APP_InitServices is called.
+ // Overwrite the handle to reference the SDK handle.
+ handle = &g_buttonHandle[1];
+
+ return CHIP_NO_ERROR;
+}
+
+void chip::NXP::App::ButtonApp::HandleShortPress()
+{
+ chip::DeviceLayer::PlatformMgr().ScheduleWork(
+ [](intptr_t arg) {
+ auto status = chip::NXP::App::GetAppTask().ProcessSetStateClusterHandler();
+ if (status != CHIP_NO_ERROR)
+ {
+ ChipLogProgress(DeviceLayer, "Error when updating cluster attribute");
+ }
+ },
+ (intptr_t) nullptr);
+}
+
+void chip::NXP::App::ButtonApp::HandleLongPress()
+{
+ chip::DeviceLayer::PlatformMgrImpl().CleanReset();
+}
+
+void chip::NXP::App::ButtonApp::HandleDoubleClick()
+{
+ /* Currently not mapped to any action */
+}
diff --git a/examples/platform/nxp/common/matter_button/source/ButtonBle.cpp b/examples/platform/nxp/common/matter_button/source/ButtonBle.cpp
new file mode 100644
index 00000000000000..447b0b04529825
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/source/ButtonBle.cpp
@@ -0,0 +1,142 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#include "ButtonBle.h"
+#include "AppTaskBase.h"
+#include "BLEApplicationManager.h"
+#include "UserInterfaceFeedback.h"
+
+extern "C" {
+#include "app.h"
+#include "board_comp.h"
+}
+
+#include
+
+/**
+ * @brief Timeout (ms) for factory data reset action.
+ *
+ * During this timeout, the factory reset action can be cancelled by pressing a button.
+ */
+#ifndef BLE_BUTTON_FACTORY_RESET_TIMEOUT_MS
+#define BLE_BUTTON_FACTORY_RESET_TIMEOUT_MS 6000
+#endif
+
+static void BleHandleLongPress(const AppEvent & event)
+{
+ auto & button = *static_cast(event.extra);
+
+ if (xTimerIsTimerActive(button.timer))
+ {
+ button.CancelTimer();
+#if CONFIG_ENABLE_FEEDBACK
+ FeedbackMgr().RestoreState();
+#endif
+ ChipLogProgress(DeviceLayer, "Factory Reset was cancelled!");
+ }
+ else
+ {
+ uint32_t resetTimeout = BLE_BUTTON_FACTORY_RESET_TIMEOUT_MS;
+ ChipLogProgress(DeviceLayer, "Factory Reset Triggered. Push the RESET button within %lu ms to cancel!", resetTimeout);
+
+#if CONFIG_ENABLE_FEEDBACK
+ FeedbackMgr().DisplayOnAction(UserInterfaceFeedback::Action::kFactoryReset);
+#endif
+ button.StartTimer(resetTimeout);
+ }
+}
+
+static void BleHandleShortPress(const AppEvent & event)
+{
+ auto & button = *static_cast(event.extra);
+ if (xTimerIsTimerActive(button.timer))
+ {
+ // If a factory reset is scheduled, pressing the BLE button will cancel it.
+ BleHandleLongPress(event);
+ return;
+ }
+
+#if CHIP_CONFIG_ENABLE_ICD_LIT
+ if (chip::DeviceLayer::ConfigurationMgr().IsFullyProvisioned())
+ {
+ // If the device is commissioned and a factory reset is not scheduled, switch to active mode.
+ chip::DeviceLayer::PlatformMgr().ScheduleWork(
+ [](intptr_t arg) { chip::app::ICDNotifier::GetInstance().NotifyNetworkActivityNotification(); }, 0);
+ return;
+ }
+#endif
+
+ chip::NXP::App::GetAppTask().SwitchCommissioningStateHandler();
+ chip::NXP::App::BleAppMgr().EnableMultipleConnectionsHandler();
+}
+
+CHIP_ERROR chip::NXP::App::ButtonBle::Init()
+{
+ // Button is initialized in otSysInit, when APP_InitServices is called.
+ // Overwrite the handle to reference the SDK handle.
+ handle = &g_buttonHandle[0];
+
+ return CHIP_NO_ERROR;
+}
+
+void chip::NXP::App::ButtonBle::HandleShortPress()
+{
+ AppEvent event;
+ event.Handler = BleHandleShortPress;
+ event.extra = this;
+ chip::NXP::App::GetAppTask().PostEvent(event);
+}
+
+void chip::NXP::App::ButtonBle::HandleLongPress()
+{
+ AppEvent event;
+ event.Handler = BleHandleLongPress;
+ event.extra = this;
+ chip::NXP::App::GetAppTask().PostEvent(event);
+}
+
+void chip::NXP::App::ButtonBle::HandleDoubleClick()
+{
+#if (CHIP_CONFIG_ENABLE_ICD_LIT && CHIP_CONFIG_ENABLE_ICD_DSLS)
+ static bool sitModeRequested = false;
+
+ if (chip::DeviceLayer::ConfigurationMgr().IsFullyProvisioned())
+ {
+ if (!sitModeRequested)
+ {
+ chip::DeviceLayer::PlatformMgr().ScheduleWork(
+ [](intptr_t arg) { chip::app::ICDNotifier::GetInstance().NotifySITModeRequestNotification(); }, 0);
+ sitModeRequested = true;
+ }
+ else
+ {
+ chip::DeviceLayer::PlatformMgr().ScheduleWork(
+ [](intptr_t arg) { chip::app::ICDNotifier::GetInstance().NotifySITModeRequestWithdrawal(); }, 0);
+ sitModeRequested = false;
+ }
+ }
+#endif
+}
+
+void chip::NXP::App::ButtonBle::HandleTimerExpire()
+{
+ ChipLogProgress(DeviceLayer, "Device will factory reset...");
+
+ // Actually trigger Factory Reset
+ chip::Server::GetInstance().ScheduleFactoryReset();
+}
diff --git a/examples/platform/nxp/common/matter_button/source/ButtonDefault.cpp b/examples/platform/nxp/common/matter_button/source/ButtonDefault.cpp
new file mode 100644
index 00000000000000..526bcd3e8bd5a3
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/source/ButtonDefault.cpp
@@ -0,0 +1,48 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#include "ButtonDefault.h"
+#include "AppTaskBase.h"
+#include "board_comp.h"
+
+BUTTON_HANDLE_DEFINE(sHandle);
+
+CHIP_ERROR chip::NXP::App::ButtonDefault::Init()
+{
+ handle = sHandle;
+
+ auto status = BOARD_InitButton(handle);
+ VerifyOrReturnError(status == kStatus_BUTTON_Success, CHIP_ERROR_UNEXPECTED_EVENT);
+
+ return CHIP_NO_ERROR;
+}
+
+void chip::NXP::App::ButtonDefault::HandleShortPress()
+{
+ chip::NXP::App::GetAppTask().SwitchCommissioningStateHandler();
+}
+
+void chip::NXP::App::ButtonDefault::HandleLongPress()
+{
+ chip::NXP::App::GetAppTask().FactoryResetHandler();
+}
+
+void chip::NXP::App::ButtonDefault::HandleDoubleClick()
+{
+ /* Currently not mapped to any action */
+}
diff --git a/examples/platform/nxp/common/matter_button/source/ButtonManager.cpp b/examples/platform/nxp/common/matter_button/source/ButtonManager.cpp
new file mode 100644
index 00000000000000..046337397a3c3c
--- /dev/null
+++ b/examples/platform/nxp/common/matter_button/source/ButtonManager.cpp
@@ -0,0 +1,67 @@
+/*
+ *
+ * Copyright (c) 2024 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.
+ */
+
+#include "ButtonManager.h"
+#include "fwk_platform.h"
+
+#include
+#include
+
+chip::NXP::App::ButtonManager chip::NXP::App::ButtonManager::sInstance;
+
+CHIP_ERROR chip::NXP::App::ButtonManager::Init()
+{
+ VerifyOrReturnError(PLATFORM_InitTimerManager() >= 0, CHIP_ERROR_UNEXPECTED_EVENT);
+
+ return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR chip::NXP::App::ButtonManager::RegisterButton(Button & button)
+{
+ ReturnErrorOnFailure(button.Init());
+ VerifyOrReturnError(button.handle != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
+
+ auto status = BUTTON_InstallCallback(button.handle, ButtonManager::HandleCallbacks, &button);
+ VerifyOrReturnError(status == kStatus_BUTTON_Success, CHIP_ERROR_UNEXPECTED_EVENT);
+
+ return CHIP_NO_ERROR;
+}
+
+button_status_t chip::NXP::App::ButtonManager::HandleCallbacks(void * buttonHandle, button_callback_message_t * message,
+ void * callbackParam)
+{
+ auto * button = static_cast