Projet

Général

Profil

« Précédent | Suivant » 

Révision 458

Ajouté par annoyau il y a presque 4 ans

Travail pour réaliser la fonction calcul_distance + un moyen de stocké 2 latitudes et 2 longitudes.

Voir les différences:

main.c
static int cpt=0 ;
cpt++ ;
int i,j;
int i,j,i2;
char tab_lat[11];
char tab_lon[12];
long resultat_l;
long resultat_L;
long conversion_L;
long conversion_l;
long stockage_lat[2];
long stockage_lon[2];
float distance=0;
double distance1=0;
int i1=0, j1=0;
long lat1 = 0, lat2 = 0, lon1 = 0, lon2 = 0;
if (trame_cmp(trame,"GPGGA")==1) {
printf ("> %s\n",trame);
decode_trame(&tab_lat,&tab_lon,trame);
resultat_L = decode_nombre(&tab_lat);
resultat_l = decode_nombre(&tab_lon);
/* printf("Latitude %ld\n",resultat_L);
/* printf("Latitude %ld\n",resultat_L);
printf("Longitude : %ld\n",resultat_l); */
conversion_L = Conversion_sexagesimale(resultat_L);
conversion_l = Conversion_sexagesimale(resultat_l);
printf("Latitude %ld\n",conversion_L);
printf("Longitude : %ld\n",conversion_l);
stock_lat (conversion_L, &stockage_lat);
stock_lon (conversion_l, &stockage_lon);
if (stockage_lat[0]>stockage_lat[1])
{
lat1 = stockage_lat[1];
lat2 = stockage_lat[0];
lon1 = stockage_lon[1];
lon2 = stockage_lon[0];
distance = calcul_distance(&lat1,&lat2,&lon1,&lon2);
printf("La distance est : %f\n",distance);
}
}
}
void stock_lat (long lat_R, long * stock_L)
{
if ((lat_R != stock_L[0]))
{
stock_L[1] = stock_L[0];
stock_L[0] = lat_R;
}
printf("bite :%ld\n",stock_L[1]);
}
void stock_lon(long lon_R, long * stock_l)
{
if ((lon_R != stock_l[0]))
{
stock_l[1] = stock_l[0];
stock_l[0] = lon_R;
}
printf("bite :%ld\n",stock_l[0]);
}
void calcul_distance (long * lat1, long * lat2, long * lon1, long * lon2)
{
long delta_lat = lat1 - lat2;
long deltat_lon = lon1 - lon2;
float distance = sqrt(pow(delta_lat,2)+ pow(deltat_lon,2));
printf("SAlope : %lf\n",distance);
}
void decode_trame(char * tab_lat, char * tab_lon, char *trame)
{
int i=17,j=29;

Formats disponibles : Unified diff