Projet

Général

Profil

« Précédent | Suivant » 

Révision 415

Ajouté par frkanaan il y a presque 4 ans

TP3 ok

Voir les différences:

main.c
return 1;
}
//Fonction ? modifier !!!!!
void traitement(char * trame)
{
static int cpt=0;
cpt++;
static int count=0;
count++;
if(trame_cmp(trame, "GPGGA"))
printf ("> %s\n",trame);
......
return -1;
}
void test_decode_int(void)
void test_decode_int()
{
char i;
......
return res;
}
// Fonction de tests unitaire
void test_decode_nombre()
{
char i;
char test[]="987654321";
if (decode_nombre("135654321",5) != 13564)
{
printf ("Erreur Test unitaire decode_nombre.\n");
exit(-1);
}
if (decode_nombre("93241",3) != 932)
{
printf ("Erreur Test unitaire decode_nombre.\n");
exit(-1);
}
}
for(i=0;i<strlen(test);i++)
typedef struct
{
float latitude;
float longitude;
} Position ;
int decode_trame(char *trame, Position *p)
{
if(trame_cmp(trame, "GPGGA"))
{
const char *delim = ",";
int i, nb_virgule;
/*On compte deux virgule*/
for(nb_virgule= 0, i=0; nb_virgule <3; i++)
{
if(trame[i]==*delim)
++nb_virgule;
}
/*On lit la latitude*/
i=16;
p->latitude = decode_int(trame[i])*10
+decode_int(trame[i+1])
+decode_int(trame[i+2]/6)
+decode_int(trame[i+3]/60)
+decode_int(trame[i+5]/600)
+decode_int(trame[i+6]/6000)
+decode_int(trame[i+7]/60000)
+decode_int(trame[i+8]/600000);
i=26;
if(trame[26]=='S')
p->latitude = -p->latitude;
/*On lit la longitude*/
i=28;
p->longitude = decode_int(trame[i])*100+decode_int(trame[i+1])*10
+decode_int(trame[i+2])+decode_int(trame[i+3]/6)
+decode_int(trame[i+4]/60)+decode_int(trame[i+6]/600)
+decode_int(trame[i+7]/6000)+decode_int(trame[i+8]/60000)
+decode_int(trame[i+9]/600000);
if(trame[39]=='W')
p->longitude = -p->longitude;
return 1;
}
else
return 0;
}
//Ajouter vos tests unitaires dans cette fonction.
......
{
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
// Appel de la fonction de tests pour decode_int()
test_decode_int();
// Appel de la fonction de tests pour decode_nombre()
test_decode_nombre();
}
}

Formats disponibles : Unified diff