Decod Msg GPS

Dependencies:   C12832 mbed

Fork of ComGPS by SAADI Nadia

Committer:
pfe
Date:
Wed Apr 08 08:32:31 2015 +0000
Revision:
2:4cf92185ed38
Parent:
1:821bd360ec5b
sss

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nadia 0:674a094baf00 1 #include "mbed.h"
Nadia 0:674a094baf00 2 #include "C12832.h"
pfe 1:821bd360ec5b 3 #include "GPS_Init.h"
Nadia 0:674a094baf00 4 C12832 lcd(p5, p7, p6, p8, p11);
Nadia 0:674a094baf00 5
pfe 1:821bd360ec5b 6 Serial pc(USBTX,USBRX); // communication PC à 9600 baud/sec par défaut
pfe 1:821bd360ec5b 7 Serial GPS(p9, p10); //Pin9 TX, pin10 RX.
pfe 1:821bd360ec5b 8
pfe 1:821bd360ec5b 9 unsigned short UserWR_buffer[32];
pfe 1:821bd360ec5b 10 unsigned short NbDataRec,En,Ldata;
pfe 1:821bd360ec5b 11 unsigned short MsgGPSRx[65]; // Déclaration d'un vecteur de 65 charactères
pfe 1:821bd360ec5b 12
pfe 1:821bd360ec5b 13
Nadia 0:674a094baf00 14 int main() {
pfe 1:821bd360ec5b 15 GPS.baud(9600); // vérifier que votre GPS est à 9600, le plus souvent ils sont à 9600 !!!!!
pfe 1:821bd360ec5b 16 char gps_mess;
Nadia 0:674a094baf00 17 lcd.cls();
Nadia 0:674a094baf00 18 lcd.locate(0,0);
Nadia 0:674a094baf00 19 lcd.printf("GPS FIX");
pfe 1:821bd360ec5b 20
Nadia 0:674a094baf00 21 while(1){
pfe 1:821bd360ec5b 22 //
Nadia 0:674a094baf00 23 if(GPS.readable()){
pfe 1:821bd360ec5b 24 gps_mess=GPS.getc();
pfe 1:821bd360ec5b 25 if (gps_mess=='$'){
pfe 2:4cf92185ed38 26 NbDataRec=0;//Initialisation à 0
pfe 1:821bd360ec5b 27 En=1;
pfe 1:821bd360ec5b 28 while(En){
pfe 1:821bd360ec5b 29 while(!GPS.readable());
pfe 1:821bd360ec5b 30 gps_mess = GPS.getc(); //Lecture du message GPS via USART
pfe 1:821bd360ec5b 31 MsgGPSRx[NbDataRec] = gps_mess; //Stockage du message GPS dans un vecteur
pfe 1:821bd360ec5b 32 NbDataRec++;
pfe 1:821bd360ec5b 33 if((gps_mess==0x0D)||(NbDataRec==65)) En=0; // Vérification de la fin du message
pfe 1:821bd360ec5b 34 }
pfe 1:821bd360ec5b 35 Ldata=NbDataRec;
pfe 1:821bd360ec5b 36 DecodageGPGGA(MsgGPSRx,Ldata);
pfe 1:821bd360ec5b 37
pfe 1:821bd360ec5b 38 if (MSG_GPGGA_Valid){
pfe 1:821bd360ec5b 39 lcd.locate(0,10);
pfe 1:821bd360ec5b 40 lcd.printf("MSG GPS Valid");
pfe 1:821bd360ec5b 41 UserWR_buffer[0]++;
pfe 1:821bd360ec5b 42 //-----------------------------------------------------------------------------
pfe 1:821bd360ec5b 43 UserWR_buffer[1] = hh;
pfe 1:821bd360ec5b 44 UserWR_buffer[2] = mm;
pfe 1:821bd360ec5b 45 UserWR_buffer[3] = ss;
pfe 1:821bd360ec5b 46 //-----------------------------------------------------------------------------
pfe 1:821bd360ec5b 47 UserWR_buffer[4] = LatDeg;
pfe 1:821bd360ec5b 48 UserWR_buffer[5] = LatMin;
pfe 1:821bd360ec5b 49 UserWR_buffer[6] = LatMin1;
pfe 1:821bd360ec5b 50 UserWR_buffer[7] = LatMin2;
pfe 1:821bd360ec5b 51 UserWR_buffer[8] = LatDir;
pfe 1:821bd360ec5b 52 //-----------------------------------------------------------------------------
pfe 1:821bd360ec5b 53 UserWR_buffer[9] = LongDeg;
pfe 1:821bd360ec5b 54 UserWR_buffer[10] = LongMin;
pfe 1:821bd360ec5b 55 UserWR_buffer[11] = LongMin1;
pfe 1:821bd360ec5b 56 UserWR_buffer[12] = LongMin2;
pfe 1:821bd360ec5b 57 UserWR_buffer[13] = LongDir;
pfe 1:821bd360ec5b 58 //-----------------------------------------------------------------------------
pfe 1:821bd360ec5b 59 UserWR_buffer[14] = Qual;
pfe 1:821bd360ec5b 60 //-----------------------------------------------------------------------------
pfe 1:821bd360ec5b 61 UserWR_buffer[15] = HMSL_H;
pfe 1:821bd360ec5b 62 UserWR_buffer[16] = HMSL_L;
pfe 1:821bd360ec5b 63 UserWR_buffer[17] = HMSL_1;
pfe 1:821bd360ec5b 64 UserWR_buffer[18] = HMSL_2;
pfe 1:821bd360ec5b 65 UserWR_buffer[19] = SignHMSL;
pfe 1:821bd360ec5b 66 UserWR_buffer[20] = HUnite;
pfe 1:821bd360ec5b 67 pc.printf("%d",hh); // afficher sur la console de PC.
pfe 1:821bd360ec5b 68 MSG_GPGGA_Valid=0;
pfe 1:821bd360ec5b 69 }
pfe 1:821bd360ec5b 70 }
pfe 1:821bd360ec5b 71 }
pfe 1:821bd360ec5b 72
pfe 1:821bd360ec5b 73 // Vous ne pouvez pas afficher un message brut car il fait au moins 40 caractères et en plus le contenue
pfe 1:821bd360ec5b 74 // est brut donc il faut le décoder !!!!! donc affichage à revoir.
pfe 1:821bd360ec5b 75 // Contentez vous d'afficher cela sur le port USB du PC.
pfe 1:821bd360ec5b 76 // il vous faidra pour cela installer le drivers Mbed je le mets en partage sir le compte google drive
pfe 1:821bd360ec5b 77 //il suffit de le lancer
pfe 1:821bd360ec5b 78
pfe 1:821bd360ec5b 79 // afficher sur la console de PC.
pfe 1:821bd360ec5b 80 // utiliser pour cela le programme Terminal.exe que je mets en partage aussi
pfe 1:821bd360ec5b 81 // Vous trouverez le driver terminal + le logiciel Terminal dans le répértoir GPS dans google drive
pfe 1:821bd360ec5b 82
pfe 1:821bd360ec5b 83 //lcd.locate(0,15);
pfe 1:821bd360ec5b 84 //lcd.printf("%d",GPS_DATA); Pas possible pour le moment
pfe 1:821bd360ec5b 85
Nadia 0:674a094baf00 86 }
pfe 1:821bd360ec5b 87 }