Skip to content

Commit

Permalink
Apply changes for european lock support to cluster xml (#26632)
Browse files Browse the repository at this point in the history
* apply changes for european lock support to cluster xml

* Fix formatting issues.

---------

Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
  • Loading branch information
mmarc and bzbarsky-apple authored May 17, 2023
1 parent 8216b97 commit db088d5
Show file tree
Hide file tree
Showing 32 changed files with 483 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2361,6 +2361,7 @@ server cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -2375,6 +2376,7 @@ server cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -2466,6 +2468,7 @@ server cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -2654,6 +2657,7 @@ server cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2091,6 +2091,7 @@ server cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -2105,6 +2106,7 @@ server cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -2196,6 +2198,7 @@ server cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -2384,6 +2387,7 @@ server cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down
4 changes: 4 additions & 0 deletions examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,7 @@ server cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -1245,6 +1246,7 @@ server cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -1336,6 +1338,7 @@ server cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -1524,6 +1527,7 @@ server cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down
2 changes: 2 additions & 0 deletions examples/lock-app/genio/src/LockManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,8 @@ const char * LockManager::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
2 changes: 2 additions & 0 deletions examples/lock-app/infineon/cyw30739/src/LockManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,8 @@ const char * LockManager::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
2 changes: 2 additions & 0 deletions examples/lock-app/infineon/psoc6/src/LockManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,8 @@ const char * LockManager::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
4 changes: 4 additions & 0 deletions examples/lock-app/lock-common/lock-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1678,6 +1678,7 @@ server cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -1692,6 +1693,7 @@ server cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -1783,6 +1785,7 @@ server cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -1971,6 +1974,7 @@ server cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down
2 changes: 2 additions & 0 deletions examples/lock-app/lock-common/src/LockEndpoint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,8 @@ const char * LockEndpoint::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
4 changes: 4 additions & 0 deletions examples/lock-app/nxp/zap/lock-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -981,6 +981,7 @@ server cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -995,6 +996,7 @@ server cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -1086,6 +1088,7 @@ server cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -1274,6 +1277,7 @@ server cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down
4 changes: 4 additions & 0 deletions examples/lock-app/qpg/zap/lock.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1290,6 +1290,7 @@ server cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -1304,6 +1305,7 @@ server cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -1395,6 +1397,7 @@ server cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -1583,6 +1586,7 @@ server cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down
2 changes: 2 additions & 0 deletions examples/lock-app/silabs/SiWx917/src/LockManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,8 @@ const char * LockManager::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
2 changes: 2 additions & 0 deletions examples/lock-app/silabs/efr32/src/LockManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,8 @@ const char * LockManager::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
2 changes: 2 additions & 0 deletions examples/platform/esp32/lock/BoltLockManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,8 @@ const char * BoltLockManager::lockStateToString(DlLockState lockState) const
return "Locked";
case DlLockState::kUnlocked:
return "Unlocked";
case DlLockState::kUnlatched:
return "Unlatched";
case DlLockState::kUnknownEnumValue:
break;
}
Expand Down
11 changes: 11 additions & 0 deletions src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ limitations under the License.
<tag name="NOT" description="Notification" />
<tag name="YDSCH" description="Year Day Access Schedules" />
<tag name="HDSCH" description="Holiday Schedules" />
<tag name="UBOLT" description="Unbolting" />

<client tick="false" init="false">true</client>
<server tick="false" init="false">true</server>
Expand All @@ -57,6 +58,7 @@ limitations under the License.
<featureBit tag="NOT" bit="9">false</featureBit>
<featureBit tag="YDSCH" bit="10">true</featureBit>
<featureBit tag="HDSCH" bit="11">true</featureBit>
<featureBit tag="UBOLT" bit="12">true</featureBit>
</globalAttribute>

