ahmed ahmed
/
Nadia_ComGPS_1
Decod Msg GPS
Fork of ComGPS by
main.cpp@2:4cf92185ed38, 2015-04-08 (annotated)
- Committer:
- pfe
- Date:
- Wed Apr 08 08:32:31 2015 +0000
- Revision:
- 2:4cf92185ed38
- Parent:
- 1:821bd360ec5b
sss
Who changed what in which revision?
User | Revision | Line number | New 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 | } |