Révision 658
Ajouté par dgmbadinga il y a presque 4 ans
main.c | ||
---|---|---|
"$GPZDA,141914.00,01,02,2006,00,00*69",
|
||
0};
|
||
|
||
typedef struct{
|
||
float latitude; /* La structure qui d?finira les varuables de type position avec comme param?tres la latitude et la longitude*/
|
||
float longitude;
|
||
} position;
|
||
|
||
position position0; /* Variable qui va servir ? mettre en oeuvre le test unitaire*/
|
||
position p_1,p_2; /*Variables de type position qui vont servir ? d?finir les fonction de calcul de distance et de vitesse*/
|
||
|
||
|
||
|
||
int trame_cmp(char* trame,char* type){
|
||
|
||
int i,ok=0, taille=0;
|
||
... | ... | |
}
|
||
|
||
|
||
int decode_trame(char * trame, position p){ /*Avec cette fonction extrait uniquement les trames GPGGA et surtout on extrait la lattitude et la longitude*/
|
||
int i; /* Il nous ervira ? parcourir la trame */
|
||
char ch[40];/* Il nous faut au moins 40 espaces pour r?cup?rer ce qui nous est n?cessaire dans la trame*/
|
||
char lat[9]; /*Pour r?cup?rer les donn?es de la latitude et de la longitude on les stocke dans deux tableaux*/
|
||
char lon[9];
|
||
|
||
if(trame_cmp(trame,"GPGGA")){
|
||
for(i=0;i<39;i++){
|
||
ch[i]=trame[i];
|
||
}
|
||
for(i=0;i<8;i++){
|
||
lat[i]=trame[17+i]; /* on r?cup?re les valeurs en sexag?simal des latitudes et longitude*/
|
||
lon[i]=trame[29+i];
|
||
p.latitude=latitude_flottant(lat); /* Ces valeurs sont ensuite converties pour en d?terminer la position*/
|
||
p.longitude=longitude_flottant(lon);
|
||
}
|
||
return 1;
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
|
||
void test_decode_trame(void){ /* Dans le fichier gps.log on peut choisir 4 trames diff?rentes et en d?duire la r?ponse de la trame*/
|
||
if(decode_trame("$GPGSV,3,2,10,15,03,077,,18,04,041,42,19,85,271,,20,08,214,*7C", position0)!=0){
|
||
printf("Erreur conception fonction decode_trame");
|
||
exit(-1);
|
||
}
|
||
if(decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*79", position0)!=1){
|
||
printf("Erreur conception fonction decode_trame");
|
||
}
|
||
if(decode_trame("$GPGLL,4545.6424,N,00306.6036,E,141914.00,A*0E", position0)!=0){
|
||
printf("Erreur conception fonction decode_trame");
|
||
}
|
||
if(decode_trame("$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39", position0)!=0){
|
||
printf("Erreur conception fonction decode_trame");
|
||
exit(-1);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
/*Ajouter vos tests unitaires dans cette fonction.*/
|
||
|
||
... | ... | |
test_longitude_flottant(); /*appel de la fonction test longitude pour le test unitaire sur la conversion de la longitude en flotant*/
|
||
|
||
test_fonction_generique(); /*appel de la fonction test fonction generique pour le test unitaire sur la conversion de la longitude et la latitude en flotant*/
|
||
|
||
|
||
test_decode_trame();
|
||
}
|
||
|
||
|
Formats disponibles : Unified diff
tp sp4a2 question 1 et 2 implentation de decode trame et son test unitaire