diff --git a/master/master/lib/trackuinoGPS/gpsMKa.c b/master/master/lib/trackuinoGPS/gpsMKa.c --- a/master/master/lib/trackuinoGPS/gpsMKa.c +++ b/master/master/lib/trackuinoGPS/gpsMKa.c @@ -24,9 +24,9 @@ int numBytes = 0; //least significant digit is stored at location 0 of arrays uint8_t tramsmissionType; uint8_t timestamp[9]; //hhmmss.ss -uint8_t latitude[8]; //llll.ll,a -uint8_t longitude[8]; //yyyyy.yy,a -uint8_t quality; +uint8_t latitude[8]; //lllll.lla +uint8_t longitude[8]; //yyyyy.yya +uint8_t quality; //quality for GGA and validity for RMC uint8_t numSatellites[2]; uint8_t hdop[4]; //xx.x uint8_t altitude[8]; //xxxxxx.x @@ -38,8 +38,11 @@ uint8_t checksum; //xx // transmission state machine enum decodeState { + //shared fields INITIALIZE=0, GET_TYPE, + GPS_CHECKSUM, //need to find out how this is calculated/compared + //GGA data fields GGA_TIME, GGA_LATITUDE, GGA_LONGITUDE, @@ -50,8 +53,16 @@ enum decodeState { GGA_WGS84, GGA_LAST_UPDATE, GGA_STATION_ID, - GGA_CHECKSUM, - RMC_TIME + //RMC data fields + RMC_TIME, + RMC_WARNING, + RMC_LATITUDE, + RMC_LONGITUDE, + RMC_KNOTS, + RMC_COURSE, + RMC_DATE, + RMC_MAG_VERIATION, + }decodeState; /// MKa GPS transmission parser START