implement error view which displays all error on the display

This commit was merged in pull request #48.
This commit is contained in:
2026-08-29 20:19:14 +00:00
parent a31c818b37
commit ef10eec216
17 changed files with 316 additions and 92 deletions
+17 -6
View File
@@ -1,10 +1,12 @@
use crate::navigation::inputs::ButtonAction;
use crate::navigation::navigation::Action;
use crate::navigation::navigation::Navigable;
use crate::navigation::navigation::NewState;
use crate::navigation::outputs::Outputs;
use crate::peripherals::Peripherals;
use crate::peripherals::storage::MAGIC_REGION;
use crate::views::view::View;
use alloc::boxed::Box;
use core::error;
use embedded_graphics::mono_font::MonoTextStyle;
use embedded_graphics::mono_font::ascii::FONT_10X20;
use embedded_graphics::pixelcolor::Rgb565;
@@ -22,11 +24,20 @@ impl Navigable for FlashInfoView {
&self,
outputs: &mut Outputs,
peripherals: &Peripherals,
) -> impl core::future::Future<Output = ()> + Send {
let style = MonoTextStyle::new(&FONT_10X20, Rgb565::WHITE);
Text::new("Flash Initialized: {:?}", Point::new(40, 40), style);
core::future::ready(())
) -> impl core::future::Future<Output = Result<(), Box<dyn error::Error>>> + Send {
async move {
let style = MonoTextStyle::new(&FONT_10X20, Rgb565::WHITE);
let mut magic_bytes: [u8; MAGIC_REGION.size] = [0; MAGIC_REGION.size];
peripherals
.store
.lock()
.await
.flash_store
.read(MAGIC_REGION.offset, &mut magic_bytes)
.await?;
Text::new("Flash Initialized: {:?}", Point::new(40, 40), style);
Ok(())
}
}
fn handle_input(&self, input: Action) -> impl core::future::Future<Output = NewState> + Send {