Projet

Général

Profil

« Précédent | Suivant » 

Révision 331

Ajouté par Victor SOUDY il y a presque 3 ans

amélioration commentaires et ajouts de decode_trame et ses tests.

Voir les différences:

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