Dependencies: mbed
Fork of test_GPS_15_mai by
main.cpp
- Committer:
- the420team
- Date:
- 2018-05-22
- Revision:
- 0:a75b3f56d863
- Child:
- 1:5531e0a69c91
File content as of revision 0:a75b3f56d863:
#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 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); } pc.printf("%f, %c, %f, %c \n\r", lat_cnv, lat_NS, lon_cnv, lon_EW); } } }