events: rewrite the eventing system to reduce mutex usage to just the measurement bus
This commit is contained in:
@@ -159,19 +159,19 @@ async fn main(spawner: Spawner) {
|
||||
let garage = BUS_GARAGE.init_with(|| { Default::default() });
|
||||
|
||||
info!("Launching motion engine");
|
||||
spawner.must_spawn(motion_task(motion_bus.dyn_receiver(), garage.predict.dyn_sender()));
|
||||
spawner.must_spawn(motion_task(motion_bus.dyn_receiver(), garage.predict.dyn_publisher().unwrap()));
|
||||
|
||||
info!("Launching Safety UI");
|
||||
spawner.must_spawn(safety_ui_main(garage.notify.dyn_subscriber().unwrap(), safety_ui));
|
||||
spawner.must_spawn(safety_ui_main(garage.predict.dyn_subscriber().unwrap(), safety_ui));
|
||||
info!("Launching UI");
|
||||
spawner.must_spawn(ui_main(garage.notify.dyn_subscriber().unwrap(), garage.telemetry.dyn_publisher().unwrap(), ui));
|
||||
spawner.must_spawn(ui_main(garage.predict.dyn_subscriber().unwrap(), ui));
|
||||
info!("Launching OLED UI");
|
||||
spawner.must_spawn(oled_ui(garage.telemetry.dyn_subscriber().unwrap(), oledui));
|
||||
spawner.must_spawn(oled_ui(garage.predict.dyn_subscriber().unwrap(), oledui));
|
||||
|
||||
#[cfg(feature="radio")]
|
||||
{
|
||||
info!("Launching networking stack");
|
||||
spawner.must_spawn(renderbug_embassy::tasks::wifi::wireless_task(garage.telemetry.dyn_subscriber().unwrap(), wifi_init, peripherals.WIFI));
|
||||
spawner.must_spawn(renderbug_embassy::tasks::wifi::wireless_task(garage.predict.dyn_subscriber().unwrap(), wifi_init, peripherals.WIFI));
|
||||
}
|
||||
|
||||
#[cfg(feature="demo")]
|
||||
@@ -179,11 +179,6 @@ async fn main(spawner: Spawner) {
|
||||
warn!("Launching with demo sequencer");
|
||||
spawner.must_spawn(renderbug_embassy::tasks::demo::demo_task(garage.notify.dyn_publisher().unwrap()));
|
||||
}
|
||||
#[cfg(not(feature="demo"))]
|
||||
{
|
||||
info!("Launching prediction engine");
|
||||
spawner.must_spawn(renderbug_embassy::tasks::predict::prediction_task(garage.predict.dyn_receiver(), garage.notify.dyn_publisher().unwrap(), garage.telemetry.dyn_publisher().unwrap()));
|
||||
}
|
||||
|
||||
info!("Launching core 2 watchdog");
|
||||
spawner.must_spawn(wdt_task(ui_wdt));
|
||||
|
||||
Reference in New Issue
Block a user