Révision 190
Ajouté par Lea DUVIVIER il y a environ 3 ans
main.c | ||
---|---|---|
"$GPVTG,99.4,T,,M,0.4,N,0.7,K*57",
|
||
"$GPZDA,141914.00,01,02,2006,00,00*69",
|
||
0};
|
||
typedef struct{
|
||
float latitude;
|
||
float longitude;
|
||
|
||
|
||
}Position;
|
||
Position p1,p2,p3,p4;
|
||
int decode_nombre(char *ch, int n);
|
||
|
||
float latitude_nbf(char* c)
|
||
|
||
{
|
||
... | ... | |
resultat=degre11+(minute11/60)+(minute22/600000);
|
||
return resultat;
|
||
}
|
||
float longitude_nbf(char*c)
|
||
float longitude_nbf(char* c)
|
||
{
|
||
|
||
int degre;
|
||
... | ... | |
resultat=degre11+(minute11/60)+(minute22/600000);
|
||
return resultat;
|
||
}
|
||
float lat_lon(char *c)
|
||
float lat_lon(char* c)
|
||
{
|
||
float resultat;
|
||
if(&c[4]==46)
|
||
if(c[4]==46)
|
||
{
|
||
resultat=latitude_nbf(c);
|
||
}
|
||
... | ... | |
return resultat;
|
||
}
|
||
|
||
int decode_trame(char* trame,Position* p)
|
||
{
|
||
int ok;
|
||
ok=0;
|
||
if(trame[16]!=trame[17] && trame[28]!=trame[29])
|
||
{
|
||
|
||
|
||
if(trame_cmp(trame,"GPGGA")==1)
|
||
{
|
||
p->latitude=latitude_nbf(&trame[17]);
|
||
p->longitude=longitude_nbf(&trame[29]);
|
||
ok=1;
|
||
}
|
||
}
|
||
return ok;
|
||
}
|
||
|
||
/*Fonction ? modifier !!!!!*/
|
||
void traitement(char * trame)
|
||
{
|
||
printf ("> %s\n",trame);
|
||
printf ("> %s\n",trame);
|
||
float lat,lat2,lat3,lat4;
|
||
float longi,longi2,longi3,longi4;
|
||
int i;
|
||
i=0;
|
||
if (i==0)
|
||
{
|
||
decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p1);
|
||
decode_trame("$GPGGA,141914.00,5078.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p2);
|
||
decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*72", &p3);
|
||
decode_trame("$GPGGA,141915.00,4554.0242,N,00306.8039,E,1,05,3.4,499.5,M,,M,,*72", &p4);
|
||
lat4=p4.latitude;
|
||
longi4=p4.longitude;
|
||
lat3=p3.latitude;
|
||
longi3=p3.longitude;
|
||
lat2=p2.latitude;
|
||
longi2=p2.longitude;
|
||
lat=p1.latitude;
|
||
longi=p1.longitude;
|
||
printf("%f\n%f\n%f\n%f\n%f\n%f\n%f\n%f", lat,lat2,lat3,lat4,longi,longi2,longi3,longi4);
|
||
i=1;
|
||
exit(-1);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
/*Ajouter vos tests unitaires dans cette fonction.*/
|
||
... | ... | |
printf("Erreur du test decode nombre");
|
||
exit(-1);
|
||
}
|
||
if(latitude_nbf("3723.2475")==37.387458)
|
||
if(latitude_nbf("3723.2475")==37.387458) /* changer test*/
|
||
{
|
||
printf("Erreur du test pour la latitude");
|
||
exit(-1);
|
||
... | ... | |
{
|
||
printf("Erreur de test pour la combinaison des deux fonctions");
|
||
exit(-1);
|
||
}
|
||
}
|
||
if(decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p1)!=1)
|
||
{
|
||
printf("Erreur de test pour decode trame");
|
||
exit(-1);
|
||
}
|
||
|
||
if(decode_trame("$GPGGA,141914.00,5078.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p2)!=1)
|
||
{
|
||
printf("Erreur de test pour decode trame");
|
||
exit(-1);
|
||
}
|
||
if(decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*72", &p3)!=1)
|
||
{
|
||
printf("Erreur de test pour decode trame");
|
||
exit(-1);
|
||
}
|
||
if(decode_trame("$GPGGA,141915.00,4554.0242,N,00306.8039,E,1,05,3.4,499.5,M,,M,,*72", &p4)!=1)
|
||
{
|
||
printf("Erreur de test pour decode trame");
|
||
exit(-1);
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
/* Ne pas modifier cette fonction*/
|
Formats disponibles : Unified diff
Decode trame qui fonctionne et affichage des 4 longitudes et latitudes contenues dans decodes tram