sync PRIVATE and RSA for tizen2.1
[framework/location/libslp-lbs-plugin-replay.git] / replay-plugin / src / nmea_parser.c
index a5a5d46..63650dc 100644 (file)
@@ -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 <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- *          Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.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.
@@ -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;
                        }