Index: branch/MEMBRE/sp4a12/main.c
===================================================================
--- branch/MEMBRE/sp4a12/main.c	(revision 267)
+++ branch/MEMBRE/sp4a12/main.c	(revision 268)
@@ -12,9 +12,13 @@
                     "$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};
+                    0};
+
+
+
+
+
 //Fontion trame_cmp
-
 int trame_cmp(char * trame, char * type)
 {
     int i;
@@ -30,6 +34,15 @@
     return egalite;
 }
 
+
+
+
+
+
+
+
+
+
 //Fonction decode_int
 
 int decode_int(char c)
@@ -45,58 +58,63 @@
     return c;
 }
 
+
 //test decode_int
-
 void test_decode_int(void)
 {
     if (decode_int('0')!=0){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('1')!=1){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('2')!=2){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('3')!=3){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('4')!=4){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('5')!=5){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('6')!=6){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('7')!=7){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('8')!=8){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('9')!=9){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
     if (decode_int('A')!=-1){
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test unitaire");
         exit(-1);
     }
 }
 
+
+
+
+
+
+
 //Fonction decode_nombre
-
 int decode_nombre(char * ch, int n)
 {
     int p=0;
@@ -110,20 +128,64 @@
 
 
 //Test de decode_nombre
-
 int test_decode_nombre()
 {
     if (decode_nombre("123",3)!=123)
     {
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test nombre1");
         exit(-1);
     }
     if (decode_nombre("987654321",2)!=98)
     {
-        printf("%d\n", "Erreur test unitaire");
+        printf("Erreur test nombre2");
         exit(-1);
     }
-}
+}
+
+
+
+
+
+
+//Fonction latitude en nombre flottant
+
+int  latitude(char l[])
+{
+    int n=0;
+    int degree=0;
+    int minutes=0;
+    int lati=0;
+
+
+    while (l[n]!='\0')
+    {
+        n=n+1;
+    }
+    if (n==9)
+    {
+        degree = ((l[0]-48)*10+(l[1]-48));
+        minutes = ((l[2]-48)*10+(l[3]-48)+(l[4]-48)*0.1+(l[5]-48)*0.01+(l[6]-48)*0.001+(l[7]-48)*0.0001+(l[8]-48)*0.00001);
+    }
+    else
+    {
+        printf("Erreur de saisie");
+    }
+    lati = degree + minutes/60;
+    return lati;
+}
+
+//Test de latitude
+
+int test_latitude()
+{
+    if (latitude("3723.2475")-37.387458<0.000001)
+    {
+        printf("Erreur test latitude");
+        exit(-1);
+    }
+}
+
+
 //Fonction à modifier !!!!!
 void traitement(char * trame)
 {
@@ -156,8 +218,80 @@
     if (trame_cmp("$APRMC...", "GPGGA")!=0){
         printf ("Erreur Test unitaire trame_cmp.\n");
         exit(-1);
+    }
+
+    /* test decode_int */
+
+
+    if (decode_int('0')!=0){
+        printf("Erreur test int0");
+        exit(-1);
+    }
+    if (decode_int('1')!=1){
+        printf("Erreur test int1");
+        exit(-1);
+    }
+    if (decode_int('2')!=2){
+        printf("Erreur test int2");
+        exit(-1);
+    }
+    if (decode_int('3')!=3){
+        printf("Erreur test int3");
+        exit(-1);
+    }
+    if (decode_int('4')!=4){
+        printf("Erreur test int4");
+        exit(-1);
+    }
+    if (decode_int('5')!=5){
+        printf("Erreur test int5");
+        exit(-1);
+    }
+    if (decode_int('6')!=6){
+        printf("Erreur test int6");
+        exit(-1);
+    }
+    if (decode_int('7')!=7){
+        printf("Erreur test int7");
+        exit(-1);
+    }
+    if (decode_int('8')!=8){
+        printf("Erreur test int8");
+        exit(-1);
+    }
+    if (decode_int('9')!=9){
+        printf("Erreur test int9");
+        exit(-1);
+    }
+    if (decode_int('A')!=-1){
+        printf("Erreur test intA");
+        exit(-1);
+    }
+
+
+    /* decode _nombre */
+
+        if (decode_nombre("123",3)!=123)
+    {
+        printf("Erreur test nombre1");
+        exit(-1);
+    }
+    if (decode_nombre("987654321",2)!=98)
+    {
+        printf("Erreur test nombre2");
+        exit(-1);
+    }
+
+    /* test latitude */
+
+    if (latitude("3723.2475")-37.387458<0.000001 && 37.387458-latitude("3723.2475")<0.000001)
+    {
+        printf("Erreur test latitude");
+        exit(-1);
     }
 }
+
+
 
 // Ne pas modifier cette fonction
 int main(int argc,char ** argv)
