Ricardo Binas
/
GPSLatLong_Buffer_Verification
GPS Latitude/Longitude Buffer Verification
main.cpp@2:68f47ba7fe0a, 2019-02-24 (annotated)
- Committer:
- Rbinas
- Date:
- Sun Feb 24 02:08:17 2019 +0000
- Revision:
- 2:68f47ba7fe0a
- Parent:
- 0:8508616aa661
revo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rbinas | 0:8508616aa661 | 1 | #include "mbed.h" |
Rbinas | 0:8508616aa661 | 2 | //Board:mbed LPC1768 |
Rbinas | 0:8508616aa661 | 3 | //Veriy GPS Lat/Long buffer Data from GNRMC sentence.If using Nema 0183 GPS, Change GNRMC to GPRMC |
Rbinas | 0:8508616aa661 | 4 | //GPS Receiver: HolyBro |
Rbinas | 0:8508616aa661 | 5 | //Wait until you get a good fix |
Rbinas | 0:8508616aa661 | 6 | Serial gps(p9, p10); // TX, RX |
Rbinas | 0:8508616aa661 | 7 | Serial pc(USBTX, USBRX); // TX, RX |
Rbinas | 0:8508616aa661 | 8 | DigitalOut led1(LED1); |
Rbinas | 0:8508616aa661 | 9 | |
Rbinas | 0:8508616aa661 | 10 | char s[82]; |
Rbinas | 0:8508616aa661 | 11 | char y1,y2,y3,y4,y5,y6,y7,y8,y9; |
Rbinas | 0:8508616aa661 | 12 | char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10; |
Rbinas | 0:8508616aa661 | 13 | char NS,WE; |
Rbinas | 0:8508616aa661 | 14 | char GPSBuffer[1024]; |
Rbinas | 0:8508616aa661 | 15 | |
Rbinas | 0:8508616aa661 | 16 | int main() { |
Rbinas | 0:8508616aa661 | 17 | pc.baud(9600); |
Rbinas | 0:8508616aa661 | 18 | |
Rbinas | 0:8508616aa661 | 19 | while (1) { |
Rbinas | 0:8508616aa661 | 20 | GPSBuffer[0] = '\0'; |
Rbinas | 0:8508616aa661 | 21 | while (1) { |
Rbinas | 0:8508616aa661 | 22 | char c = gps.getc(); |
Rbinas | 0:8508616aa661 | 23 | // char s[2]; |
Rbinas | 0:8508616aa661 | 24 | s[0] = c; |
Rbinas | 0:8508616aa661 | 25 | s[1] = '\0'; |
Rbinas | 0:8508616aa661 | 26 | strcat(GPSBuffer, s); |
Rbinas | 0:8508616aa661 | 27 | if (c == '\n') { |
Rbinas | 0:8508616aa661 | 28 | break; |
Rbinas | 0:8508616aa661 | 29 | } |
Rbinas | 0:8508616aa661 | 30 | |
Rbinas | 0:8508616aa661 | 31 | if ((GPSBuffer[1] == 'G') && (GPSBuffer[2] == 'N') && (GPSBuffer[3] == 'R') && (GPSBuffer[4] == 'M') && (GPSBuffer[5] == 'C'))//GNRMC Sentence |
Rbinas | 0:8508616aa661 | 32 | { |
Rbinas | 0:8508616aa661 | 33 | //Latitude |
Rbinas | 0:8508616aa661 | 34 | y1= GPSBuffer[19]; y2 = GPSBuffer[20]; //Degrees |
Rbinas | 0:8508616aa661 | 35 | y3= GPSBuffer[21]; y4 = GPSBuffer[22];y5= GPSBuffer[24]; y6 = GPSBuffer[25];y7= GPSBuffer[26]; y8 = GPSBuffer[27];y9= GPSBuffer[28]; //DEGMIN |
Rbinas | 0:8508616aa661 | 36 | NS = GPSBuffer[30]; |
Rbinas | 0:8508616aa661 | 37 | //Longitude |
Rbinas | 0:8508616aa661 | 38 | x1= GPSBuffer[32]; x2= GPSBuffer[33]; x3= GPSBuffer[34];//Degrees |
Rbinas | 0:8508616aa661 | 39 | x4=GPSBuffer[35]; x5=GPSBuffer[36]; x6=GPSBuffer[38]; x7=GPSBuffer[39]; x8=GPSBuffer[40]; x9=GPSBuffer[41];x10=GPSBuffer[42];//DEGMIN |
Rbinas | 0:8508616aa661 | 40 | WE=GPSBuffer[44]; |
Rbinas | 0:8508616aa661 | 41 | } |
Rbinas | 0:8508616aa661 | 42 | } |
Rbinas | 0:8508616aa661 | 43 | |
Rbinas | 0:8508616aa661 | 44 | pc.printf("Latitude:%c%c:%c%c.%c%c%c%c%c %c",y1,y2,y3,y4,y5,y6,y7,y8,y9,NS); //Print latitude buffer data |
Rbinas | 0:8508616aa661 | 45 | pc.printf(" Longitude:%c%c%c:%c%c.%c%c%c%c%c %c\r\n",x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,WE); //Print Longitude buffer data |
Rbinas | 0:8508616aa661 | 46 | |
Rbinas | 0:8508616aa661 | 47 | led1 = !led1; |
Rbinas | 0:8508616aa661 | 48 | } |
Rbinas | 0:8508616aa661 | 49 | } |