Dependencies: mbed
Fork of test_GPS_15_mai by
main.cpp
- Committer:
- the420team
- Date:
- 2018-05-28
- Revision:
- 1:5531e0a69c91
- Parent:
- 0:a75b3f56d863
File content as of revision 1:5531e0a69c91:
#include "mbed.h" #include "stdio.h" #include "Serial.h" #include <string> #include <cstdlib> DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); DigitalOut led5(p7); Serial pc(USBTX, USBRX, 4800); Serial gps(p13, p14, 4800); char debut_trame[7]="XXXXXX"; char trame[81] ; char lat[8]; char lat_NS; char lon[9]; char lon_EW; float lat_cnv; float lon_cnv; int lat_deg = 0; float lat_dec; int lon_deg = 0; float lon_dec; char GPS [25]; char rx ; int e ; int main() { led1=0; led5=0; pc.printf("debut "); e = 0 ; while(1) { rx = gps.getc(); for(int i = 0; i <80; i++) { trame[i] = trame[i+1]; } trame[76]=rx ; strncpy(debut_trame,trame,6); if (strcmp(debut_trame,"$GPGGA") == 0) { led1=1; for (int i = 0; i<=8; i++) { lat[i] = trame [18+i]; lat_cnv = atof(lat); } lat_NS = trame [28]; for (int a=0; a<=9; a++) { lon[a] = trame [30+a]; lon_cnv = atof(lon); } lon_EW = trame [41]; lat_cnv = lat_cnv/100; lat_deg = (int)lat_cnv; lat_dec = lat_cnv - lat_deg; lat_dec = (lat_dec/60)*100; lat_cnv = lat_deg + lat_dec; lon_cnv = lon_cnv/100; lon_deg = (int)lon_cnv; lon_dec = lon_cnv - lon_deg; lon_dec = (lon_dec/60)*100; lon_cnv = lon_deg + lon_dec; if (lat_NS=='N') { lat_cnv = lat_cnv*1; } else if (lat_NS=='S') { lat_cnv = lat_cnv*(-1); } if (lon_EW=='E') { lat_cnv = lat_cnv*1; } else if (lon_EW=='W') { lat_cnv = lat_cnv*(-1); } sprintf(GPS, "POS: %f,%f", lat_cnv, lon_cnv); pc.printf("%s \n\r", GPS); } } }