TMP: Show common screens at startup
This commit is contained in:
parent
61d65c0db1
commit
83e572614d
3 changed files with 125 additions and 3 deletions
18
Cargo.lock
generated
18
Cargo.lock
generated
|
|
@ -218,6 +218,20 @@ name = "c-its-parser"
|
|||
version = "2.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e94d9990b20498f621f164f23ae198c4365115eb4191ae106352ec74d4a4110"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"etherparse",
|
||||
"geo-types",
|
||||
"geonetworking",
|
||||
"nom",
|
||||
"num-traits",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "c-its-parser"
|
||||
version = "2.4.1"
|
||||
source = "git+https://github.com/consider-it/c-its-parser.git?branch=feat%2Fdenm-cc-from-u8#01fbf45932a8e276e1df4ba8cbf5bb29f8749786"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"etherparse",
|
||||
|
|
@ -1186,7 +1200,7 @@ version = "0.1.0"
|
|||
dependencies = [
|
||||
"assert_float_eq",
|
||||
"bt-hci",
|
||||
"c-its-parser",
|
||||
"c-its-parser 2.4.1 (git+https://github.com/consider-it/c-its-parser.git?branch=feat%2Fdenm-cc-from-u8)",
|
||||
"chrono",
|
||||
"critical-section",
|
||||
"crossbeam-queue",
|
||||
|
|
@ -1226,7 +1240,7 @@ name = "esp32-cits-core"
|
|||
version = "0.1.0"
|
||||
source = "git+https://git.hamburg.ccc.de/jtbx/esp32-cits-core?branch=main#a6d0ea6ca2da130fde2b84060a34ef45e772a459"
|
||||
dependencies = [
|
||||
"c-its-parser",
|
||||
"c-its-parser 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"chrono",
|
||||
"esp-hal",
|
||||
"esp-radio",
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ esp32-cits-core = { version = "0.1.0", default-features = false, git = "https://
|
|||
embedded-hal-bus = { version = "0.3.0", optional = true }
|
||||
embedded-graphics = { version = "0.8.2", optional = true }
|
||||
# needs newer GN with removed bitvec dependency
|
||||
c-its-parser = { version = "2.4.0", default-features = false, features = [
|
||||
c-its-parser = { version = "2.4.0", git = "https://github.com/consider-it/c-its-parser.git", branch = "feat/denm-cc-from-u8", default-features = false, features = [
|
||||
"time",
|
||||
"geo",
|
||||
"libm",
|
||||
|
|
|
|||
108
src/main.rs
108
src/main.rs
|
|
@ -177,6 +177,114 @@ 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")]
|
||||
{
|
||||
let _ = screen
|
||||
.update(screen::ScreenState::DenmWarning(
|
||||
c_its_parser::standards::cdd_2_2_1::etsi_its_cdd::CauseCodeChoice::emergencyVehicleApproaching95(0.into()),
|
||||
))
|
||||
.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