Dependencies: mbed
Fork of test_GPS_15_mai by
Diff: main.cpp
- Revision:
- 0:a75b3f56d863
- Child:
- 1:5531e0a69c91
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue May 22 12:07:34 2018 +0000 @@ -0,0 +1,97 @@ +#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); + } + } +} \ No newline at end of file