Révision 399
Ajouté par Awa Semou FAYE il y a presque 3 ans
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
Modification des fonctions calcul_distance, calcul_vitesse, decode_trame
Creation d'une fonction calcul_distane_a_la_ppoche_zones et tableau de zones dangereuses