Making a better secondary display
This commit is contained in:
38
src/main.rs
38
src/main.rs
@@ -18,8 +18,11 @@ mod forms;
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
|
||||
let mut screen = forms::Screen::new(200, 200);
|
||||
let mut course_screen = forms::Screen::new(200, 200);
|
||||
let mut navigation_screen = forms::Screen::new(160,320);
|
||||
|
||||
let mut loader = forms::Loader::new("/root/helms-display".to_string());
|
||||
|
||||
let c = loader.load_form("compass-rose.svg").unwrap();
|
||||
let b = loader.load_form("boat.svg").unwrap();
|
||||
let cog = loader.load_form("cog.svg").unwrap();
|
||||
@@ -37,20 +40,29 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
let mut e = ilidisplay::IliDisplay::init()?;
|
||||
e.init_chip();
|
||||
e.turn_on();
|
||||
for i in 0..10 {
|
||||
let rad = (i as f32) * 2.0*PI / 100.0;
|
||||
screen.clear();
|
||||
screen.render(&cog, -rad*2.0, 500, 500);
|
||||
screen.render(&wind, rad*2.0, 500, 500);
|
||||
screen.render(&c, rad, 500, 500);
|
||||
screen.render(&b, 0.0, 500, 500);
|
||||
e.put_image(&(screen.image), ((240-100), (160-100)));
|
||||
}
|
||||
screen.save();
|
||||
|
||||
|
||||
// draw_filled_rect_mut(&mut img, Rect::at(0,0).of_size(480, 320), Rgb([0, 0, 0]));
|
||||
course_screen.clear();
|
||||
let rad = (6 as f32) * 2.0*PI / 100.0;
|
||||
course_screen.clear();
|
||||
course_screen.render(&cog, -rad*2.0, 500, 500);
|
||||
course_screen.render(&wind, rad*2.0, 500, 500);
|
||||
course_screen.render(&c, rad, 500, 500);
|
||||
course_screen.render(&b, 0.0, 500, 500);
|
||||
e.put_image(&(course_screen.image), (160, (160-100)));
|
||||
|
||||
navigation_screen.clear();
|
||||
navigation_screen.text(&font, "SOG", 32.0, 5, 5);
|
||||
navigation_screen.text(&font, "speed over ground", 12.0, 5, 38);
|
||||
let speed_over_ground = 5.0; // in m/s
|
||||
let speed_over_ground = speed_over_ground * 1.9438612860586; // now in nautic miles per hour
|
||||
navigation_screen.text_rj(&font, &format!("{:.1}", speed_over_ground).as_str(), 32.0, 138, 5);
|
||||
navigation_screen.fraction(&font, "nm", "h", 14.0, 140, 6);
|
||||
e.put_image(&(navigation_screen.image), (0, 0));
|
||||
|
||||
navigation_screen.save();
|
||||
|
||||
println!("You should see image now, sleeping for 5s");
|
||||
println!("Display has been rendered now, sleeping for 5s");
|
||||
thread::sleep(Duration::from_millis(5000));
|
||||
e.turn_off();
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user