diff --git a/examples/embedded_linux_epd4in2/src/main.rs b/examples/embedded_linux_epd4in2/src/main.rs index 43358c2..74cfece 100644 --- a/examples/embedded_linux_epd4in2/src/main.rs +++ b/examples/embedded_linux_epd4in2/src/main.rs @@ -122,73 +122,7 @@ fn run() -> Result<(), std::io::Error> { //fixed currently with the HackInputPin, see further above let mut epd4in2 = EPD4in2::new(&mut spi, cs, busy_in, dc, rst, &mut delay).expect("eink initalize error"); - // //let mut buffer = [0u8, epd4in2.get_width() / 8 * epd4in2.get_height()]; - // let mut buffer = [0u8; 15000]; - - // // draw something - // let mut graphics = Graphics::new(400, 300, &mut buffer); - // graphics.clear(&Color::White); - // graphics.draw_line(0,0,400,300, &Color::Black); - - // graphics.draw_filled_rectangle(200,200, 230, 230, &Color::Black); - // graphics.draw_line(202,202,218,228, &Color::White); - - // graphics.draw_circle(200, 150, 130, &Color::Black); - - // graphics.draw_pixel(390, 290, &Color::Black); - - // graphics.draw_horizontal_line(0, 150, 400, &Color::Black); - - // graphics.draw_vertical_line(200, 50, 200, &Color::Black); - - // epd4in2.clear_frame(&mut spi).expect("clear frame error"); - // epd4in2.update_frame(&mut spi, graphics.get_buffer()).expect("update frame error"); - // epd4in2.display_frame(&mut spi)?; - - // println!("Finished basic old graphics test"); - - // delay.delay_ms(3000u16); - - // epd4in2.clear_frame(&mut spi)?; - - // //Test fast updating a bit more - // let mut small_buffer = [0x00; 128]; - // let mut circle_graphics = Graphics::new(32,32, &mut small_buffer); - // circle_graphics.draw_circle(16,16, 10, &Color::Black); - - // epd4in2.update_partial_frame(&mut spi, circle_graphics.get_buffer(), 16,16, 32, 32).expect("update frame error"); - // epd4in2.display_frame(&mut spi)?; - - // epd4in2.update_partial_frame(&mut spi, circle_graphics.get_buffer(), 128,64, 32, 32).expect("update partial frame error"); - // epd4in2.display_frame(&mut spi)?; - - // epd4in2.update_partial_frame(&mut spi, circle_graphics.get_buffer(), 320,24, 32, 32).expect("update partial frame error"); - // epd4in2.display_frame(&mut spi)?; - - // epd4in2.update_partial_frame(&mut spi, circle_graphics.get_buffer(), 160,240, 32, 32).expect("update partial frame error"); - // epd4in2.display_frame(&mut spi)?; - - // println!("Finished partial update test"); - - // delay.delay_ms(3000u16); - - - - - // //pub fn draw_string_8x8(&self, buffer: &mut[u8], x0: u16, y0: u16, input: &str, color: &Color) { - // graphics.draw_string_8x8(16, 16, "hello", &Color::Black); - // graphics.draw_char_8x8(250, 250, '#', &Color::Black); - // graphics.draw_char_8x8(300, 16, '7', &Color::Black); - // epd4in2.update_frame(&mut spi, graphics.get_buffer())?; - // epd4in2.display_frame(&mut spi)?; - - // println!("Finished draw string test"); - - //delay.delay_ms(3000u16); - - println!("Now test new graphics:"); - - println!("Now test new graphics with rotate0:"); + println!("Test all the rotations"); let mut display = DisplayEink42BlackWhite::default(); display.set_rotation(DisplayRotation::Rotate0); display.draw( @@ -198,27 +132,7 @@ fn run() -> Result<(), std::io::Error> { .translate(Coord::new(5, 50)) .into_iter(), ); - display.draw( - Font6x8::render_str("Rotate 0 - inverse!") - .with_stroke(Some(Color::White)) - .with_fill(Some(Color::Black)) - .translate(Coord::new(50, 70)) - .into_iter(), - ); - display.draw( - Line::new(Coord::new(5, 5), Coord::new(15, 15)) - .with_stroke(Some(Color::Black)) - .into_iter(), - ); - - - epd4in2.update_frame(&mut spi, &display.buffer()).unwrap(); - epd4in2.display_frame(&mut spi).expect("display frame new graphics"); - delay.delay_ms(2000u16); - - println!("Now test new graphics with rotate90:"); - let mut display = DisplayEink42BlackWhite::default(); display.set_rotation(DisplayRotation::Rotate90); display.draw( Font6x8::render_str("Rotate 90!") @@ -227,17 +141,7 @@ fn run() -> Result<(), std::io::Error> { .translate(Coord::new(5, 50)) .into_iter(), ); - display.draw( - Line::new(Coord::new(5, 5), Coord::new(15, 15)) - .with_stroke(Some(Color::Black)) - .into_iter(), - ); - epd4in2.update_frame(&mut spi, &display.buffer()).unwrap(); - epd4in2.display_frame(&mut spi).expect("display frame new graphics"); - delay.delay_ms(2000u16); - println!("Now test new graphics with rotate180:"); - let mut display = DisplayEink42BlackWhite::default(); display.set_rotation(DisplayRotation::Rotate180); display.draw( Font6x8::render_str("Rotate 180!") @@ -246,17 +150,7 @@ fn run() -> Result<(), std::io::Error> { .translate(Coord::new(5, 50)) .into_iter(), ); - display.draw( - Line::new(Coord::new(5, 5), Coord::new(15, 15)) - .with_stroke(Some(Color::Black)) - .into_iter(), - ); - epd4in2.update_frame(&mut spi, &display.buffer()).unwrap(); - epd4in2.display_frame(&mut spi).expect("display frame new graphics"); - delay.delay_ms(2000u16); - println!("Now test new graphics with rotate270:"); - let mut display = DisplayEink42BlackWhite::default(); display.set_rotation(DisplayRotation::Rotate270); display.draw( Font6x8::render_str("Rotate 270!") @@ -265,18 +159,17 @@ fn run() -> Result<(), std::io::Error> { .translate(Coord::new(5, 50)) .into_iter(), ); - display.draw( - Line::new(Coord::new(5, 5), Coord::new(15, 15)) - .with_stroke(Some(Color::Black)) - .into_iter(), - ); + + epd4in2.update_frame(&mut spi, &display.buffer()).unwrap(); epd4in2.display_frame(&mut spi).expect("display frame new graphics"); - delay.delay_ms(2000u16); + delay.delay_ms(5000u16); println!("Now test new graphics with default rotation and some special stuff:"); let mut display = DisplayEink42BlackWhite::default(); + + // draw a analog clock display.draw( Circle::new(Coord::new(64, 64), 64) .with_stroke(Some(Color::Black)) @@ -292,6 +185,8 @@ fn run() -> Result<(), std::io::Error> { .with_stroke(Some(Color::Black)) .into_iter(), ); + + // draw white on black background display.draw( Font6x8::render_str("It's working-WoB!") // Using Style here @@ -304,18 +199,7 @@ fn run() -> Result<(), std::io::Error> { .into_iter(), ); - display.draw( - Font6x8::render_str("It's working-BoW!") - // Using Style here - .with_style(Style { - fill_color: Some(Color::White), - stroke_color: Some(Color::Black), - stroke_width: 0u8, // Has no effect on fonts - }) - .translate(Coord::new(50, 200)) - .into_iter(), - ); - + // use bigger/different font display.draw( Font12x16::render_str("It's working-BoW!") // Using Style here @@ -324,32 +208,18 @@ fn run() -> Result<(), std::io::Error> { stroke_color: Some(Color::Black), stroke_width: 0u8, // Has no effect on fonts }) - .translate(Coord::new(50, 22)) - .into_iter(), - ); - - display.draw( - Line::new(Coord::new(60, 28), Coord::new(120, 28)) - .with_stroke(Some(Color::White)) - .into_iter(), - ); - - display.draw( - Line::new(Coord::new(90, 14), Coord::new(90, 42)) - .with_stroke(Some(Color::Black)) + .translate(Coord::new(50, 200)) .into_iter(), ); - - let mut i = 0; - let mut limit = 2; - loop { - i += 1; + // a moving `Hello World!` + let limit = 10; + for i in 0..limit { println!("Moving Hello World. Loop {} from {}", i, limit); display.draw( - Font6x8::render_str("Hello World!") + Font6x8::render_str(" Hello World! ") .with_style(Style { fill_color: Some(Color::White), stroke_color: Some(Color::Black), @@ -361,10 +231,7 @@ fn run() -> Result<(), std::io::Error> { epd4in2.update_frame(&mut spi, &display.buffer()).unwrap(); epd4in2.display_frame(&mut spi).expect("display frame new graphics"); - if i >= limit { - - break; - } + delay.delay_ms(1_000u16); }