Révision 415
Ajouté par frkanaan il y a presque 4 ans
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
TP3 ok