altos: Extend GPS altitudes to at least 24 bits everywhere
[fw/altos] / src / test / ao_gps_test.c
index 3844a3265452f623d5065f48e31b6061cdabe002..543bbcc304b032ab69c6442dbf380ca62d596473 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)
@@ -50,6 +53,9 @@ struct ao_gps_orig {
        uint16_t                v_error;        /* m */
 };
 
+#define AO_TELEMETRY_LOCATION_ALTITUDE(l)      ((l)->altitude)
+#define AO_TELEMETRY_LOCATION_SET_ALTITUDE(l,a) ((l)->altitude = (a))
+
 #define SIRF_SAT_STATE_ACQUIRED                        (1 << 0)
 #define SIRF_SAT_STATE_CARRIER_PHASE_VALID     (1 << 1)
 #define SIRF_SAT_BIT_SYNC_COMPLETE             (1 << 2)
@@ -427,11 +433,18 @@ void
 ao_dump_state(void *wchan)
 {
        int     i;
-       if (wchan == &ao_gps_data)
+
+       if (wchan != &ao_gps_new)
+               return;
+
+       if (ao_gps_new & AO_GPS_NEW_DATA) {
                ao_gps_print(&ao_gps_data);
-       else
+               putchar('\n');
+       }
+       if (ao_gps_new & AO_GPS_NEW_TRACKING) {
                ao_gps_tracking_print(&ao_gps_tracking_data);
-       putchar('\n');
+               putchar('\n');
+       }
        return;
        printf ("%02d:%02d:%02d",
                ao_gps_data.hour, ao_gps_data.minute,