Browse Source

Cleanup of WaveshareInterface

-Removed update_and_display_frame
-removed update_and_display_partial_frame

-Renamed get_width and get_height to just width and height
embedded-hal-1.0
Christoph Groß 7 years ago
parent
commit
fa6bce5ee7
  1. 4
      src/epd1in54/mod.rs
  2. 21
      src/epd2in9/mod.rs
  3. 4
      src/epd4in2/mod.rs
  4. 33
      src/interface/mod.rs

4
src/epd1in54/mod.rs

@ -108,11 +108,11 @@ where
RST: OutputPin,
Delay: DelayUs<u16> + DelayMs<u16>,
{
fn get_width(&self) -> u16 {
fn width(&self) -> u16 {
WIDTH
}
fn get_height(&self) -> u16 {
fn height(&self) -> u16 {
HEIGHT
}

21
src/epd2in9/mod.rs

@ -113,11 +113,11 @@ where
RST: OutputPin,
Delay: DelayUs<u16> + DelayMs<u16>,
{
fn get_width(&self) -> u16 {
fn width(&self) -> u16 {
WIDTH
}
fn get_height(&self) -> u16 {
fn height(&self) -> u16 {
HEIGHT
}
@ -187,23 +187,6 @@ where
self.interface.command(Command::NOP)
}
fn update_and_display_frame(&mut self, buffer: &[u8]) -> Result<(), ERR> {
self.update_frame(buffer)?;
self.display_frame()
}
fn update_and_display_partial_frame(
&mut self,
buffer: &[u8],
x: u16,
y: u16,
width: u16,
height: u16,
) -> Result<(), ERR> {
self.update_partial_frame(buffer, x, y, width, height)?;
self.display_frame()
}
fn clear_frame(&mut self) -> Result<(), ERR> {
self.use_full_frame()?;

4
src/epd4in2/mod.rs

@ -291,11 +291,11 @@ where
&self.color
}
fn get_width(&self) -> u16 {
fn width(&self) -> u16 {
WIDTH
}
fn get_height(&self) -> u16 {
fn height(&self) -> u16 {
HEIGHT
}

33
src/interface/mod.rs

@ -9,12 +9,14 @@ use color::Color;
/// Interface for the physical connection between display and the controlling device
pub(crate) mod connection_interface;
/// All commands need to have this trait which gives the address of the command
/// which needs to be send via SPI with activated CommandsPin (Data/Command Pin in CommandMode)
pub(crate) trait Command {
fn address(self) -> u8;
}
//TODO: add LUT trait with set_fast_lut and set_manual_lut and set_normal_lut or sth like that?
// for partial updates
trait LUTSupport<ERR> {
@ -23,6 +25,7 @@ trait LUTSupport<ERR> {
fn set_lut_manual(&mut self, data: &[u8]) -> Result<(), ERR>;
}
pub(crate) trait InternalWiAdditions<SPI, CS, BUSY, DC, RST, Delay, ERR>
where
SPI: Write<u8>,
@ -64,27 +67,7 @@ where
spi: SPI, cs: CS, busy: BUSY, dc: DC, rst: RST, delay: Delay,
) -> Result<Self, ERR>
where
Self: Sized;
// TODO: add this abstraction function
/// Loads a full image on the EPD and displays it
fn update_and_display_frame(&mut self, buffer: &[u8]) -> Result<(), ERR> {
self.update_frame(buffer)?;
self.display_frame()
}
/// Loads a partial image on the EPD and displays it
fn update_and_display_partial_frame(
&mut self,
buffer: &[u8],
x: u16,
y: u16,
width: u16,
height: u16,
) -> Result<(), ERR> {
self.update_partial_frame(buffer, x, y, width, height)?;
self.display_frame()
}
Self: Sized;
/// Let the device enter deep-sleep mode to save power.
///
@ -104,19 +87,17 @@ where
fn background_color(&self) -> &Color;
/// Get the width of the display
fn get_width(&self) -> u16;
fn width(&self) -> u16;
/// Get the height of the display
fn get_height(&self) -> u16;
fn height(&self) -> u16;
/// Abstraction of setting the delay for simpler calls
///
/// maximum delay ~65 seconds (u16:max in ms)
fn delay_ms(&mut self, delay: u16);
// void DisplayFrame(const unsigned char* frame_buffer);
/// Transmit a full frame to the SRAM of the DPD
///
/// Transmit a full frame to the SRAM of the EPD
fn update_frame(&mut self, buffer: &[u8]) -> Result<(), ERR>;
/// Transmits partial data to the SRAM of the EPD

Loading…
Cancel
Save