Camilo Londoño / GPS

Dependents:   Tarea6_Gsm_gps

Fork of GPS by Gustavo Ramirez

Files at this revision

API Documentation at this revision

Comitter:
jclondonol
Date:
Tue Jun 05 03:21:48 2018 +0000
Parent:
1:653fe36ca211
Commit message:
tarea 6

Changed in this revision

GPS.cpp Show annotated file Show diff for this revision Revisions of this file
GPS.h Show annotated file Show diff for this revision Revisions of this file
--- a/GPS.cpp	Fri Jun 06 04:04:46 2014 +0000
+++ b/GPS.cpp	Tue Jun 05 03:21:48 2018 +0000
@@ -1,4 +1,24 @@
-
+/* mbed EM-406 GPS Module Library
+ * Copyright (c) 2008-2010, sford
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
  
 #include "GPS.h"
 
@@ -15,42 +35,49 @@
 
     while(1) {        
         getline();
-
-        // Chequear si en una trama GPGGA msg 
+      //$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
+        // Check if it is a GPGGA msg (matches both locked and non-locked msg)
         if(sscanf(msg, "GPGGA,%f,%f,%c,%f,%c,%d", &time, &latitude, &ns, &longitude, &ew, &lock) >= 1) { 
-           
+            if(!lock) {   //si lock es 1  hay lecturas ok
+                longitude = 0.0;
+                latitude = 0.0;        
+                return 0;
+            } 
+                else {
                 if(ns == 'S') {    latitude  *= -1.0; }
                 if(ew == 'W') {    longitude *= -1.0; }
-                float degrees = trunc(latitude / 100.0f);
-                float minutes = latitude - (degrees * 100.0f);
-                latitude = degrees + minutes / 60.0f;    
-                degrees = trunc(longitude / 100.0f * 0.01f);
-                minutes = longitude - (degrees * 100.0f);
-                longitude = degrees + minutes / 60.0f;
+                latitude = (latitude / 100.0f);
+                //float minutes = latitude - (degrees * 100.0f);
+                //latitude = degrees + minutes / 60.0f;    
+                longitude = (longitude / 100.0f);
+                //minutes = longitude - (degrees * 100.0f);
+                //longitude = degrees + minutes / 60.0f;
+                
                 return 1;
-           
+            }
         }
     }
 }
 
+/*
 float GPS::trunc(float v) {
     if(v < 0.0) {
         v*= -1.0;
-        v = floor(v);  //floor devuelve el entero mas grande no mayor a v
+        v = floor(v);
         v*=-1.0;
     } else {
         v = floor(v);
     }
     return v;
 }
-
+*/
 void GPS::getline() {
-    while(_gps.getc() != '$');    // coje todo menos $
+    while(_gps.getc() != '$');    // wait for the start of a line
     for(int i=0; i<256; i++) {
-        msg[i] = _gps.getc();   //lo va gravando en la cadena msg[ ]
-        if(msg[i] == '\r') {   // si se encuentra retorno de carro le pone el null
+        msg[i] = _gps.getc();
+        if(msg[i] == '\r') {
             msg[i] = 0;
-            return;   
+            return;
         }
     }
     error("Overflowed message limit");
--- a/GPS.h	Fri Jun 06 04:04:46 2014 +0000
+++ b/GPS.h	Tue Jun 05 03:21:48 2018 +0000
@@ -1,4 +1,24 @@
-
+/* mbed EM-406 GPS Module Library
+ * Copyright (c) 2008-2010, sford
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
 
 #include "mbed.h"
 
@@ -21,7 +41,7 @@
     
     /** The longitude (call sample() to set) */
     float longitude;
-    
+
     /** The latitude (call sample() to set) */
     float latitude;
     
@@ -31,7 +51,7 @@
     
     Serial _gps;
     char msg[256];
-    
+
 };
 
 #endif