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
|
||||
};
|
||||
|
||||
{
|
||||
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
|
||||
#[cfg(feature = "uart")]
|
||||
setup_uart0(
|
||||
|
|
@ -381,6 +420,15 @@ async fn main(spawner: Spawner) -> ! {
|
|||
}
|
||||
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:?}");
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ where
|
|||
// internal state
|
||||
prev_state: ScreenState,
|
||||
hb_state: bool,
|
||||
gnss_hb_state: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, PartialEq, Eq)]
|
||||
|
|
@ -94,6 +95,7 @@ where
|
|||
size: display_size,
|
||||
prev_state: ScreenState::Uninitialized,
|
||||
hb_state: false,
|
||||
gnss_hb_state: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -149,6 +151,31 @@ where
|
|||
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>
|
||||
where
|
||||
D: DrawTarget<Color = pixelcolor::Rgb565>,
|
||||
|
|
|
|||
Loading…
Reference in a new issue