all_methods/
all_methods.rs1use std::io::Write;
2
3use std::{thread, time};
4
5use charlcd::Screen;
6
7macro_rules! test_method {
8 ($screen: ident, $method:ident) => {
9 $screen.clear()?;
10 $screen.flush()?;
11 $screen.write(stringify!($method).as_bytes())?;
12 $screen.write(b"..")?;
13 $screen.flush()?;
14
15 thread::sleep(time::Duration::from_secs(2));
16
17 $screen.$method()?;
18 $screen.write(b"ok")?;
19 $screen.flush()?;
20
21 thread::sleep(time::Duration::from_secs(2));
22 };
23}
24
25fn main() -> std::io::Result<()> {
26 let mut screen = Screen::default()?;
27
28 test_method!(screen, reinit);
29 test_method!(screen, display_off);
30 test_method!(screen, display_on);
31 test_method!(screen, backlight_on);
32 test_method!(screen, backlight_off);
33 test_method!(screen, cursor_off);
34 test_method!(screen, cursor_on);
35 test_method!(screen, blink_on);
36 test_method!(screen, blink_off);
37 test_method!(screen, shift_cursor_left);
38 test_method!(screen, shift_cursor_right);
39 test_method!(screen, shift_display_left);
40 test_method!(screen, kill_eol);
41 test_method!(screen, shift_display_right);
42 test_method!(screen, one_line);
43 test_method!(screen, two_lines);
44
45 test_method!(screen, reinit);
47
48 Ok(())
49}