Skip to content

Commit 614cd0e

Browse files
committed
Update to latest rs-matter
1 parent fe9028e commit 614cd0e

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ readme = "README.md"
1313
rust-version = "1.77"
1414

1515
[patch.crates-io]
16-
#rs-matter = { git = "https://github.com/project-chip/rs-matter" }
17-
rs-matter = { git = "https://github.com/ivmarkov/rs-matter", branch = "global-handler-access" }
16+
rs-matter = { git = "https://github.com/project-chip/rs-matter" }
1817
#rs-matter = { path = "../rs-matter/rs-matter" }
1918
#edge-nal = { git = "https://github.com/ivmarkov/edge-net" }
2019
#edge-nal-std = { git = "https://github.com/ivmarkov/edge-net" }

src/persist.rs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ where
4242
let (mut kv, mut buf) = self.store.get().await;
4343

4444
kv.remove(MatterStackKey::Fabrics as _, &mut buf).await?;
45+
kv.remove(MatterStackKey::BasicInfo as _, &mut buf).await?;
4546
kv.remove(MatterStackKey::Networks as _, &mut buf).await?;
4647

4748
self.networks.reset()?;
@@ -62,6 +63,15 @@ where
6263
})
6364
.await?;
6465

66+
kv.load(MatterStackKey::BasicInfo as _, &mut buf, |data| {
67+
if let Some(data) = data {
68+
self.matter.load_basic_info(data)?;
69+
}
70+
71+
Ok(())
72+
})
73+
.await?;
74+
6575
kv.load(MatterStackKey::Networks as _, &mut buf, |data| {
6676
if let Some(data) = data {
6777
self.networks.load(data)?;
@@ -88,9 +98,14 @@ where
8898

8999
if self.matter.fabrics_changed() {
90100
kv.store(MatterStackKey::Fabrics as _, &mut buf, |buf| {
91-
self.matter
92-
.store_fabrics(buf)
93-
.map(|data| data.map(|data| data.len()).unwrap_or(0))
101+
self.matter.store_fabrics(buf)
102+
})
103+
.await?;
104+
}
105+
106+
if self.matter.basic_info_changed() {
107+
kv.store(MatterStackKey::BasicInfo as _, &mut buf, |buf| {
108+
self.matter.store_basic_info(buf)
94109
})
95110
.await?;
96111
}
@@ -169,7 +184,7 @@ where
169184
}
170185

171186
fn store(&self, buf: &mut [u8]) -> Result<usize, Error> {
172-
WirelessNetworks::store(self, buf).map(|data| data.map(|data| data.len()).unwrap_or(0))
187+
WirelessNetworks::store(self, buf)
173188
}
174189

175190
fn changed(&self) -> bool {
@@ -218,7 +233,8 @@ pub const VENDOR_KEYS_START: u16 = 0x1000;
218233
#[repr(u16)]
219234
pub enum MatterStackKey {
220235
Fabrics = 0,
221-
Networks = 1,
236+
BasicInfo = 1,
237+
Networks = 2,
222238
}
223239

224240
impl TryFrom<u16> for MatterStackKey {
@@ -227,7 +243,8 @@ impl TryFrom<u16> for MatterStackKey {
227243
fn try_from(value: u16) -> Result<Self, Self::Error> {
228244
match value {
229245
0 => Ok(MatterStackKey::Fabrics),
230-
1 => Ok(MatterStackKey::Networks),
246+
1 => Ok(MatterStackKey::BasicInfo),
247+
2 => Ok(MatterStackKey::Networks),
231248
_ => Err(()),
232249
}
233250
}
@@ -237,6 +254,7 @@ impl Display for MatterStackKey {
237254
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
238255
let s = match self {
239256
MatterStackKey::Fabrics => "fabrics",
257+
MatterStackKey::BasicInfo => "basic-info",
240258
MatterStackKey::Networks => "networks",
241259
};
242260

@@ -249,6 +267,7 @@ impl defmt::Format for MatterStackKey {
249267
fn format(&self, f: defmt::Formatter<'_>) {
250268
let s = match self {
251269
MatterStackKey::Fabrics => "fabrics",
270+
MatterStackKey::BasicInfo => "basic-info",
252271
MatterStackKey::Networks => "networks",
253272
};
254273

0 commit comments

Comments
 (0)