From 708e80b2530e01b013950af2f7bcd0ab314ee992 Mon Sep 17 00:00:00 2001 From: Satya Naag Bollimpalli Date: Tue, 8 Jul 2025 17:55:57 +0530 Subject: [PATCH 1/5] Securestate event changes --- .../closure-control-cluster-logic.cpp | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp b/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp index 5a77e10b6e3ec0..273f2f3a5862c2 100644 --- a/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp +++ b/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp @@ -272,6 +272,27 @@ CHIP_ERROR ClusterLogic::SetOverallCurrentState(const DataModel::Nullable Date: Tue, 8 Jul 2025 14:12:13 +0000 Subject: [PATCH 2/5] Restyled by whitespace --- .../closure-control-server/closure-control-cluster-logic.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp b/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp index 273f2f3a5862c2..cfe279b3798c5a 100644 --- a/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp +++ b/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp @@ -272,7 +272,7 @@ CHIP_ERROR ClusterLogic::SetOverallCurrentState(const DataModel::Nullable Date: Tue, 8 Jul 2025 14:12:17 +0000 Subject: [PATCH 3/5] Restyled by clang-format --- .../closure-control-cluster-logic.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp b/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp index cfe279b3798c5a..8507d562d8befd 100644 --- a/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp +++ b/src/app/clusters/closure-control-server/closure-control-cluster-logic.cpp @@ -275,19 +275,21 @@ CHIP_ERROR ClusterLogic::SetOverallCurrentState(const DataModel::Nullable Date: Tue, 8 Jul 2025 20:15:33 +0530 Subject: [PATCH 4/5] add secure state sette --- .../src/ClosureControlEndpoint.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp b/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp index f060bf4ea6b2d9..14663cbc3398fd 100644 --- a/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp +++ b/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp @@ -273,6 +273,26 @@ void ClosureControlEndpoint::UpdateCurrentStateFromTargetState() overallCurrentState.Value().speed.SetValue(overallTargetState.Value().speed.Value()); } + bool isClosureInSecureState = true; + + // First, check if the closure is fully closed and has positioning feature. + if (mLogic.GetConformance().FeatureMap().Has(Feature::kPositioning)) + { + isClosureInSecureState &= overallCurrentState.Value().position.HasValue() && + !overallCurrentState.Value().position.Value().IsNull() && + overallCurrentState.Value().position.Value().Value() == CurrentPositionEnum::kFullyClosed; + } + + // Next, check if motion latching is enabled and latch is true. + if (mLogic.GetConformance().FeatureMap().Has(Feature::kMotionLatching)) + { + isClosureInSecureState &= overallCurrentState.Value().latch.HasValue() && + !overallCurrentState.Value().latch.Value().IsNull() && + overallCurrentState.Value().latch.Value().Value() == true; + } + + overallCurrentState.Value().secureState.SetValue(MakeNullable(isClosureInSecureState)); + mLogic.SetOverallCurrentState(overallCurrentState); } From 16fed1e494b432d9c5ea58cde0720a13949b927b Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Tue, 8 Jul 2025 14:47:58 +0000 Subject: [PATCH 5/5] Restyled by clang-format --- .../closure-common/src/ClosureControlEndpoint.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp b/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp index 14663cbc3398fd..cbf1787a1752b1 100644 --- a/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp +++ b/examples/closure-app/closure-common/src/ClosureControlEndpoint.cpp @@ -279,16 +279,15 @@ void ClosureControlEndpoint::UpdateCurrentStateFromTargetState() if (mLogic.GetConformance().FeatureMap().Has(Feature::kPositioning)) { isClosureInSecureState &= overallCurrentState.Value().position.HasValue() && - !overallCurrentState.Value().position.Value().IsNull() && - overallCurrentState.Value().position.Value().Value() == CurrentPositionEnum::kFullyClosed; + !overallCurrentState.Value().position.Value().IsNull() && + overallCurrentState.Value().position.Value().Value() == CurrentPositionEnum::kFullyClosed; } // Next, check if motion latching is enabled and latch is true. if (mLogic.GetConformance().FeatureMap().Has(Feature::kMotionLatching)) { isClosureInSecureState &= overallCurrentState.Value().latch.HasValue() && - !overallCurrentState.Value().latch.Value().IsNull() && - overallCurrentState.Value().latch.Value().Value() == true; + !overallCurrentState.Value().latch.Value().IsNull() && overallCurrentState.Value().latch.Value().Value() == true; } overallCurrentState.Value().secureState.SetValue(MakeNullable(isClosureInSecureState));