Decod Msg GPS

Dependencies:   C12832 mbed

Fork of ComGPS by SAADI Nadia

main.cpp

Committer:
pfe
Date:
2015-04-08
Revision:
2:4cf92185ed38
Parent:
1:821bd360ec5b

File content as of revision 2:4cf92185ed38:

#include "mbed.h"
#include "C12832.h"
#include "GPS_Init.h"
C12832 lcd(p5, p7, p6, p8, p11);

Serial pc(USBTX,USBRX); // communication PC à 9600 baud/sec par défaut
Serial GPS(p9, p10); //Pin9 TX, pin10 RX. 

unsigned short UserWR_buffer[32];
unsigned short NbDataRec,En,Ldata;
unsigned short MsgGPSRx[65]; // Déclaration d'un vecteur de 65 charactères


int main() {
  GPS.baud(9600); // vérifier que votre GPS est à 9600, le plus souvent ils sont à 9600 !!!!!
  char gps_mess;
  lcd.cls();
  lcd.locate(0,0);
  lcd.printf("GPS FIX");
  
  while(1){
//     
      if(GPS.readable()){
        gps_mess=GPS.getc();
        if (gps_mess=='$'){
             NbDataRec=0;//Initialisation à 0
             En=1;
             while(En){
                    while(!GPS.readable());
                    gps_mess = GPS.getc();    //Lecture du message GPS via USART
                    MsgGPSRx[NbDataRec] = gps_mess;             //Stockage du message GPS dans un vecteur
                    NbDataRec++;
                    if((gps_mess==0x0D)||(NbDataRec==65)) En=0; // Vérification de la fin du message
                 }
             Ldata=NbDataRec;
             DecodageGPGGA(MsgGPSRx,Ldata);       
             
             if (MSG_GPGGA_Valid){
                lcd.locate(0,10);
                lcd.printf("MSG GPS Valid"); 
                UserWR_buffer[0]++;            
 //-----------------------------------------------------------------------------
                UserWR_buffer[1] = hh;
                UserWR_buffer[2] = mm;
                UserWR_buffer[3] = ss;
 //-----------------------------------------------------------------------------
                UserWR_buffer[4] = LatDeg;
                UserWR_buffer[5] = LatMin;
                UserWR_buffer[6] = LatMin1;
                UserWR_buffer[7] = LatMin2;
                UserWR_buffer[8] = LatDir;
 //-----------------------------------------------------------------------------
                UserWR_buffer[9]  = LongDeg;
                UserWR_buffer[10] = LongMin;
                UserWR_buffer[11] = LongMin1;
                UserWR_buffer[12] = LongMin2;
                UserWR_buffer[13] = LongDir;
 //-----------------------------------------------------------------------------
                UserWR_buffer[14] = Qual;
 //-----------------------------------------------------------------------------
                UserWR_buffer[15] = HMSL_H;
                UserWR_buffer[16] = HMSL_L;
                UserWR_buffer[17] = HMSL_1;
                UserWR_buffer[18] = HMSL_2;
                UserWR_buffer[19] = SignHMSL;
                UserWR_buffer[20] = HUnite;
                pc.printf("%d",hh); // afficher sur la console de PC.
                MSG_GPGGA_Valid=0;
               }    
            }
         }

        // Vous ne pouvez pas afficher un message brut car il fait au moins 40 caractères et en plus le contenue
        // est brut donc il faut le décoder !!!!! donc affichage à revoir.
        // Contentez vous d'afficher cela sur le port USB du PC.
        // il vous faidra pour cela installer le drivers Mbed je le mets en partage sir le compte google drive
        //il suffit de le lancer 
        
        // afficher sur la console de PC.
        // utiliser pour cela le programme Terminal.exe que je mets en partage aussi
        // Vous trouverez le driver terminal + le logiciel Terminal dans le répértoir GPS dans google drive
        
        //lcd.locate(0,15);
        //lcd.printf("%d",GPS_DATA);  Pas possible pour le moment
        
      }
  }