summaryrefslogtreecommitdiff
path: root/nmea_parse.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2005-03-29 03:48:33 +0000
committerEric S. Raymond <esr@thyrsus.com>2005-03-29 03:48:33 +0000
commita8d7c3dad55d8acea756d3bd8a3c8d5665936b7f (patch)
tree75bf2e9b514ee6a2f988a71a29d35e1e1f32d0da /nmea_parse.c
parentc80ceb03d55712cca9cdd22cb5a8d63ccca7227f (diff)
downloadgpsd-a8d7c3dad55d8acea756d3bd8a3c8d5665936b7f.tar.gz
Make the talker ID prefix a compile-time parameter.
Diffstat (limited to 'nmea_parse.c')
-rw-r--r--nmea_parse.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/nmea_parse.c b/nmea_parse.c
index f9b4baaa..55950cbd 100644
--- a/nmea_parse.c
+++ b/nmea_parse.c
@@ -474,12 +474,12 @@ int nmea_parse(char *sentence, struct gps_data_t *outdata)
int mask;
nmea_decoder decoder;
} nmea_phrase[] = {
- {"GPRMC", GPRMC, processGPRMC},
- {"GPGGA", GPGGA, processGPGGA},
- {"GPGLL", GPGLL, processGPGLL},
- {"GPGSA", GPGSA, processGPGSA},
- {"GPGSV", GPGSV, processGPGSV},
- {"GZDA", GPZDA, processGPZDA},
+ {"RMC", GPRMC, processGPRMC},
+ {"GGA", GPGGA, processGPGGA},
+ {"GLL", GPGLL, processGPGLL},
+ {"GSA", GPGSA, processGPGSA},
+ {"GSV", GPGSV, processGPGSV},
+ {"DA", GPZDA, processGPZDA},
{"PGRME", PGRME, processPGRME},
};
@@ -511,6 +511,8 @@ int nmea_parse(char *sentence, struct gps_data_t *outdata)
*p = 0;
field[count] = ++p;
}
+ if (field[0][0] == TALKERID1 && field[0][1] == TALKERID2)
+ field[0] += 2;
/* dispatch on field zero, the sentence tag */
for (i = 0; i < sizeof(nmea_phrase)/sizeof(nmea_phrase[0]); ++i) {
if (!strcmp(nmea_phrase[i].name, field[0])) {