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();  		}  	}  | 
