Projet

Général

Profil

« Précédent | Suivant » 

Révision 634

Ajouté par Faty MBAYE il y a presque 4 ans

MODIFICATION CODE

Voir les différences:

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 de position
typedef struct
{
float latitude;
float longitude;
}
Position ;
//Fonction qui v?rifie la chaine de caract?re type
int trame_cmp(char* a,char* b)
......
//Fonction qui renvoie la valeur d?cimale des n premiers caract?res de la chaine
int decode_nombre(char *ch, int n)
{
/*int i;
int i;
int valeur=0;
for(i=0;i<n;i++)
{
valeur = valeur + decode_int(ch[i])*pow(10,(n-i-1));
}
return valeur;*/
int i;
int valeur = decode_int(ch[0]);
for(i=0;i<n;i++)
{
valeur = valeur*10 + decode_int(ch[i]);
}
return valeur;
}
//Fonction de test de la fonction decode_nombre
......
float longitude;
for (i=0;i<7;i++)
{
pe_minute[i]=longi[3+i]; //affectation des caracteres de lat sauf les 2 premiers
pe_minute[i]=longi[3+i]; //affectation des caracteres de longi sauf les 3 premiers
}
for (j=0;j<7;j++)
{
pd_minute[j]=longi[6+j]; //affectation des 4 derniers caracteres de lat ? pd_min
pd_minute[j]=longi[6+j]; //affectation des 4 derniers caracteres de longi ? pd_min
}
res_pe_minute = decode_nombre(pe_minute,2); //donne la valeur en d?cimal des 2 premiers caract?res
res_pd_minute = decode_nombre(pd_minute,4); //donne la valeur en d?cimal des 4 premiers caract?res
......
longitude = angle_ini + (res_pe_minute/60) + (res_pd_minute/6000);//Valeur de la longitude
return longitude;
}
//Fonction de test de la fonction convert_longi
......
}
//Fonction qui prend en argument la chaine de caract?re contenant la derni?re tram recue si elle est valide et donne sa position
decode_trame(char *trame, Position *p)
{
int i;
if (trame_cmp(trame,"GPGGA"))
{
p->latitude=convert_lat(trame+17);
p->longitude=convert_longi(trame+29);
return 1;
}
return 0;
}
//Fonction de test de la fonction decode_trame
void test_decode_trame(void)
{
if (decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",&test_position)!=1)
{
printf("Erreur Test decode trame \n");
exit(-1);
}
}
//Fonction ? modifier !!!!!
void traitement(char * trame)

Formats disponibles : Unified diff