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