|
|
|
@ -1,22 +1,38 @@
|
|
|
|
|
//! A simple Driver for the Waveshare 2.9" E-Ink Display via SPI
|
|
|
|
|
//!
|
|
|
|
|
//! Untested!
|
|
|
|
|
//!
|
|
|
|
|
//! # Examples from the 4.2" Display. It should work the same for the 2.9" one.
|
|
|
|
|
//!
|
|
|
|
|
//! # Example for the 2.9 in E-Ink Display
|
|
|
|
|
//!
|
|
|
|
|
//! ```ignore
|
|
|
|
|
//! let mut epd4in2 = EPD4in2::new(spi, cs, busy, dc, rst, delay).unwrap();
|
|
|
|
|
//!
|
|
|
|
|
//! let mut buffer = [0u8, epd4in2.get_width() / 8 * epd4in2.get_height()];
|
|
|
|
|
//!
|
|
|
|
|
//! // draw something into the buffer
|
|
|
|
|
//!
|
|
|
|
|
//! epd4in2.display_and_transfer_buffer(buffer, None);
|
|
|
|
|
//!
|
|
|
|
|
//! // wait and look at the image
|
|
|
|
|
//! use eink_waveshare_rs::{
|
|
|
|
|
//! epd2in9::{EPD2in9, Buffer2in9},
|
|
|
|
|
//! graphics::{Display, DisplayRotation},
|
|
|
|
|
//! prelude::*,
|
|
|
|
|
//! };
|
|
|
|
|
//!
|
|
|
|
|
//! // Setup EPD
|
|
|
|
|
//! let mut epd = EPD2in9::new(&mut spi, cs_pin, busy_in, dc, rst, &mut delay)?;
|
|
|
|
|
//!
|
|
|
|
|
//! epd4in2.clear_frame(None);
|
|
|
|
|
//! // Use display graphics
|
|
|
|
|
//! let mut buffer = Buffer2in9::default();
|
|
|
|
|
//! let mut display = Display::new(epd.width(), epd.height(), &mut buffer.buffer);
|
|
|
|
|
//!
|
|
|
|
|
//! // Write some hello world in the screenbuffer
|
|
|
|
|
//! display.draw(
|
|
|
|
|
//! Font6x8::render_str("Hello World!")
|
|
|
|
|
//! .with_stroke(Some(Color::Black))
|
|
|
|
|
//! .with_fill(Some(Color::White))
|
|
|
|
|
//! .translate(Coord::new(5, 50))
|
|
|
|
|
//! .into_iter(),
|
|
|
|
|
//! );
|
|
|
|
|
//!
|
|
|
|
|
//! epd4in2.sleep();
|
|
|
|
|
//! // Display updated frame
|
|
|
|
|
//! epd.update_frame(&mut spi, &display.buffer()).unwrap();
|
|
|
|
|
//! epd.display_frame(&mut spi).expect("display frame new graphics");
|
|
|
|
|
//!
|
|
|
|
|
//! // Set the EPD to sleep
|
|
|
|
|
//! epd.sleep(&mut spi).expect("sleep");
|
|
|
|
|
//! ```
|
|
|
|
|
|
|
|
|
|
pub const WIDTH: u32 = 128;
|
|
|
|
|