From 8612d3c48eba4e2ff03332d1ecc84da2c98722ab Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Mon, 13 Feb 2023 10:21:53 -0500 Subject: [PATCH] Add FingerVein to LockDataTypeEnum. (#24988) Now that https://github.com/CHIP-Specifications/connectedhomeip-spec/pull/6240 is fixed and we have a value defined for it. --- .../all-clusters-common/all-clusters-app.matter | 1 + .../all-clusters-minimal-app.matter | 1 + .../chef/devices/rootnode_doorlock_aNKYAreMXE.matter | 1 + examples/lock-app/lock-common/lock-app.matter | 1 + examples/lock-app/nxp/zap/lock-app.matter | 1 + .../clusters/door-lock-server/door-lock-server.cpp | 5 +++-- .../zcl/data-model/chip/door-lock-cluster.xml | 1 + src/controller/data_model/controller-clusters.matter | 1 + src/controller/python/chip/clusters/Objects.py | 3 ++- src/darwin/Framework/CHIP/templates/availability.yaml | 11 +++++++++++ .../Framework/CHIP/zap-generated/MTRBaseClusters.h | 1 + .../app-common/zap-generated/cluster-enums-check.h | 3 ++- .../app-common/zap-generated/cluster-enums.h | 3 ++- 13 files changed, 28 insertions(+), 5 deletions(-) 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 d88a105180764c..e1472b43aa5cf0 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 @@ -2134,6 +2134,7 @@ server cluster DoorLock = 257 { kPin = 6; kRfid = 7; kFingerprint = 8; + kFingerVein = 9; } 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 cfedfe8eed5453..34ca3399dfcc31 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 @@ -1926,6 +1926,7 @@ server cluster DoorLock = 257 { kPin = 6; kRfid = 7; kFingerprint = 8; + kFingerVein = 9; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index e7df6f98a88a4c..6523f786491744 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -1229,6 +1229,7 @@ server cluster DoorLock = 257 { kPin = 6; kRfid = 7; kFingerprint = 8; + kFingerVein = 9; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 73387c9dedeb08..21e16d7bdaa102 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -1547,6 +1547,7 @@ server cluster DoorLock = 257 { kPin = 6; kRfid = 7; kFingerprint = 8; + kFingerVein = 9; } enum LockOperationTypeEnum : ENUM8 { diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter index cffdb5274b26b8..41807705d58670 100644 --- a/examples/lock-app/nxp/zap/lock-app.matter +++ b/examples/lock-app/nxp/zap/lock-app.matter @@ -1006,6 +1006,7 @@ server cluster DoorLock = 257 { kPin = 6; kRfid = 7; kFingerprint = 8; + kFingerVein = 9; } 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 9c1b6be44bc0f7..884f7c38cfd1f5 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -3060,9 +3060,10 @@ LockDataTypeEnum DoorLockServer::credentialTypeToLockDataType(CredentialTypeEnum case CredentialTypeEnum::kFingerprint: return LockDataTypeEnum::kFingerprint; case CredentialTypeEnum::kFingerVein: - return LockDataTypeEnum::kFingerprint; + return LockDataTypeEnum::kFingerVein; case CredentialTypeEnum::kFace: - // So far there's no distinct data type for face credentials + // So far there's no distinct data type for face credentials. + // See https://github.com/CHIP-Specifications/connectedhomeip-spec/issues/6272 return LockDataTypeEnum::kUnspecified; 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 33c34f855a9994..08ad81e73e7e0a 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 @@ -521,6 +521,7 @@ limitations under the License. + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index b51f471244568f..3b1e0f994f72b4 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -2250,6 +2250,7 @@ client cluster DoorLock = 257 { kPin = 6; kRfid = 7; kFingerprint = 8; + kFingerVein = 9; } enum LockOperationTypeEnum : ENUM8 { diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index c14201e263a9b5..492253ff5815fb 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -14748,11 +14748,12 @@ class LockDataTypeEnum(MatterIntEnum): kPin = 0x06 kRfid = 0x07 kFingerprint = 0x08 + kFingerVein = 0x09 # 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 = 9, + kUnknownEnumValue = 10, class LockOperationTypeEnum(MatterIntEnum): kLock = 0x00 diff --git a/src/darwin/Framework/CHIP/templates/availability.yaml b/src/darwin/Framework/CHIP/templates/availability.yaml index 656e472aeb75ed..9c858aa64f8d74 100644 --- a/src/darwin/Framework/CHIP/templates/availability.yaml +++ b/src/darwin/Framework/CHIP/templates/availability.yaml @@ -6651,3 +6651,14 @@ - EventList FaultInjection: - EventList + enum values: + DoorLock: + LockDataTypeEnum: + - FingerVein + removed: + enum values: + DoorLock: + DlLockDataType: + # This value never existed for this enum name so, don't start + # exposing it. It's exposed for LockDataTypeEnum + - FingerVein diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index c97bf537f8e975..29a46c7aa0c3f7 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -20874,6 +20874,7 @@ typedef NS_ENUM(uint8_t, MTRDoorLockLockDataType) { MTRDoorLockLockDataTypePIN API_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x06, 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, } 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 a823faf417234f..f648bcea863766 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 @@ -1324,9 +1324,10 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(DoorLock::LockDataTypeE case EnumType::kPin: case EnumType::kRfid: case EnumType::kFingerprint: + case EnumType::kFingerVein: return val; default: - return static_cast(9); + return static_cast(10); } } 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 47a5293538d1e6..d9e16296348ae0 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 @@ -1511,11 +1511,12 @@ enum class LockDataTypeEnum : uint8_t kPin = 0x06, kRfid = 0x07, kFingerprint = 0x08, + kFingerVein = 0x09, // 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 = 9, + kUnknownEnumValue = 10, }; // Enum for LockOperationTypeEnum