tizen 2.3 release
[framework/location/libslp-lbs-plugin-replay.git] / gps-plugin / src / nmea_parser.c
similarity index 84%
rename from replay-plugin/src/nmea_parser.c
rename to gps-plugin/src/nmea_parser.c
index 63650dc..4a75932 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * gps-manager replay plugin
+ * gps replay plugin
  *
  * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd. All rights reserved.
  *
  * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *          Genie Kim <daejins.kim@samsung.com>
+ *                     Genie Kim <daejins.kim@samsung.com>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <gps_manager_plugin_intf.h>
+#include <gps_plugin_intf.h>
 
 #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, };
@@ -168,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]);
 
@@ -179,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;
@@ -198,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) {
@@ -208,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;
@@ -235,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) {
@@ -256,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;
@@ -289,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");
@@ -322,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 = READ_ERROR;
+       int ret = READ_SUCCESS;
        if (strcmp(sentence, "GPGGA") == 0) {
                ret = nmea_parser_gpgga(token, pos, sv);
        } else if (strcmp(sentence, "GPRMC") == 0) {
@@ -368,7 +365,6 @@ int nmea_parser(char *data, pos_data_t * pos, sv_data_t * sv)
                                ret = err;
                        } else if (err == READ_ERROR) {
                                ret = err;
-                               break;
                        }
                } else {
                        LOG_PLUGIN(DBG_ERR, "[NMEA Parser] %dth sentense : Invalid Checksum\n", count);
@@ -376,6 +372,6 @@ int nmea_parser(char *data, pos_data_t * pos, sv_data_t * sv)
                count++;
                num_sen--;
        }
-       
+
        return ret;
 }