Révision 401
Ajouté par Clement ROCHE il y a presque 3 ans
main.c | ||
---|---|---|
typedef struct {
|
||
float latitude;
|
||
float longitude;
|
||
} Position ;
|
||
} Position ;
|
||
|
||
typedef struct { //Definition de la structure zone
|
||
Position rpos;
|
||
float vitmax;
|
||
} Zone;
|
||
|
||
//Fonction ? modifier !!!!!
|
||
void traitement(char * trame)
|
||
... | ... | |
//tests_unitaires();
|
||
//test_decode_int();
|
||
//test_decode_nombre();
|
||
//test_decode_latitude();
|
||
//test_decode_longitude();
|
||
//test_decode_lat_long();
|
||
//test_decode_trame();
|
||
//test_calcul_distance();
|
||
//test_calcul_vitesse();
|
||
//test_distance_a_la_plus_proche_zone();
|
||
|
||
Position P1,P2 ;
|
||
Zone zones[] = {
|
||
{{}
|
||
}
|
||
Position P1,P2; //Iniatialisation des structures pos 1 et 2
|
||
|
||
Zone zones[] = { //Iniatlisation du tableau de structure Zones
|
||
{{44.7891220,-3.013},50},
|
||
{{44.7887762,-3.012},70}
|
||
};
|
||
|
||
static int cpt=0;
|
||
cpt++;
|
||
|
||
... | ... | |
|
||
float calcule_vitesse(Position p_1,Position p_2) {
|
||
float res;
|
||
res = calcule_distance(p_1,p_2) * 3600;
|
||
res = calcule_distance(p_1,p_2) * 3600; //*3600 pour passer en km/h
|
||
return res;
|
||
}
|
||
|
||
int distance_a_la_plus_proche_zone(Position P, Zone r[], int nb_zones, float *d) {
|
||
int i,n;
|
||
*d = calcule_distance(P, r[0].rpos);
|
||
*d = calcule_distance(P, r[0].rpos); //donne la distance entre P et la 1er zone
|
||
nb_zones = 0;
|
||
n=sizeof(*r);
|
||
n=sizeof(*r); //permet d'utiliser la boucle pour en sachant le nombre de zone dans le tableau
|
||
|
||
for(i=1;i<n;i++) {
|
||
if ( calcule_distance(P, r[i].rpos) < *d ) {
|
||
if ( calcule_distance(P, r[i].rpos) < *d ) { //Si en balayant les zones, la distance d devient + petite, alors on a une nouvelle zone dangereuse + proche
|
||
*d = calcule_distance(P, r[i].rpos);
|
||
nb_zones = i;
|
||
}
|
||
}
|
||
return nb_zones;
|
||
}
|
||
}
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
||
/*void tests_unitaires_trame_cmp(void){
|
||
void tests_unitaires_trame_cmp(void){
|
||
if (5!=5){
|
||
printf ("Erreur Test unitaire basique.\n");
|
||
exit(-1);
|
||
... | ... | |
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
exit(-1);
|
||
}
|
||
}*/
|
||
}
|
||
|
||
void test_decode_int(void) {
|
||
if (decode_int('0')!=0) {
|
||
... | ... | |
}
|
||
}
|
||
|
||
void test_distance_a_la_plus_proche_zone(void) {
|
||
float d;
|
||
int nb_zones;
|
||
Position P1;
|
||
Zone r[] = {
|
||
{{44.7891220,-3.013},50},
|
||
{{44.7887762,-3.012},70}
|
||
};
|
||
decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*75", &P1);
|
||
if (distance_a_la_plus_proche_zone(P1,r,nb_zones,&d) != 2 ) {
|
||
printf("erreur");
|
||
exit(-1);
|
||
}
|
||
|
||
}
|
||
|
||
// Ne pas modifier cette fonction
|
||
int main(int argc,char ** argv)
|
||
{
|
Formats disponibles : Unified diff
distance zone a danger + test ok, programme qui RUN sans pb