events: move the displaycontrols out of the bus garage and back into main

This commit is contained in:
2025-12-22 15:22:14 +01:00
parent d1cfcb30e8
commit 82d61a9df3
2 changed files with 11 additions and 12 deletions

View File

@@ -19,7 +19,7 @@ use esp_hal::{
};
use log::*;
use renderbug_embassy::{logging::RenderbugLogger, tasks::{oled::{OledUI, OledUiSurfacePool, oled_ui}, safetyui::{SafetyUi, safety_ui_main}, ui::UiSurfacePool}};
use renderbug_embassy::{graphics::display::DisplayControls, logging::RenderbugLogger, tasks::{oled::{OledUI, OledUiSurfacePool, oled_ui}, safetyui::{SafetyUi, safety_ui_main}, ui::UiSurfacePool}};
use renderbug_embassy::events::BusGarage;
use static_cell::StaticCell;
use esp_backtrace as _;
@@ -74,12 +74,15 @@ async fn main(spawner: Spawner) {
let mut surfaces = UiSurfacePool::default();
let ui = Ui::new(&mut surfaces);
let display_controls = DisplayControls::default();
let oled_controls = DisplayControls::default();
let mut oled_surfaces = OledUiSurfacePool::default();
let oled_uniforms = Default::default();
let oledui = OledUI::new(&mut oled_surfaces, garage.oled_display.clone(), Arc::clone(&oled_uniforms));
let oledui = OledUI::new(&mut oled_surfaces, oled_controls.clone(), Arc::clone(&oled_uniforms));
let mut safety_surfaces = UiSurfacePool::default();
let safety_ui = SafetyUi::new(&mut safety_surfaces, garage.display.clone());
let safety_ui = SafetyUi::new(&mut safety_surfaces, display_controls.clone());
let mut wdt = timer0.wdt;
wdt.set_timeout(esp_hal::timer::timg::MwdtStage::Stage0, esp_hal::time::Duration::from_secs(5));
@@ -88,7 +91,7 @@ async fn main(spawner: Spawner) {
let hi_spawn = hi_exec.start(esp_hal::interrupt::Priority::max());
//wdt.enable();
hi_spawn.must_spawn(renderbug_embassy::tasks::render::render(peripherals.RMT, peripherals.GPIO5.degrade(), surfaces, safety_surfaces, garage.display.clone(), wdt));
hi_spawn.must_spawn(renderbug_embassy::tasks::render::render(peripherals.RMT, peripherals.GPIO5.degrade(), surfaces, safety_surfaces, display_controls, wdt));
#[cfg(feature="motion")]
{
@@ -119,7 +122,7 @@ async fn main(spawner: Spawner) {
peripherals.I2C0,
Config::default().with_frequency(Rate::from_khz(400))
).unwrap().with_scl(peripherals.GPIO18).with_sda(peripherals.GPIO17).into_async();
let output = SsdOutput::new(i2c, rst, garage.oled_display.clone()).await;
let output = SsdOutput::new(i2c, rst, oled_controls).await;
spawner.must_spawn(renderbug_embassy::tasks::oled_render::oled_render(output, oled_surfaces, oled_uniforms));
}
@@ -132,7 +135,7 @@ async fn main(spawner: Spawner) {
let partitions = esp_bootloader_esp_idf::partitions::read_partition_table(&mut storage, &mut buf).unwrap();
for sim_data in SimDataTable::open(storage, partitions).expect("Could not find partition for sim data!") {
info!("Found simulation data for {:?}", sim_data.srcid());
if spawner.spawn(renderbug_embassy::tasks::simulation::simulation_task(sim_data, measurements.dyn_sender())).is_err() {
if spawner.spawn(renderbug_embassy::tasks::simulation::simulation_task(sim_data, garage.motion.dyn_sender())).is_err() {
error!("Unable to spawn simulation task! Increase the task pool size.");
}
}