Skip to content

Commit b2674df

Browse files
committed
Upgrade cluster spec to Matter 1.4
1 parent 5f4a952 commit b2674df

File tree

217 files changed

+7691
-2010
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

217 files changed

+7691
-2010
lines changed

Generator/ClusterGenerator.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,9 @@ private static void WriteStructType(bool optional, bool nullable, string type, s
534534
break;
535535
case "ref_IpAdr":
536536
case "ref_Ipv4Adr":
537+
case "ref_IPv4Address":
537538
case "ref_Ipv6Adr":
539+
case "ref_IPv6Address":
538540
case "ipv6adr":
539541
if (nullable && !optional)
540542
writer.Write($"{totalIndent}if ({name} == null)\n{totalIndent} writer.WriteNull({id});\n{totalIndent}else\n ");
@@ -696,9 +698,11 @@ private static void WriteFieldReader(bool optional, bool nullable, string type,
696698
writer.WriteLine($"new IPAddress(reader.GetBytes({id}, {(optional ? "true" : "false")}, 16, 4)!);;");
697699
return;
698700
case "ref_Ipv4Adr":
701+
case "ref_IPv4Address":
699702
writer.WriteLine($"new IPAddress(reader.GetBytes({id}, {(optional ? "true" : "false")}, 4, 4)!);;");
700703
return;
701704
case "ref_Ipv6Adr":
705+
case "ref_IPv6Address":
702706
case "ipv6adr":
703707
writer.WriteLine($"new IPAddress(reader.GetBytes({id}, {(optional ? "true" : "false")}, 16, 16)!);;");
704708
return;
@@ -1121,6 +1125,7 @@ private static void WriteRecord(clusterDataTypesStruct structType, Cluster clust
11211125
break;
11221126
case "between":
11231127
case "lengthBetween":
1128+
case "countBetween":
11241129
if (long.TryParse(field.constraint.from, out long parsedFrom))
11251130
from = parsedFrom;
11261131
if (long.TryParse(field.constraint.to, out long parsedTo))
@@ -1407,7 +1412,9 @@ private static bool WriteType(string type, string? entryType, TextWriter writer,
14071412
break;
14081413
case "ref_IpAdr":
14091414
case "ref_Ipv4Adr":
1415+
case "ref_IPv4Address":
14101416
case "ref_Ipv6Adr":
1417+
case "ref_IPv6Address":
14111418
case "ipv6adr":
14121419
includes.Add("System.Net");
14131420
writer.Write("IPAddress");
@@ -1439,6 +1446,10 @@ private static bool WriteType(string type, string? entryType, TextWriter writer,
14391446
includes.Add("MatterDotNet.Messages");
14401447
writer.Write("SemanticTag");
14411448
break;
1449+
case "LocationDescriptorStruct":
1450+
includes.Add("MatterDotNet.Messages");
1451+
writer.Write("LocationDescriptor");
1452+
break;
14421453
case "ref_MeasurementAccuracyStruct":
14431454
includes.Add("MatterDotNet.Messages");
14441455
writer.Write("MeasurementAccuracy");

Generator/Clusters/ACL-Cluster.xml

Lines changed: 123 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,21 @@ Connectivity Standards Alliance
5555
508 Second Street, Suite 206
5656
Davis, CA 95616, USA
5757
-->
58-
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x001F" name="Access Control Cluster" revision="1">
58+
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x001F" name="Access Control Cluster" revision="2">
5959
<revisionHistory>
60-
<revision revision="1" summary="Initial Release"/>
60+
<revision revision="1" summary="Initial revision"/>
61+
<revision revision="2" summary="Added Managed Device feature, Extension feature, fixed conformance"/>
6162
</revisionHistory>
6263
<clusterIds>
6364
<clusterId id="0x001F" name="AccessControl"/>
6465
</clusterIds>
6566
<classification hierarchy="base" role="utility" picsCode="ACL" scope="Node"/>
67+
<features>
68+
<feature bit="0" code="EXTS" name="Extension" summary="Device provides ACL Extension attribute">
69+
<optionalConform/>
70+
</feature>
71+
<feature bit="1" code="MNGD" name="ManagedDevice" summary="Device is managed"/>
72+
</features>
6673
<dataTypes>
6774
<enum name="AccessControlEntryAuthModeEnum">
6875
<item value="1" name="PASE" summary="Passcode authenticated session">
@@ -95,6 +102,20 @@ Davis, CA 95616, USA
95102
<mandatoryConform/>
96103
</item>
97104
</enum>
105+
<enum name="AccessRestrictionTypeEnum">
106+
<item value="0" name="AttributeAccessForbidden" summary="Clients on this fabric are currently forbidden from reading and writing an attribute">
107+
<mandatoryConform/>
108+
</item>
109+
<item value="1" name="AttributeWriteForbidden" summary="Clients on this fabric are currently forbidden from writing an attribute">
110+
<mandatoryConform/>
111+
</item>
112+
<item value="2" name="CommandForbidden" summary="Clients on this fabric are currently forbidden from invoking a command">
113+
<mandatoryConform/>
114+
</item>
115+
<item value="3" name="EventForbidden" summary="Clients on this fabric are currently forbidden from reading an event">
116+
<mandatoryConform/>
117+
</item>
118+
</enum>
98119
<enum name="ChangeTypeEnum">
99120
<item value="0" name="Changed" summary="Entry or extension was changed">
100121
<mandatoryConform/>
@@ -153,6 +174,45 @@ Davis, CA 95616, USA
153174
<mandatoryConform/>
154175
</field>
155176
</struct>
177+
<struct name="AccessRestrictionEntryStruct">
178+
<field id="0" name="Endpoint" type="endpoint-no">
179+
<access fabricSensitive="true"/>
180+
<mandatoryConform/>
181+
</field>
182+
<field id="1" name="Cluster" type="cluster-id">
183+
<access fabricSensitive="true"/>
184+
<mandatoryConform/>
185+
</field>
186+
<field id="2" name="Restrictions" type="list" default="desc">
187+
<entry type="AccessRestrictionStruct"/>
188+
<access fabricSensitive="true"/>
189+
<mandatoryConform/>
190+
<constraint type="minCount" value="1"/>
191+
</field>
192+
<access fabricScoped="true"/>
193+
</struct>
194+
<struct name="AccessRestrictionStruct">
195+
<field id="0" name="Type" type="AccessRestrictionTypeEnum">
196+
<mandatoryConform/>
197+
</field>
198+
<field id="1" name="ID" type="uint32">
199+
<quality nullable="true"/>
200+
<mandatoryConform/>
201+
</field>
202+
</struct>
203+
<struct name="CommissioningAccessRestrictionEntryStruct">
204+
<field id="0" name="Endpoint" type="endpoint-no">
205+
<mandatoryConform/>
206+
</field>
207+
<field id="1" name="Cluster" type="cluster-id">
208+
<mandatoryConform/>
209+
</field>
210+
<field id="2" name="Restrictions" type="list" default="desc">
211+
<entry type="AccessRestrictionStruct"/>
212+
<mandatoryConform/>
213+
<constraint type="minCount" value="1"/>
214+
</field>
215+
</struct>
156216
</dataTypes>
157217
<attributes>
158218
<attribute id="0x0000" name="ACL" type="list" default="desc">
@@ -164,7 +224,9 @@ Davis, CA 95616, USA
164224
<attribute id="0x0001" name="Extension" type="list" default="desc">
165225
<entry type="AccessControlExtensionStruct"/>
166226
<access read="true" write="true" readPrivilege="admin" writePrivilege="admin" fabricScoped="true"/>
167-
<optionalConform/>
227+
<mandatoryConform>
228+
<feature name="EXTS"/>
229+
</mandatoryConform>
168230
<constraint type="desc"/>
169231
</attribute>
170232
<attribute id="0x0002" name="SubjectsPerAccessControlEntry" type="uint16" default="4">
@@ -185,7 +247,45 @@ Davis, CA 95616, USA
185247
<mandatoryConform/>
186248
<constraint type="min" value="4"/>
187249
</attribute>
250+
<attribute id="0x0005" name="CommissioningARL" type="list" default="[]">
251+
<entry type="CommissioningAccessRestrictionEntryStruct"/>
252+
<access read="true" readPrivilege="view"/>
253+
<quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
254+
<mandatoryConform>
255+
<feature name="MNGD"/>
256+
</mandatoryConform>
257+
<constraint type="desc"/>
258+
</attribute>
259+
<attribute id="0x0006" name="ARL" type="list" default="[]">
260+
<entry type="AccessRestrictionEntryStruct"/>
261+
<access read="true" readPrivilege="view" fabricScoped="true"/>
262+
<mandatoryConform>
263+
<feature name="MNGD"/>
264+
</mandatoryConform>
265+
<constraint type="desc"/>
266+
</attribute>
188267
</attributes>
268+
<commands>
269+
<command id="0x00" name="ReviewFabricRestrictions" direction="commandToServer" response="ReviewFabricRestrictionsResponse">
270+
<access invokePrivilege="admin" fabricScoped="true"/>
271+
<mandatoryConform>
272+
<feature name="MNGD"/>
273+
</mandatoryConform>
274+
<field id="0" name="ARL" type="list" default="desc">
275+
<entry type="CommissioningAccessRestrictionEntryStruct"/>
276+
<mandatoryConform/>
277+
<constraint type="desc"/>
278+
</field>
279+
</command>
280+
<command id="0x01" name="ReviewFabricRestrictionsResponse" direction="responseFromServer">
281+
<mandatoryConform>
282+
<feature name="MNGD"/>
283+
</mandatoryConform>
284+
<field id="0" name="Token" type="uint64">
285+
<mandatoryConform/>
286+
</field>
287+
</command>
288+
</commands>
189289
<events>
190290
<event id="0x00" name="AccessControlEntryChanged" priority="info">
191291
<access readPrivilege="admin" fabricSensitive="true"/>
@@ -210,7 +310,9 @@ Davis, CA 95616, USA
210310
</event>
211311
<event id="0x01" name="AccessControlExtensionChanged" priority="info">
212312
<access readPrivilege="admin" fabricSensitive="true"/>
213-
<mandatoryConform/>
313+
<mandatoryConform>
314+
<feature name="EXTS"/>
315+
</mandatoryConform>
214316
<field id="1" name="AdminNodeID" type="node-id">
215317
<quality nullable="true"/>
216318
<mandatoryConform/>
@@ -229,5 +331,22 @@ Davis, CA 95616, USA
229331
<mandatoryConform/>
230332
</field>
231333
</event>
334+
<event id="0x02" name="FabricRestrictionReviewUpdate" priority="info">
335+
<access readPrivilege="admin" fabricSensitive="true"/>
336+
<mandatoryConform>
337+
<feature name="MNGD"/>
338+
</mandatoryConform>
339+
<field id="0" name="Token" type="uint64">
340+
<mandatoryConform/>
341+
</field>
342+
<field id="1" name="Instruction" type="string">
343+
<optionalConform/>
344+
<constraint type="maxLength" value="512"/>
345+
</field>
346+
<field id="2" name="ARLRequestFlowUrl" type="string">
347+
<optionalConform/>
348+
<constraint type="maxLength" value="256"/>
349+
</field>
350+
</event>
232351
</events>
233352
</cluster>

Generator/Clusters/AccountLogin.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050E" name="Account Login Cluster" revision="2">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial Release"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
<revision revision="2" summary="Add support for 8 character PIN code, Add Node to Login, Logout commands. Add LoggedOut event."/>
6464
</revisionHistory>
6565
<clusterIds>

Generator/Clusters/AdminCommissioningCluster.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Davis, CA 95616, USA
5757
-->
5858
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x003C" name="Administrator Commissioning Cluster" revision="1">
5959
<revisionHistory>
60-
<revision revision="1" summary="Initial Release"/>
60+
<revision revision="1" summary="Initial revision"/>
6161
</revisionHistory>
6262
<clusterIds>
6363
<clusterId id="0x003C" name="Administrator Commissioning"/>

Generator/Clusters/AirQuality.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x005B" name="Air Quality Cluster" revision="1">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial version of the Air Quality cluster"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
</revisionHistory>
6464
<clusterIds>
6565
<clusterId id="0x005B" name="Air Quality"/>

Generator/Clusters/ApplicationBasic.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050D" name="Application Basic Cluster" revision="1">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial Release"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
</revisionHistory>
6464
<clusterIds>
6565
<clusterId id="0x050D" name="Application Basic"/>

Generator/Clusters/ApplicationLauncher.xml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
5757
5858
:xrefstyle: basic
5959
-->
60-
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050C" name="Application Launcher Cluster" revision="1">
60+
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050C" name="Application Launcher Cluster" revision="2">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial Release"/>
62+
<revision revision="1" summary="Initial revision"/>
63+
<revision revision="2" summary="Addition of new states to StatusEnum"/>
6364
</revisionHistory>
6465
<clusterIds>
6566
<clusterId id="0x050C" name="Application Launcher"/>
@@ -75,10 +76,19 @@ Davis, CA 95616, USA
7576
<item value="0" name="Success" summary="Command succeeded">
7677
<mandatoryConform/>
7778
</item>
78-
<item value="1" name="AppNotAvailable" summary="Requested app is not available.">
79+
<item value="1" name="AppNotAvailable" summary="Requested app is not available">
7980
<mandatoryConform/>
8081
</item>
81-
<item value="2" name="SystemBusy" summary="Video platform unable to honor command.">
82+
<item value="2" name="SystemBusy" summary="Video platform unable to honor command">
83+
<mandatoryConform/>
84+
</item>
85+
<item value="3" name="PendingUserApproval" summary="User approval for app download is pending">
86+
<mandatoryConform/>
87+
</item>
88+
<item value="4" name="Downloading" summary="Downloading the requested app">
89+
<mandatoryConform/>
90+
</item>
91+
<item value="5" name="Installing" summary="Installing the requested app">
8292
<mandatoryConform/>
8393
</item>
8494
</enum>

Generator/Clusters/AudioOutput.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x050B" name="Audio Output Cluster" revision="1">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial Release"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
</revisionHistory>
6464
<clusterIds>
6565
<clusterId id="0x050B" name="Audio Output"/>

Generator/Clusters/BasicInformationCluster.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,12 @@ Connectivity Standards Alliance
5555
508 Second Street, Suite 206
5656
Davis, CA 95616, USA
5757
-->
58-
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0028" name="Basic Information Cluster" revision="3">
58+
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0028" name="Basic Information Cluster" revision="4">
5959
<revisionHistory>
60-
<revision revision="1" summary="Initial Release"/>
60+
<revision revision="1" summary="Initial revision"/>
6161
<revision revision="2" summary="Added ProductAppearance attribute"/>
6262
<revision revision="3" summary="Added SpecificationVersion and MaxPathsPerInvoke attributes"/>
63+
<revision revision="4" summary="Updated conformance for UniqueID to mandatory."/>
6364
</revisionHistory>
6465
<clusterIds>
6566
<clusterId id="0x0028" name="Basic Information"/>
@@ -277,7 +278,7 @@ Davis, CA 95616, USA
277278
<attribute id="0x0012" name="UniqueID" type="string" default="MS">
278279
<access read="true" readPrivilege="view"/>
279280
<quality changeOmitted="false" nullable="false" scene="false" persistence="fixed" reportable="false" sourceAttribution="false" quieterReporting="false"/>
280-
<optionalConform/>
281+
<mandatoryConform/>
281282
<constraint type="maxLength" value="32"/>
282283
</attribute>
283284
<attribute id="0x0013" name="CapabilityMinima" type="CapabilityMinimaStruct" default="MS">

Generator/Clusters/Binding-Cluster.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x001E" name="Binding Cluster" revision="1">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial Release"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
</revisionHistory>
6464
<clusterIds>
6565
<clusterId id="0x001E" name="Binding"/>

Generator/Clusters/BooleanState.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0045" name="Boolean State Cluster" revision="1">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial release"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
</revisionHistory>
6464
<clusterIds>
6565
<clusterId id="0x0045" name="Boolean State"/>

Generator/Clusters/BooleanStateConfiguration.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Davis, CA 95616, USA
5959
-->
6060
<cluster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="types types.xsd cluster cluster.xsd" id="0x0080" name="Boolean State Configuration Cluster" revision="1">
6161
<revisionHistory>
62-
<revision revision="1" summary="Initial Release"/>
62+
<revision revision="1" summary="Initial revision"/>
6363
</revisionHistory>
6464
<clusterIds>
6565
<clusterId id="0x0080" name="Boolean State Configuration"/>

0 commit comments

Comments
 (0)