From 9167c643f916930d48f0cfc024381f25e2d44e9a Mon Sep 17 00:00:00 2001 From: Michael Beaumont Date: Fri, 27 Mar 2020 19:08:35 +0100 Subject: [PATCH] Add epd2in9bc to README, add example --- README.md | 1 + src/epd1in54/mod.rs | 2 +- src/epd2in9bc/mod.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d7a0489..6bbc916 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ epd.update_and_display_frame(&mut spi, &display.buffer())?; | [2.13 Inch B/W (A)](https://www.waveshare.com/product/2.13inch-e-paper-hat.htm) | Black, White | ✕ | ✔ | | | | [2.9 Inch B/W (A)](https://www.waveshare.com/product/2.9inch-e-paper-module.htm) | Black, White | ✕ | ✔ | ✔ | ✔ | | [1.54 Inch B/W/R (B)](https://www.waveshare.com/product/modules/oleds-lcds/e-paper/1.54inch-e-paper-module-b.htm) | Black, White, Red | ✕ | ✕ | ✔ | ✔ | +| [2.9 Inch B/W/R (B/C)](https://www.waveshare.com/product/displays/e-paper/epaper-2/2.9inch-e-paper-module-b.htm) | Black, White, Red | ✕ | ✕ | ✔ | ✔ | ### [1]: 7.5 Inch B/W V2 (A) diff --git a/src/epd1in54/mod.rs b/src/epd1in54/mod.rs index bc5cd5b..d532106 100644 --- a/src/epd1in54/mod.rs +++ b/src/epd1in54/mod.rs @@ -30,7 +30,7 @@ //! .into_styled(PrimitiveStyle::with_stroke(Black, 1)) //! .draw(&mut display); //! -//! // Display updated frame +//!// Display updated frame //!epd.update_frame(&mut spi, &display.buffer())?; //!epd.display_frame(&mut spi)?; //! diff --git a/src/epd2in9bc/mod.rs b/src/epd2in9bc/mod.rs index a857f69..e3bc43d 100644 --- a/src/epd2in9bc/mod.rs +++ b/src/epd2in9bc/mod.rs @@ -1,4 +1,58 @@ //! A simple Driver for the Waveshare 2.9" (B/C) E-Ink Display via SPI +//! +//! # Example for the 2.9" E-Ink Display +//! +//!```rust, no_run +//!# use embedded_hal_mock::*; +//!# fn main() -> Result<(), MockError> { +//!use embedded_graphics::{ +//! pixelcolor::BinaryColor::On as Black, prelude::*, primitives::Line, style::PrimitiveStyle, +//!}; +//!use epd_waveshare::{epd2in9bc::*, prelude::*}; +//!# +//!# let expectations = []; +//!# let mut spi = spi::Mock::new(&expectations); +//!# let expectations = []; +//!# let cs_pin = pin::Mock::new(&expectations); +//!# let busy_in = pin::Mock::new(&expectations); +//!# let dc = pin::Mock::new(&expectations); +//!# let rst = pin::Mock::new(&expectations); +//!# let mut delay = delay::MockNoop::new(); +//! +//!// Setup EPD +//!let mut epd = EPD2in9bc::new(&mut spi, cs_pin, busy_in, dc, rst, &mut delay)?; +//! +//!// Use display graphics from embedded-graphics +//!// This display is for the black/white pixels +//!let mut mono_display = Display2in9bc::default(); +//! +//!// Use embedded graphics for drawing +//!// A black line +//!let _ = Line::new(Point::new(0, 120), Point::new(0, 200)) +//! .into_styled(PrimitiveStyle::with_stroke(Black, 1)) +//! .draw(&mut mono_display); +//! +//!// Use a second display for red/yellow +//!let mut chromatic_display = Display2in9bc::default(); +//! +//!// We use `Black` but it will be shown as red/yellow +//!let _ = Line::new(Point::new(15, 120), Point::new(15, 200)) +//! .into_styled(PrimitiveStyle::with_stroke(Black, 1)) +//! .draw(&mut chromatic_display); +//! +//!// Display updated frame +//!epd.update_color_frame( +//! &mut spi, +//! &mono_display.buffer(), +//! &chromatic_display.buffer() +//!)?; +//!epd.display_frame(&mut spi)?; +//! +//!// Set the EPD to sleep +//!epd.sleep(&mut spi)?; +//!# Ok(()) +//!# } +//!``` use embedded_hal::{ blocking::{delay::*, spi::Write}, digital::v2::*,