diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index 5121505cff7afe..e867cd1fc6be2e 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -2135,6 +2135,7 @@ server cluster DoorLock = 257 { kRfid = 7; kFingerprint = 8; kFingerVein = 9; + kFace = 10; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index a0903903cf66fb..1a4cb57456cd15 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -1927,6 +1927,7 @@ server cluster DoorLock = 257 { kRfid = 7; kFingerprint = 8; kFingerVein = 9; + kFace = 10; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index bdd1ccc6a9797a..3d3c17dcf318e9 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -1230,6 +1230,7 @@ server cluster DoorLock = 257 { kRfid = 7; kFingerprint = 8; kFingerVein = 9; + kFace = 10; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index c3c3ef210e1087..a2a5e9185ec820 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -1548,6 +1548,7 @@ server cluster DoorLock = 257 { kRfid = 7; kFingerprint = 8; kFingerVein = 9; + kFace = 10; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter index f5aaf526416588..0c93ada0a2e67c 100644 --- a/examples/lock-app/nxp/zap/lock-app.matter +++ b/examples/lock-app/nxp/zap/lock-app.matter @@ -1007,6 +1007,7 @@ server cluster DoorLock = 257 { kRfid = 7; kFingerprint = 8; kFingerVein = 9; + kFace = 10; } enum LockOperationTypeEnum : ENUM8 { diff --git a/src/app/clusters/door-lock-server/door-lock-server.cpp b/src/app/clusters/door-lock-server/door-lock-server.cpp index 42354a8c9465c5..ee45c0e4b0c33c 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -3046,9 +3046,7 @@ LockDataTypeEnum DoorLockServer::credentialTypeToLockDataType(CredentialTypeEnum case CredentialTypeEnum::kFingerVein: return LockDataTypeEnum::kFingerVein; case CredentialTypeEnum::kFace: - // So far there's no distinct data type for face credentials. - // See https://github.com/CHIP-Specifications/connectedhomeip-spec/issues/6272 - return LockDataTypeEnum::kUnspecified; + return LockDataTypeEnum::kFace; case CredentialTypeEnum::kUnknownEnumValue: return LockDataTypeEnum::kUnspecified; } diff --git a/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml index 08ad81e73e7e0a..9902fe74d2dd79 100644 --- a/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml @@ -522,6 +522,7 @@ limitations under the License. + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index fec46ee12c0b03..a7c67911b83024 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -2251,6 +2251,7 @@ client cluster DoorLock = 257 { kRfid = 7; kFingerprint = 8; kFingerVein = 9; + kFace = 10; } enum LockOperationTypeEnum : ENUM8 { diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index 3be505def39d2f..d471823584da23 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -14749,11 +14749,12 @@ class LockDataTypeEnum(MatterIntEnum): kRfid = 0x07 kFingerprint = 0x08 kFingerVein = 0x09 + kFace = 0x0A # All received enum values that are not listed above will be mapped # to kUnknownEnumValue. This is a helper enum value that should only # be used by code to process how it handles receiving and unknown # enum value. This specific should never be transmitted. - kUnknownEnumValue = 10, + kUnknownEnumValue = 11, class LockOperationTypeEnum(MatterIntEnum): kLock = 0x00 diff --git a/src/darwin/Framework/CHIP/templates/availability.yaml b/src/darwin/Framework/CHIP/templates/availability.yaml index b39b224e530b91..6562fe05bed6e6 100644 --- a/src/darwin/Framework/CHIP/templates/availability.yaml +++ b/src/darwin/Framework/CHIP/templates/availability.yaml @@ -6696,6 +6696,7 @@ DoorLock: LockDataTypeEnum: - FingerVein + - Face DiagnosticLogs: IntentEnum: - EndUserSupport @@ -6759,9 +6760,10 @@ enum values: DoorLock: DlLockDataType: - # This value never existed for this enum name so, don't start - # exposing it. It's exposed for LockDataTypeEnum + # These values never existed for this enum name so, don't + # start exposing them. They're exposed for LockDataTypeEnum - FingerVein + - Face renames: attributes: TimeSynchronization: diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index f5b16e64a5c544..c703ab8c3135a1 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -20946,6 +20946,7 @@ typedef NS_ENUM(uint8_t, MTRDoorLockLockDataType) { MTRDoorLockLockDataTypeRFID API_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x07, MTRDoorLockLockDataTypeFingerprint API_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x08, MTRDoorLockLockDataTypeFingerVein MTR_NEWLY_AVAILABLE = 0x09, + MTRDoorLockLockDataTypeFace MTR_NEWLY_AVAILABLE = 0x0A, } API_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)); typedef NS_ENUM(uint8_t, MTRDoorLockDlLockDataType) { diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h index 138f23bafc022a..b4ac0a3c912e5b 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h @@ -1274,9 +1274,10 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(DoorLock::LockDataTypeE case EnumType::kRfid: case EnumType::kFingerprint: case EnumType::kFingerVein: + case EnumType::kFace: return val; default: - return static_cast(10); + return static_cast(11); } } static auto __attribute__((unused)) EnsureKnownEnumValue(DoorLock::LockOperationTypeEnum val) diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 3843edaa5baaba..dffd67bc144165 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -1467,11 +1467,12 @@ enum class LockDataTypeEnum : uint8_t kRfid = 0x07, kFingerprint = 0x08, kFingerVein = 0x09, + kFace = 0x0A, // All received enum values that are not listed above will be mapped // to kUnknownEnumValue. This is a helper enum value that should only // be used by code to process how it handles receiving and unknown // enum value. This specific should never be transmitted. - kUnknownEnumValue = 10, + kUnknownEnumValue = 11, }; // Enum for LockOperationTypeEnum