Browse Source

Use embedded_hal::digital::v2 (v1 is deprecated)

v0.4
Christoph Grabo 3 years ago
parent
commit
a9f27e51ae
No known key found for this signature in database
GPG Key ID: 1FE689DF1A1AEE6C
  1. 2
      Cargo.toml
  2. 2
      src/epd1in54/mod.rs
  3. 2
      src/epd1in54b/mod.rs
  4. 2
      src/epd2in9/mod.rs
  5. 2
      src/epd4in2/mod.rs
  6. 2
      src/epd7in5/mod.rs
  7. 20
      src/interface.rs
  8. 2
      src/traits.rs

2
Cargo.toml

@ -36,4 +36,4 @@ version = "0.5.2"
[dependencies.embedded-hal]
features = ["unproven"]
version = "0.2.1"
version = "0.2.3"

2
src/epd1in54/mod.rs

@ -41,7 +41,7 @@ const IS_BUSY_LOW: bool = false;
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::*,
digital::v2::*,
};
use crate::type_a::{

2
src/epd1in54b/mod.rs

@ -2,7 +2,7 @@
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::*,
digital::v2::*,
};
use crate::interface::DisplayInterface;

2
src/epd2in9/mod.rs

@ -42,7 +42,7 @@ const IS_BUSY_LOW: bool = false;
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::*,
digital::v2::*,
};
use crate::type_a::{

2
src/epd4in2/mod.rs

@ -48,7 +48,7 @@
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::*,
digital::v2::*,
};
use crate::interface::DisplayInterface;

2
src/epd7in5/mod.rs

@ -8,7 +8,7 @@
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::v1::{InputPin, OutputPin},
digital::v2::{InputPin, OutputPin},
};
use crate::color::Color;

20
src/interface.rs

@ -2,7 +2,7 @@ use crate::traits::Command;
use core::marker::PhantomData;
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::*,
digital::v2::*,
};
/// The Connection Interface of all (?) Waveshare EPD-Devices
@ -43,7 +43,7 @@ where
/// Enables direct interaction with the device with the help of [data()](DisplayInterface::data())
pub(crate) fn cmd<T: Command>(&mut self, spi: &mut SPI, command: T) -> Result<(), SPI::Error> {
// low for commands
self.dc.set_low();
let _ = self.dc.set_low();
// Transfer the command over spi
self.write(spi, &[command.address()])
@ -54,7 +54,7 @@ where
/// Enables direct interaction with the device with the help of [command()](EPD4in2::command())
pub(crate) fn data(&mut self, spi: &mut SPI, data: &[u8]) -> Result<(), SPI::Error> {
// high for data
self.dc.set_high();
let _ = self.dc.set_high();
// Transfer data (u8-array) over spi
self.write(spi, data)
@ -83,7 +83,7 @@ where
repetitions: u32,
) -> Result<(), SPI::Error> {
// high for data
self.dc.set_high();
let _ = self.dc.set_high();
// Transfer data (u8) over spi
for _ in 0..repetitions {
self.write(spi, &[val])?;
@ -94,7 +94,7 @@ where
// spi write helper/abstraction function
fn write(&mut self, spi: &mut SPI, data: &[u8]) -> Result<(), SPI::Error> {
// activate spi with cs low
self.cs.set_low();
let _ = self.cs.set_low();
// transfer spi data
// Be careful!! Linux has a default limit of 4096 bytes per spi transfer
@ -108,7 +108,7 @@ where
}
// deativate spi with cs high
self.cs.set_high();
let _ = self.cs.set_high();
Ok(())
}
@ -138,7 +138,7 @@ where
}
/// Checks if device is still busy
///
///
/// This is normally handled by the more complicated commands themselves,
/// but in the case you send data and commands directly you might need to check
/// if the device is still busy
@ -151,7 +151,7 @@ where
/// Most likely there was a mistake with the 2in9 busy connection
/// //TODO: use the #cfg feature to make this compile the right way for the certain types
pub(crate) fn is_busy(&self, is_busy_low: bool) -> bool {
(is_busy_low && self.busy.is_low()) || (!is_busy_low && self.busy.is_high())
(is_busy_low && self.busy.is_low().unwrap_or(false)) || (!is_busy_low && self.busy.is_high().unwrap_or(false))
}
/// Resets the device.
@ -160,10 +160,10 @@ where
///
/// TODO: Takes at least 400ms of delay alone, can it be shortened?
pub(crate) fn reset<DELAY: DelayMs<u8>>(&mut self, delay: &mut DELAY) {
self.rst.set_low();
let _ = self.rst.set_low();
//TODO: why 200ms? (besides being in the arduino version)
delay.delay_ms(200);
self.rst.set_high();
let _ = self.rst.set_high();
//TODO: same as 3 lines above
delay.delay_ms(200);
}

2
src/traits.rs

@ -2,7 +2,7 @@ use crate::color::Color;
use core::marker::Sized;
use embedded_hal::{
blocking::{delay::*, spi::Write},
digital::*,
digital::v2::*,
};
/// All commands need to have this trait which gives the address of the command

Loading…
Cancel
Save