![](/media/cache/profiles/MEpro.jpg.50x50_q85.jpg)
GPS UAV, Latitude,Longitude, Speed, Heading, GPS Fix, No.Of Sats. HDOP
Diff: main.cpp
- Revision:
- 1:ae1120188730
- Parent:
- 0:8508616aa661
--- a/main.cpp Wed May 02 03:53:27 2018 +0000 +++ b/main.cpp Sun Feb 24 02:01:36 2019 +0000 @@ -1,50 +1,25 @@ #include "mbed.h" +#include "GPSUAV.h" //Board:mbed LPC1768 -//Veriy GPS Lat/Long buffer Data from GNRMC sentence.If using Nema 0183 GPS, Change GNRMC to GPRMC -//GPS Receiver: HolyBro -//Wait until you get a good fix -Serial gps(p9, p10); // TX, RX -Serial pc(USBTX, USBRX); // TX, RX DigitalOut led1(LED1); +//Altitude not included, deemed unreliable for UAV appliations. Use Pitot tube or AGL. -char s[82]; -char y1,y2,y3,y4,y5,y6,y7,y8,y9; -char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10; -char NS,WE; -char GPSBuffer[1024]; - +//--------------------------------------------------------------- int main() { - pc.baud(9600); - - // char gpsout[1024]; + while (1) { - GPSBuffer[0] = '\0'; - while (1) { - char c = gps.getc(); - // char s[2]; - s[0] = c; - s[1] = '\0'; - strcat(GPSBuffer, s); - if (c == '\n') { - break; - } - -if ((GPSBuffer[1] == 'G') && (GPSBuffer[2] == 'N') && (GPSBuffer[3] == 'R') && (GPSBuffer[4] == 'M') && (GPSBuffer[5] == 'C'))//GNRMC Sentence - { - //Latitude - y1= GPSBuffer[19]; y2 = GPSBuffer[20]; //Degrees - y3= GPSBuffer[21]; y4 = GPSBuffer[22];y5= GPSBuffer[24]; y6 = GPSBuffer[25];y7= GPSBuffer[26]; y8 = GPSBuffer[27];y9= GPSBuffer[28]; //DEGMIN - NS = GPSBuffer[30]; - //Longitude - x1= GPSBuffer[32]; x2= GPSBuffer[33]; x3= GPSBuffer[34];//Degrees - x4=GPSBuffer[35]; x5=GPSBuffer[36]; x6=GPSBuffer[38]; x7=GPSBuffer[39]; x8=GPSBuffer[40]; x9=GPSBuffer[41];x10=GPSBuffer[42];//DEGMIN - WE=GPSBuffer[44]; + + EnableGPS(); + pc.printf("%02d ",LatDegInt); pc.printf("%08.5f",LatMinInt);pc.printf("%c ",NS);//latitude + pc.printf("%03d ",LongDegInt);pc.printf("%08.5f",LongMinInt);pc.printf("%c",WE);//longitude + pc.printf(" %07.3f",speedInt);//speed + pc.printf(" %05.1f",HeadingInt);//heading + pc.printf(" %1d",GFInt);//gpsfix + pc.printf(" %02d",NOSInt);//number of sats + pc.printf(" %05.2f\n",HDOPInt);//hdop + + led1 = !led1; + } - } - - 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 - 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 - led1 = !led1; - } }