Browse Source

improve example

embedded-hal-1.0
Chris 7 years ago
parent
commit
b3c41b0e7f
  1. 161
      examples/embedded_linux_epd4in2/src/main.rs

161
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);
}

Loading…
Cancel
Save