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 5:cc8f9d7f9bdb, committed 2021-04-23
- Comitter:
- runesla
- Date:
- Fri Apr 23 09:38:08 2021 +0200
- Parent:
- 4:2c76f1ec13a9
- Commit message:
- small fixes
Changed in this revision
| SerialGPS.cpp | Show annotated file Show diff for this revision Revisions of this file |
| SerialGPS.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/SerialGPS.cpp Thu Apr 01 21:18:48 2021 +0200
+++ b/SerialGPS.cpp Fri Apr 23 09:38:08 2021 +0200
@@ -134,27 +134,17 @@
void SerialGPS::getline()
{
char ch;
- int idx = -1;
+ uint8_t idx = 0;
- if(!this->_gps_p->readable()) { return; }
+ //MBED_ASSERT(this->_gps->readable());
// Wait for start of sentence
while(read_char() != '$');
- // Read from serial one char at a time until max length or read terminal
- while(idx++ <= MAX_LINELENGTH)
+ // Read character until EOL
+ while((ch = read_char()) != '\r')
{
- ch = read_char();
-
- if(ch == '\r') { break; }
-
this->_nmea[idx] = ch;
+ idx++;
}
-}
-
-char SerialGPS::read_char()
-{
- char ch;
- _gps_p->read(&ch, 1);
- return ch;
}
\ No newline at end of file
--- a/SerialGPS.h Thu Apr 01 21:18:48 2021 +0200
+++ b/SerialGPS.h Fri Apr 23 09:38:08 2021 +0200
@@ -57,6 +57,18 @@
bool fix();
/**
+ * Read one character from the UART interface
+ *
+ * @return ch the character extracted from the UART interface
+ */
+ inline char read_char()
+ {
+ char ch;
+ this->_gps_p->read(&ch, 1);
+ return ch;
+ }
+
+ /**
* Helper function for converting from Decimal Minutes Seconds (DMS) to Decimal Degrees (DD)
*
* @param dms float containing the DMS value
@@ -70,7 +82,7 @@
float deg = (int) degmin / 100;
float min = (int) degmin % 100;
- float dd = deg + (min / 60.0) + (sec / 60);
+ float dd = deg + (min / 60.0) + (sec / 3600);
return dd;
};