Skip to content

Commit 3b773bb

Browse files
committed
Update to latest rs-matter
1 parent e0389d9 commit 3b773bb

File tree

3 files changed

+39
-21
lines changed

3 files changed

+39
-21
lines changed

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,12 @@ use embassy_time::{Duration, Timer};
7070
use env_logger::Target;
7171
use log::info;
7272

73+
use rs_matter::dm::clusters::on_off::test::TestOnOffDeviceLogic;
74+
use rs_matter::dm::clusters::on_off::OnOffHooks;
7375
use rs_matter_stack::eth::EthMatterStack;
7476
use rs_matter_stack::matter::dm::clusters::desc;
7577
use rs_matter_stack::matter::dm::clusters::desc::ClusterHandler as _;
7678
use rs_matter_stack::matter::dm::clusters::on_off;
77-
use rs_matter_stack::matter::dm::clusters::on_off::ClusterHandler as _;
7879
use rs_matter_stack::matter::dm::devices::test::{TEST_DEV_ATT, TEST_DEV_COMM, TEST_DEV_DET};
7980
use rs_matter_stack::matter::dm::devices::DEV_TYPE_ON_OFF_LIGHT;
8081
use rs_matter_stack::matter::dm::networks::unix::UnixNetifs;
@@ -112,17 +113,21 @@ fn main() -> Result<(), Error> {
112113

113114
// Our "light" on-off cluster.
114115
// Can be anything implementing `rs_matter::dm::AsyncHandler`
115-
let on_off = on_off::OnOffHandler::new(Dataver::new_rand(stack.matter().rand()));
116+
let on_off = on_off::OnOffHandler::new_standalone(
117+
Dataver::new_rand(stack.matter().rand()),
118+
1,
119+
TestOnOffDeviceLogic::new(),
120+
);
116121

117122
// Chain our endpoint clusters with the
118123
// (root) Endpoint 0 system clusters in the final handler
119124
let handler = EmptyHandler
120125
.chain(
121126
EpClMatcher::new(
122127
Some(LIGHT_ENDPOINT_ID),
123-
Some(on_off::OnOffHandler::CLUSTER.id),
128+
Some(TestOnOffDeviceLogic::CLUSTER.id),
124129
),
125-
Async(on_off::HandlerAdaptor(&on_off)),
130+
on_off::HandlerAsyncAdaptor(&on_off),
126131
)
127132
// Each Endpoint needs a Descriptor cluster too
128133
// Just use the one that `rs-matter` provides out of the box
@@ -161,11 +166,11 @@ fn main() -> Result<(), Error> {
161166
Timer::after(Duration::from_secs(5)).await;
162167

163168
// Toggle
164-
on_off.set(!on_off.get());
169+
on_off.set_on_off(!on_off.on_off());
165170

166171
// Let the Matter stack know that we have changed
167172
// the state of our Light device
168-
stack.notify_cluster_changed(1, on_off::OnOffHandler::CLUSTER.id);
173+
stack.notify_cluster_changed(1, TestOnOffDeviceLogic::CLUSTER.id);
169174

170175
info!("Light toggled");
171176
}
@@ -191,7 +196,7 @@ const NODE: Node = Node {
191196
Endpoint {
192197
id: LIGHT_ENDPOINT_ID,
193198
device_types: devices!(DEV_TYPE_ON_OFF_LIGHT),
194-
clusters: clusters!(desc::DescHandler::CLUSTER, on_off::OnOffHandler::CLUSTER),
199+
clusters: clusters!(desc::DescHandler::CLUSTER, TestOnOffDeviceLogic::CLUSTER),
195200
},
196201
],
197202
};

examples/light.rs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ use embassy_time::{Duration, Timer};
1515

1616
use log::info;
1717

