Révision 432
Ajouté par Hatim EL MAADI il y a presque 3 ans
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
Fonction distance_a_la_plus_proche_zone avec test unitaire.