2018/06/18
Diff: GPS.cpp
- Revision:
- 2:578f518a6a05
- Parent:
- 1:2f131675f872
- Child:
- 3:940fe222bab0
--- a/GPS.cpp Fri May 04 15:16:02 2018 +0000 +++ b/GPS.cpp Fri Jun 08 13:08:05 2018 +0000 @@ -1,7 +1,5 @@ #include "mbed.h" #include "GPS.h" -#include "math.h" -#include "stdio.h" GPS::GPS(PinName gpstx,PinName gpsrx): serial(gpstx,gpsrx){ @@ -25,11 +23,7 @@ serial.baud(GPSBAUD); - NVIC_SetPriority(UART2_IRQn,0); - - info = 1; - reasonable = false; - + //NVIC_SetPriority(UART2_IRQn,0); //serial.attach(this,ExtractionData,Serial::RxIrq); } @@ -69,7 +63,7 @@ datadefault = serial.getc(); } -void GPS::ExtractionData(){ +void GPS::GetData(){ Initialization(); @@ -77,20 +71,24 @@ if(datadefault == '$'){ - char DATA[20] = "\0"; + char DATA[20] = "\0"; + Initialization(); getstring(DATA); if(!strcmp(DATA, "GPGGA")){ - //int info; - for(info = 1; info < 6;info++){ + + int info; + + for(info=1;info<11;info++){ + getstring(DATA); + switch(info){ case 1: time = strtof(DATA, NULL) + 90000.0; break; case 2: - //latitude = strtof(DATA, NULL); fMinutes = modff(strtof(DATA, NULL), &latitude)*60.0; latitude = latitude*100.0 + fMinutes; break; @@ -99,8 +97,7 @@ latitude = latitude*-1.0; } break; - case 4: - //longtitude = strtof(DATA, NULL); + case 4: fMinutes = modff(strtof(DATA, NULL), &longtitude)*60.0; longtitude = longtitude*100.0 + fMinutes; break; @@ -116,40 +113,33 @@ if(strcmp(DATA, "M")){ altitude = altitude*-1.0; } - //m = 1; readable = true; break; } + } } } } -void GPS::ExtractionData_FULL(){ - - char DATA[20] = "\0"; - +/*void GPS::ExtractionData_FULL(){ + Initialization(); - if(!reasonable){ datadefault = serial.getc(); - if(datadefault == '$'){ - - getstring(DATA); + if(datadefault == '$'){ - if(!strcmp(DATA, "GPGGA")){ - reasonable = true; - } - } - - }else{ - + char DATA[20] = "\0"; Initialization(); getstring(DATA); - switch(info){ - case 1: + if(!strcmp(DATA, "GPGGA")){ + int info; + for(info=1;info<11;info++){ + getstring(DATA); + switch(info){ + case 1: Seconds = modff((strtof(DATA, NULL) + 90000.0)/100.0, &fHours)*100; fMinutes = modff(fHours/100.0, &fHours)*100; Hours = fHours; @@ -181,16 +171,14 @@ break; case 10: sprintf(altitudeFULL, "%s%s", altitudeFULL, DATA); - info = 0; reasonable = false; readable = true; break; - } - - info++; - //sizeof - } -} + } + } + } + } +}*/ void GPS::getstring(char a[]){ int n; @@ -206,19 +194,20 @@ void GPS::Initialization(){ readable = false; - Degrees = -1; + /*Degrees = -1; Minutes = -1; - Hours = -1; + Hours = -1;*/ longtitude = -1.0; latitude = -1.0; altitude = -1.0; time = -1.0; - fDegrees = -1.0; + //fDegrees = -1.0; fMinutes = -1.0; - Seconds = -1.0; - fHours = -1.0; - longtitudeFULL = "\0"; + //Seconds = -1.0; + //fHours = -1.0; + /*longtitudeFULL = "\0"; latitudeFULL = "\0"; timeFULL = "\0"; - altitudeFULL = "\0"; + altitudeFULL = "\0";*/ } +