| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2024 Project CHIP Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <configurator> |
| <domain name="General"/> |
| |
| |
| <bitmap name="MessageControlBitmap" type="bitmap8"> |
| <cluster code="0x0097"/> |
| <field name="ConfirmationRequired" mask="0x1"/> |
| <field name="ResponseRequired" mask="0x2"/> |
| <field name="ReplyMessage" mask="0x4"/> |
| <field name="MessageConfirmed" mask="0x8"/> |
| <field name="MessageProtected" mask="0x10"/> |
| </bitmap> |
| |
| <enum name="FutureMessagePreferenceEnum" type="enum8"> |
| <cluster code="0x0097"/> |
| <item value="0x00" name="Allowed"/> |
| <item value="0x01" name="Increased" /> |
| <item value="0x02" name="Reduced"/> |
| <item value="0x03" name="Disallowed"/> |
| <item value="0x04" name="Banned"/> |
| </enum> |
| |
| <enum name="MessagePriorityEnum" type="enum8"> |
| <cluster code="0x0097"/> |
| <item value="0x00" name="Low"/> |
| <item value="0x01" name="Medium" /> |
| <item value="0x02" name="High"/> |
| <item value="0x03" name="Critical"/> |
| </enum> |
| |
| |
| <struct name="MessageStruct"> <!-- TODO: enable isFabricScoped="true", as of Jan 2024 it breaks at compile time as command argument PresentMessagesRequest#Messages--> |
| <cluster code="0x0097"/> |
| <item fieldId="0" name="MessageID" type="octet_string" length="16" optional="false"/> |
| <item fieldId="1" name="Priority" type="MessagePriorityEnum" optional="false"/> |
| <item fieldId="2" name="MessageControl" type="MessageControlBitmap" default="0" optional="false"/> |
| <item fieldId="3" name="StartTime" type="epoch_s" default="0" optional="false" isNullable="true"/> |
| <item fieldId="4" name="Duration" type="int64u" default="0" optional="false" isNullable="true"/> |
| <item fieldId="5" name="MessageText" type="char_string" length="256" optional="false"/> |
| <item fieldId="6" name="Responses" type="MessageResponseOptionStruct" array="true" length="4" optional="true"/> |
| </struct> |
| |
| <struct name="MessageResponseOptionStruct"> |
| <cluster code="0x0097"/> |
| <item fieldId="0" name="MessageResponseID" type="int32u" optional="true"/> |
| <item fieldId="1" name="Label" type="char_string" length="32" optional="true"/> |
| </struct> |
| |
| <cluster apiMaturity="provisional"> |
| <name>Messages</name> |
| <domain>General</domain> |
| <description>This cluster provides an interface for passing messages to be presented by a device.</description> |
| <code>0x0097</code> |
| <define>MESSAGES_CLUSTER</define> |
| <client tick="false" init="false">true</client> |
| <server tick="false" init="false">true</server> |
| <globalAttribute side="either" code="0xFFFD" value="3"/><!-- Revision --> |
| |
| <features> |
| <feature bit="0" code="CONF" name="ReceivedConfirmation"> |
| <optionalConform/> |
| </feature> |
| <feature bit="1" code="RESP" name="ConfirmationResponse"> |
| <optionalConform> |
| <feature name="CONF"/> |
| </optionalConform> |
| </feature> |
| <feature bit="2" code="RPLY" name="ConfirmationReply"> |
| <optionalConform> |
| <feature name="CONF"/> |
| </optionalConform> |
| </feature> |
| <feature bit="3" code="PROT" name="ProtectedMessages"> |
| <optionalConform/> |
| </feature> |
| </features> |
| |
| <attribute side="server" code="0x0000" define="LIST_MESSAGES" type="array" entryType="MessageStruct" length="8" writable="false" optional="false">Messages</attribute> |
| <attribute side="server" code="0x0001" define="MESSAGES_CLUSTER_ACTIVE_MESSAGES_IDS" type="ARRAY" entryType="octet_string" max="8" writable="false" optional="false">ActiveMessageIDs</attribute> |
| <command source="client" code="0x00" name="PresentMessagesRequest" isFabricScoped="true" optional="false"> |
| <description> |
| Command for requesting messages be presented |
| </description> |
| <arg name="MessageID" type="octet_string" length="16" optional="false"/> |
| <arg name="Priority" type="MessagePriorityEnum" optional="false"/> |
| <arg name="MessageControl" type="MessageControlBitmap" default="0" optional="false"/> |
| <arg name="StartTime" type="epoch_s" default="0" optional="false" isNullable="true"/> |
| <arg name="Duration" type="int64u" default="0" optional="false" isNullable="true"/> |
| <arg name="MessageText" type="char_string" length="256" optional="false"/> |
| <arg name="Responses" type="MessageResponseOptionStruct" array="true" length="4" optional="true"/> |
| </command> |
| <command source="client" code="0x01" name="CancelMessagesRequest" isFabricScoped="true" optional="false"> |
| <description> |
| Command for cancelling message present requests |
| </description> |
| <arg name="MessageIDs" type="octet_string" array="true" optional="false"/> |
| </command> |
| <event side="server" code="0x00" name="MessageQueued" priority="info" optional="false"> |
| <description>This event SHALL be generated when the message is confirmed by the user, or when the expiration date of the message is reached.</description> |
| <field id="0" name="MessageID" type="octet_string" max="16"/> |
| </event> |
| <event side="server" code="0x01" name="MessagePresented" priority="info" optional="false"> |
| <description>This event SHALL be generated when the message is presented to the user.</description> |
| <field id="0" name="MessageID" type="octet_string" max="16"/> |
| </event> |
| <event side="server" code="0x02" name="MessageComplete" priority="info" optional="false"> |
| <description>This event SHALL be generated when the message is confirmed by the user, or when the expiration date of the message is reached.</description> |
| <field id="0" name="MessageID" type="octet_string" optional="false"/> |
| <field id="1" name="ResponseID" type="int32u" isNullable="true" optional="true"/> |
| <field id="2" name="Reply" type="char_string" length="256" isNullable="true" optional="true"/> |
| <field id="3" name="FutureMessagesPreference" type="FutureMessagePreferenceEnum" isNullable="true" optional="false"/> |
| </event> |
| </cluster> |
| </configurator> |