WIP Add graphics
This commit is contained in:
parent
c29eb92388
commit
a8434b76d4
6 changed files with 72 additions and 13 deletions
|
|
@ -23,6 +23,10 @@ where
|
|||
prev_state: ScreenState,
|
||||
hb_state: bool,
|
||||
gnss_hb_state: bool,
|
||||
|
||||
// assets
|
||||
#[cfg(feature = "spat")]
|
||||
bike_image: tinytga::Tga<'static, pixelcolor::Rgb565>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, PartialEq, Eq)]
|
||||
|
|
@ -94,12 +98,19 @@ where
|
|||
const BIG_HEIGHT_THLD: u16 = 172;
|
||||
|
||||
pub fn new(target: D, display_size: DisplaySize) -> Self {
|
||||
#[cfg(feature = "spat")]
|
||||
let data = include_bytes!("../graphics/Sinnbild_Radfahrer_StVO_1992-25px-white.tga");
|
||||
#[cfg(feature = "spat")]
|
||||
let bike_image = tinytga::Tga::from_slice(data).expect("Failed to parse TGA image");
|
||||
|
||||
Self {
|
||||
target,
|
||||
size: display_size,
|
||||
prev_state: ScreenState::Uninitialized,
|
||||
hb_state: false,
|
||||
gnss_hb_state: false,
|
||||
#[cfg(feature = "spat")]
|
||||
bike_image,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -356,22 +367,38 @@ where
|
|||
.draw(&mut self.target)?;
|
||||
|
||||
// mark bike lanes which are not a vehicle lane, too
|
||||
let lane_type_symbol = if sig.usages.contains(&applogic::v2x::map::UsageType::Vehicle) {
|
||||
" "
|
||||
let lane_symbol_y_pos = 75;
|
||||
if sig.usages.contains(&applogic::v2x::map::UsageType::Vehicle) {
|
||||
// clear area
|
||||
primitives::Rectangle::new(
|
||||
geometry::Point::new(
|
||||
centerline - (45 / 2),
|
||||
lane_symbol_y_pos + self.size.offset_top,
|
||||
), // TODO: check correct position
|
||||
geometry::Size::new(45, 25),
|
||||
)
|
||||
.into_styled(Self::BK_STYLE)
|
||||
.draw(&mut self.target)?;
|
||||
} else if sig.usages.contains(&applogic::v2x::map::UsageType::Bike) {
|
||||
"B" // TODO: rather do a bike symbol?
|
||||
// bike symbol (45x25px)
|
||||
embedded_graphics::image::Image::new(
|
||||
&self.bike_image,
|
||||
geometry::Point::new(
|
||||
centerline - (45 / 2) + 2,
|
||||
lane_symbol_y_pos + self.size.offset_top,
|
||||
),
|
||||
)
|
||||
.draw(&mut self.target)?;
|
||||
} else {
|
||||
"?"
|
||||
text::Text::with_alignment(
|
||||
"?",
|
||||
geometry::Point::new(centerline, lane_symbol_y_pos + 24 + self.size.offset_top),
|
||||
Self::DEFAULT_TEXT_STYLE,
|
||||
text::Alignment::Center,
|
||||
)
|
||||
.draw(&mut self.target)?;
|
||||
};
|
||||
|
||||
text::Text::with_alignment(
|
||||
&lane_type_symbol,
|
||||
geometry::Point::new(centerline, 100 + self.size.offset_top),
|
||||
Self::DEFAULT_TEXT_STYLE,
|
||||
text::Alignment::Center,
|
||||
)
|
||||
.draw(&mut self.target)?;
|
||||
|
||||
// draw maneuver
|
||||
text::Text::with_alignment(
|
||||
&maneuver_to_str(sig.maneuver),
|
||||
|
|
@ -449,6 +476,13 @@ where
|
|||
|
||||
// draw welcome text
|
||||
let centerline = i32::from(self.size.width) / 2;
|
||||
|
||||
embedded_graphics::image::Image::new(
|
||||
&self.bike_image,
|
||||
geometry::Point::new(centerline - (45 / 2) + 2, 75 + self.size.offset_top),
|
||||
)
|
||||
.draw(&mut self.target)?;
|
||||
|
||||
text::Text::with_alignment(
|
||||
"C-ITS Signal Phase\nWaiting for GNSS...",
|
||||
geometry::Point::new(centerline, 130 + self.size.offset_top),
|
||||
|
|
|
|||
Loading…
Reference in a new issue