altosui: Handle already-opened link in IgniteUI
[fw/altos] / src / core / ao_gps_report_mega.c
index e2adbfbc90b38563ccfbf0f5dab57b911b077b69..07a2bc5b0ce7790f0c43ed4bcb88e2897ed761ab 100644 (file)
@@ -24,14 +24,13 @@ ao_gps_report_mega(void)
        static __xdata struct ao_log_mega               gps_log;
        static __xdata struct ao_telemetry_location     gps_data;
        static __xdata struct ao_telemetry_satellite    gps_tracking_data;
-       uint8_t date_reported = 0;
        uint8_t new;
        uint8_t c, n, i;
 
        for (;;) {
-               ao_mutex_get(&ao_gps_mutex);
                while (!(new = ao_gps_new))
                        ao_sleep(&ao_gps_new);
+               ao_mutex_get(&ao_gps_mutex);
                if (new & AO_GPS_NEW_DATA)
                        ao_xmemcpy(&gps_data, &ao_gps_data, sizeof (ao_gps_data));
                if (new & AO_GPS_NEW_TRACKING)
@@ -53,6 +52,13 @@ ao_gps_report_mega(void)
                        gps_log.u.gps.year = gps_data.year;
                        gps_log.u.gps.month = gps_data.month;
                        gps_log.u.gps.day = gps_data.day;
+                       gps_log.u.gps.course = gps_data.course;
+                       gps_log.u.gps.ground_speed = gps_data.ground_speed;
+                       gps_log.u.gps.climb_rate = gps_data.climb_rate;
+                       gps_log.u.gps.pdop = gps_data.pdop;
+                       gps_log.u.gps.hdop = gps_data.hdop;
+                       gps_log.u.gps.vdop = gps_data.vdop;
+                       gps_log.u.gps.mode = gps_data.mode;
                        ao_log_mega(&gps_log);
                }
                if ((new & AO_GPS_NEW_TRACKING) && (n = gps_tracking_data.channels) != 0) {