Merge remote-tracking branch 'mjb/master'
[fw/altos] / src / drivers / ao_gps_skytraq.c
index 050573e877282012acf1776668396f980822bfdf..d80da97ca6ea44a2cd2828380afa55eda19f0a0b 100644 (file)
 #include "ao.h"
 #endif
 
+#ifndef ao_gps_getchar
+#define ao_gps_getchar ao_serial1_getchar
+#endif
+
+#ifndef ao_gps_putchar
+#define ao_gps_putchar ao_serial1_putchar
+#endif
+
+#ifndef ao_gps_set_speed
+#define ao_gps_set_speed       ao_serial1_set_speed
+#endif
+
 __xdata uint8_t ao_gps_mutex;
 static __data char ao_gps_char;
 static __data uint8_t ao_gps_cksum;
@@ -68,7 +80,7 @@ ao_gps_lexchar(void)
        if (ao_gps_error)
                c = '\n';
        else
-               c = ao_serial_getchar();
+               c = ao_gps_getchar();
        ao_gps_cksum ^= c;
        ao_gps_char = c;
 }
@@ -402,7 +414,7 @@ ao_skytraq_sendbytes(__code uint8_t *b, uint8_t l)
                uint8_t c = *b++;
                if (c == 0xa0)
                        ao_delay(AO_MS_TO_TICKS(500));
-               ao_serial_putchar(c);
+               ao_gps_putchar(c);
        }
 }
 
@@ -444,7 +456,7 @@ ao_gps_nmea_parse(void)
 void
 ao_gps(void) __reentrant
 {
-       ao_serial_set_speed(AO_SERIAL_SPEED_9600);
+       ao_gps_set_speed(AO_SERIAL_SPEED_9600);
 
        /* give skytraq time to boot in case of cold start */
        ao_delay(AO_MS_TO_TICKS(2000));
@@ -453,7 +465,7 @@ ao_gps(void) __reentrant
 
        for (;;) {
                /* Locate the begining of the next record */
-               if (ao_serial_getchar() == '$') {
+               if (ao_gps_getchar() == '$') {
                        ao_gps_nmea_parse();
                }
        }
@@ -468,7 +480,7 @@ gps_dump(void) __reentrant
        ao_mutex_get(&ao_gps_mutex);
        printf ("Date: %02d/%02d/%02d\n", ao_gps_data.year, ao_gps_data.month, ao_gps_data.day);
        printf ("Time: %02d:%02d:%02d\n", ao_gps_data.hour, ao_gps_data.minute, ao_gps_data.second);
-       printf ("Lat/Lon: %ld %ld\n", ao_gps_data.latitude, ao_gps_data.longitude);
+       printf ("Lat/Lon: %ld %ld\n", (long) ao_gps_data.latitude, (long) ao_gps_data.longitude);
        printf ("Alt: %d\n", ao_gps_data.altitude);
        printf ("Flags: 0x%x\n", ao_gps_data.flags);
        printf ("Sats: %d", ao_gps_tracking_data.channels);