Projet

Général

Profil

« Précédent | Suivant » 

Révision 632

Ajouté par jcguifodjo il y a environ 4 ans

Implémentation de la fonction calcul vitesse
Et implémentation de la matrice observation du filtre de Kalman

Voir les différences:

main.c
#include <strings.h>
#include "trame.h"
#include "math.h"
#define k 0.017453292519943
#define k 111120
#define N 200
#define rads 0.01745329252
//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",
......
"$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39",
"$GPVTG,99.4,T,,M,0.4,N,0.7,K*57",
"$GPZDA,141914.00,01,02,2006,00,00*69",
0};
0};
typedef struct {
float latitude;
float longitude;
......
for(i=0;i<n;i++){
valeur+=decode_int(c[i])*pow(10,n-1-i);
}
return valeur;
}
//Conversion de la latitude et longitude en degree floatant
float conversion(char *c)
......
p.latitude=-p.latitude;
}
if(indx_lat[0]=='W'){
if(indx_lon[0]=='W'){
p.longitude=-p.longitude;
}
}
}
else{
d=0;
}
return d;
}
//Fonction qui calcule la distance entre deux positions
float calcul_distance(Position p1,Position p2){
float x,a,y,z,distance,b;
a=(p2.longitude-p1.longitude);
b=(p1.latitude+p2.latitude)/2;
x=a*cos(b*rads);
y=p2.latitude-p1.latitude;
z=sqrt((x*x)+(y*y));
distance=k*z;
return distance;
}
//Fonction qui calcule la vitesse du vehicule par seconde
/*float calcule_vitesse(Position p1, Position p2){
float distance,vitesse;
distance=calcul_distance(Position p1, Position p2);
vitesse=3.6*distance;
return vitesse;*
}*/
//Fonction ? modifier !!!!!
void traitement(char * trame)
{
int d;
static int cpt=0 ;
cpt++ ;
if (trame_cmp(trame,"GPGGA")==1)
{
printf ("> %s\n",trame);
d=decode_trame(trame,Position p);
printf ("d= %d",d);
}
}
......
printf ("Erreur Test unitaire basique decode nombre.\n");
exit(-1);
}
if (decode_nombre("632",2)!=63){
if (decode_nombre("400",2)!=40){
printf ("Erreur Test unitaire basique decode nombre.\n");
exit(-1);
}

Formats disponibles : Unified diff