Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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