From 12ca6ae34c809d7fce10ac764e25fd635aa82205 Mon Sep 17 00:00:00 2001 From: Evgeniy Morozov Date: Fri, 15 Jul 2022 22:41:32 +0300 Subject: [PATCH] Feature/add separate feature bits for dl schedules (#20670) * [#19793] Implement separate feature bits for schedules in the door lock cluster * Update auto-generated files --- .../all-clusters-app.matter | 6 ++- .../all-clusters-common/all-clusters-app.zap | 15 +++---- .../all-clusters-minimal-app.matter | 4 +- examples/lock-app/lock-common/lock-app.matter | 6 ++- examples/lock-app/lock-common/lock-app.zap | 28 ++++++------- scripts/tests/chiptest/__init__.py | 2 +- .../door-lock-server/door-lock-server.cpp | 37 ++++++++-------- .../door-lock-server/door-lock-server.h | 40 ++++++++++++++---- .../zcl/data-model/chip/door-lock-cluster.xml | 42 +++++++++++-------- .../data_model/controller-clusters.matter | 4 +- .../CHIP/zap-generated/MTRBaseClusters.h | 4 +- .../zap-generated/endpoint_config.h | 2 +- .../app-common/zap-generated/cluster-enums.h | 4 +- .../app-common/zap-generated/enums.h | 8 +++- .../lock-app/zap-generated/endpoint_config.h | 2 +- 15 files changed, 125 insertions(+), 79 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 3bedf93145bbea..e5569355e063e9 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 @@ -2083,12 +2083,14 @@ server cluster DoorLock = 257 { kRFIDCredentials = 0x2; kFingerCredentials = 0x4; kLogging = 0x8; - kAccessSchedules = 0x10; + kWeekDaySchedules = 0x10; kDoorPositionSensor = 0x20; kFaceCredentials = 0x40; kCredentialsOTA = 0x80; kUsersManagement = 0x100; kNotifications = 0x200; + kYearDaySchedules = 0x400; + kHolidaySchedules = 0x800; } struct DlCredential { @@ -4303,7 +4305,7 @@ endpoint 1 { ram attribute wrongCodeEntryLimit default = 3; ram attribute userCodeTemporaryDisableTime default = 10; ram attribute requirePINforRemoteOperation; - ram attribute featureMap default = 0x113; + ram attribute featureMap default = 0xD13; ram attribute clusterRevision default = 6; } diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap index eb3ec315b55416..3bd1f0095cccd7 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -1,5 +1,5 @@ { - "featureLevel": 72, + "featureLevel": 75, "creator": "zap", "keyValuePairs": [ { @@ -19,14 +19,14 @@ { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/app-templates.json", - "version": "chip-v1", - "type": "gen-templates-json" + "type": "gen-templates-json", + "version": "chip-v1" }, { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/zcl/zcl-with-test-extensions.json", - "version": "ZCL Test Data", - "type": "zcl-properties" + "type": "zcl-properties", + "version": "ZCL Test Data" } ], "endpointTypes": [ @@ -13331,7 +13331,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x113", + "defaultValue": "0xD13", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -24662,5 +24662,6 @@ "endpointVersion": 1, "deviceIdentifier": 61442 } - ] + ], + "log": [] } \ No newline at end of file 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 cf398400d456a2..50a151d154f03d 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 @@ -1925,12 +1925,14 @@ server cluster DoorLock = 257 { kRFIDCredentials = 0x2; kFingerCredentials = 0x4; kLogging = 0x8; - kAccessSchedules = 0x10; + kWeekDaySchedules = 0x10; kDoorPositionSensor = 0x20; kFaceCredentials = 0x40; kCredentialsOTA = 0x80; kUsersManagement = 0x100; kNotifications = 0x200; + kYearDaySchedules = 0x400; + kHolidaySchedules = 0x800; } struct DlCredential { diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index f3fea5b77f892a..a8955e113138db 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -1667,12 +1667,14 @@ server cluster DoorLock = 257 { kRFIDCredentials = 0x2; kFingerCredentials = 0x4; kLogging = 0x8; - kAccessSchedules = 0x10; + kWeekDaySchedules = 0x10; kDoorPositionSensor = 0x20; kFaceCredentials = 0x40; kCredentialsOTA = 0x80; kUsersManagement = 0x100; kNotifications = 0x200; + kYearDaySchedules = 0x400; + kHolidaySchedules = 0x800; } struct DlCredential { @@ -2273,7 +2275,7 @@ endpoint 1 { ram attribute wrongCodeEntryLimit default = 3; ram attribute userCodeTemporaryDisableTime default = 10; ram attribute requirePINforRemoteOperation; - ram attribute featureMap default = 0x1B3; + ram attribute featureMap default = 0xDB3; ram attribute clusterRevision default = 6; } } diff --git a/examples/lock-app/lock-common/lock-app.zap b/examples/lock-app/lock-common/lock-app.zap index 2e99b664ffacd3..1cebbeec16b4f5 100755 --- a/examples/lock-app/lock-common/lock-app.zap +++ b/examples/lock-app/lock-common/lock-app.zap @@ -1,5 +1,5 @@ { - "featureLevel": 71, + "featureLevel": 75, "creator": "zap", "keyValuePairs": [ { @@ -19,14 +19,14 @@ { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/zcl/zcl.json", - "version": "ZCL Test Data", - "type": "zcl-properties" + "type": "zcl-properties", + "version": "ZCL Test Data" }, { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/app-templates.json", - "version": "chip-v1", - "type": "gen-templates-json" + "type": "gen-templates-json", + "version": "chip-v1" } ], "endpointTypes": [ @@ -2146,7 +2146,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "PowerSourceStatus", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7112,7 +7112,7 @@ "code": 0, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "PowerSourceStatus", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7172,11 +7172,11 @@ "reportableChange": 0 }, { - "name": "BatteryChargeLevel", + "name": "BatChargeLevel", "code": 14, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "BatChargeLevel", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7188,7 +7188,7 @@ "reportableChange": 0 }, { - "name": "BatteryReplacementNeeded", + "name": "BatReplacementNeeded", "code": 15, "mfgCode": null, "side": "server", @@ -7204,11 +7204,11 @@ "reportableChange": 0 }, { - "name": "BatteryReplaceability", + "name": "BatReplaceability", "code": 16, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "BatReplaceability", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7220,7 +7220,7 @@ "reportableChange": 0 }, { - "name": "BatteryReplacementDescription", + "name": "BatReplacementDescription", "code": 19, "mfgCode": null, "side": "server", @@ -8133,7 +8133,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x1B3", + "defaultValue": "0xDB3", "reportable": 1, "minInterval": 1, "maxInterval": 65534, diff --git a/scripts/tests/chiptest/__init__.py b/scripts/tests/chiptest/__init__.py index 1744471c0e71b8..320f771e5d492b 100644 --- a/scripts/tests/chiptest/__init__.py +++ b/scripts/tests/chiptest/__init__.py @@ -23,7 +23,7 @@ def target_for_name(name: str): if name.startswith("TV_") or name.startswith("Test_TC_MC_") or name.startswith("Test_TC_LOWPOWER_") or name.startswith("Test_TC_KEYPADINPUT_") or name.startswith("Test_TC_APPLAUNCHER_") or name.startswith("Test_TC_MEDIAINPUT_") or name.startswith("Test_TC_WAKEONLAN_") or name.startswith("Test_TC_CHANNEL_") or name.startswith("Test_TC_MEDIAPLAYBACK_") or name.startswith("Test_TC_AUDIOOUTPUT_") or name.startswith("Test_TC_TGTNAV_") or name.startswith("Test_TC_APBSC_") or name.startswith("Test_TC_CONTENTLAUNCHER_") or name.startswith("Test_TC_ALOGIN_"): return TestTarget.TV - if name.startswith("DL_") or name.startswith("Test_TC_DLRK_"): + if name.startswith("DL_") or name.startswith("Test_TC_DRLK_"): return TestTarget.LOCK if name.startswith("OTA_"): return TestTarget.OTA 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 cfff140c65dac8..f294e63059daa6 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.cpp +++ b/src/app/clusters/door-lock-server/door-lock-server.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -35,7 +34,6 @@ #include #include #include -#include #include using namespace chip; @@ -385,7 +383,7 @@ void DoorLockServer::getUserCommandHandler(chip::app::CommandHandler * commandOb SuccessOrExit(err = writer->Put(TLV::ContextTag(to_underlying(ResponseFields::kUserStatus)), user.userStatus)); SuccessOrExit(err = writer->Put(TLV::ContextTag(to_underlying(ResponseFields::kUserType)), user.userType)); SuccessOrExit(err = writer->Put(TLV::ContextTag(to_underlying(ResponseFields::kCredentialRule)), user.credentialRule)); - if (user.credentials.size() > 0) + if (!user.credentials.empty()) { TLV::TLVType credentialsContainer; SuccessOrExit(err = writer->StartContainer(TLV::ContextTag(to_underlying(ResponseFields::kCredentials)), @@ -797,7 +795,7 @@ void DoorLockServer::setWeekDayScheduleCommandHandler(chip::app::CommandHandler uint8_t startHour, uint8_t startMinute, uint8_t endHour, uint8_t endMinute) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsWeekDaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[SetWeekDaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -905,7 +903,7 @@ void DoorLockServer::getWeekDayScheduleCommandHandler(chip::app::CommandHandler uint16_t userIndex) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsWeekDaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[GetWeekDaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -948,7 +946,7 @@ void DoorLockServer::clearWeekDayScheduleCommandHandler(chip::app::CommandHandle uint16_t userIndex) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsWeekDaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[ClearWeekDaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -1025,7 +1023,7 @@ void DoorLockServer::setYearDayScheduleCommandHandler(chip::app::CommandHandler uint16_t userIndex, uint32_t localStartTime, uint32_t localEndTime) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsYearDaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[SetYearDaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -1105,7 +1103,7 @@ void DoorLockServer::getYearDayScheduleCommandHandler(chip::app::CommandHandler uint16_t userIndex) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsYearDaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[GetYearDaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -1147,7 +1145,7 @@ void DoorLockServer::clearYearDayScheduleCommandHandler(chip::app::CommandHandle uint16_t userIndex) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsYearDaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[ClearYearDaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -1218,12 +1216,15 @@ void DoorLockServer::clearYearDayScheduleCommandHandler(chip::app::CommandHandle emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_SUCCESS); } -bool DoorLockServer::HasFeature(chip::EndpointId endpointId, DoorLockFeature feature) +chip::BitFlags DoorLockServer::GetFeatures(chip::EndpointId endpointId) { - uint32_t featureMap = 0; - bool success = GetAttribute(endpointId, Attributes::FeatureMap::Id, Attributes::FeatureMap::Get, featureMap); - - return success && ((featureMap & to_underlying(feature)) != 0); + chip::BitFlags featureMap; + if (!GetAttribute(endpointId, Attributes::FeatureMap::Id, Attributes::FeatureMap::Get, *featureMap.RawStorage())) + { + ChipLogError(Zcl, "Unable to get the door lock feature map: attribute read error"); + featureMap.ClearAll(); + } + return featureMap; } bool DoorLockServer::OnFabricRemoved(chip::EndpointId endpointId, chip::FabricIndex fabricIndex) @@ -2955,7 +2956,7 @@ void DoorLockServer::setHolidayScheduleCommandHandler(chip::app::CommandHandler VerifyOrDie(nullptr != commandObj); auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsHolidaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[SetHolidaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -3014,7 +3015,7 @@ void DoorLockServer::getHolidayScheduleCommandHandler(chip::app::CommandHandler const ConcreteCommandPath & commandPath, uint8_t holidayIndex) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsHolidaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[GetHolidaySchedule] Ignore command (not supported) [endpointId=%d,scheduleIndex=%d]", endpointId, holidayIndex); @@ -3048,7 +3049,7 @@ void DoorLockServer::clearHolidayScheduleCommandHandler(chip::app::CommandHandle const chip::app::ConcreteCommandPath & commandPath, uint8_t holidayIndex) { auto endpointId = commandPath.mEndpointId; - if (!SupportsSchedules(endpointId)) + if (!SupportsHolidaySchedules(endpointId)) { emberAfDoorLockClusterPrintln("[ClearHolidaySchedule] Ignore command (not supported) [endpointId=%d]", endpointId); emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_INVALID_COMMAND); @@ -3138,7 +3139,7 @@ bool DoorLockServer::HandleRemoteLockOperation(chip::app::CommandHandler * comma // [EM]: I don't think we should prevent door lock/unlocking if we couldn't find credential associated with user. I // think if the app thinks that PIN is correct the door should be unlocked. // - // [DV]: let's app decide on PIN correctness, we will fail only if 'opHandler' returns false. + // [DV]: let app decide on PIN correctness, we will fail only if 'opHandler' returns false. credentialsOk = true; // findUserIndexByCredential(endpoint, DlCredentialType::kPin, pinCode.Value(), pinUserIdx, pinCredIdx); } diff --git a/src/app/clusters/door-lock-server/door-lock-server.h b/src/app/clusters/door-lock-server/door-lock-server.h index 613e76003b18e0..d37a887d4b24d3 100644 --- a/src/app/clusters/door-lock-server/door-lock-server.h +++ b/src/app/clusters/door-lock-server/door-lock-server.h @@ -117,28 +117,50 @@ class DoorLockServer bool GetNumberOfCredentialsSupportedPerUser(chip::EndpointId endpointId, uint8_t & numberOfCredentialsSupportedPerUser); bool GetNumberOfHolidaySchedulesSupported(chip::EndpointId endpointId, uint8_t & numberOfHolidaySchedules); - bool HasFeature(chip::EndpointId endpointId, DoorLockFeature feature); + chip::BitFlags GetFeatures(chip::EndpointId endpointId); - inline bool SupportsPIN(chip::EndpointId endpointId) { return HasFeature(endpointId, DoorLockFeature::kPINCredentials); } + inline bool SupportsPIN(chip::EndpointId endpointId) { return GetFeatures(endpointId).Has(DoorLockFeature::kPINCredentials); } - inline bool SupportsRFID(chip::EndpointId endpointId) { return HasFeature(endpointId, DoorLockFeature::kRFIDCredentials); } + inline bool SupportsRFID(chip::EndpointId endpointId) { return GetFeatures(endpointId).Has(DoorLockFeature::kRFIDCredentials); } - inline bool SupportsFingers(chip::EndpointId endpointId) { return HasFeature(endpointId, DoorLockFeature::kFingerCredentials); } + inline bool SupportsFingers(chip::EndpointId endpointId) + { + return GetFeatures(endpointId).Has(DoorLockFeature::kFingerCredentials); + } - inline bool SupportsFace(chip::EndpointId endpointId) { return HasFeature(endpointId, DoorLockFeature::kFaceCredentials); } + inline bool SupportsFace(chip::EndpointId endpointId) { return GetFeatures(endpointId).Has(DoorLockFeature::kFaceCredentials); } - inline bool SupportsSchedules(chip::EndpointId endpointId) { return HasFeature(endpointId, DoorLockFeature::kAccessSchedules); } + inline bool SupportsWeekDaySchedules(chip::EndpointId endpointId) + { + return GetFeatures(endpointId).Has(DoorLockFeature::kWeekDaySchedules); + } + + inline bool SupportsYearDaySchedules(chip::EndpointId endpointId) + { + return GetFeatures(endpointId).Has(DoorLockFeature::kYearDaySchedules); + } + + inline bool SupportsHolidaySchedules(chip::EndpointId endpointId) + { + return GetFeatures(endpointId).Has(DoorLockFeature::kHolidaySchedules); + } + + inline bool SupportsAnyCredential(chip::EndpointId endpointId) + { + return GetFeatures(endpointId) + .HasAny(DoorLockFeature::kPINCredentials, DoorLockFeature::kRFIDCredentials, DoorLockFeature::kFingerCredentials, + DoorLockFeature::kFaceCredentials); + } inline bool SupportsCredentialsOTA(chip::EndpointId endpointId) { - return HasFeature(endpointId, DoorLockFeature::kCredentialsOTA); + return GetFeatures(endpointId).Has(DoorLockFeature::kCredentialsOTA); } inline bool SupportsUSR(chip::EndpointId endpointId) { // appclusters, 5.2.2: USR feature has conformance [PIN | RID | FGP | FACE] - // TODO: Add missing functions to check if RID, FGP or FACE are supported - return HasFeature(endpointId, DoorLockFeature::kUsersManagement) && SupportsPIN(endpointId); + return GetFeatures(endpointId).Has(DoorLockFeature::kUsersManagement) && SupportsAnyCredential(endpointId); } bool OnFabricRemoved(chip::EndpointId endpointId, chip::FabricIndex fabricIndex); 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 faef2b0de95eb6..b14ebd36e33317 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 @@ -29,12 +29,14 @@ limitations under the License. - + + + true true @@ -47,12 +49,14 @@ limitations under the License. false false false - true + true true false true true false + true + true NumberOfRFIDUsersSupported - + NumberOfWeekDaySchedulesSupportedPerUser - + NumberOfYearDaySchedulesSupportedPerUser - + NumberOfHolidaySchedulesSupported MaxPINCodeLength @@ -212,7 +216,7 @@ limitations under the License. - + Set a weekly repeating schedule for a specified user. @@ -224,14 +228,14 @@ limitations under the License. - + Retrieve the specific weekly schedule for the specific user. - + Returns the weekly repeating schedule data for the specified schedule index. @@ -244,14 +248,14 @@ limitations under the License. - + Clear the specific weekly schedule or all weekly schedules for the specific user. - + Set a time-specific schedule ID for a specified user. @@ -260,14 +264,14 @@ limitations under the License. - + Returns the year day schedule data for the specified schedule and user indexes. - + Returns the year day schedule data for the specified schedule and user indexes. @@ -277,14 +281,14 @@ limitations under the License. - + Clears the specific year day schedule or all year day schedules for the specific user. - + Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. @@ -293,13 +297,13 @@ limitations under the License. - + Get the holiday schedule for the specified index. - + Returns the Holiday Schedule Entry for the specified Holiday ID. @@ -309,7 +313,7 @@ limitations under the License. - + Clears the holiday schedule or all holiday schedules. @@ -750,11 +754,13 @@ limitations under the License. - + + + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 7ca5b0106df4fd..be7d85fa71e7c7 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -2327,12 +2327,14 @@ client cluster DoorLock = 257 { kRFIDCredentials = 0x2; kFingerCredentials = 0x4; kLogging = 0x8; - kAccessSchedules = 0x10; + kWeekDaySchedules = 0x10; kDoorPositionSensor = 0x20; kFaceCredentials = 0x40; kCredentialsOTA = 0x80; kUsersManagement = 0x100; kNotifications = 0x200; + kYearDaySchedules = 0x400; + kHolidaySchedules = 0x800; } struct DlCredential { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index 1579237c1d53ba..e4dfadf90d0544 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -22826,12 +22826,14 @@ typedef NS_OPTIONS(uint32_t, MTRDoorLockFeature) { MTRDoorLockFeatureRFIDCredentials = 0x2, MTRDoorLockFeatureFingerCredentials = 0x4, MTRDoorLockFeatureLogging = 0x8, - MTRDoorLockFeatureAccessSchedules = 0x10, + MTRDoorLockFeatureWeekDaySchedules = 0x10, MTRDoorLockFeatureDoorPositionSensor = 0x20, MTRDoorLockFeatureFaceCredentials = 0x40, MTRDoorLockFeatureCredentialsOTA = 0x80, MTRDoorLockFeatureUsersManagement = 0x100, MTRDoorLockFeatureNotifications = 0x200, + MTRDoorLockFeatureYearDaySchedules = 0x400, + MTRDoorLockFeatureHolidaySchedules = 0x800, }; typedef NS_ENUM(uint8_t, MTRWindowCoveringEndProductType) { diff --git a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h index 11dd3268ae469c..0689d5dc931128 100644 --- a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h +++ b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h @@ -934,7 +934,7 @@ ZAP_MIN_MAX_DEFAULTS_INDEX(8) }, /* UserCodeTemporaryDisableTime */ \ { 0x00000033, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* RequirePINforRemoteOperation */ \ - { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x113) }, /* FeatureMap */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0xD13) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(6) }, /* ClusterRevision */ \ \ /* Endpoint: 1, Cluster: Window Covering (server) */ \ 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 50cd5912b1df50..fdf1ad79108f79 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 @@ -1299,12 +1299,14 @@ enum class DoorLockFeature : uint32_t kRFIDCredentials = 0x2, kFingerCredentials = 0x4, kLogging = 0x8, - kAccessSchedules = 0x10, + kWeekDaySchedules = 0x10, kDoorPositionSensor = 0x20, kFaceCredentials = 0x40, kCredentialsOTA = 0x80, kUsersManagement = 0x100, kNotifications = 0x200, + kYearDaySchedules = 0x400, + kHolidaySchedules = 0x800, }; } // namespace DoorLock diff --git a/zzz_generated/app-common/app-common/zap-generated/enums.h b/zzz_generated/app-common/app-common/zap-generated/enums.h index 2f2c60bf900c46..c5d1fd3ff6982d 100644 --- a/zzz_generated/app-common/app-common/zap-generated/enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/enums.h @@ -661,8 +661,8 @@ enum EmberAfWiFiVersionType : uint8_t #define EMBER_AF_DOOR_LOCK_FEATURE_FINGER_CREDENTIALS_OFFSET (2) #define EMBER_AF_DOOR_LOCK_FEATURE_LOGGING (8) #define EMBER_AF_DOOR_LOCK_FEATURE_LOGGING_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_FEATURE_ACCESS_SCHEDULES (16) -#define EMBER_AF_DOOR_LOCK_FEATURE_ACCESS_SCHEDULES_OFFSET (4) +#define EMBER_AF_DOOR_LOCK_FEATURE_WEEK_DAY_SCHEDULES (16) +#define EMBER_AF_DOOR_LOCK_FEATURE_WEEK_DAY_SCHEDULES_OFFSET (4) #define EMBER_AF_DOOR_LOCK_FEATURE_DOOR_POSITION_SENSOR (32) #define EMBER_AF_DOOR_LOCK_FEATURE_DOOR_POSITION_SENSOR_OFFSET (5) #define EMBER_AF_DOOR_LOCK_FEATURE_FACE_CREDENTIALS (64) @@ -673,6 +673,10 @@ enum EmberAfWiFiVersionType : uint8_t #define EMBER_AF_DOOR_LOCK_FEATURE_USERS_MANAGEMENT_OFFSET (8) #define EMBER_AF_DOOR_LOCK_FEATURE_NOTIFICATIONS (512) #define EMBER_AF_DOOR_LOCK_FEATURE_NOTIFICATIONS_OFFSET (9) +#define EMBER_AF_DOOR_LOCK_FEATURE_YEAR_DAY_SCHEDULES (1024) +#define EMBER_AF_DOOR_LOCK_FEATURE_YEAR_DAY_SCHEDULES_OFFSET (10) +#define EMBER_AF_DOOR_LOCK_FEATURE_HOLIDAY_SCHEDULES (2048) +#define EMBER_AF_DOOR_LOCK_FEATURE_HOLIDAY_SCHEDULES_OFFSET (11) #define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (7) #define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT_OFFSET (0) #define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (120) diff --git a/zzz_generated/lock-app/zap-generated/endpoint_config.h b/zzz_generated/lock-app/zap-generated/endpoint_config.h index 078e33da09fab0..89adcf20069a3b 100644 --- a/zzz_generated/lock-app/zap-generated/endpoint_config.h +++ b/zzz_generated/lock-app/zap-generated/endpoint_config.h @@ -558,7 +558,7 @@ ZAP_MIN_MAX_DEFAULTS_INDEX(5) }, /* UserCodeTemporaryDisableTime */ \ { 0x00000033, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), \ ZAP_SIMPLE_DEFAULT(0) }, /* RequirePINforRemoteOperation */ \ - { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x1B3) }, /* FeatureMap */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0xDB3) }, /* FeatureMap */ \ { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(6) }, /* ClusterRevision */ \ }