GNSS library
Revision 1:eff122356909, committed 2016-07-03
- Comitter:
- brdarji
- Date:
- Sun Jul 03 08:36:50 2016 +0000
- Parent:
- 0:15611c7938a3
- Commit message:
- GNSS library
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 |
diff -r 15611c7938a3 -r eff122356909 GPS.cpp --- a/GPS.cpp Tue Jun 08 14:10:27 2010 +0000 +++ b/GPS.cpp Sun Jul 03 08:36:50 2016 +0000 @@ -23,24 +23,24 @@ #include "GPS.h" GPS::GPS(PinName tx, PinName rx) : _gps(tx, rx) { - _gps.baud(4800); + _gps.baud(115200); longitude = 0.0; latitude = 0.0; } int GPS::sample() { - float time; + char ns, ew; - int lock; + while(1) { getline(); // 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(sscanf(msg, "GPGGA,%f,%f,%c,%f,%c,%d,%d", &time, &latitude, &ns, &longitude, &ew, &lock, &sate_in_view) >= 1) { if(!lock) { longitude = 0.0; - latitude = 0.0; + latitude = 0.0; return 0; } else { if(ns == 'S') { latitude *= -1.0; } @@ -48,7 +48,7 @@ float degrees = trunc(latitude / 100.0f); float minutes = latitude - (degrees * 100.0f); latitude = degrees + minutes / 60.0f; - degrees = trunc(longitude / 100.0f * 0.01f); + degrees = trunc(longitude / 100.0f); minutes = longitude - (degrees * 100.0f); longitude = degrees + minutes / 60.0f; return 1;
diff -r 15611c7938a3 -r eff122356909 GPS.h --- a/GPS.h Tue Jun 08 14:10:27 2010 +0000 +++ b/GPS.h Sun Jul 03 08:36:50 2016 +0000 @@ -1,30 +1,5 @@ -/* 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" -#ifndef MBED_GPS_H -#define MBED_GPS_H - /** A GPS interface for reading from a Globalsat EM-406 GPS Module */ class GPS { public: @@ -38,20 +13,21 @@ * @return 1 if there was a lock when the sample was taken (and therefore .longitude and .latitude are valid), else 0 */ int sample(); - + float trunc(float v); /** The longitude (call sample() to set) */ float longitude; /** The latitude (call sample() to set) */ float latitude; + int sate_in_view,lock; + float time; + private: - float trunc(float v); + void getline(); Serial _gps; char msg[256]; -}; - -#endif +}; \ No newline at end of file