Révision 597
Ajouté par annoyau il y a environ 4 ans
branch/NOYAU/sp4a12/main.c | ||
---|---|---|
#include "trame.h"
|
||
#include <math.h>
|
||
int memo_L;
|
||
int memo_l;
|
||
int memo_l;
|
||
typedef struct p_tab
|
||
{
|
||
char lat[11];
|
||
char lon[12];
|
||
}p_tab;
|
||
typedef struct p_long
|
||
{
|
||
long lat;
|
||
long lon;
|
||
}p_long;
|
||
//Trames de tests ? modifier si n?cessaire.
|
||
char * trames[]= {"$GPGSV,3,2,10,15,03,077,,18,04,041,42,19,85,271,,20,08,214,*7C",
|
||
"$GPGSV,3,3,10,22,39,053,50,28,15,320,*7E",
|
||
... | ... | |
}
|
||
int Conversion_sexagesimale(int nb_sexa)
|
||
{
|
||
float result=0, result_min=0;
|
||
int degres=0;
|
||
float result=0 ;
|
||
int degres=0,result_min=0;
|
||
int stock=0;
|
||
int result_vf=0;
|
||
|
||
stock = nb_sexa;
|
||
degres=stock/1000000;
|
||
result_min=(stock-(degres*1000000));
|
||
result_min = (result_min/10000);
|
||
|
||
result=(degres+(result_min/60));
|
||
|
||
|
||
/* 1/10000 de minute => K = 1.666*10^-6 pour passer en degr?s
|
||
K_rad = 1.666*10^-6 * Pi/180 */
|
||
result_vf = (degres*600000)+(result_min*10000);
|
||
result_vf = (degres*600000)+(result_min);
|
||
|
||
|
||
// printf("%ld\n",result_vf);
|
||
... | ... | |
static int cpt=0 ;
|
||
|
||
cpt++ ;
|
||
|
||
p_tab p1;
|
||
int i,j,i2;
|
||
char tab_lat[11];
|
||
char tab_lon[12];
|
||
... | ... | |
|
||
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);
|
||
decode_trame(&p1,trame);
|
||
resultat_L = decode_nombre(&p1.lat);
|
||
resultat_l = decode_nombre(&p1.lon);
|
||
/* printf("Latitude %ld\n",resultat_L);
|
||
printf("Longitude : %ld\n",resultat_l); */
|
||
conversion_L = Conversion_sexagesimale(resultat_L);
|
||
... | ... | |
|
||
printf("SAlope : %d\n",distance);
|
||
}
|
||
void decode_trame(char * tab_lat, char * tab_lon, char *trame)
|
||
void decode_trame(p_tab *p1, char *trame)
|
||
{
|
||
int i=17,j=29;
|
||
for (i=17;i<27;i++)
|
||
{
|
||
tab_lat[i-17] = trame[i];
|
||
(*p1).lat[i-17] = trame[i];
|
||
}
|
||
for (j=29;j<40;j++)
|
||
{
|
||
tab_lon[j-29] = trame[j];
|
||
(*p1).lon[j-29] = trame[j];
|
||
}
|
||
|
||
|
Formats disponibles : Unified diff
Avancer de l'optimisation du code avec la création d'une structure pour la latitude et la longitude