Projet

Général

Profil

« Précédent | Suivant » 

Révision 399

Ajouté par Awa Semou FAYE il y a presque 3 ans

Modification des fonctions calcul_distance, calcul_vitesse, decode_trame
Creation d'une fonction calcul_distane_a_la_ppoche_zones et tableau de zones dangereuses

Voir les différences:

branch/faye_awasemou/sp4a12/main.c
}
return 0;//on retourne 0 sinon, la trame est ignor?e
}
//fonction qui permet de calculer la distance en deux points P1 et P2
float calcul_distance(Postion P1, Position P2);
//fonction qui permet de calculer la distance en deux points P1 et P2 en connaissant leurs latitudes et longitudes
float calcul_distance(Position P1, Position P2)
{
float distance;
distance=cos
float distance;//variable contenant la distance calcul?e entre ces deux points
distance=(40000/360)*sqrt(pow((P2.latitude-P1.latitude),2))+ (pow((P2.longitude-P1.longitude),2));//40000(perimetre de la terre)/360(degr?)=111km ->1?=111km sur terre
return distance; //on revoie la valeur du la distance calcul?e
}
float calcul_vitesse(float distance ,float t);
//fonction qui calcule la vitesse correspondant au parcours de la distance entre deux points P1 et P2
float calcul_vitesse(Position P1, Position P2)// on prend en parametre les positions des deux points en latitude et longitude
{
float vitesse;
t=1;
distance
vitesse=distance/t;
float vitesse;//Variable contenant la vitesse resultante entre les deux points
vitesse=3600*calcul_distance(P1,P2);//on affecte a la vitesse la methode de calcul correspondante cad vitesse =distance /temps en faisant appel a la fonction calcul_distance sachant que le temps cest 1s on a directement la vitesse en km/s donc on miltiplie par 3600 pour avoir la vitesse km/heure vu que 1h=3600s
return vitesse; //on revoie la valeur du la vistesse calcul?e
}
// declaration d'une stucture permettant de decrire une zone renseignant la position et la vitesse limite associ?e
typedef struct {
Position rpos;
float vitmax;
} Zone ;
//cr?ation d'une table de zone dangereuse
Zone zones[] = {
{{44.7887762, -3.012}, 50}, /* Descripteur de la premi?re zone */
{{44.7891220, -3,013}, 70},
{{45.7891220, 3,013}, 90},
/*int seuil1; //seuil de la vitesse
int seuil2; // seuil de la distance
int j;*/
/*int decode_trame(char* trame, position* p)
};
//fonction qui calcule la distance ? la plus proche zone
int distance_a_la_proche_zone(Position p, Zone r[],int nb_zones, float *d)
{
if (trame_cmp(trame,"GPGGA")==1);
{
return 1;
}else
{
return 0;
}
}*/
}
//Fonction ? modifier !!!!!
void traitement(char * trame)
{
......
printf ("Erreur Test unitaire conversion Longitude.\n");
exit(-1);
}
}
/* //tests unutaires de la fonction decode_trame
if (decode_trame("00306.6036")- 3.11006 > 0.0001){
printf ("Erreur Test unitaire decode_trame.\n");
exit(-1);
}
//tests unutaires de la fonction calcul_distance
if (calcul_distance("00306.6036")- 3.11006 > 0.0001){
printf ("Erreur Test unitaire calcul_distance.\n");
exit(-1);
}
//tests unutaires de la fonction calcul_vitesse
if (calcul_vitesse("00306.6036")- 3.11006 > 0.0001){
printf ("Erreur Test unitaire calcul_vitesse.\n");
exit(-1);
}
//tests unutaires de la fonction calcul_distance_a_la_proche_zone
if (conversionLongitude("00306.6036")- 3.11006 > 0.0001){
printf ("Erreur Test unitaire calcul_distance_a_la_proche_zone.\n");
exit(-1);
}*/
}
// Ne pas modifier cette fonction

Formats disponibles : Unified diff