Skip to content

Commit 2fa818d

Browse files
committed
power-policy-service: Rename EventReceivers
Rename to match corresponding registration struct.
1 parent 9e15f34 commit 2fa818d

11 files changed

Lines changed: 72 additions & 81 deletions

File tree

examples/rt685s-evk/src/bin/type_c.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use embedded_services::{GlobalRawMutex, IntrusiveList};
2020
use embedded_services::{error, info};
2121
use embedded_usb_pd::GlobalPortId;
2222
use power_policy_interface::psu;
23-
use power_policy_service::psu::EventReceivers;
23+
use power_policy_service::psu::ArrayEventReceivers;
2424
use power_policy_service::service::registration::ArrayRegistration;
2525
use static_cell::StaticCell;
2626
use tps6699x::asynchronous::embassy as tps6699x;
@@ -87,7 +87,7 @@ async fn interrupt_task(mut int_in: Input<'static>, mut interrupt: Interrupt<'st
8787

8888
#[embassy_executor::task]
8989
async fn power_policy_task(
90-
psu_events: EventReceivers<'static, 2, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
90+
psu_events: ArrayEventReceivers<'static, 2, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
9191
power_policy: &'static PowerPolicyServiceType,
9292
) {
9393
power_policy_service::service::task::task(psu_events, power_policy).await;
@@ -241,7 +241,7 @@ async fn main(spawner: Spawner) {
241241

242242
info!("Spawining power policy task");
243243
spawner.must_spawn(power_policy_task(
244-
EventReceivers::new(
244+
ArrayEventReceivers::new(
245245
[&wrapper.ports[0].proxy, &wrapper.ports[1].proxy],
246246
[policy_receiver0, policy_receiver1],
247247
),

examples/rt685s-evk/src/bin/type_c_cfu.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use embedded_services::{GlobalRawMutex, IntrusiveList};
2323
use embedded_services::{error, info};
2424
use embedded_usb_pd::GlobalPortId;
2525
use power_policy_interface::psu;
26-
use power_policy_service::psu::EventReceivers;
26+
use power_policy_service::psu::ArrayEventReceivers;
2727
use power_policy_service::service::registration::ArrayRegistration;
2828
use static_cell::StaticCell;
2929
use tps6699x::asynchronous::embassy as tps6699x;
@@ -171,7 +171,7 @@ async fn fw_update_task() {
171171

172172
#[embassy_executor::task]
173173
async fn power_policy_task(
174-
psu_events: EventReceivers<'static, 2, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
174+
psu_events: ArrayEventReceivers<'static, 2, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
175175
power_policy: &'static PowerPolicyServiceType,
176176
) {
177177
power_policy_service::service::task::task(psu_events, power_policy).await;
@@ -329,7 +329,7 @@ async fn main(spawner: Spawner) {
329329

330330
info!("Spawining power policy task");
331331
spawner.must_spawn(power_policy_task(
332-
EventReceivers::new(
332+
ArrayEventReceivers::new(
333333
[&wrapper.ports[0].proxy, &wrapper.ports[1].proxy],
334334
[policy_receiver0, policy_receiver1],
335335
),

examples/std/src/bin/power_policy.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use power_policy_interface::{
1212
capability::{ConsumerFlags, ConsumerPowerCapability, PowerCapability, ProviderPowerCapability},
1313
psu,
1414
};
15-
use power_policy_service::{psu::EventReceivers, service::registration::ArrayRegistration};
15+
use power_policy_service::{psu::ArrayEventReceivers, service::registration::ArrayRegistration};
1616
use static_cell::StaticCell;
1717

1818
type ServiceType = Mutex<
@@ -151,7 +151,7 @@ async fn run(spawner: Spawner) {
151151
)));
152152

153153
spawner.must_spawn(power_policy_task(
154-
EventReceivers::new(
154+
ArrayEventReceivers::new(
155155
[device0, device1],
156156
[
157157
device0_event_channel.dyn_receiver(),
@@ -283,7 +283,7 @@ async fn run(spawner: Spawner) {
283283

284284
#[embassy_executor::task]
285285
async fn power_policy_task(
286-
psu_events: EventReceivers<
286+
psu_events: ArrayEventReceivers<
287287
'static,
288288
2,
289289
DeviceType,

examples/std/src/bin/type_c/service.rs

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ use embedded_usb_pd::ado::Ado;
1212
use embedded_usb_pd::type_c::Current;
1313
use log::*;
1414
use power_policy_interface::psu;
15-
use power_policy_service::psu::EventReceivers;
15+
use power_policy_service::psu::ArrayEventReceivers;
16+
use power_policy_service::service::registration::ArrayRegistration;
1617
use static_cell::StaticCell;
1718
use std_examples::type_c::mock_controller;
1819
use std_examples::type_c::mock_controller::Wrapper;
@@ -31,6 +32,11 @@ const DELAY_MS: u64 = 1000;
3132

3233
type DeviceType = Mutex<GlobalRawMutex, PowerProxyDevice<'static>>;
3334

35+
type PowerPolicyServiceType = Mutex<
36+
GlobalRawMutex,
37+
power_policy_service::service::Service<'static, ArrayRegistration<'static, DeviceType, 1, NoopSender, 1>>,
38+
>;
39+
3440
#[embassy_executor::task]
3541
async fn controller_task(
3642
wrapper: &'static Wrapper<'static>,
@@ -73,21 +79,14 @@ async fn task(spawner: Spawner) {
7379

7480
let (wrapper, policy_receiver, controller, state) = create_wrapper(controller_context);
7581

76-
static POWER_POLICY_PSU_REGISTRATION: StaticCell<[&DeviceType; 1]> = StaticCell::new();
77-
let psu_registration = POWER_POLICY_PSU_REGISTRATION.init([&wrapper.ports[0].proxy]);
78-
79-
static POWER_POLICY_EVENT_SENDERS: StaticCell<[NoopSender; 1]> = StaticCell::new();
80-
let power_policy_event_senders = POWER_POLICY_EVENT_SENDERS.init([NoopSender]);
82+
let power_policy_registration = ArrayRegistration {
83+
psus: [&wrapper.ports[0].proxy],
84+
service_senders: [NoopSender],
85+
};
8186

82-
static POWER_SERVICE: StaticCell<
83-
Mutex<
84-
GlobalRawMutex,
85-
power_policy_service::service::Service<'static, 'static, 'static, DeviceType, NoopSender>,
86-
>,
87-
> = StaticCell::new();
87+
static POWER_SERVICE: StaticCell<PowerPolicyServiceType> = StaticCell::new();
8888
let power_service = POWER_SERVICE.init(Mutex::new(power_policy_service::service::Service::new(
89-
psu_registration,
90-
power_policy_event_senders.as_mut_slice(),
89+
power_policy_registration,
9190
power_service_context,
9291
power_policy_service::service::config::Config::default(),
9392
)));
@@ -120,7 +119,7 @@ async fn task(spawner: Spawner) {
120119
let cfu_client = CfuClient::new(&CFU_CLIENT).await;
121120

122121
spawner.must_spawn(power_policy_task(
123-
EventReceivers::new([&wrapper.ports[0].proxy], [policy_receiver]),
122+
ArrayEventReceivers::new([&wrapper.ports[0].proxy], [policy_receiver]),
124123
power_service,
125124
));
126125
spawner.must_spawn(type_c_service_task(type_c_service, [wrapper], cfu_client));
@@ -152,11 +151,8 @@ async fn task(spawner: Spawner) {
152151

153152
#[embassy_executor::task]
154153
async fn power_policy_task(
155-
psu_events: EventReceivers<'static, 1, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
156-
power_policy: &'static Mutex<
157-
GlobalRawMutex,
158-
power_policy_service::service::Service<'static, 'static, 'static, DeviceType, NoopSender>,
159-
>,
154+
psu_events: ArrayEventReceivers<'static, 1, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
155+
power_policy: &'static PowerPolicyServiceType,
160156
) {
161157
power_policy_service::service::task::task(psu_events, power_policy).await;
162158
}

examples/std/src/bin/type_c/ucsi.rs

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ use embedded_usb_pd::ucsi::{Command, lpm, ppm};
1717
use log::*;
1818
use power_policy_interface::capability::PowerCapability;
1919
use power_policy_interface::psu;
20-
use power_policy_service::psu::EventReceivers;
20+
use power_policy_service::psu::ArrayEventReceivers;
21+
use power_policy_service::service::registration::ArrayRegistration;
2122
use static_cell::StaticCell;
2223
use std_examples::type_c::mock_controller;
2324
use type_c_service::service::Service;
@@ -38,6 +39,11 @@ const CFU1_ID: u8 = 0x01;
3839

3940
type DeviceType = Mutex<GlobalRawMutex, PowerProxyDevice<'static>>;
4041

42+
type PowerPolicyServiceType = Mutex<
43+
GlobalRawMutex,
44+
power_policy_service::service::Service<'static, ArrayRegistration<'static, DeviceType, 2, NoopSender, 1>>,
45+
>;
46+
4147
#[embassy_executor::task]
4248
async fn opm_task(context: &'static Context, state: [&'static mock_controller::ControllerState; NUM_PD_CONTROLLERS]) {
4349
const CAPABILITY: PowerCapability = PowerCapability {
@@ -180,11 +186,8 @@ async fn wrapper_task(wrapper: &'static mock_controller::Wrapper<'static>) {
180186

181187
#[embassy_executor::task]
182188
async fn power_policy_task(
183-
psu_events: EventReceivers<'static, 2, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
184-
power_policy: &'static Mutex<
185-
GlobalRawMutex,
186-
power_policy_service::service::Service<'static, 'static, 'static, DeviceType, NoopSender>,
187-
>,
189+
psu_events: ArrayEventReceivers<'static, 2, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
190+
power_policy: &'static PowerPolicyServiceType,
188191
) {
189192
power_policy_service::service::task::task(psu_events, power_policy).await;
190193
}
@@ -306,18 +309,14 @@ async fn task(spawner: Spawner) {
306309
static POWER_SERVICE_CONTEXT: StaticCell<power_policy_service::service::context::Context> = StaticCell::new();
307310
let power_service_context = POWER_SERVICE_CONTEXT.init(power_policy_service::service::context::Context::new());
308311

309-
static POWER_POLICY_PSU_REGISTRATION: StaticCell<[&DeviceType; 2]> = StaticCell::new();
310-
let psu_registration = POWER_POLICY_PSU_REGISTRATION.init([&wrapper0.ports[0].proxy, &wrapper1.ports[0].proxy]);
311-
312-
static POWER_POLICY_EVENT_SENDERS: StaticCell<[NoopSender; 1]> = StaticCell::new();
313-
let power_policy_event_senders = POWER_POLICY_EVENT_SENDERS.init([NoopSender]);
312+
let power_policy_registration = ArrayRegistration {
313+
psus: [&wrapper0.ports[0].proxy, &wrapper1.ports[0].proxy],
314+
service_senders: [NoopSender],
315+
};
314316

315-
static POWER_SERVICE: StaticCell<
316-
Mutex<GlobalRawMutex, power_policy_service::service::Service<DeviceType, NoopSender>>,
317-
> = StaticCell::new();
317+
static POWER_SERVICE: StaticCell<PowerPolicyServiceType> = StaticCell::new();
318318
let power_service = POWER_SERVICE.init(Mutex::new(power_policy_service::service::Service::new(
319-
psu_registration,
320-
power_policy_event_senders.as_mut_slice(),
319+
power_policy_registration,
321320
power_service_context,
322321
power_policy_service::service::config::Config::default(),
323322
)));
@@ -370,7 +369,7 @@ async fn task(spawner: Spawner) {
370369
let cfu_client = CfuClient::new(&CFU_CLIENT).await;
371370

372371
spawner.must_spawn(power_policy_task(
373-
EventReceivers::new(
372+
ArrayEventReceivers::new(
374373
[&wrapper0.ports[0].proxy, &wrapper1.ports[0].proxy],
375374
[policy_receiver0, policy_receiver1],
376375
),

examples/std/src/bin/type_c/unconstrained.rs

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ use embedded_usb_pd::GlobalPortId;
1414
use log::*;
1515
use power_policy_interface::capability::PowerCapability;
1616
use power_policy_interface::psu;
17-
use power_policy_service::psu::EventReceivers;
17+
use power_policy_service::psu::ArrayEventReceivers;
18+
use power_policy_service::service::registration::ArrayRegistration;
1819
use static_cell::StaticCell;
1920
use std_examples::type_c::mock_controller;
2021
use type_c_service::service::Service;
@@ -40,6 +41,11 @@ const DELAY_MS: u64 = 1000;
4041

4142
type DeviceType = Mutex<GlobalRawMutex, PowerProxyDevice<'static>>;
4243

44+
type PowerPolicyServiceType = Mutex<
45+
GlobalRawMutex,
46+
power_policy_service::service::Service<'static, ArrayRegistration<'static, DeviceType, 3, NoopSender, 1>>,
47+
>;
48+
4349
#[embassy_executor::task(pool_size = 3)]
4450
async fn controller_task(wrapper: &'static mock_controller::Wrapper<'static>) {
4551
loop {
@@ -173,25 +179,18 @@ async fn task(spawner: Spawner) {
173179
crate::mock_controller::Validator,
174180
));
175181

176-
static POWER_POLICY_PSU_REGISTRATION: StaticCell<[&DeviceType; 3]> = StaticCell::new();
177-
let psu_registration = POWER_POLICY_PSU_REGISTRATION.init([
178-
&wrapper0.ports[0].proxy,
179-
&wrapper1.ports[0].proxy,
180-
&wrapper2.ports[0].proxy,
181-
]);
182-
183-
static POWER_POLICY_EVENT_SENDERS: StaticCell<[NoopSender; 1]> = StaticCell::new();
184-
let power_policy_event_senders = POWER_POLICY_EVENT_SENDERS.init([NoopSender]);
185-
186-
static POWER_SERVICE: StaticCell<
187-
Mutex<
188-
GlobalRawMutex,
189-
power_policy_service::service::Service<'static, 'static, 'static, DeviceType, NoopSender>,
190-
>,
191-
> = StaticCell::new();
182+
let power_policy_registration = ArrayRegistration {
183+
psus: [
184+
&wrapper0.ports[0].proxy,
185+
&wrapper1.ports[0].proxy,
186+
&wrapper2.ports[0].proxy,
187+
],
188+
service_senders: [NoopSender],
189+
};
190+
191+
static POWER_SERVICE: StaticCell<PowerPolicyServiceType> = StaticCell::new();
192192
let power_service = POWER_SERVICE.init(Mutex::new(power_policy_service::service::Service::new(
193-
psu_registration,
194-
power_policy_event_senders.as_mut_slice(),
193+
power_policy_registration,
195194
power_service_context,
196195
power_policy_service::service::config::Config::default(),
197196
)));
@@ -221,7 +220,7 @@ async fn task(spawner: Spawner) {
221220
let cfu_client = CfuClient::new(&CFU_CLIENT).await;
222221

223222
spawner.must_spawn(power_policy_task(
224-
EventReceivers::new(
223+
ArrayEventReceivers::new(
225224
[
226225
&wrapper0.ports[0].proxy,
227226
&wrapper1.ports[0].proxy,
@@ -292,11 +291,8 @@ async fn task(spawner: Spawner) {
292291

293292
#[embassy_executor::task]
294293
async fn power_policy_task(
295-
psu_events: EventReceivers<'static, 3, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
296-
power_policy: &'static Mutex<
297-
GlobalRawMutex,
298-
power_policy_service::service::Service<'static, 'static, 'static, DeviceType, NoopSender>,
299-
>,
294+
psu_events: ArrayEventReceivers<'static, 3, DeviceType, DynamicReceiver<'static, psu::event::EventData>>,
295+
power_policy: &'static PowerPolicyServiceType,
300296
) {
301297
power_policy_service::service::task::task(psu_events, power_policy).await;
302298
}

power-policy-service/src/psu.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ use power_policy_interface::psu::Psu;
77
use power_policy_interface::psu::event::{Event, EventData};
88

99
/// Struct used to contain PSU event receivers and manage mapping from a receiver to its corresponding device.
10-
pub struct EventReceivers<'a, const N: usize, PSU: Lockable, R: Receiver<EventData>>
10+
pub struct ArrayEventReceivers<'a, const N: usize, PSU: Lockable, R: Receiver<EventData>>
1111
where
1212
PSU::Inner: Psu,
1313
{
1414
pub psu_devices: [&'a PSU; N],
1515
pub receivers: [R; N],
1616
}
1717

18-
impl<'a, const N: usize, PSU: Lockable, R: Receiver<EventData>> EventReceivers<'a, N, PSU, R>
18+
impl<'a, const N: usize, PSU: Lockable, R: Receiver<EventData>> ArrayEventReceivers<'a, N, PSU, R>
1919
where
2020
PSU::Inner: Psu,
2121
{

power-policy-service/src/service/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ impl<'device, Reg: Registration<'device>> Service<'device, Reg> {
107107
device.state_mut().detach();
108108
}
109109

110-
self.remove_connected_provider(device).await;
110+
self.post_provider_removed(device).await;
111111
self.update_current_consumer().await?;
112112
Ok(())
113113
}
@@ -177,7 +177,7 @@ impl<'device, Reg: Registration<'device>> Service<'device, Reg> {
177177
}
178178
}
179179

180-
self.remove_connected_provider(device).await;
180+
self.post_provider_removed(device).await;
181181
self.update_current_consumer().await?;
182182
Ok(())
183183
}

power-policy-service/src/service/provider.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,10 @@ impl<'device, Reg: Registration<'device>> Service<'device, Reg> {
115115
.await;
116116
}
117117

118-
/// Common logic for when a provider is disconnected
118+
/// Common logic for when a provider is removed
119119
///
120120
/// Returns true if the device was operating as a provider
121-
pub(super) async fn remove_connected_provider(&mut self, psu: &'device Reg::Psu) -> bool {
121+
pub(super) async fn post_provider_removed(&mut self, psu: &'device Reg::Psu) -> bool {
122122
if self
123123
.state
124124
.connected_providers

power-policy-service/src/service/task.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub async fn task<
1515
Reg: Registration<'device>,
1616
PsuReceiver: Receiver<EventData>,
1717
>(
18-
mut psu_events: crate::psu::EventReceivers<'device, PSU_COUNT, Reg::Psu, PsuReceiver>,
18+
mut psu_events: crate::psu::ArrayEventReceivers<'device, PSU_COUNT, Reg::Psu, PsuReceiver>,
1919
policy: &'device S,
2020
) -> ! {
2121
info!("Starting power policy task");

0 commit comments

Comments
 (0)