altos: Merge GPS logging into a single function
[fw/altos] / src / drivers / ao_gps_ublox.c
index 1bc2a68fdb6a66616bdecc1d8a6bd041a8f55897..3582d6e0a0fdaa457f5d652f926faa73f9f57c58 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <stdarg.h>
 
+__xdata uint8_t ao_gps_new;
 __xdata uint8_t ao_gps_mutex;
 __pdata uint16_t ao_gps_tick;
 __xdata struct ao_telemetry_location   ao_gps_data;
@@ -702,9 +703,9 @@ ao_gps(void) __reentrant
                        continue;
 
                switch (class) {
-               case 0x01:
+               case UBLOX_NAV:
                        switch (id) {
-                       case 0x21:
+                       case UBLOX_NAV_TIMEUTC:
                                ao_mutex_get(&ao_gps_mutex);
                                ao_gps_tick = ao_time();
 
@@ -760,8 +761,8 @@ ao_gps(void) __reentrant
                                }
 
                                ao_mutex_put(&ao_gps_mutex);
-                               ao_wakeup(&ao_gps_data);
-                               ao_wakeup(&ao_gps_tracking_data);
+                               ao_gps_new = AO_GPS_NEW_DATA | AO_GPS_NEW_TRACKING;
+                               ao_wakeup(&ao_gps_new);
                                break;
                        }
                        break;