add peripherals module which has shared state of all peripherals
This commit was merged in pull request #47.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
use crate::display::sprite::render_sprite_onto_ili9341;
|
||||
use crate::navigation::navigation::NewState;
|
||||
use crate::navigation::outputs::Outputs;
|
||||
use crate::peripherals::Peripherals;
|
||||
use alloc::format;
|
||||
use embedded_graphics::mono_font::MonoTextStyle;
|
||||
use embedded_graphics::mono_font::ascii::FONT_6X10;
|
||||
@@ -25,7 +26,11 @@ pub struct CardView {
|
||||
}
|
||||
|
||||
impl Navigable for CardView {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&self,
|
||||
outputs: &mut Outputs,
|
||||
_: &Peripherals,
|
||||
) -> impl core::future::Future<Output = ()> + Send {
|
||||
async move {
|
||||
let display = &mut outputs.primary_display;
|
||||
display.clear(Rgb565::BLACK).unwrap();
|
||||
|
||||
@@ -3,6 +3,7 @@ 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::views::view::View;
|
||||
use embedded_graphics::mono_font::MonoTextStyle;
|
||||
use embedded_graphics::mono_font::ascii::FONT_10X20;
|
||||
@@ -17,7 +18,11 @@ use embedded_graphics::prelude::Point;
|
||||
pub struct FlashInfoView {}
|
||||
|
||||
impl Navigable for FlashInfoView {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&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);
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use crate::peripherals::Peripherals;
|
||||
use core::future;
|
||||
|
||||
use alloc::vec::Vec;
|
||||
@@ -22,7 +23,11 @@ pub struct JournalView {
|
||||
}
|
||||
|
||||
impl Navigable for JournalView {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&self,
|
||||
outputs: &mut Outputs,
|
||||
_: &Peripherals,
|
||||
) -> impl core::future::Future<Output = ()> + Send {
|
||||
async move {
|
||||
outputs.primary_display.clear(Rgb565::BLACK).unwrap();
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use crate::peripherals::Peripherals;
|
||||
use alloc::vec;
|
||||
|
||||
use crate::card::model::Card;
|
||||
@@ -22,7 +23,11 @@ pub struct MainMenu {
|
||||
}
|
||||
|
||||
impl Navigable for MainMenu {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&self,
|
||||
outputs: &mut Outputs,
|
||||
_: &Peripherals
|
||||
) -> impl core::future::Future<Output = ()> + Send {
|
||||
let display = &mut outputs.primary_display;
|
||||
display.clear(Rgb565::BLACK).unwrap();
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use crate::peripherals::Peripherals;
|
||||
use embedded_graphics::Drawable;
|
||||
use embedded_graphics::draw_target::DrawTarget;
|
||||
use embedded_graphics::mono_font::MonoTextStyle;
|
||||
|
||||
@@ -2,6 +2,7 @@ use crate::navigation::inputs::ButtonAction;
|
||||
use crate::navigation::navigation::CARD_DATA;
|
||||
use crate::navigation::navigation::NewState;
|
||||
use crate::navigation::outputs::Outputs;
|
||||
use crate::peripherals::Peripherals;
|
||||
|
||||
use alloc::format;
|
||||
use embedded_graphics::Drawable;
|
||||
@@ -33,7 +34,11 @@ pub struct ScanMenu {
|
||||
}
|
||||
|
||||
impl Navigable for ScanMenu {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&self,
|
||||
outputs: &mut Outputs,
|
||||
_: &Peripherals
|
||||
) -> impl core::future::Future<Output = ()> + Send {
|
||||
let display = &mut outputs.primary_display;
|
||||
let style = MonoTextStyle::new(&FONT_10X20, Rgb565::WHITE);
|
||||
display.clear(Rgb565::BLACK).unwrap();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
use crate::navigation::navigation::{Action, Navigable, NewState};
|
||||
use crate::navigation::outputs::Outputs;
|
||||
use crate::peripherals::Peripherals;
|
||||
use crate::views::{flash_info_view::FlashInfoView, menu_item, view::View};
|
||||
|
||||
use crate::navigation::inputs::ButtonAction;
|
||||
@@ -16,7 +17,11 @@ pub struct SettingsMenu {
|
||||
}
|
||||
|
||||
impl Navigable for SettingsMenu {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&self,
|
||||
outputs: &mut Outputs,
|
||||
_: &Peripherals
|
||||
) -> impl core::future::Future<Output = ()> + Send {
|
||||
let display = &mut outputs.primary_display;
|
||||
display.clear(Rgb565::BLACK).unwrap();
|
||||
menu_item::show(display, "System Inforation", 0, self.selected);
|
||||
|
||||
+14
-7
@@ -1,4 +1,5 @@
|
||||
use crate::navigation::outputs::Outputs;
|
||||
use crate::peripherals::Peripherals;
|
||||
use crate::views::card_view::CardView;
|
||||
use crate::views::{
|
||||
flash_info_view::FlashInfoView, journal_view::JournalView, main_menu::MainMenu,
|
||||
@@ -18,15 +19,21 @@ pub enum View {
|
||||
}
|
||||
|
||||
impl Navigable for View {
|
||||
fn display(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send {
|
||||
fn display(
|
||||
&self,
|
||||
outputs: &mut Outputs,
|
||||
peripherals: &Peripherals
|
||||
) -> impl core::future::Future<Output = ()> + Send {
|
||||
async move {
|
||||
match self {
|
||||
View::Main(main_menu) => main_menu.display(outputs).await,
|
||||
View::Scan(scan_menu) => scan_menu.display(outputs).await,
|
||||
View::Settings(settings_menu) => settings_menu.display(outputs).await,
|
||||
View::Journal(journal_view) => journal_view.display(outputs).await,
|
||||
View::Card(card_view) => card_view.display(outputs).await,
|
||||
View::FlashInfo(flash_info_view) => flash_info_view.display(outputs).await,
|
||||
View::Main(main_menu) => main_menu.display(outputs, peripherals).await,
|
||||
View::Scan(scan_menu) => scan_menu.display(outputs, peripherals).await,
|
||||
View::Settings(settings_menu) => settings_menu.display(outputs, peripherals).await,
|
||||
View::Journal(journal_view) => journal_view.display(outputs, peripherals).await,
|
||||
View::Card(card_view) => card_view.display(outputs, peripherals).await,
|
||||
View::FlashInfo(flash_info_view) => {
|
||||
flash_info_view.display(outputs, peripherals).await
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user