X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gps-plugin%2Fsrc%2Fnmea_parser.c;fp=replay-plugin%2Fsrc%2Fnmea_parser.c;h=4a75932197fecafae8fa09e4b70a4089b836ead2;hb=refs%2Fheads%2Ftizen_2.3.1;hp=fc92c3c34414eb889099dd716012d069169551ae;hpb=ac88be6955ed36543e4ad1539e21f3d539986997;p=framework%2Flocation%2Flibslp-lbs-plugin-replay.git diff --git a/replay-plugin/src/nmea_parser.c b/gps-plugin/src/nmea_parser.c similarity index 82% rename from replay-plugin/src/nmea_parser.c rename to gps-plugin/src/nmea_parser.c index fc92c3c..4a75932 100644 --- a/replay-plugin/src/nmea_parser.c +++ b/gps-plugin/src/nmea_parser.c @@ -1,10 +1,10 @@ /* - * GPS manager replay plugin + * gps 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. @@ -23,23 +23,23 @@ #include #include #include -#include +#include #include "gps_plugin_debug.h" #include "nmea_parser.h" #include "setting.h" -#define MAX_NMEA_SENTENCES 32 -#define MAX_TOEKNS 25 +#define MAX_NMEA_SENTENCES 32 +#define MAX_TOEKNS 25 -#define DECIMAL_TO_DEGREE 60.0 -#define METER_TO_FEET 3.2808399 -#define KNOT_TO_MPS 0.5144444 -#define KMPH_TO_MPS 0.2777778 +#define DECIMAL_TO_DEGREE 60.0 +#define METER_TO_FEET 3.2808399 +#define KNOT_TO_MPS 0.5144444 +#define KMPH_TO_MPS 0.2777778 -#define NORTH 1 +#define NORTH 1 #define SOUTH -1 -#define EAST 1 +#define EAST 1 #define WEST -1 int used_sat[MAX_GPS_NUM_SAT_USED] = { 0, }; @@ -104,9 +104,6 @@ int nmea_parser_tokenize(char input[], char *token[]) state = 0; } break; - default: - state = 0; - break; } s++; } @@ -171,8 +168,8 @@ static double nmea_parser_get_altitude(const char *alt, const char *unit) static int nmea_parser_gpgga(char *token[], pos_data_t * pos, sv_data_t * sv) { - double latitude, longitude, altitude, eph, geoid; - int utctime, num_of_sat_used, quality; + double latitude, longitude, altitude; + int quality; quality = atoi(token[6]); @@ -182,13 +179,13 @@ static int nmea_parser_gpgga(char *token[], pos_data_t * pos, sv_data_t * sv) return READ_NOT_FIXED; } - utctime = atoi(token[1]); +// utctime = atoi(token[1]); latitude = nmea_parser_get_latitude(token[2], token[3]); longitude = nmea_parser_get_longitude(token[4], token[5]); altitude = nmea_parser_get_altitude(token[9], token[10]); - num_of_sat_used = atoi(token[7]); - eph = atof(token[8]); - geoid = nmea_parser_get_altitude(token[11], token[12]); +// num_of_sat_used = atoi(token[7]); +// eph = atof(token[8]); +// geoid = nmea_parser_get_altitude(token[11], token[12]); pos->latitude = latitude; pos->longitude = longitude; @@ -201,9 +198,8 @@ static int nmea_parser_gpgga(char *token[], pos_data_t * pos, sv_data_t * sv) static int nmea_parser_gprmc(char *token[], pos_data_t * pos) { - int date, utctime; char *status; - double latitude, longitude, speed, bearing, magvar; + double latitude, longitude, speed, bearing; status = token[2]; //warn = *token[2]; if (strcmp(status, "V") == 0) { @@ -211,13 +207,13 @@ static int nmea_parser_gprmc(char *token[], pos_data_t * pos) return READ_NOT_FIXED; } - utctime = atoi(token[1]); +// utctime = atoi(token[1]); latitude = nmea_parser_get_latitude(token[3], token[4]); longitude = nmea_parser_get_longitude(token[5], token[6]); speed = atof(token[7]); bearing = atof(token[8]); - date = atoi(token[9]); - magvar = atof(token[10]); +// date = atoi(token[9]); +// magvar = atof(token[10]); pos->latitude = latitude; pos->longitude = longitude; @@ -238,20 +234,18 @@ static int nmea_parser_gpgll(char *token[], pos_data_t * pos) return READ_NOT_FIXED; } - latitude = nmea_parser_get_latitude(token[1], token[2]); - longitude = nmea_parser_get_longitude(token[3], token[4]); + latitude = nmea_parser_get_latitude(token[1], token[2]); + longitude = nmea_parser_get_longitude(token[3], token[4]); - pos->latitude = latitude; - pos->longitude = longitude; + pos->latitude = latitude; + pos->longitude = longitude; - return READ_SUCCESS; + return READ_SUCCESS; } static int nmea_parser_gpgsa(char *token[], pos_data_t * pos) { - char selection_type; int i, fix_type; - double pdop, hdop, vdop; fix_type = atoi(token[2]); if (fix_type == 1) { @@ -259,27 +253,27 @@ static int nmea_parser_gpgsa(char *token[], pos_data_t * pos) return READ_NOT_FIXED; } - selection_type = *token[1]; +// selection_type = *token[1]; memset(used_sat, 0, sizeof(used_sat)); for (i = 0; i < MAX_GPS_NUM_SAT_USED; i++) { used_sat[i] = atoi(token[i + 3]); } - pdop = atof(token[15]); - hdop = atof(token[16]); - vdop = atof(token[17]); +// pdop = atof(token[15]); +// hdop = atof(token[16]); +// vdop = atof(token[17]); return READ_SUCCESS; } static int nmea_parser_gpvtg(char *token[], pos_data_t * pos) { - double true_course, magnetic_course, knot_speed, kmh_speed; + double true_course, kmh_speed; true_course = atof(token[1]); - magnetic_course = atof(token[3]); - knot_speed = atof(token[5]); +// magnetic_course = atof(token[3]); +// knot_speed = atof(token[5]); kmh_speed = atof(token[7]); pos->speed = kmh_speed * KMPH_TO_MPS; @@ -292,9 +286,9 @@ static int nmea_parser_gpgsv(char *token[], sv_data_t * sv) { int i, j; int p, q, iter; - int num_sen, msg_num, num_sv; + int msg_num, num_sv; - num_sen = atoi(token[1]); +// num_sen = atoi(token[1]); msg_num = atoi(token[2]); if (msg_num < 1) { LOG_PLUGIN(DBG_LOW, "There is not GSV message"); @@ -325,7 +319,7 @@ 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_SUCCESS; if (strcmp(sentence, "GPGGA") == 0) { ret = nmea_parser_gpgga(token, pos, sv); } else if (strcmp(sentence, "GPRMC") == 0) { @@ -369,9 +363,8 @@ 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; } } else { LOG_PLUGIN(DBG_ERR, "[NMEA Parser] %dth sentense : Invalid Checksum\n", count); @@ -379,6 +372,6 @@ int nmea_parser(char *data, pos_data_t * pos, sv_data_t * sv) count++; num_sen--; } - + return ret; }