Dependencies:   mbed

Fork of test_GPS_15_mai by TeamLegrand

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);
                }
    }
}