Révision 458
Ajouté par annoyau il y a presque 4 ans
branch/NOYAU/sp4a12/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;
|
branch/NOYAU/sp4a12/sp4a.depend | ||
---|---|---|
|
||
1619767802 e:\polytech\tpsp4\sp4a12\trame.h
|
||
|
||
1621549077 source:e:\polytech\tpsp4\sp4a12\main.c
|
||
1621717324 source:e:\polytech\tpsp4\sp4a12\main.c
|
||
<stdio.h>
|
||
<stdlib.h>
|
||
<strings.h>
|
Formats disponibles : Unified diff
Travail pour réaliser la fonction calcul_distance + un moyen de stocké 2 latitudes et 2 longitudes.