Projet

Général

Profil

« Précédent | Suivant » 

Révision 432

Ajouté par Hatim EL MAADI il y a presque 3 ans

Fonction distance_a_la_plus_proche_zone avec test unitaire.

Voir les différences:

branch/ELMAADI/sp4a12/main.c
float vitmax;
}Zone;
Zone zones[]=
{
{{44.788762, -3.012},50},
{{44.788762, -3.013},70},
};
int trame_cmp(char *trame,char *type)
......
return vit;
}
int distance_a_la_plus_proche_zone(Position p, Zone r[], int nb_zones, float *d)
{
int i,j;
float D0;
D0=calcule_distance(p, r[0].rpos);
if (nb_zones>0)
{
for(i=1;i>nb_zones;i++)
{
*d=calcule_distance(p,r[i].rpos);
if(*d<D0)
{
j=i;
D0=*d;
}
}
return j;
}
else
{
return -1;
}
}
/*Fonction ? modifier !!!!!*/
void traitement(char * trame)
......
printf ("Erreur Test unitaire latitude_longitude.\n");
exit(-1);
}
Position p;
/*Position p;
if (decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",&p)!=1)
{
printf ("Erreur Test unitaire decode_trame.\n");
......
{
printf ("Erreur Test unitaire decode_trame.\n");
exit(-1);
}
}*/
/*Test du calcul de la distance et de la vitesse pour un intervalle de 1s*/
Position p_1, p_2, p_3;
/*Position p_1, p_2, p_3;
p_2.latitude=latitude("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*75");
p_2.longitude=longitude("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*75");
p_1.latitude=latitude("$GPGGA,141917.00,4545.0726,N,00306.6039,E,1,05,3.4,499.6,M,,M,,*73");
p_1.longitude=longitude("$GPGGA,141917.00,4545.0726,N,00306.6039,E,1,05,3.4,499.6,M,,M,,*73");
printf("distance: %f\n",calcule_distance(p_1,p_2));
printf("vitesse: %f\n",calcule_vitesse(p_1,p_2));
printf("vitesse: %f\n",calcule_vitesse(p_1,p_2));*/
/*Test pour calculer la distance entre deux villes*/
/*Paris*/
p_1.latitude = 48.8588897;
p_1.longitude = 2.320041;
/*p_1.latitude = 48.8588897;
p_1.longitude = 2.320041;*/
/*Lyon*/
p_2.latitude = 45.7578137;
p_2.longitude = 4.8320114;
/*p_2.latitude = 45.7578137;
p_2.longitude = 4.8320114;*/
/*Toulouse*/
p_3.latitude = 43.7520597;
p_3.longitude = 1.2877314;
/*p_3.latitude = 43.7520597;
p_3.longitude = 1.2877314;
printf("distance Paris-Lyon : %f\n",calcule_distance(p_1,p_2));
printf("distance Lyon-Toulouse : %f\n",calcule_distance(p_2,p_3));
printf("distance Lyon-Toulouse : %f\n",calcule_distance(p_2,p_3));*/
int nb_zone;
float *d;
nb_zone=distance_a_la_plus_proche_zone(p,zones,2,&d);
Position p,p1,p2;
p1.latitude=44.7887762;
p1.longitude=-3.012;
p2.latitude=44.7891220;
p2.longitude=-3.013;
decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p);
printf("D1 est : %f\n",calcule_distance(p, p1));
printf("D2 est : %f\n",calcule_distance(p, p2));
if(nb_zone!=0)
{
printf("Erreur dans la zone la plus proche");
exit(-1);
}
}

Formats disponibles : Unified diff