altos: Fix GPS test frameworks to handle shared ao_gps_new variable
[fw/altos] / src / test / ao_gps_test_skytraq.c
index 81008b39ebc282e6aa4682779691d6e2580528b2..1b590d5e972a5fff6bce45cf37f069c7f9a492ad 100644 (file)
@@ -26,6 +26,9 @@
 #define AO_GPS_NUM_SAT_MASK    (0xf << 0)
 #define AO_GPS_NUM_SAT_SHIFT   (0)
 
+#define AO_GPS_NEW_DATA                1
+#define AO_GPS_NEW_TRACKING    2
+
 #define AO_GPS_VALID           (1 << 4)
 #define AO_GPS_RUNNING         (1 << 5)
 #define AO_GPS_DATE_VALID      (1 << 6)
@@ -75,6 +78,11 @@ struct ao_gps_tracking_orig {
 #define ao_telemetry_satellite ao_gps_tracking_orig
 #define ao_telemetry_satellite_info ao_gps_sat_orig
 
+extern __xdata struct ao_telemetry_location    ao_gps_data;
+extern __xdata struct ao_telemetry_satellite   ao_gps_tracking_data;
+
+uint8_t ao_gps_mutex;
+
 void
 ao_mutex_get(uint8_t *mutex)
 {
@@ -432,17 +440,14 @@ uint8_t   ao_task_minimize_latency;
 #define ao_usb_getchar()       0
 
 #include "ao_gps_print.c"
+#include "ao_gps_show.c"
 #include "ao_gps_skytraq.c"
 
 void
 ao_dump_state(void *wchan)
 {
-       if (wchan == &ao_gps_data)
-               ao_gps_print(&ao_gps_data);
-       else
-               ao_gps_tracking_print(&ao_gps_tracking_data);
-       putchar('\n');
-       return;
+       if (wchan == &ao_gps_new)
+               ao_gps_show();
 }
 
 int