Révision 347
Ajouté par Yaye Oumy NDONG il y a environ 3 ans
branch/Ndong_Yaye_Oumy/sp4a12/main.c | ||
---|---|---|
(*p).latitude= conv_lat_flottant(copie_lat); // on convertit la laatitude en flottant
|
||
for(i=0;i<10;++i)
|
||
{
|
||
copie_long[i]=t[29+i]; // on extrait la lobgitude
|
||
copie_long[i]=t[29+i]; // on extrait la longitude
|
||
}
|
||
(*p).longitude=conv_long_flottant(copie_long); // on convertit la longitude en flottant
|
||
}
|
||
return a;
|
||
}
|
||
|
||
float calcul_distance(Position pos, Position pos_prec){
|
||
float distance;
|
||
int perimetre=40000;
|
||
//distance = R*acos (sin(pos.latitude)*sin(pos_prec.latitude) + cos(pos.latitude)*cos(pos_prec.latitude)*cos(pos.longitude - pos_prec.longitude));
|
||
distance= sqrt((pos_prec.longitude-pos.longitude)*(pos_prec.longitude-pos.longitude)+(pos_prec.latitude-pos.latitude)*(pos_prec.latitude-pos.latitude)) * perimetre;
|
||
return distance;
|
||
}
|
||
|
||
|
||
|
||
//Fonction ? modifier !!!!!
|
||
void traitement(char * trame)
|
||
{
|
||
// Position a={0.0,0.0};
|
||
/*// Position a={0.0,0.0};
|
||
//int a;
|
||
Position p;
|
||
//p=&a;
|
||
... | ... | |
if(decode_trame(trame,&p))
|
||
{
|
||
printf("latitude:%f longitude:%f \n", p.latitude,p.longitude);
|
||
}
|
||
}*/
|
||
|
||
}
|
||
|
||
... | ... | |
void tests_unitaires(void){
|
||
Position a={0.0,0.0}; // on initialise 2 struxtrures afin d'effecuer les test unitaires de decode_trame
|
||
Position b={0.0,0.0};
|
||
Position p1={45.750000,3.11006};
|
||
Position p3={37.750403,4.10065};
|
||
Position* p;
|
||
Position* p2; // pour tester decode_trame
|
||
p=&a; // on affecte ? chache pointeur l'adresse d'une stru
|
||
... | ... | |
exit(-1);
|
||
}
|
||
if(decode_int('0')!=0){ //tests decode_int
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire decode_int.\n");
|
||
exit(-1);
|
||
}
|
||
if(decode_int('A')!=-1){
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire decode_int.\n");
|
||
exit(-1);
|
||
}
|
||
if(decode_nombre("5145",2)!=51){ //test decode_nombre
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire decode_nombre.\n");
|
||
exit(-1);
|
||
}
|
||
if(decode_nombre("1234",2)!=12){
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire decode_nombre.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_lat_flottant("3723.2475")-37.387458>0.0001){ // test de la fonction de conversion d'une latitude en flottant/ prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire conv_lat_flottant.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_lat_flottant("4557.5679")-45.959465>0.0001){ // prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire conv_lat_flottant.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_long_flottant("00306.6036")-3.11006>0.0001){ // test de la fonction de conversion d'une longitude en flottant/prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire conv_long_flottant.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_sexa_flottant("3723.2475")-37.387458>0.0001){ // test de la fonction de conversion d'une coordonn?e sexag?simale en flottant/prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
if(conv_long_flottant("00405.3567")-4.089227>0.0001){ // prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire conv_long_flottant.\n");
|
||
exit(-1);
|
||
} if(conv_lat_flottant("4557.5679")-45.959465>0.0001){ // prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_long_flottant("00405.3567")-4.089227>0.0001){ // prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
if(conv_sexa_flottant("3723.2475")-37.387458>0.0001){ // test de la fonction de conversion d'une coordonn?e sexag?simale en flottant/prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire conv_sexa_flottant.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_sexa_flottant("00306.6036")-3.11006>0.0001){ // prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
printf ("Erreur Test unitaire conv_sexa_flottant.\n");
|
||
exit(-1);
|
||
}
|
||
if(decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*72",p2)==0){ // test pour voir si la comparaison marche(trame valide ou non)
|
||
... | ... | |
exit(-1);
|
||
|
||
}
|
||
if(calcul_distance(p1,p3)-8932820>1){ //tests decode_int
|
||
printf ("Erreur Test unitaire calcul_distance.\n");
|
||
exit(-1);
|
||
}
|
||
|
||
|
||
}
|
Formats disponibles : Unified diff
Implantation de la fonction calcul_distance et de son test unitaire