altos: Sort out ao_gps_print altitude fetching
authorKeith Packard <keithp@keithp.com>
Sat, 25 Oct 2014 17:17:48 +0000 (10:17 -0700)
committerKeith Packard <keithp@keithp.com>
Sat, 25 Oct 2014 17:17:48 +0000 (10:17 -0700)
ao_gps_print is used by both teledongle/telebt and the host-based GPS
test code. The first instance uses the old internal GPS structure,
containing just a 16-bit altitude while the second uses an
ao_telemetry structure, which contains 32 bits split into two
members.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/kernel/ao_gps_print.c
src/test/ao_gps_test_ublox.c

index d26021da86b9511f340d9fbd203b730b3436b99d..6d9ee346ae4268312bb6ba800f9823786ed05329 100644 (file)
@@ -20,8 +20,8 @@
 #endif
 #include "ao_telem.h"
 
-#ifndef AO_TELEMETRY_LOCATION_ALTITUDE
-#define AO_TELEMETRY_LOCATION_ALTITUDE(l)      ((l)->altitude)
+#ifndef AO_GPS_ORIG_ALTITUDE
+#define AO_GPS_ORIG_ALTITUDE(l)        ((l)->altitude)
 #endif
 
 void
@@ -46,7 +46,7 @@ ao_gps_print(__xdata struct ao_gps_orig *gps_data) __reentrant
               AO_TELEM_GPS_ALTITUDE " %d ",
               (long) gps_data->latitude,
               (long) gps_data->longitude,
-              AO_TELEMETRY_LOCATION_ALTITUDE(gps_data));
+              AO_GPS_ORIG_ALTITUDE(gps_data));
 
        if (gps_data->flags & AO_GPS_DATE_VALID)
                printf(AO_TELEM_GPS_YEAR " %d "
index 5ea205d66792fd1e6ce4391cb516a24e6d764859..83efbb4fcf01ce650d9317c9f552800e81495333 100644 (file)
@@ -59,6 +59,7 @@ struct ao_telemetry_location {
 
 typedef int32_t                gps_alt_t;
 #define AO_TELEMETRY_LOCATION_ALTITUDE(l)      (((gps_alt_t) (l)->altitude_high << 16) | ((l)->altitude_low))
+#define AO_GPS_ORIG_ALTITUDE(l)                        AO_TELEMETRY_LOCATION_ALTITUDE(l)
 #define AO_TELEMETRY_LOCATION_SET_ALTITUDE(l,a) (((l)->altitude_high = (a) >> 16), \
                                                 ((l)->altitude_low = (a)))