<!-- The principle behind mandatory/optional is the following:
Expand Down Expand Up @@ -393,6 +395,11 @@ limitations under the License.
<access op="invoke" role="administer" />
<arg name="Credential" type="CredentialStruct" isNullable="true"/>
</command>
<command source="client" code="39" name="UnboltDoor" mustUseTimedInvoke="true" optional="true">
<description>This command causes the lock device to unlock the door without pulling the latch.</description>
<!-- Conformance feature [COTA & PIN] - for now optional -->
<arg name="PINCode" type="OCTET_STRING" optional="true" />
</command>


<!-- Events -->
Expand Down Expand Up @@ -531,6 +538,7 @@ limitations under the License.
<item value="1" name="Unlock" />
<item value="2" name="NonAccessUserEvent" />
<item value="3" name="ForcedUserEvent" />
<item value="4" name="Unlatch" />
</enum>

<enum name="OperationErrorEnum" type="ENUM8">
Expand Down Expand Up @@ -594,6 +602,7 @@ limitations under the License.
<item value="0" name="Not Fully Locked" />
<item value="1" name="Locked" />
<item value="2" name="Unlocked" />
<item value="3" name="Unlatched" />
</enum>

<!-- LockType Attribute Values -->
Expand All @@ -610,6 +619,7 @@ limitations under the License.
<item value="8" name="Interconnected Lock" />
<item value="9" name="Dead Latch" />
<item value="10" name="Door Furniture" />
<item value="11" name="Eurocylinder" />
</enum>

<!-- CredentialRulesSupport attribute bit meaning set -->
Expand Down Expand Up @@ -758,6 +768,7 @@ limitations under the License.
<field name="Notification" mask="0x200" />
<field name="Year Day Access Schedules" mask="0x400" />
<field name="Holiday Schedules" mask="0x800" />
<field name="Unbolt" mask="0x1000" />
</bitmap>

<enum name="DoorLockSetPinOrIdStatus" type="ENUM8">
Expand Down
10 changes: 10 additions & 0 deletions src/controller/data_model/controller-clusters.matter
Original file line number Diff line number Diff line change
Expand Up @@ -3048,6 +3048,7 @@ client cluster DoorLock = 257 {
kNotFullyLocked = 0;
kLocked = 1;
kUnlocked = 2;
kUnlatched = 3;
}

enum DlLockType : ENUM8 {
Expand All @@ -3062,6 +3063,7 @@ client cluster DoorLock = 257 {
kInterconnectedLock = 8;
kDeadLatch = 9;
kDoorFurniture = 10;
kEurocylinder = 11;
}

enum DlStatus : ENUM8 {
Expand Down Expand Up @@ -3153,6 +3155,7 @@ client cluster DoorLock = 257 {
kUnlock = 1;
kNonAccessUserEvent = 2;
kForcedUserEvent = 3;
kUnlatch = 4;
}

enum OperatingModeEnum : ENUM8 {
Expand Down Expand Up @@ -3341,6 +3344,7 @@ client cluster DoorLock = 257 {
kNotification = 0x200;
kYearDayAccessSchedules = 0x400;
kHolidaySchedules = 0x800;
kUnbolt = 0x1000;
}

struct CredentialStruct {
Expand Down Expand Up @@ -3582,6 +3586,10 @@ client cluster DoorLock = 257 {
nullable CredentialStruct credential = 0;
}

request struct UnboltDoorRequest {
optional OCTET_STRING PINCode = 0;
}

/** This command causes the lock device to lock the door. */
timed command LockDoor(LockDoorRequest): DefaultSuccess = 0;
/** This command causes the lock device to unlock the door. */
Expand Down Expand Up @@ -3618,6 +3626,8 @@ client cluster DoorLock = 257 {
command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36;
/** Clear one, one type, or all credentials except ProgrammingPIN credential. */
timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38;
/** This command causes the lock device to unlock the door without pulling the latch. */
timed command UnboltDoor(UnboltDoorRequest): DefaultSuccess = 39;
}

/** Provides an interface for controlling and adjusting automatic window coverings. */
Expand Down
Loading

0 comments on commit db088d5

Please sign in to comment.