Projet

Général

Profil

« Précédent | Suivant » 

Révision 597

Ajouté par annoyau il y a environ 4 ans

Avancer de l'optimisation du code avec la création d'une structure pour la latitude et la longitude

Voir les différences:

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