altosui: Add config and pyro tabs to graph widget
[fw/altos] / src / test / ao_gps_test_skytraq.c
index 89cbd7677beebe4e140dc1d26eddfb60ef71852d..bd8998b77e959741daff920669cc13b78d606329 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +17,9 @@
  */
 
 #define AO_GPS_TEST
+#define AO_TICK_TYPE uint32_t
+#define HAS_GPS 1
+#define tick_count 0
 #include "ao_host.h"
 #include <termios.h>
 #include <errno.h>
@@ -26,6 +30,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)
@@ -44,12 +51,17 @@ struct ao_gps_orig {
        int16_t                 altitude;       /* m */
        uint16_t                ground_speed;   /* cm/s */
        uint8_t                 course;         /* degrees / 2 */
+       uint8_t                 pdop;           /* unused */
+       uint8_t                 vdop;           /* unused */
        uint8_t                 hdop;           /* * 5 */
        int16_t                 climb_rate;     /* cm/s */
        uint16_t                h_error;        /* m */
        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)
@@ -75,8 +87,8 @@ 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;
+extern struct ao_telemetry_location    ao_gps_data;
+extern struct ao_telemetry_satellite   ao_gps_tracking_data;
 
 uint8_t ao_gps_mutex;
 
@@ -443,7 +455,7 @@ uint8_t     ao_task_minimize_latency;
 void
 ao_dump_state(void *wchan)
 {
-       if (wchan == &ao_gps_data)
+       if (wchan == &ao_gps_new)
                ao_gps_show();
 }