Révision 331
Ajouté par Victor SOUDY il y a presque 3 ans
branch/SOUDY/main.c | ||
---|---|---|
"$GPVTG,99.4,T,,M,0.4,N,0.7,K*57",
|
||
"$GPZDA,141914.00,01,02,2006,00,00*69",
|
||
0};
|
||
// structure
|
||
/*typedef struct
|
||
// structure de la position
|
||
typedef struct
|
||
{
|
||
float longitude;
|
||
float latitude;
|
||
}position;*/
|
||
}position;
|
||
|
||
//fcts ajout?s
|
||
int trame_cmp(char*trame,char*type)
|
||
... | ... | |
|
||
int decode_nombre(char *ch,int n)
|
||
{
|
||
int temp=0;//Initialisation du resultat a 0
|
||
int temp=0;
|
||
int i;
|
||
for(i=0;i<n;i++)
|
||
{
|
||
temp=(temp*10)+decode_int(ch[i]);
|
||
temp=(temp*10)+decode_int(ch[i]); // permet de traiter terme ? terme
|
||
|
||
}
|
||
return temp;
|
||
... | ... | |
latm=decode_nombre(&trame[19],2);
|
||
lats=decode_nombre(&trame[21],4);
|
||
latdeg=latd+((latm+(lats/10000))/60.0);
|
||
return latdeg;
|
||
return latdeg; // retourne le r?sultat de la lattitude en degr?s de la trame
|
||
}
|
||
|
||
|
||
... | ... | |
longm=decode_nombre(&trame[32],2);
|
||
longs=decode_nombre(&trame[35],4);
|
||
longdeg=longd+((longm+(longs/10000))/60.0);
|
||
return longdeg;
|
||
return longdeg; //retourne le r?sultat de la longitude en degr?s de la trame
|
||
}
|
||
|
||
//void coordonnee_to_float (char*trame,position pos)
|
||
... | ... | |
|
||
|
||
}
|
||
|
||
// declaration des positions servant dans la suite de l'exercice
|
||
position pos1;
|
||
position pos2;
|
||
|
||
decode_trame(char*trame,position *p)
|
||
{
|
||
p->longitude =long_to_float (trame); // -> permet d'identifier le champ de la structure c'est comme le point sauf ici on est avec des pointeurs
|
||
p->latitude=lat_to_float(trame);
|
||
}
|
||
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
||
void tests_unitaires(void)
|
||
{int trame_cmp(char*trame,char*type)
|
||
{int trame_cmp(char*trame,char*type);
|
||
int i;
|
||
int test=1;
|
||
for(i=0;i<5;i++)
|
||
{
|
||
if(trame[i+1]!=type[i]) //permet comparer d?but trame avec le type lettre ? lettre
|
||
{int trame_cmp(char*trame,char*type);
|
||
test=0;
|
||
}
|
||
}
|
||
return test;
|
||
}
|
||
{
|
||
if (5!=5)
|
||
{
|
||
printf ("Erreur Test unitaire basique.\n");
|
||
... | ... | |
{
|
||
printf("Erreur test unitaire decode_int\n");
|
||
exit(-1);
|
||
}
|
||
}printf("OK decode tram\n");
|
||
if (decode_int('3')!=3)
|
||
{
|
||
printf("Erreur test unitaire decode_int\n");
|
||
... | ... | |
printf("Erreur test unitaire longitude\n");
|
||
exit(-1);
|
||
}
|
||
//-------------------------//
|
||
//test unitaire decode_trame
|
||
decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",&pos1);
|
||
if (pos1.latitude==45.75)
|
||
{
|
||
printf("decode_trame OK!\n");
|
||
exit(-1);
|
||
}
|
||
if (pos1.longitude==4.77)
|
||
{
|
||
printf("decode_trame OK!\n");
|
||
exit(-1);
|
||
}
|
||
|
||
}
|
||
|
Formats disponibles : Unified diff
amélioration commentaires et ajouts de decode_trame et ses tests.