Index: branch/Gouttenoire/sp4a12/main.c
===================================================================
--- branch/Gouttenoire/sp4a12/main.c	(revision 890)
+++ branch/Gouttenoire/sp4a12/main.c	(revision 891)
@@ -19,7 +19,7 @@
                     "$GPZDA,141914.00,01,02,2006,00,00*69",
                     0};
 // test de la fonction decode_int
-int decode_int(char c)
+int decode_int(char c) // en evoyant un nombre entre 0 et 9 on doit recuperer cette valeur et si A est envoyé nous devons retourner -1
 {
     int res;
     if (c>='0' && c<='9')
@@ -78,13 +78,11 @@
 // réalisation de la fonction decode_nombre
 int decode_nombre(char * ch, int nbr)
 {
-
-
     int i , b=0;
 
     for(i=0;i<nbr;i++)
     {
-        b=10*b+decode_int(ch[i]);
+        b=10*b+decode_int(ch[i]); // avec la valeur de Nbr on recupere les nbr premiers chiffres de ch
     }
     return b;
 }
@@ -93,35 +91,36 @@
 {
     float lat_s=0,lat_f=0,x=0,lat_s_2=0;
     int cpt=0,i=0,c=0,cpt_2=0;
-    while(ch[i]!= '.')
+    while(ch[i]!= '.') // compte le nombre de caractère de ch jusqu'a la virgule
     {
         i++;
         cpt++;
     }
     i=0;
-    while(ch[i]!='\0')
+    while(ch[i]!='\0') // compte le nombre de caractère de ch
     {
         i++;
         cpt_2++;
     }
-    c=decode_nombre(ch,2);
+    c=decode_nombre(ch,2); // c recupere  les 2 premiers chiffres de ch
     for(i=0;i<cpt;i++)
     {
-        lat_s=10*lat_s+decode_int(ch[i]);
+        lat_s=10*lat_s+decode_int(ch[i]); // calcul qui permet de récupérer la valeur de ch avant la virgule
     }
     for(i=cpt+1;i<cpt_2;i++)
     {
-        lat_s_2=lat_s_2*10+decode_int(ch[i]);
+        lat_s_2=lat_s_2*10+decode_int(ch[i]); // calcul qui permet de récupérer la valeur de ch apres la virgule
     }
-    lat_s=lat_s+(lat_s_2/pow(10,cpt+1));
+    lat_s=lat_s+(lat_s_2/pow(10,cpt+1)); // lat_s=ch
 
-    lat_f= ((lat_s-c*pow(10,cpt-2))/60)+c;
+    lat_f= ((lat_s-c*pow(10,cpt-2))/60)+c; // convertit ch en décimale
     return lat_f;
 }
 // fonction conversion longitude en flottant
 float conver_longitude(char * ch)
 {
-       float lat_s=0,lat_f=0,x=0,lat_s_2=0;
+
+       float long_s=0,long_f=0,x=0,long_s_2=0;
     int cpt=0,i=0,c=0,cpt_2=0;
     while(ch[i]!= '.')
     {
@@ -137,16 +136,16 @@
     c=decode_nombre(ch,3);
     for(i=0;i<cpt;i++)
     {
-        lat_s=10*lat_s+decode_int(ch[i]);
+        long_s=10*long_s+decode_int(ch[i]);
     }
     for(i=cpt+1;i<cpt_2;i++)
     {
-        lat_s_2=lat_s_2*10+decode_int(ch[i]);
+        long_s_2=long_s_2*10+decode_int(ch[i]);
     }
-    lat_s=lat_s+(lat_s_2/pow(10,cpt+1));
+    long_s=long_s+(long_s_2/pow(10,cpt-1));
 
-    lat_f= ((lat_s-c*pow(10,cpt-3))/60)+c;
-    return lat_f;
+    long_f= ((long_s-c*pow(10,cpt-3))/60)+c;
+    return long_f;
 }
 //fonction regroupant la conversion latitude et la conversion longitude
 float latitude_longitude(char * ch)
@@ -159,13 +158,12 @@
     }
     if(cpt==10)
     {
-      conver_longitude(ch);
+        return conver_longitude(ch);
     }
     else
     {
-    conver_latitude(ch);
+        return conver_latitude(ch);
     }
-
 }
 
 
@@ -172,34 +170,42 @@
 
 int decode_trame(char * trame)
 {
-    int cpt=66,i=0,j=0;
-    float a=0, b=0;
-    char lat[10],longi[9];
-    if (trame_cmp(trame,"GPGGA"))
+    int cpt=0,i=0,j=0,k=0;
+    float a, b;
+    char lat[10]={NULL},longi[11]={NULL};
+    if (trame_cmp(trame,"GPGGA")) // si la trame est GPGGA on affiche la valeur de la lagitude et de la longitude
     {
-          /*while(trame[cpt]!='\0')
+          while(trame[cpt]!='\0')
             {
                 cpt++;
-            }*/
+            }
             for(i=cpt-49;i<=cpt-41;i++)
             {
-              lat[j]=trame[i];
-              j++;
+                lat[j]=trame[i];
+                j++;
             }
-            j=0;
             for(i=cpt-37;i<=cpt-28;i++)
             {
-             longi[j]=trame[i];
-             j++;
+                longi[k]=trame[i];
+                k++;
             }
             a=conver_latitude(lat);
             b=conver_longitude(longi);
-            printf("latitude = %f",a);
-            printf("longitude = %f",b);
+            printf("\nlatitude = %f",a);
+            printf("\nlongitude = %f\n",b);
 return 1;
     }
 
 }
+float calcule_vitesse(float distance)
+{
+    float v=0;
+    v=distance*3600;
+    printf("\nvitesse = %lf \n",v);
+    return v ;
+
+}
+
 
 //Ajouter vos tests unitaires dans cette fonction.
 void tests_unitaires(void){
@@ -247,7 +253,8 @@
         printf ("Erreur Test unitaire latitude_longitude.\n");
         exit(-1);
     }
-    decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D");
+    decode_trame("$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D");
+    calcule_vitesse(323);
 
 }
 
