Dependencies:   mbed

Fork of test_GPS_15_mai by TeamLegrand

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