try different crates
This commit is contained in:
Generated
+33
@@ -229,6 +229,15 @@ version = "1.0.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ch1115"
|
||||||
|
version = "0.1.2"
|
||||||
|
dependencies = [
|
||||||
|
"display-interface",
|
||||||
|
"embedded-graphics-core",
|
||||||
|
"embedded-hal 1.0.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cobs"
|
name = "cobs"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
@@ -303,6 +312,7 @@ name = "creaturedex"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
|
"ch1115",
|
||||||
"critical-section",
|
"critical-section",
|
||||||
"display-interface-spi",
|
"display-interface-spi",
|
||||||
"embassy-executor",
|
"embassy-executor",
|
||||||
@@ -311,6 +321,7 @@ dependencies = [
|
|||||||
"embedded-graphics-core",
|
"embedded-graphics-core",
|
||||||
"embedded-hal 1.0.0",
|
"embedded-hal 1.0.0",
|
||||||
"embedded-hal-bus",
|
"embedded-hal-bus",
|
||||||
|
"embedded-hal-compat",
|
||||||
"embedded-io 0.7.1",
|
"embedded-io 0.7.1",
|
||||||
"esp-alloc",
|
"esp-alloc",
|
||||||
"esp-bootloader-esp-idf",
|
"esp-bootloader-esp-idf",
|
||||||
@@ -322,6 +333,7 @@ dependencies = [
|
|||||||
"log",
|
"log",
|
||||||
"ndef",
|
"ndef",
|
||||||
"pn532",
|
"pn532",
|
||||||
|
"sh1106",
|
||||||
"ssd1306",
|
"ssd1306",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -957,6 +969,17 @@ dependencies = [
|
|||||||
"embedded-hal 1.0.0",
|
"embedded-hal 1.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "embedded-hal-compat"
|
||||||
|
version = "0.13.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "08ecac72f6be75ad2d4809c9f07d45502e2e5c9a4e9579077f28d7135de81df3"
|
||||||
|
dependencies = [
|
||||||
|
"embedded-hal 0.2.7",
|
||||||
|
"embedded-hal 1.0.0",
|
||||||
|
"nb 1.1.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "embedded-io"
|
name = "embedded-io"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
@@ -3116,6 +3139,16 @@ dependencies = [
|
|||||||
"unsafe-libyaml",
|
"unsafe-libyaml",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sh1106"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dc12a0563ec9b3b1f99b1f64613581ebbade1347416a34766564f406c15d1bf3"
|
||||||
|
dependencies = [
|
||||||
|
"embedded-graphics-core",
|
||||||
|
"embedded-hal 0.2.7",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sharded-slab"
|
name = "sharded-slab"
|
||||||
version = "0.1.7"
|
version = "0.1.7"
|
||||||
|
|||||||
@@ -42,8 +42,14 @@ embedded-graphics-core = "0.4.1"
|
|||||||
base64 = { version = "0.22", default-features = false, features = ["alloc"] }
|
base64 = { version = "0.22", default-features = false, features = ["alloc"] }
|
||||||
pn532 = "0.5.0"
|
pn532 = "0.5.0"
|
||||||
ndef = "0.5.0"
|
ndef = "0.5.0"
|
||||||
|
ch1115 = { version = "0.1.2", features = ["graphics"] }
|
||||||
|
sh1106 = "0.5.0"
|
||||||
|
embedded-hal-compat = "0.13.0"
|
||||||
|
|
||||||
|
|
||||||
|
[patch.crates-io]
|
||||||
|
ch1115 = { path = "./ch1115" }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# For fine tuning these settings, please refer to https://doc.rust-lang.org/cargo/reference/profiles.html
|
# For fine tuning these settings, please refer to https://doc.rust-lang.org/cargo/reference/profiles.html
|
||||||
|
|||||||
@@ -0,0 +1,106 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
#![deny(
|
||||||
|
clippy::mem_forget,
|
||||||
|
reason = "mem::forget is generally not safe to do with esp_hal types, especially those \
|
||||||
|
holding buffers for the duration of a data transfer."
|
||||||
|
)]
|
||||||
|
|
||||||
|
use ch1115::Ch1115;
|
||||||
|
use core::cell::RefCell;
|
||||||
|
use creaturedex::display::shared_bus::SharedPin;
|
||||||
|
use embassy_executor::Spawner;
|
||||||
|
use embassy_time::Timer;
|
||||||
|
use embedded_graphics::pixelcolor::BinaryColor;
|
||||||
|
use embedded_graphics::{
|
||||||
|
mono_font::{MonoTextStyle, ascii::FONT_6X10},
|
||||||
|
prelude::*,
|
||||||
|
text::Text,
|
||||||
|
};
|
||||||
|
use esp_hal::clock::CpuClock;
|
||||||
|
use esp_hal::delay::Delay;
|
||||||
|
use esp_hal::gpio::{Level, Output, OutputConfig};
|
||||||
|
use esp_hal::spi::Mode;
|
||||||
|
use esp_hal::spi::master::{Config as SpiConfig, Spi};
|
||||||
|
use esp_hal::time::Rate;
|
||||||
|
use esp_hal::timer::timg::TimerGroup;
|
||||||
|
use log::error;
|
||||||
|
|
||||||
|
#[panic_handler]
|
||||||
|
fn panic(panic_info: &core::panic::PanicInfo) -> ! {
|
||||||
|
error!("{}", panic_info);
|
||||||
|
loop {}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern crate alloc;
|
||||||
|
|
||||||
|
esp_bootloader_esp_idf::esp_app_desc!();
|
||||||
|
|
||||||
|
#[esp_rtos::main]
|
||||||
|
async fn main(_spawner: Spawner) {
|
||||||
|
esp_println::logger::init_logger_from_env();
|
||||||
|
|
||||||
|
let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
|
||||||
|
let peripherals = esp_hal::init(config);
|
||||||
|
|
||||||
|
// The following GPIO pins are in use by some feature of the module and should not be used.
|
||||||
|
let _ = peripherals.GPIO27;
|
||||||
|
let _ = peripherals.GPIO28;
|
||||||
|
let _ = peripherals.GPIO29;
|
||||||
|
let _ = peripherals.GPIO30;
|
||||||
|
let _ = peripherals.GPIO31;
|
||||||
|
let _ = peripherals.GPIO32;
|
||||||
|
let _ = peripherals.GPIO33;
|
||||||
|
let _ = peripherals.GPIO34;
|
||||||
|
|
||||||
|
esp_alloc::heap_allocator!(#[esp_hal::ram(reclaimed)] size: 73744);
|
||||||
|
|
||||||
|
let mut delay = Delay::new();
|
||||||
|
|
||||||
|
let timg0 = TimerGroup::new(peripherals.TIMG0);
|
||||||
|
let sw_interrupt =
|
||||||
|
esp_hal::interrupt::software::SoftwareInterruptControl::new(peripherals.SW_INTERRUPT);
|
||||||
|
esp_rtos::start(timg0.timer0, sw_interrupt.software_interrupt0);
|
||||||
|
|
||||||
|
let spi = peripherals.SPI2;
|
||||||
|
let sck = peripherals.GPIO36;
|
||||||
|
let mosi = peripherals.GPIO35;
|
||||||
|
let cs = peripherals.GPIO13;
|
||||||
|
let reset = peripherals.GPIO10;
|
||||||
|
let dc = peripherals.GPIO12;
|
||||||
|
let miso = peripherals.GPIO37;
|
||||||
|
|
||||||
|
let cs = Output::new(cs, Level::High, OutputConfig::default());
|
||||||
|
let dc = Output::new(dc, Level::Low, OutputConfig::default());
|
||||||
|
let reset = Output::new(reset, Level::High, OutputConfig::default());
|
||||||
|
|
||||||
|
let spi = Spi::new(
|
||||||
|
spi,
|
||||||
|
SpiConfig::default()
|
||||||
|
.with_frequency(Rate::from_khz(5000))
|
||||||
|
.with_mode(Mode::_0),
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
.with_sck(sck)
|
||||||
|
.with_mosi(mosi)
|
||||||
|
.with_miso(miso);
|
||||||
|
|
||||||
|
let spi = RefCell::new(spi);
|
||||||
|
let spi_dev = embedded_hal_bus::spi::RefCellDevice::new(&spi, cs, delay).unwrap();
|
||||||
|
let interface = display_interface_spi::SPIInterface::new(spi_dev, dc);
|
||||||
|
|
||||||
|
let mut display = Ch1115::new(interface, reset, ch1115::Size128x64);
|
||||||
|
display.init(&mut delay).unwrap();
|
||||||
|
|
||||||
|
|
||||||
|
loop {
|
||||||
|
log::info!("Init finished");
|
||||||
|
// let text_style = MonoTextStyle::new(&FONT_6X10, BinaryColor::On);
|
||||||
|
// Text::new("Hello OLED", Point::new(10, 20), text_style)
|
||||||
|
// .draw(&mut display)
|
||||||
|
// .unwrap();
|
||||||
|
|
||||||
|
// display.flush().unwrap();
|
||||||
|
Timer::after_millis(1000).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
#![deny(
|
||||||
|
clippy::mem_forget,
|
||||||
|
reason = "mem::forget is generally not safe to do with esp_hal types, especially those \
|
||||||
|
holding buffers for the duration of a data transfer."
|
||||||
|
)]
|
||||||
|
|
||||||
|
use embassy_executor::Spawner;
|
||||||
|
use embassy_time::Timer;
|
||||||
|
use embedded_graphics::pixelcolor::BinaryColor;
|
||||||
|
use embedded_graphics::{
|
||||||
|
mono_font::{MonoTextStyle, ascii::FONT_6X10},
|
||||||
|
prelude::*,
|
||||||
|
text::Text,
|
||||||
|
};
|
||||||
|
use embedded_hal_compat::ReverseCompat;
|
||||||
|
use esp_hal::clock::CpuClock;
|
||||||
|
use esp_hal::delay::Delay;
|
||||||
|
use esp_hal::gpio::{Level, Output, OutputConfig};
|
||||||
|
use esp_hal::spi::Mode;
|
||||||
|
use esp_hal::spi::master::{Config as SpiConfig, Spi};
|
||||||
|
use esp_hal::time::Rate;
|
||||||
|
use esp_hal::timer::timg::TimerGroup;
|
||||||
|
use log::error;
|
||||||
|
|
||||||
|
#[panic_handler]
|
||||||
|
fn panic(panic_info: &core::panic::PanicInfo) -> ! {
|
||||||
|
error!("{}", panic_info);
|
||||||
|
loop {}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern crate alloc;
|
||||||
|
|
||||||
|
esp_bootloader_esp_idf::esp_app_desc!();
|
||||||
|
|
||||||
|
// This creates a defaembedded_hal_compatedReverseCompat::reverse(Output::new(cs,Level::High,OutputConfig::default()))vel::High,OutputConfig::default())) more information see: embedded_hal_compat::ForwardCompat::forward(Spi::new(spi,SpiConfig::default().with_frequency(Rate::from_khz(100)).with_mode(Mode::_0),).unwrap().with_sck(sck).with_mosi(mosi))rward(Spi::new(spi,SpiConfig::default().with_frequency(Rate::from_khz(100)).with_mode(Mode::_0),).unwrap().with_sck(sck).with_mosi(mosi)) to allocate larger buffers etc. in main"
|
||||||
|
#[esp_rtos::main]
|
||||||
|
async fn main(_spawner: Spawner) {
|
||||||
|
esp_println::logger::init_logger_from_env();
|
||||||
|
|
||||||
|
let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
|
||||||
|
let peripherals = esp_hal::init(config);
|
||||||
|
|
||||||
|
// The following GPIO pins are in use by some feature of the module and should not be used.
|
||||||
|
let _ = peripherals.GPIO27;
|
||||||
|
let _ = peripherals.GPIO28;
|
||||||
|
let _ = peripherals.GPIO29;
|
||||||
|
let _ = peripherals.GPIO30;
|
||||||
|
let _ = peripherals.GPIO31;
|
||||||
|
let _ = peripherals.GPIO32;
|
||||||
|
let _ = peripherals.GPIO33;
|
||||||
|
let _ = peripherals.GPIO34;
|
||||||
|
|
||||||
|
esp_alloc::heap_allocator!(#[esp_hal::ram(reclaimed)] size: 73744);
|
||||||
|
|
||||||
|
let delay = Delay::new();
|
||||||
|
|
||||||
|
let timg0 = TimerGroup::new(peripherals.TIMG0);
|
||||||
|
let sw_interrupt =
|
||||||
|
esp_hal::interrupt::software::SoftwareInterruptControl::new(peripherals.SW_INTERRUPT);
|
||||||
|
esp_rtos::start(timg0.timer0, sw_interrupt.software_interrupt0);
|
||||||
|
|
||||||
|
let spi = peripherals.SPI2;
|
||||||
|
let sck = peripherals.GPIO36;
|
||||||
|
let mosi = peripherals.GPIO35;
|
||||||
|
let cs = peripherals.GPIO13;
|
||||||
|
let reset = peripherals.GPIO10;
|
||||||
|
let dc = peripherals.GPIO12;
|
||||||
|
let miso = peripherals.GPIO37;
|
||||||
|
|
||||||
|
let cs = Output::new(cs, Level::High, OutputConfig::default()).reverse_cell();
|
||||||
|
let dc = Output::new(dc, Level::Low, OutputConfig::default()).reverse_cell();
|
||||||
|
let mut reset = Output::new(reset, Level::High, OutputConfig::default());
|
||||||
|
|
||||||
|
let spi = Spi::new(
|
||||||
|
spi,
|
||||||
|
SpiConfig::default()
|
||||||
|
.with_frequency(Rate::from_khz(5000))
|
||||||
|
.with_mode(Mode::_0),
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
.with_sck(sck)
|
||||||
|
.with_mosi(mosi)
|
||||||
|
.with_miso(miso)
|
||||||
|
.reverse();
|
||||||
|
|
||||||
|
let mut display: sh1106::mode::GraphicsMode<_> =
|
||||||
|
sh1106::Builder::new().connect_spi(spi, dc, cs).into();
|
||||||
|
|
||||||
|
display.init().unwrap();
|
||||||
|
|
||||||
|
// Hard reset the OLED
|
||||||
|
reset.set_high();
|
||||||
|
delay.delay_millis(1);
|
||||||
|
reset.set_low();
|
||||||
|
delay.delay_millis(10);
|
||||||
|
reset.set_high();
|
||||||
|
|
||||||
|
display.flush().unwrap();
|
||||||
|
|
||||||
|
display.set_pixel(10, 20, 1);
|
||||||
|
|
||||||
|
display.flush().unwrap();
|
||||||
|
|
||||||
|
let mut oled = display;
|
||||||
|
|
||||||
|
oled.clear();
|
||||||
|
|
||||||
|
let text_style = MonoTextStyle::new(&FONT_6X10, BinaryColor::On);
|
||||||
|
Text::new("Hello OLED", Point::new(10, 20), text_style)
|
||||||
|
.draw(&mut oled)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
oled.flush().unwrap();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
log::info!("Init finished");
|
||||||
|
Timer::after_millis(1000).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
#![deny(
|
||||||
|
clippy::mem_forget,
|
||||||
|
reason = "mem::forget is generally not safe to do with esp_hal types, especially those \
|
||||||
|
holding buffers for the duration of a data transfer."
|
||||||
|
)]
|
||||||
|
#![deny(clippy::large_stack_frames)]
|
||||||
|
|
||||||
|
use embassy_executor::Spawner;
|
||||||
|
use embassy_time::Timer;
|
||||||
|
use embedded_graphics::draw_target::DrawTarget;
|
||||||
|
use embedded_graphics::pixelcolor::BinaryColor;
|
||||||
|
use embedded_graphics::text::Text;
|
||||||
|
use embedded_graphics::{
|
||||||
|
mono_font::{MonoTextStyle, ascii::FONT_6X10},
|
||||||
|
prelude::*,
|
||||||
|
};
|
||||||
|
|
||||||
|
use core::cell::RefCell;
|
||||||
|
use esp_hal::clock::CpuClock;
|
||||||
|
use esp_hal::delay::Delay;
|
||||||
|
use esp_hal::gpio::{Level, Output, OutputConfig};
|
||||||
|
use esp_hal::spi::Mode;
|
||||||
|
use esp_hal::spi::master::{Config as SpiConfig, Spi};
|
||||||
|
use esp_hal::time::Rate;
|
||||||
|
use esp_hal::timer::timg::TimerGroup;
|
||||||
|
use log::error;
|
||||||
|
use ssd1306::Ssd1306;
|
||||||
|
use ssd1306::mode::DisplayConfig;
|
||||||
|
use ssd1306::rotation::DisplayRotation;
|
||||||
|
use ssd1306::size::DisplaySize128x64;
|
||||||
|
|
||||||
|
#[panic_handler]
|
||||||
|
fn panic(panic_info: &core::panic::PanicInfo) -> ! {
|
||||||
|
error!("{}", panic_info);
|
||||||
|
loop {}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern crate alloc;
|
||||||
|
|
||||||
|
esp_bootloader_esp_idf::esp_app_desc!();
|
||||||
|
|
||||||
|
// This creates a defaembedded_hal_compatedReverseCompat::reverse(Output::new(cs,Level::High,OutputConfig::default()))vel::High,OutputConfig::default())) more information see: embedded_hal_compat::ForwardCompat::forward(Spi::new(spi,SpiConfig::default().with_frequency(Rate::from_khz(100)).with_mode(Mode::_0),).unwrap().with_sck(sck).with_mosi(mosi))rward(Spi::new(spi,SpiConfig::default().with_frequency(Rate::from_khz(100)).with_mode(Mode::_0),).unwrap().with_sck(sck).with_mosi(mosi)) to allocate larger buffers etc. in main"
|
||||||
|
#[esp_rtos::main]
|
||||||
|
async fn main(_spawner: Spawner) {
|
||||||
|
esp_println::logger::init_logger_from_env();
|
||||||
|
|
||||||
|
let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
|
||||||
|
let peripherals = esp_hal::init(config);
|
||||||
|
|
||||||
|
// The following GPIO pins are in use by some feature of the module and should not be used.
|
||||||
|
let _ = peripherals.GPIO27;
|
||||||
|
let _ = peripherals.GPIO28;
|
||||||
|
let _ = peripherals.GPIO29;
|
||||||
|
let _ = peripherals.GPIO30;
|
||||||
|
let _ = peripherals.GPIO31;
|
||||||
|
let _ = peripherals.GPIO32;
|
||||||
|
let _ = peripherals.GPIO33;
|
||||||
|
let _ = peripherals.GPIO34;
|
||||||
|
|
||||||
|
esp_alloc::heap_allocator!(#[esp_hal::ram(reclaimed)] size: 73744);
|
||||||
|
|
||||||
|
let mut delay = Delay::new();
|
||||||
|
|
||||||
|
let timg0 = TimerGroup::new(peripherals.TIMG0);
|
||||||
|
let sw_interrupt =
|
||||||
|
esp_hal::interrupt::software::SoftwareInterruptControl::new(peripherals.SW_INTERRUPT);
|
||||||
|
esp_rtos::start(timg0.timer0, sw_interrupt.software_interrupt0);
|
||||||
|
|
||||||
|
let spi = peripherals.SPI2;
|
||||||
|
let sck = peripherals.GPIO36;
|
||||||
|
let mosi = peripherals.GPIO35;
|
||||||
|
let cs = peripherals.GPIO13;
|
||||||
|
let reset = peripherals.GPIO10;
|
||||||
|
let dc = peripherals.GPIO12;
|
||||||
|
let miso = peripherals.GPIO37;
|
||||||
|
|
||||||
|
let cs = Output::new(cs, Level::High, OutputConfig::default());
|
||||||
|
let dc = Output::new(dc, Level::Low, OutputConfig::default());
|
||||||
|
let mut reset = Output::new(reset, Level::High, OutputConfig::default());
|
||||||
|
|
||||||
|
let spi = Spi::new(
|
||||||
|
spi,
|
||||||
|
SpiConfig::default()
|
||||||
|
.with_frequency(Rate::from_khz(5000))
|
||||||
|
.with_mode(Mode::_0),
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
.with_sck(sck)
|
||||||
|
.with_mosi(mosi)
|
||||||
|
.with_miso(miso);
|
||||||
|
|
||||||
|
let spi = RefCell::new(spi);
|
||||||
|
let spi_dev = embedded_hal_bus::spi::RefCellDevice::new(&spi, cs, delay).unwrap();
|
||||||
|
let interface = display_interface_spi::SPIInterface::new(spi_dev, dc);
|
||||||
|
let mut display = Ssd1306::new(
|
||||||
|
interface,
|
||||||
|
DisplaySize128x64,
|
||||||
|
DisplayRotation::Rotate0,
|
||||||
|
)
|
||||||
|
.into_buffered_graphics_mode();
|
||||||
|
|
||||||
|
display.reset(&mut reset, &mut delay).unwrap();
|
||||||
|
display.init().unwrap();
|
||||||
|
display.clear(BinaryColor::Off).unwrap();
|
||||||
|
|
||||||
|
|
||||||
|
let mut oled = display;
|
||||||
|
|
||||||
|
let text_style = MonoTextStyle::new(&FONT_6X10, BinaryColor::On);
|
||||||
|
Text::new("Hello OLED", Point::new(10, 20), text_style)
|
||||||
|
.draw(&mut oled)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
oled.flush().unwrap();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
log::info!("Init finished");
|
||||||
|
Timer::after_millis(1000).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
+12
-27
@@ -10,7 +10,6 @@
|
|||||||
use creaturedex::card::mock::{MOCK_PAYLOAD, MOCK_PAYLOAD2};
|
use creaturedex::card::mock::{MOCK_PAYLOAD, MOCK_PAYLOAD2};
|
||||||
use creaturedex::display::shared_bus::init_dual_displays;
|
use creaturedex::display::shared_bus::init_dual_displays;
|
||||||
|
|
||||||
|
|
||||||
use creaturedex::display::views::card_view::render_nfc_payload;
|
use creaturedex::display::views::card_view::render_nfc_payload;
|
||||||
use creaturedex::drivers::nfc_pn532::NfcPn532Driver;
|
use creaturedex::drivers::nfc_pn532::NfcPn532Driver;
|
||||||
use creaturedex::navigation::input::init_navigation_button;
|
use creaturedex::navigation::input::init_navigation_button;
|
||||||
@@ -18,17 +17,17 @@ use creaturedex::navigation::state::NavigationState;
|
|||||||
use creaturedex::network::wifi::setup_wifi;
|
use creaturedex::network::wifi::setup_wifi;
|
||||||
use embassy_executor::Spawner;
|
use embassy_executor::Spawner;
|
||||||
use embassy_time::Timer;
|
use embassy_time::Timer;
|
||||||
use embedded_graphics::{
|
|
||||||
mono_font::{ascii::FONT_6X10, MonoTextStyle},
|
|
||||||
prelude::*,
|
|
||||||
text::Text,
|
|
||||||
};
|
|
||||||
use embedded_graphics::draw_target::DrawTarget;
|
use embedded_graphics::draw_target::DrawTarget;
|
||||||
use embedded_graphics::pixelcolor::{BinaryColor, Rgb565};
|
use embedded_graphics::pixelcolor::{BinaryColor, Rgb565};
|
||||||
use embedded_graphics::prelude::RgbColor;
|
use embedded_graphics::prelude::RgbColor;
|
||||||
use esp_hal::time::Duration;
|
use embedded_graphics::{
|
||||||
|
mono_font::{MonoTextStyle, ascii::FONT_6X10},
|
||||||
|
prelude::*,
|
||||||
|
text::Text,
|
||||||
|
};
|
||||||
use esp_hal::clock::CpuClock;
|
use esp_hal::clock::CpuClock;
|
||||||
use esp_hal::delay::Delay;
|
use esp_hal::delay::Delay;
|
||||||
|
use esp_hal::time::Duration;
|
||||||
use esp_hal::timer::timg::TimerGroup;
|
use esp_hal::timer::timg::TimerGroup;
|
||||||
use log::error;
|
use log::error;
|
||||||
|
|
||||||
@@ -81,7 +80,7 @@ async fn main(spawner: Spawner) {
|
|||||||
peripherals.GPIO35, // mosi
|
peripherals.GPIO35, // mosi
|
||||||
peripherals.GPIO37, // miso
|
peripherals.GPIO37, // miso
|
||||||
peripherals.GPIO11, // primary cs
|
peripherals.GPIO11, // primary cs
|
||||||
peripherals.GPIO5, // oled cs
|
peripherals.GPIO13, // oled cs
|
||||||
peripherals.GPIO10, // shared reset
|
peripherals.GPIO10, // shared reset
|
||||||
peripherals.GPIO12, // shared dc
|
peripherals.GPIO12, // shared dc
|
||||||
&mut delay,
|
&mut delay,
|
||||||
@@ -97,11 +96,14 @@ async fn main(spawner: Spawner) {
|
|||||||
Text::new("Hello OLED", Point::new(10, 20), text_style)
|
Text::new("Hello OLED", Point::new(10, 20), text_style)
|
||||||
.draw(&mut oled)
|
.draw(&mut oled)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
oled.flush().unwrap();
|
oled.flush().unwrap();
|
||||||
|
|
||||||
|
let text_style = MonoTextStyle::new(&FONT_6X10, Rgb565::WHITE);
|
||||||
|
display.clear_screen(0).unwrap();
|
||||||
|
Text::new("Hello OLED", Point::new(10, 20), text_style).draw(&mut display).unwrap();
|
||||||
|
|
||||||
let mut nfc_driver = NfcPn532Driver::new(peripherals.I2C0, peripherals.GPIO17, peripherals.GPIO18);
|
let mut nfc_driver =
|
||||||
|
NfcPn532Driver::new(peripherals.I2C0, peripherals.GPIO17, peripherals.GPIO18);
|
||||||
let timeout = Duration::from_millis(1000);
|
let timeout = Duration::from_millis(1000);
|
||||||
if nfc_driver.configure_sam(timeout).is_ok() {
|
if nfc_driver.configure_sam(timeout).is_ok() {
|
||||||
log::info!("NFC SAM configuration successful");
|
log::info!("NFC SAM configuration successful");
|
||||||
@@ -109,24 +111,7 @@ async fn main(spawner: Spawner) {
|
|||||||
log::error!("NFC SAM configuration failed");
|
log::error!("NFC SAM configuration failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
log::info!("Setup complete, entering main loop");
|
|
||||||
loop {
|
loop {
|
||||||
if let Ok(card_data) = nfc_driver.read_card_data() {
|
|
||||||
log::info!("NFC Card Read: {:?}", card_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
if button1.is_low() {
|
|
||||||
log::info!("Button pressed!");
|
|
||||||
display.clear(Rgb565::BLACK).unwrap();
|
|
||||||
let payload = if nav_state.toggle_payload() {
|
|
||||||
&MOCK_PAYLOAD
|
|
||||||
} else {
|
|
||||||
&MOCK_PAYLOAD2
|
|
||||||
};
|
|
||||||
|
|
||||||
render_nfc_payload(&mut display, payload);
|
|
||||||
}
|
|
||||||
Timer::after_millis(10).await;
|
Timer::after_millis(10).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user