WIP FIXUP
This commit is contained in:
parent
168aff3c84
commit
ba344f5e22
2 changed files with 75 additions and 0 deletions
48
src/main.rs
48
src/main.rs
|
|
@ -176,6 +176,45 @@ 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;
|
||||||
|
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
|
||||||
|
},
|
||||||
|
end_sec: Some(23)
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
))
|
||||||
|
.inspect_err(log_screen_error);
|
||||||
|
embassy_time::Timer::after(embassy_time::Duration::from_secs(2)).await;
|
||||||
|
}
|
||||||
|
|
||||||
// Setup UART I/O channel
|
// Setup UART I/O channel
|
||||||
#[cfg(feature = "uart")]
|
#[cfg(feature = "uart")]
|
||||||
setup_uart0(
|
setup_uart0(
|
||||||
|
|
@ -381,6 +420,15 @@ async fn main(spawner: Spawner) -> ! {
|
||||||
}
|
}
|
||||||
Err(err) => warn!("{err}"),
|
Err(err) => warn!("{err}"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: update GNSS HB on screen
|
||||||
|
let _ = screen.update_gnss(pvt);
|
||||||
|
}
|
||||||
|
ublox::proto27::PacketRef::AckNak(nak) => {
|
||||||
|
error!("UBX: {nak:?}");
|
||||||
|
}
|
||||||
|
ublox::proto27::PacketRef::AckAck(ack) => {
|
||||||
|
info!("UBX: {ack:?}");
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
println!("UBX: {packet_ref:?}");
|
println!("UBX: {packet_ref:?}");
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ where
|
||||||
// internal state
|
// internal state
|
||||||
prev_state: ScreenState,
|
prev_state: ScreenState,
|
||||||
hb_state: bool,
|
hb_state: bool,
|
||||||
|
gnss_hb_state: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq)]
|
#[derive(Debug, Default, PartialEq, Eq)]
|
||||||
|
|
@ -94,6 +95,7 @@ where
|
||||||
size: display_size,
|
size: display_size,
|
||||||
prev_state: ScreenState::Uninitialized,
|
prev_state: ScreenState::Uninitialized,
|
||||||
hb_state: false,
|
hb_state: false,
|
||||||
|
gnss_hb_state: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -149,6 +151,31 @@ where
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn update_gnss(
|
||||||
|
&mut self,
|
||||||
|
pvt: &ublox::nav_pvt::proto27::NavPvtRef,
|
||||||
|
) -> Result<(), D::Error> {
|
||||||
|
let num_sat = pvt.num_satellites();
|
||||||
|
let fix_str = match pvt.fix_type() {
|
||||||
|
ublox::GnssFixType::NoFix | ublox::GnssFixType::DeadReckoningOnly => "no",
|
||||||
|
ublox::GnssFixType::Fix2D => "2D",
|
||||||
|
ublox::GnssFixType::Fix3D | ublox::GnssFixType::GPSPlusDeadReckoning => "3D",
|
||||||
|
ublox::GnssFixType::TimeOnlyFix => "tm",
|
||||||
|
_ => " ",
|
||||||
|
};
|
||||||
|
|
||||||
|
esp_println::println!(
|
||||||
|
"TODO: GNSS {fix_str} {num_sat:2} sat {}",
|
||||||
|
self.gnss_hb_state
|
||||||
|
);
|
||||||
|
|
||||||
|
// TODO: print on screen!
|
||||||
|
|
||||||
|
self.gnss_hb_state = !self.gnss_hb_state;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn clear(&mut self) -> Result<(), D::Error>
|
fn clear(&mut self) -> Result<(), D::Error>
|
||||||
where
|
where
|
||||||
D: DrawTarget<Color = pixelcolor::Rgb565>,
|
D: DrawTarget<Color = pixelcolor::Rgb565>,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue