improved char display API

This commit was merged in pull request #41.
This commit is contained in:
2026-08-25 01:05:23 +02:00
parent a051bcd08a
commit e26b1f571d
3 changed files with 382 additions and 90 deletions
+9 -3
View File
@@ -12,7 +12,9 @@ use creaturedex::drivers::i2c_bus::I2cBusPinConfiguration;
use creaturedex::drivers::nfc_pn532::NfcPn532Driver;
use creaturedex::drivers::secondary_oled::SecondaryDisplay;
use creaturedex::drivers::spi_bus;
use creaturedex::drivers::tertiary_lcd::{TertiaryDisplay, init_tertiary_lcd, write_wrapped};
use creaturedex::drivers::tertiary_lcd::{
BOX, EMPTY, EXAMPLE, HEART, TertiaryDisplay, TertiaryDisplayPinConfiguration,
};
use creaturedex::navigation::inputs::Inputs;
use creaturedex::navigation::navigation::{self};
use creaturedex::navigation::outputs::Outputs;
@@ -87,8 +89,12 @@ async fn main(spawner: Spawner) {
config.build()
};
let mut lcd: TertiaryDisplay = init_tertiary_lcd(AtomicDevice::new(shared_i2c));
if let Err(e) = write_wrapped(&mut lcd, "Testing more than 16 chars what happens now?") {
let mut lcd: TertiaryDisplay = TertiaryDisplayPinConfiguration { i2c: shared_i2c }.build();
lcd.load_charset(EXAMPLE).unwrap();
let h = EXAMPLE[HEART];
let e = EXAMPLE[EMPTY];
let b = EXAMPLE[BOX];
if let Err(e) = lcd.write(&alloc::format!("Custom symbols: {h}{e}{b}")) {
log::error!(
"Tertiary LCD startup text write failed over shared I2C bus; check the shared bus, wiring, and device responses: {e}"
);