18+
use rs_matter::dm::clusters::on_off::test::TestOnOffDeviceLogic;
19+
use rs_matter::dm::clusters::on_off::OnOffHooks;
1820
use rs_matter_stack::matter::dm::clusters::desc::{ClusterHandler as _, DescHandler};
1921
use rs_matter_stack::matter::dm::clusters::net_comm::NetworkType;
2022
use rs_matter_stack::matter::dm::clusters::on_off;
21-
use rs_matter_stack::matter::dm::clusters::on_off::{ClusterHandler as _, OnOffHandler};
2223
use rs_matter_stack::matter::dm::devices::test::{TEST_DEV_ATT, TEST_DEV_COMM, TEST_DEV_DET};
2324
use rs_matter_stack::matter::dm::devices::DEV_TYPE_ON_OFF_LIGHT;
2425
use rs_matter_stack::matter::dm::networks::unix::UnixNetifs;
@@ -59,15 +60,22 @@ fn main() -> Result<(), Error> {
5960

6061
// Our "light" on-off cluster.
6162
// Can be anything implementing `rs_matter::dm::AsyncHandler`
62-
let on_off = on_off::OnOffHandler::new(Dataver::new_rand(stack.matter().rand()));
63+
let on_off = on_off::OnOffHandler::new_standalone(
64+
Dataver::new_rand(stack.matter().rand()),
65+
1,
66+
TestOnOffDeviceLogic::new(),
67+
);
6368

6469
// Chain our endpoint clusters with the
6570
// (root) Endpoint 0 system clusters in the final handler
6671
let handler = EmptyHandler
6772
// Our on-off cluster, on Endpoint 1
6873
.chain(
69-
EpClMatcher::new(Some(LIGHT_ENDPOINT_ID), Some(OnOffHandler::CLUSTER.id)),
70-
Async(on_off::HandlerAdaptor(&on_off)),
74+
EpClMatcher::new(
75+
Some(LIGHT_ENDPOINT_ID),
76+
Some(TestOnOffDeviceLogic::CLUSTER.id),
77+
),
78+
on_off::HandlerAsyncAdaptor(&on_off),
7179
)
7280
// Each Endpoint needs a Descriptor cluster too
7381
// Just use the one that `rs-matter` provides out of the box
@@ -111,11 +119,11 @@ fn main() -> Result<(), Error> {
111119
Timer::after(Duration::from_secs(5)).await;
112120

113121
// Toggle
114-
on_off.set(!on_off.get());
122+
on_off.set_on_off(!on_off.on_off());
115123

116124
// Let the Matter stack know that we have changed
117125
// the state of our Light device
118-
stack.notify_cluster_changed(1, on_off::OnOffHandler::CLUSTER.id);
126+
stack.notify_cluster_changed(1, TestOnOffDeviceLogic::CLUSTER.id);
119127

120128
info!("Light toggled");
121129
}
@@ -144,7 +152,7 @@ const NODE: Node = Node {
144152
Endpoint {
145153
id: LIGHT_ENDPOINT_ID,
146154
device_types: devices!(DEV_TYPE_ON_OFF_LIGHT),
147-
clusters: clusters!(DescHandler::CLUSTER, OnOffHandler::CLUSTER),
155+
clusters: clusters!(DescHandler::CLUSTER, TestOnOffDeviceLogic::CLUSTER),
148156
},
149157
],
150158
};

examples/light_eth.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ use embassy_time::{Duration, Timer};
1818
use env_logger::Target;
1919
use log::info;
2020

21+
use rs_matter::dm::clusters::on_off::test::TestOnOffDeviceLogic;
22+
use rs_matter::dm::clusters::on_off::OnOffHooks;
2123
use rs_matter_stack::eth::EthMatterStack;
2224
use rs_matter_stack::matter::dm::clusters::desc;
2325
use rs_matter_stack::matter::dm::clusters::desc::ClusterHandler as _;
2426
use rs_matter_stack::matter::dm::clusters::on_off;
25-
use rs_matter_stack::matter::dm::clusters::on_off::ClusterHandler as _;
2627
use rs_matter_stack::matter::dm::devices::test::{TEST_DEV_ATT, TEST_DEV_COMM, TEST_DEV_DET};
2728
use rs_matter_stack::matter::dm::devices::DEV_TYPE_ON_OFF_LIGHT;
2829
use rs_matter_stack::matter::dm::networks::unix::UnixNetifs;
@@ -60,17 +61,21 @@ fn main() -> Result<(), Error> {
6061

6162
// Our "light" on-off cluster.
6263
// Can be anything implementing `rs_matter::dm::AsyncHandler`
63-
let on_off = on_off::OnOffHandler::new(Dataver::new_rand(stack.matter().rand()));
64+
let on_off = on_off::OnOffHandler::new_standalone(
65+
Dataver::new_rand(stack.matter().rand()),
66+
1,
67+
TestOnOffDeviceLogic::new(),
68+
);
6469

6570
// Chain our endpoint clusters with the
6671
// (root) Endpoint 0 system clusters in the final handler
6772
let handler = EmptyHandler
6873
.chain(
6974
EpClMatcher::new(
7075
Some(LIGHT_ENDPOINT_ID),
71-
Some(on_off::OnOffHandler::CLUSTER.id),
76+
Some(TestOnOffDeviceLogic::CLUSTER.id),
7277
),
73-
Async(on_off::HandlerAdaptor(&on_off)),
78+
on_off::HandlerAsyncAdaptor(&on_off),
7479
)
7580
// Each Endpoint needs a Descriptor cluster too
7681
// Just use the one that `rs-matter` provides out of the box
@@ -109,11 +114,11 @@ fn main() -> Result<(), Error> {
109114
Timer::after(Duration::from_secs(5)).await;
110115

111116
// Toggle
112-
on_off.set(!on_off.get());
117+
on_off.set_on_off(!on_off.on_off());
113118

114119
// Let the Matter stack know that we have changed
115120
// the state of our Light device
116-
stack.notify_cluster_changed(1, on_off::OnOffHandler::CLUSTER.id);
121+
stack.notify_cluster_changed(1, TestOnOffDeviceLogic::CLUSTER.id);
117122

118123
info!("Light toggled");
119124
}
@@ -139,7 +144,7 @@ const NODE: Node = Node {
139144
Endpoint {
140145
id: LIGHT_ENDPOINT_ID,
141146
device_types: devices!(DEV_TYPE_ON_OFF_LIGHT),
142-
clusters: clusters!(desc::DescHandler::CLUSTER, on_off::OnOffHandler::CLUSTER),
147+
clusters: clusters!(desc::DescHandler::CLUSTER, TestOnOffDeviceLogic::CLUSTER),
143148
},
144149
],
145150
};

0 commit comments

Comments
 (0)