Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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
|
||||
};
|
||||
|
||||
{
|
||||
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
|
||||
#[cfg(feature = "uart")]
|
||||
setup_uart0(
|
||||
|
|
|
|||
Loading…
Reference in a new issue