Projet

Général

Profil

« Précédent | Suivant » 

Révision 408

Ajouté par Lea DUVIVIER il y a environ 3 ans

Remise du code, version finale

Voir les différences:

tag/rc_1/branch/duvivier_lea/sp4a12/main.c
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include "trame.h"
#include <math.h>
/*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", /* Tableau avec differentes trames*/
"$GPGSV,3,3,10,22,39,053,50,28,15,320,*7E",
"$GPRMC,141914.00,A,4545.6424,N,00306.6036,E,0.4,99.4,010206,,*0C",
"$GPGLL,4545.6424,N,00306.6036,E,141914.00,A*0E",
"$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",
"$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",
/* Declaration des structures positions, Zones et du tableau contenant des zones*/ 0};
typedef struct{ /* Definition de la position */
float latitude;
float longitude;
}Position;
Position p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;
typedef struct{
Position rpos;
float vitmax;
}Zone;
Zone zones[]= /*Definition des zones dangereuses*/
{
{{44.7887762, -3.012}, 50},
{{44.7891220, -3.013},70},
};
float latitude_nbf(char* c) /* Fonction qui convertit une latitude en latitude mais en nombre flottant*/
{
int degre;
int minute1;
int minute2;
float minute11;
float minute22;
float degre11;
float resultat;
degre=decode_nombre(&c[0],2); /* Ici on recupere les termes qui nous interessent et on separe les degres et les minutes*/
minute1=decode_nombre(&c[0+2],2);
minute2=decode_nombre(&c[0+5],4);
degre11=(float)degre; /* On convertit les int en flottant*/
minute11=(float)minute1;
minute22=(float)minute2;
resultat=degre11+(minute11/60)+(minute22/600000); /* On additionne chaque terme "modifi?" pour avoir le resultat en flottant*/
return resultat;
}
float longitude_nbf(char* c) /* Fonction qui convertit une longitude en longitude mais en nombre flottant*/
{
int degre;
int minute1;
int minute2;
float minute11;
float minute22;
float degre11;
float resultat;
degre=decode_nombre(&c[0],3); /* Memes operations que pour la latitude_nbf*/
minute1=decode_nombre(&c[0+3],2);
minute2=decode_nombre(&c[0+3],4);
degre11=(float)degre;
minute11=(float)minute1;
minute22=(float)minute2;
resultat=degre11+(minute11/60)+(minute22/600000);
return resultat;
}
float lat_lon(char* c) /*Fonction qui decode indifferemment une latitude et une longitude*/
{
float resultat;
if(c[4]==46) /*On regarde ici si le caract?re 5 est un point et si oui on sait que ?a correspond ? une latitude*/
{
resultat=latitude_nbf(c);
}
else{
resultat=longitude_nbf(c);
}
return resultat;
}
int trame_cmp(char * trame, char * type) /*Fonction qui regarde si la trame commence par la chaine de caract?re type*/
{
int i;
int ok;
ok=1; /* On part du principe que la trame est correcte donc ok=1*/
for(i=0;i<5;i=i+1) /* Ici on parcourt 5 fois car il y a 5 lettres sur les debuts de trames*/
{
if(trame[i+1]!=type[i]) /* On compare element par element jusqu'? trouver une difference ou non*/
{
ok=0; /* Si difference trame incorrecte donc ok passe ? 0*/
}
}
return ok;
}
int decode_int(char c) /* Fonction qui renvoie la valeur en decimale d'un caract?re*/
{
int decode;
if(c<='9' && c>='0') /* on regarde si il est compris entre 0 et 9 dans la table ascii*/
{
decode=c-48; /* on soustrait 48 ("0") car on veut afficher la bonne correspondance*/
}
else
{
decode=-1; /* Sinon ce n'est pas un chiffre donc on retourne -1*/
}
return decode;
}
int decode_nombre(char *ch, int n) /*Fonction qui renvoit la valeur decimale des n premiers caract?res de la chaine*/
{
int i;
int resultat=0;
for(i=0;i<n;i=i+1) /* Parcourt la chaine jusqu'au nombre de caract?re souhait?*/
{
resultat=(resultat*10)+decode_int(ch[i]); /* On utilise ici *10 pour ne pas perdre le precedent chiffre ? chaque iteration */
}
return resultat;
}
int decode_trame(char* trame,Position* p) /*Fonction qui permet de verifier si une trame est correcte et qui recup?re la latitude et la longitude dans une structure*/
{
int ok;
ok=0;
if(trame[16]!=trame[17] && trame[28]!=trame[29]) /* Verifie si la trame est correcte, si il n'y a pas deux virgules ? c?t?*/
{
if(trame_cmp(trame,"GPGGA")==1) /* Regarde si la trame commence bien par GPGGA*/
{
p->latitude=latitude_nbf(&trame[17]); /* On recupere la latitude et la longitude et on les places dans la structure, 17, et 29 correspondent aux positions de latitude et longitude dans la trame*/
p->longitude=longitude_nbf(&trame[29]);
ok=1;
}
}
return ok;
}
float calcule_distance(Position p1, Position p2) /*Fonction qui permet d'obtenir la distance entre deux points qui ont comme coordonn?es la latitude et la longitude*/
{
float distance;
distance=((2*3.14*6370)/360)*sqrt((p2.latitude-p1.latitude)*(p2.latitude-p1.latitude)+(p2.longitude-p1.longitude)*(p2.longitude-p1.longitude));
return distance;
}
float calcule_vitesse(Position p1, Position p2) /*Fonction qui calcule la vitesse en km/h*/
{
float vitesse;
vitesse=(calcule_distance(p1,p2)*3600); /* *3600 pour passer en km/h*/
return vitesse;
}
int distance_a_la_plus_proche_zone(Position p, Zone r[], int nb_zones, float *d) /*Fonction qui retourne le numero de la zone dont la distance est la plus proche*/
{
*d=calcule_distance(p,r[0].rpos); /*recup?re la distance entre la position p et la position initiale de la zone dangereuse*/
float distance;
int i;
int numero_tab=0;
if (nb_zones>0) /* regarde si il y a des zones dans la table*/
{
for(i=1;i<nb_zones;i++) /*On parcourt le tableau des zones dangereuses*/
{
distance=calcule_distance(p,r[i].rpos); /*On recalcule la distance entre la position p et la zone actuelle*/
if(distance<(*d)) /*On regarde si la distance est inferieur ? celle qui compare p et la premiere zone dangereuse soit l'initialisation*/
{
(*d)=distance;
numero_tab=i; /*On increment le numero_tab pour recuperer le numero de la zone dangereuse*/
}
}
return numero_tab;
}
else{
return (-1);
}
}
void test_distance_a_la_plus_proche_zone(void) /*Test qui permet de tester la fonction de la distance de la plus proche zone*/
{
Position p,p1,p2;
p1.latitude=44.7887762; /* Valeurs des deux positions des zones dangereuses. Permet de verifier si la distance affich?e est bien celle dans les watches pour comparer et verifier le bon fonctionnement*/
p1.longitude=-3.012;
p2.latitude=44.7891220;
p2.longitude=-3.013;
decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p); /*Cette trame permet de faire un test pour verifier que la fonction fonctionne*/
float d1,d2;
d1=calcule_distance(p,p1); /*On calcul les distaances pour comparer ? celles dans les watchs quand on debug*/
d2=calcule_distance(p,p2);
printf("%f\n", d1);
printf("%f\n", d2);
int nb_zone;
float *d;
nb_zone=distance_a_la_plus_proche_zone(p,zones,2,&d); /*On recupere le numero de la zone dont la distance est la plus proche ? celle de la trame*/
if(nb_zone!=0) /* Ici la distance la plus courte est celle de la premiere zone donc correspond ? l'indice 0 dans le tableau des zones*/
{
printf("Erreur dans la zone la plus proche");
exit(-1);
}
}
/*Fonction ? modifier !!!!!*/
void traitement(char * trame)
{
/*int i=0;
if(i==0)
{
test_distance_a_la_plus_proche_zone(); /* Appel de la fonction de test */
/*i=1;
exit(-1);
}*/
int trame_valide,d; /*Initialisation des variables*/
float vitesse,distance;
Position posi,posi_initiale;
if(trame_cmp(trame,"GPGGA")==1) /* Ici si la trame est correcte et commence par GPGGA, on l'affiche */
{
printf ("> %s\n",trame); /* On affiche toutes les trames GPGGA*/
decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",&posi_initiale); /*Ici je prends la premiere trame et je la considere comme la trame initiale et je recupere sa latitude et sa longitude dans une structure*/
trame_valide=decode_trame(trame,&posi); /*Met les valeurs de latitude et longitude de la trame "du moment" dans une structure pour l'utiliser dans les calculs d'apr?s*/
vitesse=calcule_vitesse(posi,posi_initiale); /* Calcul de la vitesse entre les trames et la position "initiale"*/
distance=calcule_distance(posi,posi_initiale);
d=distance_a_la_plus_proche_zone(posi,zones,2,&distance); /*Donne le numero de la zone dangereuse la plus proche qui va permettre le declenchement de l'alarme si on est trop proche*/
if(distance<687.68 && vitesse>zones[d].vitmax) /* Compare la distance ? un seuil et la vitesse ? la vitesse max ce qui va permettre de declencher l'alarme si on est trop proche de la zone*/
{
printf("Alarme : on \n"); /* Declenchement des alarmes et affichages des distances et des vitesses pour chaque trame*/
printf("La distance est : ");
printf("%f \n", distance);
printf("La vitesse est : ");
printf("%f\n", vitesse);
}
else{
printf("Alarme : Off \n");
posi_initiale=posi; /* Si l'alarme se declenche pas on change la position initiale ? la position actuelle*/
}
}
}
/*float lat,lat2,lat3,lat4;
float longi,longi2,longi3,longi4;
int i;
i=0;
if (i==0) /*Pour faire qu'une fois le test*/
/*{
/*decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p1);
decode_trame("$GPGGA,141914.00,5078.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p2); /*Test unitaires qui valident le fonctionnement de decode trame*/
/*decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*72", &p3);
decode_trame("$GPGGA,141915.00,4554.0242,N,00306.8039,E,1,05,3.4,499.5,M,,M,,*72", &p4);
lat4=p4.latitude;
longi4=p4.longitude;
lat3=p3.latitude;
longi3=p3.longitude;
lat2=p2.latitude;
longi2=p2.longitude;
lat=p1.latitude;
longi=p1.longitude;
/* printf("%s", "La latitude et la longitude de la premiere trame sont : "); /*Affichage pour chaque trame de la position et verification que tout marche*/
/* printf("%f , %f\n", lat, longi);
printf("%s", "La latitude et la longitude de la deuxieme trame sont : ");
printf("%f , %f\n", lat2, longi2);
printf("%s", "La latitude et la longitude de la troisieme trame sont : ");
printf("%f , %f\n", lat3, longi3);
printf("%s", "La latitude et la longitude de la quatrieme trame sont : ");
printf("%f , %f\n", lat4, longi4);
p5.latitude=latitude_nbf("4545.0000"); /* Test avec les trames donn?es dans le sujet */
/*p5.longitude=longitude_nbf("00306.6036");
p6.latitude=latitude_nbf("4545.0242");
p6.longitude=longitude_nbf("00306.6039");
printf("%s", "La distance est :");
printf("%f%s", calcule_distance(p5,p6)," km\n");/*Test unitaire de calcul distance*/
/*p7.latitude=latitude_nbf("4852.0010"); /* Test distance entre Paris et Toulouse : Paris:p7 et Toulouse:p8*/
/*p7.longitude=longitude_nbf("00219.5999");
p8.latitude=latitude_nbf("4335.5999");
p8.longitude=longitude_nbf("00125.5999");
printf("%s", "La distance entre Paris et Toulouse est :");
printf("%f%s", calcule_distance(p7,p8)," km\n");
p9.latitude=latitude_nbf("4317.6000"); /* Test distance entre Marseille et Toulouse : Marseille:p5 et Toulouse:p6 ( comparaison avec travail preparatoire tout est coherent)*/
/*p9.longitude=longitude_nbf("00524.0000");
p10.latitude=latitude_nbf("4335.5999");
p10.longitude=longitude_nbf("00125.5999");
printf("%s", "La distance entre Marseille et Toulouse est :");
printf("%f%s", calcule_distance(p9,p10)," km\n");
printf("%s", "La vitesse est :"); /*Test unitaire pour verifier que le calcul de la vitesse est correct*/
/*printf("%f", calcule_vitesse(p1,p2)); /* Test de calcul Vitesse*/
/*
i=1;
exit(-1);
}*/
/*}
/*Ajouter vos tests unitaires dans cette fonction.*/
void tests_unitaires(void){
if (5!=5){
printf ("Erreur Test unitaire basique.\n");
exit(-1);
}
if (trame_cmp("$GPGGA suite chaine","GPGGA")!=1){
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
}
if (trame_cmp("$GPRMC suite chaine","GPGGA")!=0){
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
}
if (trame_cmp("$GPRMC... ", "GPRMC" )!=1){
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
}
if (trame_cmp("$APRMC...", "GPGGA")!=0){
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
}
if(decode_int('5')!=5)
{
printf("Erreur du test decode int\n");
exit(-1);
}
if((decode_int('9'))!=9)
{
printf("Erreur du test decode int\n");
exit(-1);
}
if(decode_nombre("9555",2)!=95)
{
printf("Erreur du test decode nombre\n");
exit(-1);
}
if((latitude_nbf("3723.2475")-37.38)>0.01) /* On regarde combien ca nous donne ? l'aide d'une calculatrice et on met une marge d'erreur pour savoir si le nombre retourn? correspond car on ne peut pas faire tr?s precis */
{
printf("Erreur du test pour la latitude\n");
exit(-1);
}
if((longitude_nbf("00306.6036")-3.11)>0.01)
{
printf("Erreur du test pour la latitude\n");
exit(-1);
}
if ((lat_lon("00306.6036")-3.11)>0.01)
{
printf("Erreur de test pour la combinaison des deux fonctions\n");
exit(-1);
}
if ((lat_lon("3723.2475")-37.38)>0.01)
{
printf("Erreur de test pour la combinaison des deux fonctions\n");
exit(-1);
}
if((lat_lon("2526.4536")-25.44)>0.01)
{
printf("Erreur de test pour la combinaison de deux fonctions\n");
exit(-1);
}
if ((lat_lon("01304,6025")-13.07)>0.01)
{
printf("Erreur de test pour la combinaison de deux fonctions\n");
exit(-1);
}
/*if(decode_trame("$GPGPA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p1)!=1)
{
printf("Erreur de test pour decode trame");
exit(-1);
}*/ /*Trame incorrect car differente de GPGPA donc on quitte le programme*/
if(decode_trame("$GPGGA,141914.00,5078.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &p2)!=1)
{
printf("Erreur de test pour decode trame");
exit(-1);
}
/*if(decode_trame("$XPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*72", &p3)!=1)
{
printf("Erreur de test pour decode trame");
exit(-1);
}*/ /*Trame incorrect car commence par X donc quitte le programme*/
if(decode_trame("$GPGGA,141915.00,4554.0242,N,00306.8039,E,1,05,3.4,499.5,M,,M,,*72", &p4)!=1)
{
printf("Erreur de test pour decode trame");
exit(-1);
}
}
/* Ne pas modifier cette fonction*/
int main(int argc,char ** argv)
{
tests_unitaires();
/* Affichage des trames definies dans la table trames.*/
printf ("Trames de tests tableau trames:\n");
int i=0;
while (trames[i])
traitement(trames[i++]);
if (!trame_init())
exit(-1);
/*Affichage des trames du fichier gps.log*/
char *trame;
printf ("Trames de tests du fichier gps.log\n");
while ((trame = trame_suivante()))
traitement(trame);
return 0;
}
tag/rc_1/branch/duvivier_lea/sp4a12/gps.log
$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
$GPRMC,141914.00,A,4545.6424,N,00306.6036,E,0.4,99.4,010206,,*0C
$GPGLL,4545.6424,N,00306.6036,E,141914.00,A*0E
$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*79
$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
$GPGSV,3,1,10,01,13,142,46,03,48,144,47,11,41,277,,14,27,104,42*75
$GPGSV,3,2,10,15,03,077,,18,04,041,41,19,85,271,,20,08,214,*7F
$GPGSV,3,3,10,22,39,053,48,28,15,320,*77
$GPRMC,141915.00,A,4545.6423,N,00306.6039,E,0.6,110.2,010206,,*31
$GPGLL,4545.6423,N,00306.6039,E,141915.00,A*07
$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*75
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,110.2,T,,M,0.6,N,1.2,K*67
$GPZDA,141915.00,01,02,2006,00,00*68
$GPGSV,3,1,10,01,13,142,45,03,48,144,47,11,41,277,,14,27,104,41*75
$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,49,28,15,320,*76
$GPRMC,141916.00,A,4545.6422,N,00306.6037,E,0.1,211.1,010206,,*3B
$GPGLL,4545.6422,N,00306.6037,E,141916.00,A*0B
$GPGGA,141916.00,4545.0484,N,00306.6037,E,1,05,3.4,500.0,M,,M,,*70
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,211.1,T,,M,0.1,N,0.2,K*60
$GPZDA,141916.00,01,02,2006,00,00*6B
$GPGSV,3,1,10,01,13,142,45,03,48,144,48,11,41,277,,14,27,104,43*78
$GPGSV,3,2,10,15,03,077,,18,04,041,44,19,85,271,,20,08,214,*7A
$GPGSV,3,3,10,22,39,053,48,28,15,320,*77
$GPRMC,141917.00,A,4545.6422,N,00306.6039,E,0.3,122.3,010206,,*37
$GPGLL,4545.6422,N,00306.6039,E,141917.00,A*04
$GPGGA,141917.00,4545.0726,N,00306.6039,E,1,05,3.4,499.6,M,,M,,*73
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,122.3,T,,M,0.3,N,0.5,K*64
$GPZDA,141917.00,01,02,2006,00,00*6A
$GPGSV,3,1,10,01,13,142,45,03,48,144,46,11,41,277,,14,27,104,41*74
$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,48,28,15,320,*77
$GPRMC,141918.00,A,4545.6421,N,00306.6034,E,0.5,252.2,010206,,*35
$GPGLL,4545.6421,N,00306.6034,E,141918.00,A*05
$GPGGA,141918.00,4545.0968,N,00306.6034,E,1,05,3.4,498.8,M,,M,,*7A
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,252.2,T,,M,0.5,N,1.0,K*63
$GPZDA,141918.00,01,02,2006,00,00*65
$GPGSV,3,1,10,01,13,142,45,03,48,144,48,11,41,277,,14,27,104,42*79
$GPGSV,3,2,10,15,03,077,,18,04,041,42,19,85,271,,20,08,214,*7C
$GPGSV,3,3,10,22,38,053,49,28,15,320,*77
$GPRMC,141919.00,A,4545.6420,N,00306.6040,E,0.6,95.2,010206,,*0C
$GPGLL,4545.6420,N,00306.6040,E,141919.00,A*06
$GPGGA,141919.00,4545.1210,N,00306.6040,E,1,05,3.4,500.2,M,,M,,*77
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,95.2,T,,M,0.6,N,1.2,K*5B
$GPZDA,141919.00,01,02,2006,00,00*64
$GPGSV,3,1,10,01,13,142,46,03,48,144,49,11,41,277,,14,27,104,42*7B
$GPGSV,3,2,10,15,03,077,,18,04,041,43,19,85,271,,20,08,214,*7D
$GPGSV,3,3,10,22,38,053,49,28,15,320,*77
$GPRMC,141920.00,A,4545.6419,N,00306.6039,E,0.2,133.1,010206,,*38
$GPGLL,4545.6419,N,00306.6039,E,141920.00,A*08
$GPGGA,141920.00,4545.1410,N,00306.6039,E,1,05,3.4,500.0,M,,M,,*77
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,133.1,T,,M,0.2,N,0.4,K*66
$GPZDA,141920.00,01,02,2006,00,00*6E
$GPGSV,3,1,10,01,13,142,45,03,48,144,46,11,41,277,,14,27,104,43*76
$GPGSV,3,2,10,15,03,077,,18,04,041,41,19,85,271,,20,08,214,*7F
$GPGSV,3,3,10,22,38,053,50,28,15,320,*7F
$GPRMC,141921.00,A,4545.6419,N,00306.6043,E,0.6,103.1,010206,,*33
$GPGLL,4545.6419,N,00306.6043,E,141921.00,A*04
$GPGGA,141921.00,4545.1610,N,00306.6043,E,1,05,3.4,499.8,M,,M,,*70
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,103.1,T,,M,0.6,N,1.1,K*65
$GPZDA,141921.00,01,02,2006,00,00*6F
$GPGSV,3,1,10,01,13,142,46,03,48,144,48,11,41,277,,14,27,104,42*7A
$GPGSV,3,2,10,15,03,077,,18,04,041,42,19,85,271,,20,08,214,*7C
$GPGSV,3,3,10,22,38,053,48,28,15,320,*76
$GPRMC,141922.00,A,4545.6418,N,00306.6046,E,0.7,96.9,010206,,*00
$GPGLL,4545.6418,N,00306.6046,E,141922.00,A*03
$GPGGA,141922.00,4545.1810,N,00306.6046,E,1,05,3.4,500.6,M,,M,,*77
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,96.9,T,,M,0.7,N,1.3,K*53
$GPZDA,141922.00,01,02,2006,00,00*6C
$GPGSV,3,1,10,01,13,142,47,03,48,144,46,11,41,277,,14,27,104,43*74
$GPGSV,3,2,10,15,03,077,,18,04,041,43,19,85,271,,20,08,214,*7D
$GPGSV,3,3,10,22,38,053,48,28,15,320,*76
$GPRMC,141923.00,A,4545.6417,N,00306.6046,E,0.3,113.6,010206,,*39
$GPGLL,4545.6417,N,00306.6046,E,141923.00,A*0D
$GPGGA,141923.00,4545.2010,N,00306.6046,E,1,05,3.4,500.6,M,,M,,*7D
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,113.6,T,,M,0.3,N,0.7,K*61
$GPZDA,141923.00,01,02,2006,00,00*6D
$GPGSV,3,1,10,01,13,142,45,03,48,144,47,11,41,277,,14,27,104,41*75
$GPGSV,3,2,10,15,03,077,,18,04,041,43,19,85,271,,20,08,214,*7D
$GPGSV,3,3,10,22,38,053,49,28,15,320,*77
$GPRMC,141924.00,A,4545.6416,N,00306.6044,E,0.2,197.7,010206,,*31
$GPGLL,4545.6416,N,00306.6044,E,141924.00,A*09
$GPGGA,141924.00,4545.2210,N,00306.6044,E,1,05,3.4,500.5,M,,M,,*79
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,197.7,T,,M,0.2,N,0.4,K*6E
$GPZDA,141924.00,01,02,2006,00,00*6A
$GPGSV,3,1,10,01,13,142,45,03,48,144,47,11,41,277,,14,27,104,40*74
$GPGSV,3,2,10,15,03,077,,18,04,041,43,19,85,271,,20,08,214,*7D
$GPGSV,3,3,10,22,38,053,49,28,15,320,*77
$GPRMC,141925.00,A,4545.6415,N,00306.6046,E,0.2,130.8,010206,,*33
$GPGLL,4545.6415,N,00306.6046,E,141925.00,A*09
$GPGGA,141925.00,4545.2410,N,00306.6046,E,1,05,3.4,501.4,M,,M,,*7C
$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39
$GPVTG,130.8,T,,M,0.2,N,0.5,K*6D
$GPZDA,141925.00,01,02,2006,00,00*6B
$GPGSV,3,1,10,01,13,142,45,03,48,144,47,11,41,277,,14,27,104,40*74
$GPGSV,3,2,10,15,03,077,,18,04,041,41,19,85,271,,20,08,214,*7F
$GPGSV,3,3,10,22,38,053,47,28,15,320,*79
$GPRMC,141926.?E,0.2,260.8,010206,,*34
tag/rc_1/branch/duvivier_lea/sp4a12/trame.c
/* Fichier trames.c - Gestion et decodage des trames */
/* Ce fichier sera fourni */
#include <stdio.h>
#include <stdlib.h>
#include "trame.h"
#define FICHIER_TRAMES "gps.log" /* Par exemple */
#define MAX_FRAME_LENGTH 80
static char trame_buf[MAX_FRAME_LENGTH];
static FILE *trame_fic;
int trame_init(void)
{
trame_fic = fopen(FICHIER_TRAMES, "r");
if (trame_fic)
return 1;
fprintf(stderr, "Impossible d'ouvrir le fichier %s\n", FICHIER_TRAMES);
return 0;
}
char *trame_suivante(void)
{
return fgets(trame_buf, MAX_FRAME_LENGTH-1, trame_fic);
}
tag/rc_1/branch/duvivier_lea/sp4a12/sp4a.cbp
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="sp4a" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="sp4a" prefix_auto="1" extension_auto="1" />
<Option object_output=".\debug" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="gps.log" />
<Unit filename="main.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="trame.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="trame.h" />
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>
tag/rc_1/branch/duvivier_lea/sp4a12/trame.h
int trame_init(void);
char * trame_suivante(void);
tag/rc_1/branch/duvivier_lea/sp4a3/sp4a3_kalman.cbp
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="sp4a3_kalman" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="./test_kalman" prefix_auto="1" extension_auto="1" />
<Option object_output="." />
<Option type="1" />
<Option compiler="gcc" />
<Option parameters="debug" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="./test_kalman" prefix_auto="1" extension_auto="1" />
<Option object_output="." />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="sp4a3_kalman.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="sp4a3_kalman_extra.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="sp4a3_kalman_extra.h" />
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>
tag/rc_1/branch/duvivier_lea/sp4a3/sp4a3_kalman_extra.c
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define error(a) _error(__LINE__,a)
void _error(int l,char * r){
printf("Erreur Ligne (%d) : %s",l,r);
exit(1);
}
int debug=1;
void _Plot_Mat(int n,int m,double in[n][m], const char* name){
int i,j;
if (!debug) return;
printf("\n%s[%d][%d]\n",name,n,m);
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
printf("%f\t",in[i][j]);
printf("\n");
}
}
#define Equal_Mat_Mat(Mat_A,Mat_B) _Equal_Mat_Mat(sizeof(Mat_A)/sizeof(Mat_A[0]),sizeof(Mat_A[0])/sizeof(Mat_A[0][0]),Mat_A,sizeof(Mat_B)/sizeof(Mat_B[0]),sizeof(Mat_B[0])/sizeof(Mat_B[0][0]),Mat_B)
int _Equal_Mat_Mat(int na,int ma,double A[na][ma],int nb,int mb,double B[nb][mb]){
int i,j;
if (na!=nb) return 0;
if (ma!=mb) return 0;
for(i=0;i<na;i++)
for(j=0;j<ma;j++){
if (fabs(A[i][j]-B[i][j])>1e-6)
return 0;
}
return 1;
}
tag/rc_1/branch/duvivier_lea/sp4a3/vitesse_reelle.dat
120000.100000 0.000000
120000.200000 0.000000
120000.300000 0.000000
120000.400000 0.000000
120000.500000 0.000000
120000.600000 0.000000
120000.700000 0.000000
120000.800000 0.000000
120000.900000 0.000000
120001.000000 0.000000
120001.100000 0.000000
120001.200000 0.000000
120001.300000 0.000000
120001.400000 0.000000
120001.500000 0.000000
120001.600000 0.000000
120001.700000 0.000000
120001.800000 0.000000
120001.900000 0.000000
120002.000000 0.000000
120002.100000 0.000000
120002.200000 0.000000
120002.300000 0.000000
120002.400000 0.000000
120002.500000 0.000000
120002.600000 0.000000
120002.700000 0.000000
120002.800000 0.000000
120002.900000 0.000000
120003.000000 0.000000
120003.100000 0.000000
120003.200000 0.000000
120003.300000 0.000000
120003.400000 0.000000
120003.500000 0.000000
120003.600000 0.000000
120003.700000 0.000000
120003.800000 0.000000
120003.900000 0.000000
120004.000000 0.000000
120004.100000 0.000000
120004.200000 0.000000
120004.300000 0.000000
120004.400000 0.000000
120004.500000 0.000000
120004.600000 0.000000
120004.700000 0.000000
120004.800000 0.000000
120004.900000 0.000000
120005.000000 0.000000
120005.100000 0.000000
120005.200000 0.000000
120005.300000 0.000000
120005.400000 0.000000
120005.500000 0.000000
120005.600000 0.000000
120005.700000 0.000000
120005.800000 0.000000
120005.900000 0.000000
120006.000000 0.000000
120006.100000 0.000000
120006.200000 0.000000
120006.300000 0.000000
120006.400000 0.000000
120006.500000 0.000000
120006.600000 0.000000
120006.700000 0.000000
120006.800000 0.000000
120006.900000 0.000000
120007.000000 0.000000
120007.100000 0.000000
120007.200000 0.000000
120007.300000 0.000000
120007.400000 0.000000
120007.500000 0.000000
120007.600000 0.000000
120007.700000 0.000000
120007.800000 0.000000
120007.900000 0.000000
120008.000000 0.000000
120008.100000 0.000000
120008.200000 0.000000
120008.300000 0.000000
120008.400000 0.000000
120008.500000 0.000000
120008.600000 0.000000
120008.700000 0.000000
120008.800000 0.000000
120008.900000 0.000000
120009.000000 0.000000
120009.100000 0.000000
120009.200000 0.000000
120009.300000 0.000000
120009.400000 0.000000
120009.500000 0.000000
120009.600000 0.000000
120009.700000 0.000000
120009.800000 0.000000
120009.900000 0.000000
120010.000000 0.000000
120010.100000 0.000000
120010.200000 0.000000
120010.300000 0.000000
120010.400000 0.000000
120010.500000 0.000000
120010.600000 0.000000
120010.700000 0.000000
120010.800000 0.000000
120010.900000 0.000000
120011.000000 0.000000
120011.100000 0.000000
120011.200000 0.000000
120011.300000 0.000000
120011.400000 0.000000
120011.500000 0.000000
120011.600000 0.000000
120011.700000 0.000000
120011.800000 0.000000
120011.900000 0.000000
120012.000000 0.000000
120012.100000 0.000000
120012.200000 0.000000
120012.300000 0.000000
120012.400000 0.000000
120012.500000 0.000000
120012.600000 0.000000
120012.700000 0.000000
120012.800000 0.000000
120012.900000 0.000000
120013.000000 0.000000
120013.100000 0.000000
120013.200000 0.000000
120013.300000 0.000000
120013.400000 0.000000
120013.500000 0.000000
120013.600000 0.000000
120013.700000 0.000000
120013.800000 0.000000
120013.900000 0.000000
120014.000000 0.000000
120014.100000 0.000000
120014.200000 0.000000
120014.300000 0.000000
120014.400000 0.000000
120014.500000 0.000000
120014.600000 0.000000
120014.700000 0.000000
120014.800000 0.000000
120014.900000 0.000000
120015.000000 0.000000
120015.100000 0.000000
120015.200000 0.000000
120015.300000 0.000000
120015.400000 0.000000
120015.500000 0.000000
120015.600000 0.000000
120015.700000 0.000000
120015.800000 0.000000
120015.900000 0.000000
120016.000000 0.000000
120016.100000 0.000000
120016.200000 0.000000
120016.300000 0.000000
120016.400000 0.000000
120016.500000 0.000000
120016.600000 0.000000
120016.700000 0.000000
120016.800000 0.000000
120016.900000 0.000000
120017.000000 0.000000
120017.100000 0.000000
120017.200000 0.000000
120017.300000 0.000000
120017.400000 0.000000
120017.500000 0.000000
120017.600000 0.000000
120017.700000 0.000000
120017.800000 0.000000
120017.900000 0.000000
120018.000000 0.000000
120018.100000 0.133414
120018.200000 0.000000
120018.300000 0.000000
120018.400000 0.186168
120018.500000 0.000000
120018.600000 0.133414
120018.700000 0.133414
120018.800000 0.186168
120018.900000 0.133414
120019.000000 0.133414
120019.100000 0.186168
120019.200000 0.186168
120019.300000 0.133414
120019.400000 0.296744
120019.500000 0.186168
120019.600000 0.296744
120019.700000 0.186168
120019.800000 0.372337
120019.900000 0.186168
120020.000000 0.372337
120020.100000 0.296744
120020.200000 0.372337
120020.300000 0.296744
120020.400000 0.372337
120020.500000 0.296744
120020.600000 0.477108
120020.700000 0.296744
120020.800000 0.420777
120020.900000 0.400243
120021.000000 0.420777
120021.100000 0.420777
120021.200000 0.420777
120021.300000 0.420777
120021.400000 0.420777
120021.500000 0.477107
120021.600000 0.477107
120021.700000 0.477107
120021.800000 0.660699
120021.900000 0.558505
120022.000000 0.558505
120022.100000 0.660699
120022.200000 0.558505
120022.300000 0.593487
120022.400000 0.660699
120022.500000 0.593487
120022.600000 0.660699
120022.700000 0.660699
120022.800000 0.593486
120022.900000 0.660699
120023.000000 0.660699
120023.100000 0.772474
120023.200000 0.660699
120023.300000 0.660699
120023.400000 0.772474
120023.500000 0.772474
120023.600000 0.744674
120023.700000 0.772474
120023.800000 0.772474
120023.900000 0.660699
120024.000000 0.772474
120024.100000 0.890229
120024.200000 0.772474
120024.300000 0.715834
120024.400000 0.810945
120024.500000 0.841552
120024.600000 0.810944
120024.700000 0.679588
120024.800000 0.810944
120024.900000 0.969329
120025.000000 0.810944
120025.100000 0.841551
120025.200000 0.841551
120025.300000 0.942878
120025.400000 0.841551
120025.500000 0.969328
120025.600000 0.969328
120025.700000 0.942877
120025.800000 0.969327
120025.900000 0.969327
120026.000000 0.969327
120026.100000 0.969327
120026.200000 1.011875
120026.300000 1.011875
120026.400000 1.068601
120026.500000 1.137385
120026.600000 1.137385
120026.700000 1.137385
120026.800000 1.137385
120026.900000 1.137385
120027.000000 1.249252
120027.100000 1.137385
120027.200000 1.249251
120027.300000 1.137385
120027.400000 1.249251
120027.500000 1.137384
120027.600000 1.249251
120027.700000 1.321395
120027.800000 1.249251
120027.900000 1.249251
120028.000000 1.321395
120028.100000 1.249250
120028.200000 1.321394
120028.300000 1.431316
120028.400000 1.249250
120028.500000 1.321394
120028.600000 1.431315
120028.700000 1.249250
120028.800000 1.431315
120028.900000 1.431315
120029.000000 1.321394
120029.100000 1.431315
120029.200000 1.431315
120029.300000 1.431314
120029.400000 1.431314
120029.500000 1.431314
120029.600000 1.431314
120029.700000 1.431314
120029.800000 1.483704
120029.900000 1.364991
120030.000000 1.483704
120030.100000 1.431655
120030.200000 1.431655
120030.300000 1.483703
120030.400000 1.483702
120030.500000 1.483702
120030.600000 1.544937
120030.700000 1.614314
120030.800000 1.544937
120030.900000 1.661506
120031.000000 1.544936
120031.100000 1.544936
120031.200000 1.604724
120031.300000 1.604724
120031.400000 1.604723
120031.500000 1.544935
120031.600000 1.661504
120031.700000 1.661504
120031.800000 1.661503
120031.900000 1.604722
120032.000000 1.604721
120032.100000 1.604721
120032.200000 1.683079
120032.300000 1.727569
120032.400000 1.556722
120032.500000 1.727568
120032.600000 1.727567
120032.700000 1.604719
120032.800000 1.840959
120032.900000 1.726200
120033.000000 1.840959
120033.100000 1.797962
120033.200000 1.840958
120033.300000 1.840958
120033.400000 1.840958
120033.500000 1.780433
120033.600000 1.851873
120033.700000 1.780432
120033.800000 1.851872
120033.900000 1.810438
120034.000000 1.810438
120034.100000 1.810437
120034.200000 1.777543
120034.300000 1.810436
120034.400000 1.851869
120034.500000 1.851869
120034.600000 1.977364
120034.700000 1.901284
120034.800000 1.958076
120034.900000 1.851867
120035.000000 2.023716
120035.100000 1.810431
120035.200000 1.977361
120035.300000 1.977360
120035.400000 1.938609
120035.500000 1.851863
120035.600000 1.938608
120035.700000 1.977358
120035.800000 2.067448
120035.900000 1.907923
120036.000000 1.938605
120036.100000 2.017920
120036.200000 1.907920
120036.300000 2.005346
120036.400000 1.885696
120036.500000 2.017917
120036.600000 2.017916
120036.700000 2.017916
120036.800000 2.017915
120036.900000 2.017914
120037.000000 1.885692
120037.100000 2.150280
120037.200000 2.017911
120037.300000 2.017911
120037.400000 2.017910
120037.500000 2.038691
120037.600000 2.017908
120037.700000 2.067433
120037.800000 2.196818
120037.900000 2.103811
120038.000000 2.067431
120038.100000 2.067430
120038.200000 2.169785
120038.300000 2.150269
120038.400000 2.017901
120038.500000 2.150268
120038.600000 2.169781
120038.700000 2.150266
120038.800000 2.150265
120038.900000 2.150264
120039.000000 2.017896
120039.100000 2.150262
120039.200000 1.885675
120039.300000 2.017894
120039.400000 1.885673
120039.500000 2.017892
120039.600000 1.885672
120039.700000 2.017890
120039.800000 1.885670
120039.900000 1.885669
120040.000000 1.753629
120040.100000 1.753628
120040.200000 1.753628
120040.300000 1.621812
120040.400000 1.621811
120040.500000 1.647597
120040.600000 1.490278
120040.700000 1.359111
120040.800000 1.359111
120040.900000 1.490277
120041.000000 1.389779
120041.100000 1.389779
120041.200000 1.389779
120041.300000 1.262274
120041.400000 1.136125
120041.500000 1.262273
120041.600000 1.011840
120041.700000 1.136124
120041.800000 0.969284
120041.900000 0.890199
120042.000000 0.969284
120042.100000 0.841515
120042.200000 0.890199
120042.300000 0.890199
120042.400000 0.890199
120042.500000 0.954193
120042.600000 0.845408
120042.700000 1.030649
120042.800000 1.117011
120042.900000 1.025643
120043.000000 1.127450
120043.100000 1.127450
120043.200000 1.234531
120043.300000 1.345627
120043.400000 1.284732
120043.500000 1.284733
120043.600000 1.358796
120043.700000 1.358796
120043.800000 1.483381
120043.900000 1.483381
120044.000000 1.453078
120044.100000 1.563924
120044.200000 1.434588
120044.300000 1.693339
120044.400000 1.563924
120044.500000 1.558224
120044.600000 1.693339
120044.700000 1.693339
120044.800000 1.563924
120044.900000 1.693339
120045.000000 1.734870
120045.100000 1.709031
120045.200000 1.580901
120045.300000 1.734870
120045.400000 1.861460
120045.500000 1.709031
120045.600000 1.734869
120045.700000 1.861460
120045.800000 1.709030
120045.900000 1.861459
120046.000000 1.861459
120046.100000 1.861459
120046.200000 1.837401
120046.300000 1.861459
120046.400000 1.861459
120046.500000 2.019552
120046.600000 1.861458
120046.700000 1.936435
120046.800000 1.936435
120046.900000 1.815081
120047.000000 1.929158
120047.100000 1.868231
120047.200000 1.929158
120047.300000 1.868231
120047.400000 1.929158
120047.500000 1.868230
120047.600000 1.929157
120047.700000 1.929157
120047.800000 1.868229
120047.900000 2.043747
120048.000000 1.929156
120048.100000 1.929156
120048.200000 1.986337
120048.300000 1.929156
120048.400000 2.043746
120048.500000 1.929155
120048.600000 2.043746
120048.700000 1.986336
120048.800000 2.043745
120048.900000 1.929154
120049.000000 2.043745
120049.100000 2.043744
120049.200000 2.043744
120049.300000 2.043744
120049.400000 2.043744
120049.500000 2.043743
120049.600000 2.043743
120049.700000 2.043743
120049.800000 2.043743
120049.900000 2.043742
120050.000000 2.043742
120050.100000 2.043742
120050.200000 2.043742
120050.300000 2.160059
120050.400000 2.108042
120050.500000 2.043741
120050.600000 2.043741
120050.700000 2.160058
120050.800000 2.108041
120050.900000 2.160057
120051.000000 2.043739
120051.100000 2.108040
120051.200000 2.160056
120051.300000 2.160056
120051.400000 2.108039
120051.500000 2.160055
120051.600000 2.108039
120051.700000 2.220991
120051.800000 2.108038
120051.900000 2.108038
120052.000000 2.071505
120052.100000 2.071505
120052.200000 2.178619
120052.300000 1.967131
120052.400000 2.151577
120052.500000 2.051282
120052.600000 1.954470
120052.700000 2.047853
120052.800000 2.047853
120052.900000 1.959495
120053.000000 1.959495
120053.100000 1.982072
120053.200000 1.982072
120053.300000 1.908396
120053.400000 2.021613
120053.500000 1.908396
120053.600000 1.901266
120053.700000 1.958062
120053.800000 1.851850
120053.900000 2.023700
120054.000000 1.810415
120054.100000 1.938594
120054.200000 1.938595
120054.300000 1.907911
120054.400000 1.885689
120054.500000 1.885690
120054.600000 2.005340
120054.700000 1.872231
120054.800000 2.001133
120054.900000 1.872233
120055.000000 2.005343
120055.100000 1.885695
120055.200000 2.017917
120055.300000 2.017918
120055.400000 1.885697
120055.500000 2.017919
120055.600000 2.005348
120055.700000 2.005349
120055.800000 2.001141
120055.900000 2.005350
120056.000000 2.001143
120056.100000 2.001144
120056.200000 2.134554
120056.300000 2.005354
120056.400000 2.017927
120056.500000 2.038709
120056.600000 2.067453
120056.700000 2.196841
120056.800000 2.103833
120056.900000 2.147459
120057.000000 2.147460
120057.100000 2.147460
120057.200000 2.272297
120057.300000 2.147462
120057.400000 2.231116
120057.500000 2.231117
120057.600000 2.196848
120057.700000 2.196849
120057.800000 2.169822
120057.900000 2.169823
120058.000000 2.169824
120058.100000 2.282802
120058.200000 2.150312
120058.300000 2.271699
120058.400000 2.138521
120058.500000 2.267987
120058.600000 2.138523
120058.700000 2.271703
120058.800000 2.150318
120058.900000 2.271705
120059.000000 2.150320
120059.100000 2.150321
120059.200000 2.150322
120059.300000 2.138530
120059.400000 2.150324
120059.500000 2.138531
120059.600000 2.150326
120059.700000 2.138533
120059.800000 2.271714
120059.900000 2.150329
120060.000000 2.138536
120060.100000 2.282823
120060.200000 2.150332
120060.300000 2.138539
120060.400000 2.282826
120060.500000 2.138541
120060.600000 2.282828
120060.700000 2.169849
120060.800000 2.282830
120060.900000 2.301221
120061.000000 2.196879
120061.100000 2.169853
120061.200000 2.301224
120061.300000 2.169855
120061.400000 2.301226
120061.500000 2.169857
120061.600000 2.282838
120061.700000 2.301229
120061.800000 2.150347
120061.900000 2.282842
120062.000000 2.271738
120062.100000 2.271739
120062.200000 2.150351
120062.300000 2.282846
120062.400000 2.301236
120062.500000 2.169866
120062.600000 2.301238
120062.700000 2.196894
120062.800000 2.326741
120062.900000 2.231163
120063.000000 2.359124
120063.100000 2.272345
120063.200000 2.443379
120063.300000 2.272346
120063.400000 2.320072
120063.500000 2.373947
120063.600000 2.373948
120063.700000 2.373949
120063.800000 2.373949
120063.900000 2.254741
120064.000000 2.443385
120064.100000 2.272352
120064.200000 2.272353
120064.300000 2.359136
120064.400000 2.231176
120064.500000 2.326757
120064.600000 2.196911
120064.700000 2.301259
120064.800000 2.282872
120064.900000 2.150377
120065.000000 2.150378
120065.100000 2.268056
120065.200000 2.271771
120065.300000 2.138589
120065.400000 2.138590
120065.500000 2.138591
120065.600000 2.282880
120065.700000 2.169896
120065.800000 2.169897
120065.900000 2.196923
120066.000000 2.231189
120066.100000 2.231190
120066.200000 2.231191
120066.300000 2.231192
120066.400000 2.147528
120066.500000 2.272371
120066.600000 2.231194
120066.700000 2.103910
120066.800000 2.272374
120066.900000 2.197966
120067.000000 2.254759
120067.100000 2.351318
120067.200000 2.331491
120067.300000 2.351318
120067.400000 2.331491
120067.500000 2.351319
120067.600000 2.351319
120067.700000 2.432376
120067.800000 2.351319
120067.900000 2.351319
120068.000000 2.351320
120068.100000 2.351320
120068.200000 2.166581
120068.300000 2.274791
120068.400000 2.203262
120068.500000 2.197975
120068.600000 2.077232
120068.700000 2.197976
120068.800000 2.147543
120068.900000 2.147544
120069.000000 2.147544
120069.100000 2.147545
120069.200000 2.196950
120069.300000 2.103928
120069.400000 2.169928
120069.500000 2.067557
120069.600000 2.169930
120069.700000 2.150420
120069.800000 2.038821
120069.900000 2.150422
120070.000000 2.150423
120070.100000 2.169934
120070.200000 2.018047
120070.300000 2.038826
120070.400000 2.150426
120070.500000 2.038827
120070.600000 2.018051
120070.700000 2.138638
120070.800000 2.138639
120070.900000 2.001276
120071.000000 2.150432
120071.100000 2.005485
120071.200000 2.150434
120071.300000 2.150435
120071.400000 2.169946
120071.500000 2.169947
120071.600000 2.038836
120071.700000 2.231234
120071.800000 2.103946
120071.900000 2.197996
120072.000000 2.023812
120072.100000 2.197997
120072.200000 2.254787
120072.300000 2.197998
120072.400000 2.317467
120072.500000 2.137253
120072.600000 2.317468
120072.700000 2.274806
120072.800000 2.385574
120072.900000 2.274806
120073.000000 2.317470
120073.100000 2.317471
120073.200000 2.254792
120073.300000 2.254793
120073.400000 2.320141
120073.500000 2.198006
120073.600000 2.272423
120073.700000 2.272424
120073.800000 2.231251
120073.900000 2.231251
120074.000000 2.196990
120074.100000 2.196991
120074.200000 2.231254
120074.300000 2.196993
120074.400000 2.301350
120074.500000 2.169973
120074.600000 2.196996
120074.700000 2.169975
120074.800000 2.282968
120074.900000 2.150468
120075.000000 2.150469
120075.100000 2.005520
120075.200000 1.867893
120075.300000 2.001315
120075.400000 1.867894
120075.500000 1.734474
120075.600000 1.872403
120075.700000 1.601054
120075.800000 1.606311
120075.900000 1.606311
120076.000000 1.490430
120076.100000 1.647755
120076.200000 1.604802
120076.300000 1.604802
120076.400000 1.604803
120076.500000 1.727664
120076.600000 1.604803
120076.700000 1.727665
120076.800000 1.544991
120076.900000 1.604804
120077.000000 1.544992
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff