From 6bec796badc846d1091a208c6fbb96ac4d9a5e40 Mon Sep 17 00:00:00 2001 From: Kedar Sovani Date: Tue, 1 Aug 2023 07:56:23 +0530 Subject: [PATCH] GenComm: BasicCommInfo Attribute should return the entire structure --- .../data_model/sdm/general_commissioning.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/rs-matter/src/data_model/sdm/general_commissioning.rs b/rs-matter/src/data_model/sdm/general_commissioning.rs index 0784bae..5e28eec 100644 --- a/rs-matter/src/data_model/sdm/general_commissioning.rs +++ b/rs-matter/src/data_model/sdm/general_commissioning.rs @@ -121,9 +121,15 @@ struct FailSafeParams { bread_crumb: u8, } +#[derive(ToTLV)] +struct BasicCommissioningInfo { + expiry_len: u16, + max_cmltv_failsafe_secs: u16, +} + pub struct GenCommCluster<'a> { data_ver: Dataver, - expiry_len: u16, + basic_comm_info: BasicCommissioningInfo, failsafe: &'a RefCell, } @@ -133,7 +139,10 @@ impl<'a> GenCommCluster<'a> { data_ver: Dataver::new(rand), failsafe, // TODO: Arch-Specific - expiry_len: 120, + basic_comm_info: BasicCommissioningInfo { + expiry_len: 120, + max_cmltv_failsafe_secs: 120, + }, } } @@ -157,10 +166,8 @@ impl<'a> GenCommCluster<'a> { codec.encode(writer, RegLocationType::IndoorOutdoor as _) } Attributes::BasicCommissioningInfo(_) => { - writer.start_struct(AttrDataWriter::TAG)?; - writer.u16(TagType::Context(0), self.expiry_len)?; - writer.end_container()?; - + self.basic_comm_info + .to_tlv(&mut writer, AttrDataWriter::TAG)?; writer.complete() } }