Skip to content

Commit cd3e498

Browse files
authored
TV Matter Media: Updated existing cluster to sync it with latest spec change (#31782)
* Update message cluster to align with new spec. changes * ZAP tool correction
1 parent 0bd5786 commit cd3e498

File tree

14 files changed

+348
-141
lines changed

14 files changed

+348
-141
lines changed

src/app/zap-templates/zcl/data-model/chip/messages-cluster.xml

+7-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,13 @@ limitations under the License.
8484
<description>
8585
Command for requesting messages be presented
8686
</description>
87-
<arg name="Messages" type="MessageStruct" array="true" optional="false"/>
87+
<arg name="MessageID" type="octet_string" length="16" optional="false"/>
88+
<arg name="Priority" type="MessagePriorityEnum" optional="false"/>
89+
<arg name="MessageControl" type="MessageControlBitmap" default="0" optional="false"/>
90+
<arg name="StartTime" type="epoch_s" default="0" optional="false" isNullable="true"/>
91+
<arg name="Duration" type="int16u" default="0" optional="false" isNullable="true"/>
92+
<arg name="MessageText" type="char_string" length="256" optional="false"/>
93+
<arg name="Responses" type="MessageResponseOptionStruct" array="true" length="4" optional="true"/>
8894
</command>
8995
<command source="client" code="0x01" name="CancelMessagesRequest" isFabricScoped="true" optional="false">
9096
<description>

src/controller/data_model/controller-clusters.matter

+7-1
Original file line numberDiff line numberDiff line change
@@ -4440,7 +4440,13 @@ cluster Messages = 151 {
44404440
readonly attribute int16u clusterRevision = 65533;
44414441

44424442
request struct PresentMessagesRequestRequest {
4443-
MessageStruct messages[] = 0;
4443+
octet_string<16> messageID = 0;
4444+
MessagePriorityEnum priority = 1;
4445+
MessageControlBitmap messageControl = 2;
4446+
nullable epoch_s startTime = 3;
4447+
nullable int16u duration = 4;
4448+
char_string<256> messageText = 5;
4449+
optional MessageResponseOptionStruct responses[] = 6;
44444450
}
44454451

44464452
request struct CancelMessagesRequestRequest {

src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java

+30-6
Original file line numberDiff line numberDiff line change
@@ -29078,17 +29078,41 @@ public long initWithDevice(long devicePtr, int endpointId) {
2907829078
return 0L;
2907929079
}
2908029080

29081-
public void presentMessagesRequest(DefaultClusterCallback callback, ArrayList<ChipStructs.MessagesClusterMessageStruct> messages) {
29082-
presentMessagesRequest(callback, messages, 0);
29081+
public void presentMessagesRequest(DefaultClusterCallback callback, byte[] messageID, Integer priority, Integer messageControl, @Nullable Long startTime, @Nullable Integer duration, String messageText, Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>> responses) {
29082+
presentMessagesRequest(callback, messageID, priority, messageControl, startTime, duration, messageText, responses, 0);
2908329083
}
2908429084

29085-
public void presentMessagesRequest(DefaultClusterCallback callback, ArrayList<ChipStructs.MessagesClusterMessageStruct> messages, int timedInvokeTimeoutMs) {
29085+
public void presentMessagesRequest(DefaultClusterCallback callback, byte[] messageID, Integer priority, Integer messageControl, @Nullable Long startTime, @Nullable Integer duration, String messageText, Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>> responses, int timedInvokeTimeoutMs) {
2908629086
final long commandId = 0L;
2908729087

2908829088
ArrayList<StructElement> elements = new ArrayList<>();
29089-
final long messagesFieldID = 0L;
29090-
BaseTLVType messagestlvValue = ArrayType.generateArrayType(messages, (elementmessages) -> elementmessages.encodeTlv());
29091-
elements.add(new StructElement(messagesFieldID, messagestlvValue));
29089+
final long messageIDFieldID = 0L;
29090+
BaseTLVType messageIDtlvValue = new ByteArrayType(messageID);
29091+
elements.add(new StructElement(messageIDFieldID, messageIDtlvValue));
29092+
29093+
final long priorityFieldID = 1L;
29094+
BaseTLVType prioritytlvValue = new UIntType(priority);
29095+
elements.add(new StructElement(priorityFieldID, prioritytlvValue));
29096+
29097+
final long messageControlFieldID = 2L;
29098+
BaseTLVType messageControltlvValue = new UIntType(messageControl);
29099+
elements.add(new StructElement(messageControlFieldID, messageControltlvValue));
29100+
29101+
final long startTimeFieldID = 3L;
29102+
BaseTLVType startTimetlvValue = startTime != null ? new UIntType(startTime) : new NullType();
29103+
elements.add(new StructElement(startTimeFieldID, startTimetlvValue));
29104+
29105+
final long durationFieldID = 4L;
29106+
BaseTLVType durationtlvValue = duration != null ? new UIntType(duration) : new NullType();
29107+
elements.add(new StructElement(durationFieldID, durationtlvValue));
29108+
29109+
final long messageTextFieldID = 5L;
29110+
BaseTLVType messageTexttlvValue = new StringType(messageText);
29111+
elements.add(new StructElement(messageTextFieldID, messageTexttlvValue));
29112+
29113+
final long responsesFieldID = 6L;
29114+
BaseTLVType responsestlvValue = responses.<BaseTLVType>map((nonOptionalresponses) -> ArrayType.generateArrayType(nonOptionalresponses, (elementnonOptionalresponses) -> elementnonOptionalresponses.encodeTlv())).orElse(new EmptyType());
29115+
elements.add(new StructElement(responsesFieldID, responsestlvValue));
2909229116

2909329117
StructType value = new StructType(elements);
2909429118
invoke(new InvokeCallbackImpl(callback) {

src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9385,7 +9385,7 @@ public static Command value(long id) throws NoSuchFieldError {
93859385
}
93869386
throw new NoSuchFieldError();
93879387
}
9388-
}public enum PresentMessagesRequestCommandField {Messages(0),;
9388+
}public enum PresentMessagesRequestCommandField {MessageID(0),Priority(1),MessageControl(2),StartTime(3),Duration(4),MessageText(5),Responses(6),;
93899389
private final int id;
93909390
PresentMessagesRequestCommandField(int id) {
93919391
this.id = id;

src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java

+32-2
Original file line numberDiff line numberDiff line change
@@ -23659,12 +23659,42 @@ public Map<String, Map<String, InteractionInfo>> getCommandMap() {
2365923659

2366023660
Map<String, CommandParameterInfo> messagespresentMessagesRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
2366123661

23662+
CommandParameterInfo messagespresentMessagesRequestmessageIDCommandParameterInfo = new CommandParameterInfo("messageID", byte[].class, byte[].class);
23663+
messagespresentMessagesRequestCommandParams.put("messageID",messagespresentMessagesRequestmessageIDCommandParameterInfo);
23664+
23665+
CommandParameterInfo messagespresentMessagesRequestpriorityCommandParameterInfo = new CommandParameterInfo("priority", Integer.class, Integer.class);
23666+
messagespresentMessagesRequestCommandParams.put("priority",messagespresentMessagesRequestpriorityCommandParameterInfo);
23667+
23668+
CommandParameterInfo messagespresentMessagesRequestmessageControlCommandParameterInfo = new CommandParameterInfo("messageControl", Integer.class, Integer.class);
23669+
messagespresentMessagesRequestCommandParams.put("messageControl",messagespresentMessagesRequestmessageControlCommandParameterInfo);
23670+
23671+
CommandParameterInfo messagespresentMessagesRequeststartTimeCommandParameterInfo = new CommandParameterInfo("startTime", Long.class, Long.class);
23672+
messagespresentMessagesRequestCommandParams.put("startTime",messagespresentMessagesRequeststartTimeCommandParameterInfo);
23673+
23674+
CommandParameterInfo messagespresentMessagesRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Integer.class, Integer.class);
23675+
messagespresentMessagesRequestCommandParams.put("duration",messagespresentMessagesRequestdurationCommandParameterInfo);
23676+
23677+
CommandParameterInfo messagespresentMessagesRequestmessageTextCommandParameterInfo = new CommandParameterInfo("messageText", String.class, String.class);
23678+
messagespresentMessagesRequestCommandParams.put("messageText",messagespresentMessagesRequestmessageTextCommandParameterInfo);
23679+
2366223680
InteractionInfo messagespresentMessagesRequestInteractionInfo = new InteractionInfo(
2366323681
(cluster, callback, commandArguments) -> {
2366423682
((ChipClusters.MessagesCluster) cluster)
2366523683
.presentMessagesRequest((DefaultClusterCallback) callback
23666-
, (ArrayList<ChipStructs.MessagesClusterMessageStruct>)
23667-
commandArguments.get("messages")
23684+
, (byte[])
23685+
commandArguments.get("messageID")
23686+
, (Integer)
23687+
commandArguments.get("priority")
23688+
, (Integer)
23689+
commandArguments.get("messageControl")
23690+
, (Long)
23691+
commandArguments.get("startTime")
23692+
, (Integer)
23693+
commandArguments.get("duration")
23694+
, (String)
23695+
commandArguments.get("messageText")
23696+
, (Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>>)
23697+
commandArguments.get("responses")
2366823698
);
2366923699
},
2367023700
() -> new DelegatedDefaultClusterCallback(),

src/controller/java/generated/java/matter/controller/cluster/clusters/MessagesCluster.kt

+32-6
Original file line numberDiff line numberDiff line change
@@ -102,20 +102,46 @@ class MessagesCluster(private val controller: MatterController, private val endp
102102
}
103103

104104
suspend fun presentMessagesRequest(
105-
messages: List<MessagesClusterMessageStruct>,
105+
messageID: ByteArray,
106+
priority: UByte,
107+
messageControl: UByte,
108+
startTime: UInt?,
109+
duration: UShort?,
110+
messageText: String,
111+
responses: List<MessagesClusterMessageResponseOptionStruct>?,
106112
timedInvokeTimeout: Duration? = null
107113
) {
108114
val commandId: UInt = 0u
109115

110116
val tlvWriter = TlvWriter()
111117
tlvWriter.startStructure(AnonymousTag)
112118

113-
val TAG_MESSAGES_REQ: Int = 0
114-
tlvWriter.startArray(ContextSpecificTag(TAG_MESSAGES_REQ))
115-
for (item in messages.iterator()) {
116-
item.toTlv(AnonymousTag, tlvWriter)
119+
val TAG_MESSAGE_I_D_REQ: Int = 0
120+
tlvWriter.put(ContextSpecificTag(TAG_MESSAGE_I_D_REQ), messageID)
121+
122+
val TAG_PRIORITY_REQ: Int = 1
123+
tlvWriter.put(ContextSpecificTag(TAG_PRIORITY_REQ), priority)
124+
125+
val TAG_MESSAGE_CONTROL_REQ: Int = 2
126+
tlvWriter.put(ContextSpecificTag(TAG_MESSAGE_CONTROL_REQ), messageControl)
127+
128+
val TAG_START_TIME_REQ: Int = 3
129+
startTime?.let { tlvWriter.put(ContextSpecificTag(TAG_START_TIME_REQ), startTime) }
130+
131+
val TAG_DURATION_REQ: Int = 4
132+
duration?.let { tlvWriter.put(ContextSpecificTag(TAG_DURATION_REQ), duration) }
133+
134+
val TAG_MESSAGE_TEXT_REQ: Int = 5
135+
tlvWriter.put(ContextSpecificTag(TAG_MESSAGE_TEXT_REQ), messageText)
136+
137+
val TAG_RESPONSES_REQ: Int = 6
138+
responses?.let {
139+
tlvWriter.startArray(ContextSpecificTag(TAG_RESPONSES_REQ))
140+
for (item in responses.iterator()) {
141+
item.toTlv(AnonymousTag, tlvWriter)
142+
}
143+
tlvWriter.endArray()
117144
}
118-
tlvWriter.endArray()
119145
tlvWriter.endStructure()
120146

121147
val request: InvokeRequest =

src/controller/python/chip/clusters/CHIPClusters.py

+7-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/controller/python/chip/clusters/Objects.py

+14-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h

+13-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)