/*
- * 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.
state = 0;
}
break;
- default:
- state = 0;
- break;
}
s++;
}
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;
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) {
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;
}