Projet

Général

Profil

« Précédent | Suivant » 

Révision 499

Ajouté par Clara SOULARD il y a presque 3 ans

Version finale du code, pas d'erreurs de compilation.

Voir les différences:

tag/rc_1/clara_soulard/sp4a12/main.c
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include "trame.h"
#include <math.h>
/***********************************************
*
* D?finition des structures utiles au programme
*
************************************************/
typedef struct {
float latitude;
float longitude;
} Position ;
typedef struct {
Position rpos;
float vitmax;
} Zone ;
//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",
"$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",
0};
/**Fonction qui compare une trame et renvoie si elle est conforme ou non **/
int trame_cmp(char * trame, char * type)
{
int i=0;
int b=0;
int c=0;
int ok;
while (trame[b]!='\0')
{
b=b+1;
}
while (type[c]!='\0')
{
c=c+1;
}
for(i=0; i<=c-1; i++)
{
{
if (trame[i+1]==type[i])
{
ok=1; /** la trame est valide **/
}
else
{
return 0;
}
}
}
return ok;
}
/** Fonction qui prends en argument une cha?ne de caract?res (correspondant ? un chiffre) et qui le caste en entier (int) **/
int decode_int (char c)
{
int i=c-48;
int ok=-1;
if (i>=0 && i<=9){
ok=i;
}
return ok;
}
/** M?me principe que decode_int mais avec une cha?ne de caract?re repr?sentant un nombre **/
int decode_nombre(char *ch,int n)
{
int a=0;
int nb=0; /**contient le nombre qui ?tait initialement une ch?ine de caract?res **/
int i; /** compteur pour la boucle for **/
for (i=0; i<=n-1; i++){
a=decode_int(ch[i]);
nb=nb*10+a; /** on multiplie par 10 pour d?caler d'une dizaine **/
}
return nb;
}
/**************************************************************************
*
* Fonctions qui convertisseurs la latitude puis la longitude en flottants
*
***************************************************************************/
float convertisseur_latitude (char *ch)
{
float latitude=0.0;
float degre=(float)decode_nombre(ch,2);
float decim1=(float)decode_nombre(ch,4)-degre*pow(10,2);
char chaine[50]; /** cha?ne qui va nous permettre de stocker les derniers caract?res correspondant au derniers chiffres de la latitude **/
int i;
for (i=5; i<9; i++)
{
chaine[i-5]=ch[i];
}
float decim2=(float)decode_nombre(chaine, 4); /** on r?cup?re la fin de la cha?ne pour ensuite la convertir **/
decim1=decim1/60.0;
decim2=decim2/600000.0;
latitude=degre+decim1+decim2;
return latitude;
}
float convertisseur_longitude (char *ch)
{
float longitude=0.0;
float degre=(float)decode_nombre(ch,3); /** on r?cup?re dans un premier temps les degr?s car ils ne subissent pas d'op?ration **/
float decim1=(float)decode_nombre(ch,5)-degre*pow(10,2); /** on r?cup?re ici les 3 premiers chiffres de la partie d?cimale **/
char chaine[50]; /** cha?ne qui va nous permettre de stocker les derniers caract?res correspondant au derniers chiffres de la longitude **/
int i;
for (i=6; i<10; i++)
{
chaine[i-6]=ch[i]; /** on r?cup?re la fin de la cha?ne pour ensuite la convertir **/
}
float decim2=(float)decode_nombre(chaine, 4);
decim1=decim1/60.0;
decim2=decim2/600000.0;
longitude=degre+decim1+decim2;
return longitude;
}
/** Fonction qui calcule indiff?remment la latitude ou la longitude **/
float latoulong (char *ch)
{
int i;
i=strlen(ch);
if (i==9)
{
return convertisseur_latitude(ch);
}
else
{
return convertisseur_longitude(ch);
}
}
/********************************************************************************************
*
* Fonctions qui calcule la distance en km entre deux trames et calcule de la vitesse en km/h
*
*********************************************************************************************/
float calcul_distance(Position p_1, Position p_2)
{
float S;
float R=6371.00; /**rayon de la Terre**/
float P=2*M_PI*R;
float c=P/360.00;
S=c*pow((pow((p_2.latitude-p_1.latitude),2)+pow((p_2.longitude-p_1.longitude),2)),0.5);
return S;
}
float calcul_vitesse(Position p_1, Position p_2)
{
float vitesse;
vitesse=calcul_distance(p_1, p_2)*3600; /** on multiplie par 3600 car on donne un temps entre deux trames ?quivalent ? 1s **/
return vitesse;
}
/********************************************************************************************
*
* Fonction qui d?code la trame et r?cup?rer la latitude et la longitude
*
*********************************************************************************************/
int decode_trame(char* t, Position* p){
int ok,i;
char latitudecopie[9]; /** chaine qui va contenir la latitude extraite de la trame **/
char longitudecopie[10]; /** chaine qui va contenir la longitude extraite de la trame **/
ok=trame_cmp(t,"GPGGA"); /** comparaison pour voir si la trame est valide ? l'aide de la fonction faite au TP1 **/
if(ok==1)
{
for(i=0;i<9;++i)
{
latitudecopie[i]=t[17+i]; /** on a un tableau contenant la latitude en cha?ne de caract?res **/
}
(*p).latitude=convertisseur_latitude(latitudecopie);
for(i=0;i<10;++i)
{
longitudecopie[i]=t[29+i]; /** on a un tableau contenant la longitude en cha?ne de caract?res **/
}
(*p).longitude=convertisseur_longitude(longitudecopie); /** on convertie la longitude en flottant pour l'utiliser ensuite si besoin est **/
}else{
exit(-1);
} }
/***********************************************************************************************
*
* Fonction qui rep?re la zone dangereuse la plus proche de l? o? se trouve l'utilisateur du GPS
*
************************************************************************************************/
int distance_a_la_plus_proche_zone(Position p, Zone r[],int nb_zones, float *d)
{ int i;
float distance;
distance=calcul_distance(p, r[0].rpos); /** Initialise la premiere distance ? comparer **/
int index; /** Variable que l'on retourne ? la fin de la fonction **/
for (i=0; i<nb_zones; i++)
{
*d=calcul_distance(p, r[i].rpos);
if (*d<=distance) /**si la distance entre la position p et celle du radar ? la i-?me position recens?e est inf?rieur ? la premi?re distance calcul?e, distance prends cette valeur. on retrouvera ainsi de suite la zone dangereuse la plus pr?s de la position de la voiture! **/
{
distance=*d;
index=i;
}
}
return index;
}
//Fonction ? modifier !!!!!
void traitement(char * trame)
{
static int cpt=0;
cpt++;
if((trame[5]==65)&&(trame[4]==71)&&(trame[3]==71))
{
printf ("> %s\n",trame);
}
}
//Ajouter vos tests unitaires dans cette fonction.
void tests_unitaires(void){
Position a={0.0, 1.0};
Position *p;
p=&a;
/******************************************
*
* Tests unitaires de diff?rentes fonctions
*
*******************************************/
if (5!=5){
printf ("Erreur Test unitaire basique.\n");
exit(-1);
}
if (trame_cmp("$GPGGA,141922.00,4545.1810,N,00306.6046,E,1,05,3.4,500.6,M,,M,,*74","GPGGA")!=1){
printf ("Erreur 1 Test unitaire trame_cmp.\n");
exit(-1);
}
if (trame_cmp("$GPRMC suite chaine","GPGGA")!=0){
printf ("Erreur 2 Test unitaire trame_cmp.\n");
exit(-1);
}
if (trame_cmp("$GPRMC... ", "GPRMC" )!=1){
printf ("Erreur 3 Test unitaire trame_cmp.\n");
exit(-1);
}
if (trame_cmp("$APRMC...", "GPGGA")!=0){
printf ("Erreur 4 Test unitaire trame_cmp.\n");
exit(-1);
}
if(decode_int('G')!=-1){
printf("Erreur 1 test unitaire decode_int.\n");
}
if(decode_int('6')!=6){
printf("Erreur 2 test unitaire decode_int.\n");
}
if(decode_int('B')!=(-1)){
printf("Erreur 3 test unitaire decode_int.\n");
}
if(decode_int('4')!=4){
printf("Erreur 4 test unitaire decode_int.\n");
}
if(decode_nombre("789654",3)!=789){
printf("Erreur sur decode_nombre.\n");
}
if(decode_nombre("789654",4)!=7896){
printf("Erreur sur decode_nombre.\n");
}
if(convertisseur_latitude("4545.1810")<45.7000 || convertisseur_latitude("4545.1810")>45.8000 ) /**comme c'est des float on ne peut que encadrer la valeur **/
{
printf("Erreur sur le convertisseur latitude");
}
if(convertisseur_longitude("00306.6046")<03.0000 || convertisseur_latitude("00306.6046")>03.4000 )
{
printf("Erreur sur le convertisseur longitude");
}
if (decode_trame("$GPGGA,141922.00,4545.1810,N,00306.6046,E,1,05,3.4,500.6,M,,M,,*74",p)==1) {
printf("Erreur sur decode_trame");
}
/**********************************************************************************************************************************
*
* Tests de la fonction decode_trame et r?cup?ration de la latitude et la longitude des deux tests du sujet (TP2 question 5)
*
***********************************************************************************************************************************/
Position pos;
pos.latitude=1;
pos.longitude=1;
Position *posi;
posi=&pos;
Position position9, position8; /** D?claration des positions qui contiendront les coordon?es GPS des trames du sujet **/
decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D", &position8);
decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*72", &position9);
//printf("position latitude trame 1: %f \n", position8.latitude); //on r?cup?re les donn?es des positions de la latitude de la trame 2 question 5
//printf("position longtitude trame 1: %f \n", position8.longitude);//on r?cup?re les donn?es des positions de la longitude de la trame 2 question 5
//printf("position latitude trame 2: %f \n", position9.latitude); //on r?cup?re les donn?es des positions de la latitude de la trame 2 question 5
//printf("position longtitude trame 2: %f \n", position9.longitude); //on r?cup?re les donn?es des positions de la longitude de la trame 2 question 5
/**********************************************************************************************************************************
*
* Initialisation des coordonn?es GPS de diff?rentes villes de france pour tester les fonctions calcule_distance et calcule_vitesse
*
***********************************************************************************************************************************/
Position position1, position2, position3, position4, position5,position6, position7; //definitions des variables de type Position qui vont r?pertorier les diff?rentes coordonn?es des diff?rentes villes
/** Paris **/
position2.latitude=48.85666666666667;
position2.longitude=2.3519444444444444;
/** Rouen **/
position1.latitude=49.443888888888885;
position1.longitude=1.1033333333333335;
/** Lille **/
position3.latitude=50.63722222222222;
position3.longitude=3.063333333333333;
/** Bordeaux **/
position4.latitude=44.8404400;
position4.longitude=-0.5805000;
/** Orl?ans **/
position5.latitude=47.9028900;
position5.longitude=1.9038900;
/** Polytech Clermont **/
position6.latitude=45.77140808105469;
position6.longitude=3.0903782844543457;
/** Isima Clermont **/
position7.latitude=45.75858688354492;
position7.longitude=3.1108570098876953;
//printf("**** Test des distances entre plusieurs villes : ***** \n\n");
//printf("Distance Paris-Rouen=%f km\n", calcul_distance(position2, position1)); /**Paris-Rouen = 135 km**/
//printf("Distance Paris-Lille=%f km\n", calcul_distance(position2, position3)); /**Paris-Lille = 225 km**/
//printf("Distance Paris-Bordeaux=%f km\n", calcul_distance(position2, position4)); /**Paris-Bordeaux = 584 km**/
//printf("Distance Paris-Orleans=%f km\n\n", calcul_distance(position2, position5)); /**Paris-Orl?ans = 132 km**/
//printf("Distance entre les trames du sujet=%f km soit approximativement %.1f. m\n\n", calcul_distance(position8, position9), calcul_distance(position8, position9)*1000); /**distance entre les deux trames du sujet question 5**/
Zone zones[] = {{{44.7887762, -3.012}, 50},{{44.7891220, -3,013}, 70},{{45.7604, 3.120065}, 130}}; /**tableaux des zones dangereuses donn? dans l'?nonc? + une autre pour les tests**/
float dist;
int index;
/** Test de la fonction distance_a_la_plus_proche_zone **/
index=distance_a_la_plus_proche_zone(position9, zones, 3, &dist);
printf("**** Tests sur les zones dangereuses ***** \n\n");
printf("Index de la zone dangereuse la plus proche : %i.\n\n", index);
float vitesse;
int alarme;
vitesse=calcul_vitesse(position8, position9);
/** Affichage de la vitesse en km/h **/
printf("La vitesse du conducteur ou de la conductrice est de : %.0f km/h et la vitesse maximale autorisee est de : %.0f km/h.\n", vitesse, zones[index].vitmax);
if (vitesse>zones[index].vitmax) /** si la vitesse est sup?rieure au seuil autoris? alors l'alarme va s'activer car le conducteur ou la conductrice roule trop vite **/
{
printf("Alarme : active. Vous ?tes au dessus de la limitation. \n\n");
alarme=1;
}
else
{
printf("Alarme : non active. \n\n"); /** le conducteur est en dessous de la vitesse maximale autoris?e : pas besoin de d?clancher l'alarme **/
alarme=0;
}
printf("La vitesse entre l'utilisateur du GPS et la prochaine zone dangereuse est de : %.2f km soit %.0f m.", dist, dist*1000);
}
// 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/clara_soulard/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/clara_soulard/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/clara_soulard/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/clara_soulard/sp4a12/trame.h
int trame_init(void);
char * trame_suivante(void);
tag/rc_1/clara_soulard/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/clara_soulard/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/clara_soulard/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
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff