#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;
if (ao_gps_error)
c = '\n';
else
- c = ao_serial_getchar();
+ c = ao_gps_getchar();
ao_gps_cksum ^= c;
ao_gps_char = c;
}
uint8_t c = *b++;
if (c == 0xa0)
ao_delay(AO_MS_TO_TICKS(500));
- ao_serial_putchar(c);
+ ao_gps_putchar(c);
}
}
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));
for (;;) {
/* Locate the begining of the next record */
- if (ao_serial_getchar() == '$') {
+ if (ao_gps_getchar() == '$') {
ao_gps_nmea_parse();
}
}
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);