Projet

Général

Profil

« Précédent | Suivant » 

Révision 373

Ajouté par anclaud il y a presque 4 ans

Debut fonction decode_trame

Voir les différences:

branch/CLAUD/sp4a12/main.c
test_decode_nombre();
// Appel de la fonction de tests pour conv_latitude()
test_conv_latitude();
test_conversion();
}
int decode_int(char c) // Fonction permettant de transformer un code ASCII en d?cimal
......
float conv_latitude(char* lat_sexa)
{
float lat_dec=0;
int degres_lat = 0;
float degres_lat = decode_nombre(lat_sexa,4);
int i;
degres_lat = decode_nombre(lat_sexa,4);
for (i=5;i<9;i++)
{
degres_lat += (decode_int(lat_sexa[i]))*pow(10,-i+4);
......
float conv_longitude (char* long_sexa)
{
float long_dec=0;
int degres_long = 0;
float degres_long = decode_nombre(long_sexa,5);
int i;
degres_long = decode_nombre(long_sexa,5);
for (i=6;i<10;i++)
{
degres_long += (decode_int(long_sexa[i]))*pow(10,-i+5);
......
}
// Fonction test unitaire latitude
void test_conv_latitude(void)
{
int res_lat = 0;
res_lat = conv_latitude("3723.2475");
printf("%d \n", res_lat);
}
float Conversion_gen (char * chaine){ //Cette fonction convertie soit une latitude soit une longitude en degr?.
int cpt = 0;
while (chaine[cpt]!='\0'){
cpt++;
float conversion_gen (char * chaine){ //Cette fonction convertie soit une latitude soit une longitude en d?cimal (float)
int compteur = 0;
while (chaine[compteur]!='\0'){
compteur++;
}
if (cpt == 9){
if (compteur == 9){
return conv_latitude(chaine);
}
else if(cpt==10){
else if(compteur==10){
return conv_longitude(chaine);
}
else{
return 1000.0;
}
}
// Fonction test unitaire latitude
void test_conversion(void)
{
if (fabs(conv_latitude("3723.2475")-37.387458)>= pow(10,-6)){
printf ("Erreur Test unitaire conv_latitude.\n");
exit(-1);
}
if (fabs(conversion_gen("00306.6036")-3.11006)>= pow(10,-6)){
printf ("Erreur Test unitaire Conversion_gen.\n");
exit(-1);
}
if (fabs(conversion_gen("3723.2475")-37.387458)>= pow(10,-6)){
printf ("Erreur Test unitaire Conversion_gen.\n");
exit(-1);
}
}
// ----------------------------------------------------------------------------------------------
// Fin S?ance 1a
// D?but s?ance 2a
// ----------------------------------------------------------------------------------------------
typedef struct {
float latitude;
float longitude;
} Position;
int decode_trame(char * trame, Position *p){
char longitude_trame[10];
char latitude_trame[9];
int compteur = 0;
int i = 0;
int j = 0;
int y = 0;
if (trame_cmp(trame, "GPGGA") == 1)
{
}
}
// Ne pas modifier cette fonction
int main(int argc,char ** argv)
......
}
/*
/* Code Anthony (? regarder !)
float decode_nombre (char * trame) {
int i=0;
int j=0,memoire=0;

Formats disponibles : Unified diff