X-Git-Url: http://git.code-monkey.de/?p=gps-watch.git;a=blobdiff_plain;f=src%2Fapplication%2Fmain.rs;h=7eb180cbfa0bf42fcde3b8c9f45aceb9a822e4a0;hp=f1aaafe40b1a5e0bc7273f3231a68f3b331c6eda;hb=27fb2d412d1e9d6a2efe6397a9765ec592918a06;hpb=c14bb6b5cfbfdc40c7e5d981645604811041b640 diff --git a/src/application/main.rs b/src/application/main.rs index f1aaafe..7eb180c 100644 --- a/src/application/main.rs +++ b/src/application/main.rs @@ -132,9 +132,11 @@ pub unsafe extern "C" fn _start() -> ! { let mut gps_has_fix_ticks = 0; let mut heart_icon_timer = Timer::new(1000); + let mut gps_icon_timer = Timer::new(500); loop { let mut tap = gps::TimeAndPos::new(); + let old_gps_has_fix = gps_has_fix; while gps.update(&mut tap) { gps_has_fix = true; @@ -146,6 +148,30 @@ pub unsafe extern "C" fn _start() -> ! { gps_has_fix = false; } + if gps_has_fix && !old_gps_has_fix { + display.show_icon(display::Icon::SatelliteBody); + display.show_icon(display::Icon::SatelliteWave1); + display.show_icon(display::Icon::SatelliteWave2); + } else if !gps_has_fix { + gps_icon_timer.update(|state| { + if state == 1 { + display.show_icon(display::Icon::SatelliteWave1); + 2 + } else if state == 2 { + display.show_icon(display::Icon::SatelliteWave2); + 3 + } else if state == 3 { + display.hide_icon(display::Icon::SatelliteBody); + display.hide_icon(display::Icon::SatelliteWave1); + display.hide_icon(display::Icon::SatelliteWave2); + 0 + } else { + display.show_icon(display::Icon::SatelliteBody); + 1 + } + }); + } + heart_icon_timer.update(|state| { if state == 1 { display.hide_icon(display::Icon::Heart);