diff options
author | Keith Packard <keithp@keithp.com> | 2012-03-23 00:40:48 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-03-28 21:37:04 -0700 |
commit | 606d866153cb639a2400cbedbc45046372ad1b30 (patch) | |
tree | 47a81d321d6576f381b516bf7dd64c233561f681 | |
parent | 25184baa36c20e3d661f94e642a33e8aae179d60 (diff) |
Allow skytraq to be on non-default serial port
Provide ao_gps_getchar, ao_gps_putchar and ao_gps_set_speed hooks to
let product specify functions for serial access.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | src/drivers/ao_gps_skytraq.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/drivers/ao_gps_skytraq.c b/src/drivers/ao_gps_skytraq.c index 050573e8..39e36cc8 100644 --- a/src/drivers/ao_gps_skytraq.c +++ b/src/drivers/ao_gps_skytraq.c @@ -19,6 +19,18 @@ #include "ao.h" #endif +#ifndef ao_gps_getchar +#define ao_gps_getchar ao_serial_getchar +#endif + +#ifndef ao_gps_putchar +#define ao_gps_putchar ao_serial_putchar +#endif + +#ifndef ao_gps_set_speed +#define ao_gps_set_speed ao_serial_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(); } } |