X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=replay-plugin%2Fsrc%2Fnmea_parser.c;h=63650dcc9f222008eddc38f7d88eac188ed72d48;hb=419013eda0e9eb77ec2be73f177c8ae6144f691d;hp=a5a5d463c3c798165291e0a69fd4d2fa30f74482;hpb=ccc78506708f99ca0d2db354e98b408fe79492d1;p=framework%2Flocation%2Flibslp-lbs-plugin-replay.git diff --git a/replay-plugin/src/nmea_parser.c b/replay-plugin/src/nmea_parser.c index a5a5d46..63650dc 100644 --- a/replay-plugin/src/nmea_parser.c +++ b/replay-plugin/src/nmea_parser.c @@ -1,10 +1,10 @@ /* - * GPS manager replay plugin + * gps-manager replay plugin * - * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved. + * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd. All rights reserved. * - * Contact: Youngae Kang , Yunhan Kim , - * Genie Kim , Minjune Kim + * Contact: Youngae Kang , Minjune Kim + * Genie Kim * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -104,9 +104,6 @@ int nmea_parser_tokenize(char input[], char *token[]) state = 0; } break; - default: - state = 0; - break; } s++; } @@ -227,6 +224,26 @@ static int nmea_parser_gprmc(char *token[], pos_data_t * pos) return READ_SUCCESS; } +static int nmea_parser_gpgll(char *token[], pos_data_t * pos) +{ + char *status; + double latitude, longitude; + + status = token[6]; //warn = *token[2]; + if (strcmp(status, "V") == 0) { + LOG_PLUGIN(DBG_LOW, "Not fixed"); + return READ_NOT_FIXED; + } + + latitude = nmea_parser_get_latitude(token[1], token[2]); + longitude = nmea_parser_get_longitude(token[3], token[4]); + + pos->latitude = latitude; + pos->longitude = longitude; + + return READ_SUCCESS; +} + static int nmea_parser_gpgsa(char *token[], pos_data_t * pos) { char selection_type; @@ -305,11 +322,13 @@ static int nmea_parser_gpgsv(char *token[], sv_data_t * sv) int nmea_parser_sentence(char *sentence, char *token[], pos_data_t * pos, sv_data_t * sv) { - int ret; + int ret = READ_ERROR; if (strcmp(sentence, "GPGGA") == 0) { ret = nmea_parser_gpgga(token, pos, sv); } else if (strcmp(sentence, "GPRMC") == 0) { ret = nmea_parser_gprmc(token, pos); + } else if (strcmp(sentence, "GPGLL") == 0) { + ret = nmea_parser_gpgll(token, pos); } else if (strcmp(sentence, "GPGSA") == 0) { ret = nmea_parser_gpgsa(token, pos); } else if (strcmp(sentence, "GPVTG") == 0) { @@ -347,7 +366,7 @@ int nmea_parser(char *data, pos_data_t * pos, sv_data_t * sv) if (err == READ_NOT_FIXED) { LOG_PLUGIN(DBG_LOW, "NOT Fixed"); ret = err; - } else if (ret == READ_ERROR) { + } else if (err == READ_ERROR) { ret = err; break; }