Index: branch/ELMAADI/sp4a12/main.c
===================================================================
--- branch/ELMAADI/sp4a12/main.c	(revision 433)
+++ branch/ELMAADI/sp4a12/main.c	(revision 434)
@@ -15,6 +15,7 @@
                     "$GPVTG,99.4,T,,M,0.4,N,0.7,K*57",
                     "$GPZDA,141914.00,01,02,2006,00,00*69",
                     0};
+/*Déclaration des structure*/
 typedef struct
 {
     float latitude;
@@ -26,7 +27,7 @@
     Position rpos;
     float vitmax;
 }Zone;
-
+/*Définition des zone dangereuses*/
 Zone zones[]=
 {
     {{44.788762, -3.012},50},
@@ -34,15 +35,14 @@
 
 };
 
-
+/*Fonction qui renvoie 1 si la trame commence par la chaîne de caractère type et zéro dans les autres cas*/
 int trame_cmp(char *trame,char *type)
-
 {
     int i;
     int res=1;
     for (i=0;i<5;i++)
     {
-        if(trame[i+1]!=type[i])
+        if(trame[i+1]!=type[i]) /*Vérification si la trame commence par GPGGA */
         {
             res=0;
         }
@@ -50,10 +50,11 @@
     return res;
 }
 
+/*Fonction qui renvoie la valeur décimale associée à un caractère donné en paramètre.*/
 int decode_int(char c)
 {
     int val;
-    val = c-48;
+    val = c-48;/* Convertir caractère ASCII en entier*/
     if (val>9)
     {
         val=-1;
@@ -61,6 +62,7 @@
     return val;
 }
 
+/*Fonction qui renvoie la valeur décimale des n premiers caractères de la chaîne ch en utilisant decode_int()*/
 int decode_nombre(char *ch, int n)
 {
     int i;
@@ -71,28 +73,34 @@
     }
     return S;
 }
+
+/*Fonction qui permet de convertir la chaîne de caractère contenant la latitude en nombre flottant*/
 float latitude (char *ch)
 {
     float degre, min1, min2, result;
-    degre=(float)decode_nombre(&ch[0],2);
+    degre=(float)decode_nombre(&ch[0],2); /* accéder au caractère qui nous intéresse*/
     min1=(float)decode_nombre(&ch[0+2],2);
     min2=(float)decode_nombre(&ch[0+5],4);
-    result=degre+(min1/60)+(min2/600000);
+    result=degre+(min1/60)+(min2/600000);/* Additionner tout après avoir tout converti en degré*/
     return result;
 }
+
+/* Fonction qui permet de convertir  la chaîne de caractère contenant la longitude en nombre flottant */
 float longitude (char *ch)
 {
     float degre, min1, min2, result;
-    degre=(float)decode_nombre(&ch[0],3);
+    degre=(float)decode_nombre(&ch[0],3);/*Idem*/
     min1=(float)decode_nombre(&ch[0+3],2);
     min2=(float)decode_nombre(&ch[0+6],4);
-    result=degre+(min1/60)+(min2/600000);
+    result=degre+(min1/60)+(min2/600000);/*Idem*/
     return result;
 }
+
+/* Fonction générique qui décode indifféremment une latitude ou une longitude*/
 float latitude_longitude (char * ch)
 {
     float result;
-    if(ch[4]==46)
+    if(ch[4]==46)/*On determine la nature du caratère 5 pour choisir la bonne opération à faire*/
     {
         result=latitude(ch);
     }
@@ -103,6 +111,7 @@
     return result;
 }
 
+/*Fonction qui détermine la latitude et la lonngitude de la position*/
 float decode_trame(char *trame, Position *p)
 {
    p->latitude=latitude(trame);
@@ -109,14 +118,14 @@
    p->longitude=longitude(trame);
 }
 
-float calcule_distance(Position p_1, Position p_2)
+float calcule_distance(Position p_1, Position p_2) /*Calcul de la distance entre deux positions*/
 {
     float dist;
-    dist=((2*3.14*6370)/360)*sqrt(pow((p_2.latitude-p_1.latitude),2)+pow((p_2.longitude-p_1.longitude),2));
+    dist=((2*3.14*6370)/360)*sqrt(pow((p_2.latitude-p_1.latitude),2)+pow((p_2.longitude-p_1.longitude),2));/* 6370 est le rayon de la terre*/
     return dist;
 }
 
-float calcule_vitesse(Position p_1, Position p_2)
+float calcule_vitesse(Position p_1, Position p_2)/*calcul de la vitesse à l'aide de la distance entre deux positions */
 {
     float vit;
     vit=(calcule_distance(p_1,p_2)*3600);
@@ -123,11 +132,12 @@
     return vit;
 }
 
+/*Fonction qui renvoie le numéro de la zone la plus proche du point p ainsi que sa distance.*/
 int distance_a_la_plus_proche_zone(Position p, Zone r[], int nb_zones, float *d)
 {
     int i,j;
     float D0;
-    D0=calcule_distance(p, r[0].rpos);
+    D0=calcule_distance(p, r[0].rpos); /*Initialisation d'une distance de référence qui est la distnace initiale*/
     if (nb_zones>0)
     {
         for(i=1;i>nb_zones;i++)
@@ -135,8 +145,8 @@
             *d=calcule_distance(p,r[i].rpos);
             if(*d<D0)
             {
-                j=i;
-                D0=*d;
+                j=i;   /* changement de l'indice */
+                D0=*d; /* changement de la référence*/
             }
         }
         return j;
@@ -160,11 +170,11 @@
     cpt++;
     if (trame_cmp(trame,"GPGGA"))
     {
-        printf ("> %s\n",trame);
+        printf ("> %s\n",trame); /*Afficher que les trames GPGGA*/
     }*/
     Position P,P0;
     float vit, dist;
-    int zone_nb, trameOK, alarme=0, Dmax=1;
+    int zone_nb, trameOK, alarme=0, Dmax=1;/*Dmax:distance maximale pour déclencher l'alarme*/
     trameOK=1;
     if (trame_cmp(trame,"GPGGA")==1)
     {
@@ -200,11 +210,15 @@
 
 /*Ajouter vos tests unitaires dans cette fonction.*/
 void tests_unitaires(void){
+
+/*Test de vérification du bon fonctionnement*/
 if (5!=5)
 {
     printf ("Erreur Test unitaire basique.\n");
     exit(-1);
 }
+
+/*Tests de la fonction tram_cmp*/
 if (trame_cmp("$GPGGA suite chaine","GPGGA")!=1)
 {
     printf ("Erreur Test unitaire trame_cmp.\n");
@@ -225,11 +239,15 @@
     printf ("Erreur Test unitaire trame_cmp.\n");
     exit(-1);
 }
+
+/*Test de la fonction decode_int*/
 if (decode_int('2')!=2)
 {
     printf ("Erreur Test unitaire decode_int.\n");
     exit(-1);
 }
+
+/*Test de la fonction decode_nombre*/
 if (decode_nombre("1234",2)!=12)
 {
     printf ("Erreur Test unitaire decode_nombre.\n");
@@ -236,6 +254,7 @@
     exit(-1);
 }
 
+/*Test de la fonction latitude*/
 if (latitude("3723.2475")-37.387458>0.0001)
 {
     printf ("Erreur Test unitaire latitude.\n");
@@ -242,6 +261,7 @@
     exit(-1);
 }
 
+/*Test de la fonction longitude */
 if (longitude("00306.6043")-3.110071667>0.01)
 {
     printf ("Erreur Test unitaire longitude.\n");
@@ -248,6 +268,7 @@
     exit(-1);
 }
 
+/*Tests de la fonction latitude_longitude*/
 if (latitude_longitude("00306.6043")-3.110071667>0.01)
 {
     printf ("Erreur Test unitaire latitude_longitude.\n");
@@ -271,8 +292,8 @@
     printf ("Erreur Test unitaire latitude_longitude.\n");
     exit(-1);
 }
-/*Position p;
-if (decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",&p)!=1)
+/*Position p;*/ /*Tests de la fonction decode_trame*/
+/*if (decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",&p)!=1)
 {
     printf ("Erreur Test unitaire decode_trame.\n");
     exit(-1);
@@ -315,7 +336,7 @@
 p_3.longitude = 1.2877314;
     printf("distance Paris-Lyon : %f\n",calcule_distance(p_1,p_2));
     printf("distance Lyon-Toulouse : %f\n",calcule_distance(p_2,p_3));*/
-int nb_zone;
+int nb_zone; /*Test de la fonction distance_a_la_plus_proche_zone*/
 float *d;
 Position p,p1,p2;
 nb_zone=distance_a_la_plus_proche_zone(p,zones,2,&d);
