Index: branch/sacco/sp4a12/main.c
===================================================================
--- branch/sacco/sp4a12/main.c	(revision 585)
+++ branch/sacco/sp4a12/main.c	(revision 586)
@@ -4,7 +4,7 @@
 #include <math.h>
 #include "trame.h"
 
-//Trames de tests à modifier si nécessaire.
+///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",
@@ -15,8 +15,7 @@
                     "$GPZDA,141914.00,01,02,2006,00,00*69",
                     0};
 
-
-//Définition des structures
+///Définition des structures
 typedef struct
 {
     float latitude;
@@ -30,7 +29,25 @@
 }Zone;
 
 
-//Variables globales
+int decode_int(char c);
+int trame_cmp(char *a, char*b);
+void traitement (char * trame);
+int decode_nombre( char *ch, int n);
+float conversion_Lat_sexa_dec(char coord[]);
+float conversion_Long_sexa_dec(char coord[]);
+float conversion(char * coord);
+int decode_trame( char *trame, Position *p);
+float calcule_distance(Position p_1, Position p_2);
+float calcule_vitesse(Position p_1, Position p_2);
+int distance_a_la_plus_proche_zone(Position p, Zone r[], int nb_zones, float *d);
+void tests_unitaires(void);
+void test_decode_int(void);
+
+
+
+///Variables globales
+
+///Variables pour conversion_latitude
 float a =10;
 float b = (float) 1;
 float c = (float) 1/6;
@@ -40,6 +57,7 @@
 float g = (float) 1/60000;
 float h = (float) 1/600000;
 
+///Variables de test de distance_à_la_plus_proche_zone
 Position pos_Mimizan ={44.208904, -1.297033};
 Position pos_Evian = {46.401488, 6.59049};
 Position pos_Angers = {47.478419, -0.563};
@@ -49,9 +67,33 @@
 
 Zone zones[] = {{{44.208904, -1.297033},50}, {{47.478419, -0.563},70}, {{46.401488, 6.59049},50}, {{48.856614, 2.3522219},90}};
 int nb_Zones = 4;
+
+
+// Ne pas modifier cette fonction
+int main(int argc,char ** argv)
+{
+
+   tests_unitaires();
+   test_decode_int();
+
+    // 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;
+}
 
-
-//Retourne un caractère chiffré en entier
+///Retourne un caractère chiffré en entier
 int decode_int(char c)
 {
 	unsigned int ValDecimale;
@@ -66,9 +108,11 @@
 	}
 }
 
