From a7c49ca939b1935345f645841739d903e3b34bfb Mon Sep 17 00:00:00 2001 From: Jannik Beyerstedt Date: Mon, 7 Sep 2026 12:36:25 +0200 Subject: [PATCH] TMP: Show common screens at startup --- src/main.rs | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/src/main.rs b/src/main.rs index ae2a14e..c7d4d1e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -176,6 +176,92 @@ async fn main(spawner: Spawner) -> ! { screen }; + { + let _ = screen + .update(screen::ScreenState::Initial) + .inspect_err(log_screen_error); + embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await; + let _ = screen + .update(screen::ScreenState::GlosaSearching( + applogic::GlosaSearching { + known_intersection_ids: alloc::vec![123], + }, + )) + .inspect_err(log_screen_error); + embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await; + let _ = screen + .update(screen::ScreenState::GlosaFound(applogic::GlosaFound { + intersection_id: 1234, + approach_id: Some(42), + })) + .inspect_err(log_screen_error); + embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await; + let _ = screen + .update(screen::ScreenState::GlosaLocked( + applogic::GlosaSignalInfo { + intersection_id: 1234, + signal_groups: alloc::vec![ + applogic::SignalGroupData { + phase: applogic::SignalPhase::Red, + maneuver: applogic::v2x::map::Maneuvers { + left_allowed: true, + staight_allowed: false, + right_allowed: false + }, + timing: Some(applogic::TimingData { + min_end_sec: 23, + likely_end_sec: None, + max_end_sec: None + }), + usages: alloc::vec![applogic::v2x::map::UsageType::Vehicle] + }, + applogic::SignalGroupData { + phase: applogic::SignalPhase::Red, + maneuver: applogic::v2x::map::Maneuvers { + left_allowed: true, + staight_allowed: false, + right_allowed: false + }, + timing: Some(applogic::TimingData { + min_end_sec: 23, + likely_end_sec: None, + max_end_sec: None + }), + usages: alloc::vec![applogic::v2x::map::UsageType::Vehicle] + } + ], + }, + )) + .inspect_err(log_screen_error); + embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await; + + let _ = screen + .update(screen::ScreenState::GlosaLocked( + applogic::GlosaSignalInfo { + intersection_id: 1234, + signal_groups: alloc::vec![applogic::SignalGroupData { + phase: applogic::SignalPhase::Red, + maneuver: applogic::v2x::map::Maneuvers { + left_allowed: true, + staight_allowed: false, + right_allowed: false + }, + timing: Some(applogic::TimingData { + min_end_sec: 23, + likely_end_sec: Some(24), + max_end_sec: Some(42) + }), + usages: alloc::vec![ + applogic::v2x::map::UsageType::Vehicle, + applogic::v2x::map::UsageType::Bike, + ] + }], + }, + )) + .inspect_err(log_screen_error); + embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await; + } + // Setup UART I/O channel #[cfg(feature = "uart")] setup_uart0(