Révision 409
Ajouté par yoguer il y a presque 4 ans
main.c | ||
---|---|---|
}
|
||
|
||
|
||
float conversion_sexa(char *latitude)
|
||
unsigned long int conversion_sexa(char *latitude_longitude)
|
||
{
|
||
float reste,resultat;
|
||
int tram=decode_nombre(latitude,12);
|
||
printf("%d\n",tram);
|
||
unsigned long int resultVF=0;
|
||
|
||
int tram=decode_nombre(latitude_longitude,12);
|
||
|
||
/* int degres=(tram/1000000); //on travailler en virgule flottante
|
||
reste=(tram-(degres*1000000));
|
||
reste=(reste/10000);
|
||
resultat=(degres+(reste/60));*/
|
||
|
||
int degres=(tram/1000000);
|
||
reste=(tram-(degres*1000000));
|
||
reste=(reste/10000);
|
||
resultat=(degres+(reste/60));
|
||
resultVF=(degres*600000+reste*10000); //on travail en 1/10000('/?)
|
||
//On calcule un K pour passer en rad qui vaut 2.907718*10^-8
|
||
|
||
return resultat;
|
||
return resultVF;
|
||
}
|
||
|
||
|
||
... | ... | |
printf("%d\n", validation);
|
||
}
|
||
|
||
|
||
void traitement_trame(char *trame)
|
||
{
|
||
char tab_latitude[13];
|
||
char tab_longitude[14];
|
||
int i,j;
|
||
unsigned long int latitude,longitude;
|
||
|
||
if (trame_cmp(trame,"GPGGA")==1)
|
||
{
|
||
for(i=0;i<11;i++)
|
||
{
|
||
tab_latitude[i]=trame[i+17];
|
||
}
|
||
latitude=conversion_sexa(tab_latitude);
|
||
|
||
for(j=0;j<12;j++)
|
||
{
|
||
tab_longitude[j]=trame[j+29];
|
||
}
|
||
longitude=conversion_sexa(tab_longitude);
|
||
|
||
printf("latitude=%ld\n",latitude);
|
||
printf("longitude=%ld\n",longitude);
|
||
printf ("> %s\n",trame);
|
||
}
|
||
}
|
||
|
||
|
||
//Fonction ? modifier !!!!!
|
||
void traitement(char * trame)
|
||
... | ... | |
static int cpt=0;
|
||
cpt++ ;
|
||
|
||
if (trame_cmp(trame,"GPGGA")==1)
|
||
{
|
||
//printf ("> %s\n",trame);
|
||
}
|
||
traitement_trame(trame);
|
||
}
|
||
|
||
|
||
... | ... | |
|
||
void test_conversion_latitude_longitude(void)
|
||
{
|
||
char *trame_latitude;
|
||
trame_latitude="3723.2475,S";
|
||
float retour;
|
||
char *trame_latitude_longitude;
|
||
trame_latitude_longitude="35723.2475,W";
|
||
unsigned long int retour;
|
||
|
||
retour=conversion_sexa(trame_latitude);
|
||
printf("retour=%f\n",retour);
|
||
retour=conversion_sexa(trame_latitude_longitude);
|
||
printf("retour=%ld",retour);
|
||
}
|
||
|
||
|
Formats disponibles : Unified diff
recupère la tram puis la traite et renvoie la longitude et la latitude en nombre VF