-//Vérification des trames "GPGGA"
+///Vérification des trames "GPGGA"
 int trame_cmp(char* a,char* b){
     int i =0;
+
+    ///Parcours de la chaîne b
     while (b[i]!='\0')
     {
         int c = a[i+1];
@@ -82,27 +126,40 @@
     return 1;
 }
 
-//Fonction à modifier !!!!!
+
 void traitement(char * trame)
 {
     static int cpt =0;
     Position pos;
+    int dist_min;
+
     if (decode_trame(trame, &pos) ==1)
     {
         printf("%s\nLatitude: %f; Longitude: %f\n\n", trame, pos.latitude, pos.longitude);
+        for (int k =0; k<nb_Zones;k++)
+        {
+            distance_a_la_plus_proche_zone(pos, zones,nb_Zones,&dist_min);
+            calcule_vitesse(pos,)
+            if (dist_min <100 && )
+        }
     }
     cpt++;
 }
 
-//Convertit un nombre écrit en caractère en décimale
-int decode_nombre( char *ch, int n)         //A coder sans strlen
+/// Convertit un nombre écrit en caractère en décimale
+/// A coder sans strlen
+int decode_nombre( char *ch, int n)
 {
     int i =0;
     int Somme = 0;
+
+    ///Définition de la longueur max parcourue
     if (n>strlen(ch))
     {
         n = strlen(ch);
     }
+
+    ///Conversion de chaque caractère puis sommation
     for (i;i<=n-1;i++)
     {
         int Entiere = decode_int(ch[i]);
@@ -112,16 +169,18 @@
     return(Somme);
 }
 
-//Convertit Latitude sexagésimale en décimale
+///Conversion Latitude sexagésimale en décimale
 float conversion_Lat_sexa_dec(char coord[])
 {
-
-    float Coeff_Ent[5] = {a,b,c,d};
+    ///Initialisation des variables
+    float Coeff_Ent[4] = {a,b,c,d};
     float Coeff_Dec[4] = {e,f,g,h};
     int i =0;
     int k =0;
     float nb_Convert=0;
     int elem;
+
+    ///Parcours de la chaîne de caractère
     for (i=0; i< 9;i++)
     {
         if (i <= 3)
@@ -129,6 +188,8 @@
             elem = decode_int(coord[i]);
             nb_Convert = nb_Convert + (float) elem * Coeff_Ent[i];
         }
+
+        ///Saut de virgule
         else if (i>=5)
         {
             elem = decode_int(coord[i]);
@@ -140,7 +201,7 @@
 
 }
 
-//Convertit Longitude sexagésimale en décimale
+///Conversion Longitude sexagésimale en décimale
 float conversion_Long_sexa_dec(char coord[])
 {
     float Coeff_Ent[5] = {0,a,b,c,d};
@@ -149,6 +210,8 @@
     int k =0;
     float nb_Convert=0;
     int elem;
+
+    ///Parcours de la chaîne de caractère
     for (i=0; i< 10;i++)
     {
         if (i <= 4)
@@ -156,6 +219,7 @@
             elem = decode_int(coord[i]);
             nb_Convert = nb_Convert + (float) elem * Coeff_Ent[i];
         }
+        ///Saut de virgule
         else if (i>=6)
         {
             elem = decode_int(coord[i]);
@@ -167,11 +231,13 @@
 
 }
 
-//Convertit indifféremment une longitude / latitude
+///Conversion indifférente d'une longitude / latitude
 float conversion(char * coord)
 {
     int i=0;
     Position P;
+
+    ///Détection de l'indice de la virgule
     while (coord[i]!='.')
     {
         i=i+1;
@@ -180,6 +246,8 @@
             return 0;
         }
     }
+
+    ///Appel des fonctions correspondantes
     if (i==4)
     {
         P.latitude = conversion_Lat_sexa_dec(coord);
@@ -199,8 +267,10 @@
 
 int decode_trame( char *trame, Position *p)
 {
+    ///Détection des trames 'GPGGA'
     if (trame_cmp(trame, "GPGGA"))
     {
+        ///Initialisation des variables
         int nb_Virgule = 0;
         int i =0;
         int k = 0;
@@ -210,18 +280,24 @@
         int debut_Lat;
         int debut_Long;
 
+        ///Parcours de la chaine trame
         while (trame[i] !='\0')
         {
+            /// Détection des coordonnées via le nombre de virgules rencontrées
+            ///Détection de la latitude
             if (nb_Virgule ==2 && i!= 26)
             {
                 Lat[k] = trame[i];
                 k++;
             }
+            ///Détection de la longitude
             if (nb_Virgule ==4 && i!= 39)
             {
                 Long[j] = trame[i];
                 j++;
             }
+
+            ///Détection des virgules
             if (trame[i] == ',')
             {
                 nb_Virgule += 1;
@@ -228,6 +304,8 @@
             }
             i++;
         }
+
+        ///Conversion des coordonnées
         p->latitude = conversion(Lat);
         p->longitude = conversion(Long);
 
@@ -241,9 +319,12 @@
 
 float calcule_distance(Position p_1, Position p_2)
 {
+    ///Initialisation des variables
     float rpt = 0.01745329251;
     float distance;
     float delta =p_1.longitude-p_2.longitude;
+
+    ///Calcul distance, formule à changer ?
     float dist = 6378.1*acos(sin(p_1.latitude*rpt)*sin(p_2.latitude*rpt)+ cos(p_1.latitude*rpt)*cos(p_2.latitude*rpt)*cos(delta*rpt));
     return dist;
 }
@@ -263,10 +344,13 @@
     }
     else
     {
+        ///Initialisation des variables
         int i;
         int curseur =0;
         float distance_min = 10000;
         float distance;
+
+        ///Calcul du minimum
         for (i=0;i<nb_zones; i++)
     {
         distance =calcule_distance(p, r[i].rpos);
@@ -387,27 +471,3 @@
     }
 
 }
-
-// Ne pas modifier cette fonction
-int main(int argc,char ** argv)
-{
-
-   tests_unitaires();
-   test_decode_int();
-
-    // 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;
-}
