Révision 343
Ajouté par Victor SOUDY il y a presque 3 ans
branch/SOUDY/main.c | ||
---|---|---|
//fcts ajout?s
|
||
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 i;
|
||
int test=1;
|
||
for(i=0;i<5;i++)
|
||
{
|
||
test=0;
|
||
if(trame[i+1]!=type[i]) //permet comparer d?but trame avec le type lettre ? lettre
|
||
{
|
||
test=0;
|
||
}
|
||
}
|
||
}
|
||
return test;
|
||
}
|
||
|
||
int decode_int(char c)
|
||
{
|
||
if(c<='9' && c>='0')
|
||
if(c<='9' && c>='0')
|
||
{
|
||
c=c-48;
|
||
c=c-48;
|
||
}
|
||
else
|
||
else
|
||
{
|
||
c=-1;
|
||
c=-1;
|
||
}
|
||
return(c);
|
||
}
|
||
|
||
int decode_nombre(char *ch,int n)
|
||
{
|
||
int temp=0;
|
||
int i;
|
||
for(i=0;i<n;i++)
|
||
{
|
||
temp=(temp*10)+decode_int(ch[i]); // permet de traiter terme ? terme
|
||
int temp=0;
|
||
int i;
|
||
for(i=0;i<n;i++)
|
||
{
|
||
temp=(temp*10)+decode_int(ch[i]); // permet de traiter terme ? terme
|
||
|
||
}
|
||
return temp;
|
||
}
|
||
return temp;
|
||
}
|
||
|
||
float lat_to_float (char*trame)
|
||
... | ... | |
//void coordonnee_to_float (char*trame,position pos)
|
||
void coordonne_to_float (char*trame,float* lat_position,float* long_position)
|
||
{
|
||
*lat_position=lat_to_float (trame);
|
||
*long_position=long_to_float (trame);
|
||
*lat_position=lat_to_float (trame);
|
||
*long_position=long_to_float (trame);
|
||
}
|
||
|
||
|
||
... | ... | |
trame_cmp(trame,"GPGGA");
|
||
if (trame_cmp(trame,"GPGGA")==1)
|
||
{
|
||
//position pos;
|
||
//printf("%f\n%f\n",coordonnee_to_float(trame,pos)); // comment printf le resultat d'une proc?dure en C ?
|
||
float x,y;
|
||
coordonne_to_float(trame,&x,&y);
|
||
printf("lat=%f\nlong=%f\n",x,y);
|
||
... | ... | |
}
|
||
|
||
float calcul _vitesse(position pos1, position pos2)
|
||
{int r_Terre=6371;
|
||
float D,vitesse;
|
||
D=sqrt(pow((pos2.Longitude-pos1.Longitude)*r_Terre,2)+pow((pos2.Latitude-pos1.Latitude)*r_Terre,2)); // calcul de la distance ? partir des longitudes et lattitudes des 2 positions
|
||
vitesse=(D*r_Terre)/3600; // calcul de la vitesse ? partir de la distance pr?alablement calcul?e
|
||
return vitesse;
|
||
{
|
||
int r_Terre=6371;
|
||
float D,vitesse;
|
||
D=sqrt(pow((pos2.Longitude-pos1.Longitude)*r_Terre,2)+pow((pos2.Latitude-pos1.Latitude)*r_Terre,2)); // calcul de la distance ? partir des longitudes et lattitudes des 2 positions
|
||
vitesse=(D*r_Terre)/3600; // calcul de la vitesse ? partir de la distance pr?alablement calcul?e
|
||
return vitesse;
|
||
}
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
Formats disponibles : Unified diff
Amélioration de l'indentation du programme