TMP: Show common screens at startup
This commit is contained in:
parent
e7e03af900
commit
7698a00652
1 changed files with 110 additions and 0 deletions
110
src/main.rs
110
src/main.rs
|
|
@ -177,6 +177,116 @@ async fn main(spawner: Spawner) -> ! {
|
||||||
screen
|
screen
|
||||||
};
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
let _ = screen
|
||||||
|
.update(screen::ScreenState::Initial)
|
||||||
|
.inspect_err(log_screen_error);
|
||||||
|
embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await;
|
||||||
|
|
||||||
|
#[cfg(feature = "spat")]
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "denm")]
|
||||||
|
{
|
||||||
|
use c_its_parser::standards::cdd_2_2_1::etsi_its_cdd::EmergencyVehicleApproachingSubCauseCode;
|
||||||
|
let _ = screen
|
||||||
|
.update(screen::ScreenState::DenmWarning(
|
||||||
|
// c_its_parser::standards::cdd_2_2_1::etsi_its_cdd::CauseCodeChoice::emergencyVehicleApproaching95(0.into()),
|
||||||
|
c_its_parser::standards::cdd_2_2_1::etsi_its_cdd::etsi_its_cdd::CauseCodeChoice::emergencyVehicleApproaching95(EmergencyVehicleApproachingSubCauseCode(0)),
|
||||||
|
))
|
||||||
|
.inspect_err(log_screen_error);
|
||||||
|
embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await;
|
||||||
|
|
||||||
|
// try to reset screen for 4 more seconds
|
||||||
|
for _ in 0..4 {
|
||||||
|
let _ = screen
|
||||||
|
.update(screen::ScreenState::Initial)
|
||||||
|
.inspect_err(log_screen_error);
|
||||||
|
embassy_time::Timer::after(embassy_time::Duration::from_secs(1)).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Setup UART I/O channel
|
// Setup UART I/O channel
|
||||||
#[cfg(feature = "uart")]
|
#[cfg(feature = "uart")]
|
||||||
setup_uart0(
|
setup_uart0(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue