Skip to content

Commit

Permalink
[Messages] Change message duration to uint64 (#32248)
Browse files Browse the repository at this point in the history
* Change message duration to uint64

* Fixes to Java build

* Missed a HandlePresentMessagesRequest signature
  • Loading branch information
hasty authored and pull[bot] committed Mar 4, 2024
1 parent efeac47 commit d0d2432
Show file tree
Hide file tree
Showing 27 changed files with 59 additions and 60 deletions.
2 changes: 1 addition & 1 deletion data_model/clusters/Messages.xml
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ Davis, CA 95616, USA
<quality nullable="true"/>
<mandatoryConform/>
</field>
<field id="4" name="Duration" type="uint16" default="0">
<field id="4" name="Duration" type="uint64" default="0">
<access fabricSensitive="true"/>
<quality nullable="true"/>
<mandatoryConform/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ using namespace chip::app::Clusters::Messages;
void MessagesManager::HandlePresentMessagesRequest(
const chip::ByteSpan & messageId, const MessagePriorityEnum & priority,
const chip::BitMask<MessageControlBitmap> & messageControl, const chip::app::DataModel::Nullable<uint32_t> & startTime,
const chip::app::DataModel::Nullable<uint16_t> & duration, const chip::CharSpan & messageText,
const chip::app::DataModel::Nullable<uint64_t> & duration, const chip::CharSpan & messageText,
const chip::Optional<chip::app::DataModel::DecodableList<MessageResponseOption>> & responses)
{
// TODO: Present Message
Expand Down
2 changes: 1 addition & 1 deletion examples/tv-app/android/include/messages/MessagesManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class MessagesManager : public chip::app::Clusters::Messages::Delegate
void HandlePresentMessagesRequest(
const chip::ByteSpan & messageId, const chip::app::Clusters::Messages::MessagePriorityEnum & priority,
const chip::BitMask<chip::app::Clusters::Messages::MessageControlBitmap> & messageControl,
const chip::app::DataModel::Nullable<uint32_t> & startTime, const chip::app::DataModel::Nullable<uint16_t> & duration,
const chip::app::DataModel::Nullable<uint32_t> & startTime, const chip::app::DataModel::Nullable<uint64_t> & duration,
const chip::CharSpan & messageText,
const chip::Optional<chip::app::DataModel::DecodableList<
chip::app::Clusters::Messages::Structs::MessageResponseOptionStruct::DecodableType>> & responses) override;
Expand Down
12 changes: 6 additions & 6 deletions examples/tv-app/android/java/MessagesManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,10 +183,10 @@ CHIP_ERROR MessagesManager::HandleGetMessages(AttributeValueEncoder & aEncoder)
}

jfieldID durationField = env->GetFieldID(messageClass, "duration", "I");
jint jduration = env->GetIntField(messageObject, durationField);
jlong jduration = env->GetLongField(messageObject, durationField);
if (jduration >= 0)
{
message.duration = DataModel::Nullable<uint16_t>(static_cast<uint16_t>(jduration));
message.duration = DataModel::Nullable<uint64_t>(static_cast<uint64_t>(jduration));
}

jfieldID getResponseOptionsField =
Expand Down Expand Up @@ -301,7 +301,7 @@ CHIP_ERROR MessagesManager::HandleGetActiveMessageIds(AttributeValueEncoder & aE

CHIP_ERROR MessagesManager::HandlePresentMessagesRequest(
const ByteSpan & messageId, const MessagePriorityEnum & priority, const BitMask<MessageControlBitmap> & messageControl,
const DataModel::Nullable<uint32_t> & startTime, const DataModel::Nullable<uint16_t> & duration, const CharSpan & messageText,
const DataModel::Nullable<uint32_t> & startTime, const DataModel::Nullable<uint64_t> & duration, const CharSpan & messageText,
const Optional<DataModel::DecodableList<MessageResponseOption>> & responses)
{
DeviceLayer::StackUnlock unlock;
Expand Down Expand Up @@ -336,11 +336,11 @@ CHIP_ERROR MessagesManager::HandlePresentMessagesRequest(
return CHIP_ERROR_INTERNAL;
}

jint jcontrol = static_cast<jint>(messageControl.Raw());
jint jduration = -1;
jint jcontrol = static_cast<jint>(messageControl.Raw());
jlong jduration = -1;
if (!duration.IsNull())
{
jduration = static_cast<jint>(duration.Value());
jduration = static_cast<jlong>(duration.Value());
}
jlong jstartTime = -1;
if (!startTime.IsNull())
Expand Down
2 changes: 1 addition & 1 deletion examples/tv-app/android/java/MessagesManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class MessagesManager : public chip::app::Clusters::Messages::Delegate
CHIP_ERROR HandlePresentMessagesRequest(
const chip::ByteSpan & messageId, const chip::app::Clusters::Messages::MessagePriorityEnum & priority,
const chip::BitMask<chip::app::Clusters::Messages::MessageControlBitmap> & messageControl,
const chip::app::DataModel::Nullable<uint32_t> & startTime, const chip::app::DataModel::Nullable<uint16_t> & duration,
const chip::app::DataModel::Nullable<uint32_t> & startTime, const chip::app::DataModel::Nullable<uint64_t> & duration,
const chip::CharSpan & messageText,
const chip::Optional<
chip::app::DataModel::DecodableList<chip::app::Clusters::Messages::Structs::MessageResponseOptionStruct::Type>> &
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class Message {
public int priority;
public int messageControl;
public long startTime;
public int duration;
public long duration;
public String messageText;
public MessageResponseOption responseOptions[];

Expand All @@ -32,7 +32,7 @@ public Message(
int priority,
int messageControl,
long startTime,
int duration,
long duration,
String messageText,
MessageResponseOption responseOptions[]) {
this.messageId = messageId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ boolean presentMessages(
int priority,
int messageControl,
long startTime,
int duration,
long duration,
String messageText,
HashMap<Long, String> responseOptions);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public boolean presentMessages(
int priority,
int messageControl,
long startTime,
int duration,
long duration,
String messageText,
HashMap<Long, String> responseOptions) {
Log.d(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ using MessageResponseOption = chip::app::Clusters::Messages::Structs::MessageRes
// Commands
CHIP_ERROR MessagesManager::HandlePresentMessagesRequest(
const ByteSpan & messageId, const MessagePriorityEnum & priority, const BitMask<MessageControlBitmap> & messageControl,
const DataModel::Nullable<uint32_t> & startTime, const DataModel::Nullable<uint16_t> & duration, const CharSpan & messageText,
const DataModel::Nullable<uint32_t> & startTime, const DataModel::Nullable<uint64_t> & duration, const CharSpan & messageText,
const Optional<DataModel::DecodableList<MessageResponseOption>> & responses)
{
ChipLogProgress(Zcl, "HandlePresentMessagesRequest message:%s", std::string(messageText.data(), messageText.size()).c_str());
Expand Down
6 changes: 3 additions & 3 deletions examples/tv-app/tv-common/clusters/messages/MessagesManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ struct CachedMessage
CachedMessage(const chip::ByteSpan & messageId, const chip::app::Clusters::Messages::MessagePriorityEnum & priority,
const chip::BitMask<chip::app::Clusters::Messages::MessageControlBitmap> & messageControl,
const chip::app::DataModel::Nullable<uint32_t> & startTime,
const chip::app::DataModel::Nullable<uint16_t> & duration, std::string messageText) :
const chip::app::DataModel::Nullable<uint64_t> & duration, std::string messageText) :
mPriority(priority),
mMessageControl(messageControl), mStartTime(startTime), mDuration(duration), mMessageText(messageText)
{
Expand Down Expand Up @@ -110,7 +110,7 @@ struct CachedMessage
const chip::app::Clusters::Messages::MessagePriorityEnum mPriority;
const chip::BitMask<chip::app::Clusters::Messages::MessageControlBitmap> mMessageControl;
const chip::app::DataModel::Nullable<uint32_t> mStartTime;
const chip::app::DataModel::Nullable<uint16_t> mDuration;
const chip::app::DataModel::Nullable<uint64_t> mDuration;

std::string mMessageText;
uint8_t mMessageIdBuffer[chip::app::Clusters::Messages::kMessageIdLength];
Expand All @@ -126,7 +126,7 @@ class MessagesManager : public chip::app::Clusters::Messages::Delegate
CHIP_ERROR HandlePresentMessagesRequest(
const chip::ByteSpan & messageId, const chip::app::Clusters::Messages::MessagePriorityEnum & priority,
const chip::BitMask<chip::app::Clusters::Messages::MessageControlBitmap> & messageControl,
const chip::app::DataModel::Nullable<uint32_t> & startTime, const chip::app::DataModel::Nullable<uint16_t> & duration,
const chip::app::DataModel::Nullable<uint32_t> & startTime, const chip::app::DataModel::Nullable<uint64_t> & duration,
const chip::CharSpan & messageText,
const chip::Optional<
chip::app::DataModel::DecodableList<chip::app::Clusters::Messages::Structs::MessageResponseOptionStruct::Type>> &
Expand Down
4 changes: 2 additions & 2 deletions examples/tv-app/tv-common/tv-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -2067,7 +2067,7 @@ provisional cluster Messages = 151 {
MessagePriorityEnum priority = 1;
MessageControlBitmap messageControl = 2;
nullable epoch_s startTime = 3;
nullable int16u duration = 4;
nullable int64u duration = 4;
char_string<256> messageText = 5;
optional MessageResponseOptionStruct responses[] = 6;
}
Expand Down Expand Up @@ -2101,7 +2101,7 @@ provisional cluster Messages = 151 {
MessagePriorityEnum priority = 1;
MessageControlBitmap messageControl = 2;
nullable epoch_s startTime = 3;
nullable int16u duration = 4;
nullable int64u duration = 4;
char_string<256> messageText = 5;
optional MessageResponseOptionStruct responses[] = 6;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1545,7 +1545,7 @@ provisional cluster Messages = 151 {
MessagePriorityEnum priority = 1;
MessageControlBitmap messageControl = 2;
nullable epoch_s startTime = 3;
nullable int16u duration = 4;
nullable int64u duration = 4;
char_string<256> messageText = 5;
optional MessageResponseOptionStruct responses[] = 6;
}
Expand Down Expand Up @@ -1579,7 +1579,7 @@ provisional cluster Messages = 151 {
MessagePriorityEnum priority = 1;
MessageControlBitmap messageControl = 2;
nullable epoch_s startTime = 3;
nullable int16u duration = 4;
nullable int64u duration = 4;
char_string<256> messageText = 5;
optional MessageResponseOptionStruct responses[] = 6;
}
Expand Down
2 changes: 1 addition & 1 deletion src/app/clusters/messages-server/messages-delegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class Delegate
virtual CHIP_ERROR HandlePresentMessagesRequest(
const ByteSpan & messageId, const MessagePriorityEnum & priority,
const chip::BitMask<MessageControlBitmap> & messageControl, const DataModel::Nullable<uint32_t> & startTime,
const DataModel::Nullable<uint16_t> & duration, const CharSpan & messageText,
const DataModel::Nullable<uint64_t> & duration, const CharSpan & messageText,
const chip::Optional<DataModel::DecodableList<chip::app::Clusters::Messages::Structs::MessageResponseOptionStruct::Type>> &
responses) = 0;
virtual CHIP_ERROR HandleCancelMessagesRequest(const DataModel::DecodableList<chip::ByteSpan> & messageIds) = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ limitations under the License.
<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="int16u" 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>
Expand Down Expand Up @@ -88,7 +88,7 @@ limitations under the License.
<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="int16u" 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>
Expand Down
4 changes: 2 additions & 2 deletions src/controller/data_model/controller-clusters.matter
Original file line number Diff line number Diff line change
Expand Up @@ -4539,7 +4539,7 @@ provisional cluster Messages = 151 {
MessagePriorityEnum priority = 1;
MessageControlBitmap messageControl = 2;
nullable epoch_s startTime = 3;
nullable int16u duration = 4;
nullable int64u duration = 4;
char_string<256> messageText = 5;
optional MessageResponseOptionStruct responses[] = 6;
}
Expand Down Expand Up @@ -4573,7 +4573,7 @@ provisional cluster Messages = 151 {
MessagePriorityEnum priority = 1;
MessageControlBitmap messageControl = 2;
nullable epoch_s startTime = 3;
nullable int16u duration = 4;
nullable int64u duration = 4;
char_string<256> messageText = 5;
optional MessageResponseOptionStruct responses[] = 6;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29906,11 +29906,11 @@ public long initWithDevice(long devicePtr, int endpointId) {
return 0L;
}

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

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) {
public void presentMessagesRequest(DefaultClusterCallback callback, byte[] messageID, Integer priority, Integer messageControl, @Nullable Long startTime, @Nullable Long duration, String messageText, Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>> responses, int timedInvokeTimeoutMs) {
final long commandId = 0L;

ArrayList<StructElement> elements = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7130,7 +7130,7 @@ public static class MessagesClusterMessageStruct {
public Integer priority;
public Integer messageControl;
public @Nullable Long startTime;
public @Nullable Integer duration;
public @Nullable Long duration;
public String messageText;
public Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>> responses;
private static final long MESSAGE_I_D_ID = 0L;
Expand All @@ -7146,7 +7146,7 @@ public MessagesClusterMessageStruct(
Integer priority,
Integer messageControl,
@Nullable Long startTime,
@Nullable Integer duration,
@Nullable Long duration,
String messageText,
Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>> responses
) {
Expand Down Expand Up @@ -7180,7 +7180,7 @@ public static MessagesClusterMessageStruct decodeTlv(BaseTLVType tlvValue) {
Integer priority = null;
Integer messageControl = null;
@Nullable Long startTime = null;
@Nullable Integer duration = null;
@Nullable Long duration = null;
String messageText = null;
Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>> responses = Optional.empty();
for (StructElement element: ((StructType)tlvValue).value()) {
Expand All @@ -7207,7 +7207,7 @@ public static MessagesClusterMessageStruct decodeTlv(BaseTLVType tlvValue) {
} else if (element.contextTagNum() == DURATION_ID) {
if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
UIntType castingValue = element.value(UIntType.class);
duration = castingValue.value(Integer.class);
duration = castingValue.value(Long.class);
}
} else if (element.contextTagNum() == MESSAGE_TEXT_ID) {
if (element.value(BaseTLVType.class).type() == TLVType.String) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24325,7 +24325,7 @@ public Map<String, Map<String, InteractionInfo>> getCommandMap() {
CommandParameterInfo messagespresentMessagesRequeststartTimeCommandParameterInfo = new CommandParameterInfo("startTime", Long.class, Long.class);
messagespresentMessagesRequestCommandParams.put("startTime",messagespresentMessagesRequeststartTimeCommandParameterInfo);

CommandParameterInfo messagespresentMessagesRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Integer.class, Integer.class);
CommandParameterInfo messagespresentMessagesRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
messagespresentMessagesRequestCommandParams.put("duration",messagespresentMessagesRequestdurationCommandParameterInfo);

CommandParameterInfo messagespresentMessagesRequestmessageTextCommandParameterInfo = new CommandParameterInfo("messageText", String.class, String.class);
Expand All @@ -24343,7 +24343,7 @@ public Map<String, Map<String, InteractionInfo>> getCommandMap() {
commandArguments.get("messageControl")
, (Long)
commandArguments.get("startTime")
, (Integer)
, (Long)
commandArguments.get("duration")
, (String)
commandArguments.get("messageText")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class MessagesClusterMessageStruct(
val priority: UInt,
val messageControl: UInt,
val startTime: ULong?,
val duration: UInt?,
val duration: ULong?,
val messageText: String,
val responses: Optional<List<MessagesClusterMessageResponseOptionStruct>>
) {
Expand Down Expand Up @@ -97,7 +97,7 @@ class MessagesClusterMessageStruct(
}
val duration =
if (!tlvReader.isNull()) {
tlvReader.getUInt(ContextSpecificTag(TAG_DURATION))
tlvReader.getULong(ContextSpecificTag(TAG_DURATION))
} else {
tlvReader.getNull(ContextSpecificTag(TAG_DURATION))
null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ class MessagesCluster(private val controller: MatterController, private val endp
priority: UByte,
messageControl: UByte,
startTime: UInt?,
duration: UShort?,
duration: ULong?,
messageText: String,
responses: List<MessagesClusterMessageResponseOptionStruct>?,
timedInvokeTimeout: Duration? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class MessagesClusterMessageStruct(
val priority: UByte,
val messageControl: UByte,
val startTime: UInt?,
val duration: UShort?,
val duration: ULong?,
val messageText: String,
val responses: Optional<List<MessagesClusterMessageResponseOptionStruct>>
) {
Expand Down Expand Up @@ -97,7 +97,7 @@ class MessagesClusterMessageStruct(
}
val duration =
if (!tlvReader.isNull()) {
tlvReader.getUShort(ContextSpecificTag(TAG_DURATION))
tlvReader.getULong(ContextSpecificTag(TAG_DURATION))
} else {
tlvReader.getNull(ContextSpecificTag(TAG_DURATION))
null
Expand Down
Loading

0 comments on commit d0d2432

Please sign in to comment.