       east_west[sizeof(east_west)-1] = '\0';      
       Serial.print("E/W INDICATOR   : ");
       Serial.println(east_west);    
-      Serial.println("************************************************************ ");  
+      //Serial.println("************************************************************ ");  
         
-   }else return false; 
+   }else return false;
+
+
+   //Skip Position Fix Indicator
+   token = strtok(NULL, ",");
+   if(token == NULL) {
+      return false;
+   }
+
+   //Skip Satellites Used
+   token = strtok(NULL, ",");
+   if(token == NULL) {
+      return false;
+   }
+
+   //Skip HDOP
+   token = strtok(NULL, ",");
+   if(token == NULL) {
+      return false;
+   }
+
+   //Get MSL Altitude
+   token = strtok(NULL, ",");
+   if(token != NULL) {
+      strncpy(MSL_altitude,token,sizeof(MSL_altitude));
+      MSL_altitude[sizeof(MSL_altitude)-1] = '\0';      
+      Serial.print("MSL altitude   : ");
+      Serial.println(MSL_altitude);    
+      //Serial.println("************************************************************ ");  
+        
+   }else return false;
 
    return true;     
-}  
+}
+
+/********************************************************************************
+* GPSAnalyzer32(infoLocation);
+* GPRMC
+* AT+CGPSINF=32
+* +CGPSINF: 32,032432.000,A,3016.2261,N,12006.0382,E,0.185,116.11,131017,,,A
+* Message ID          : $GPRMC = 32 (RMC protocol header)
+* UTC Time            : hhmmss.sss
+* Status              : A = data valid or V = data not valid
+* Latitude            : ddmm.mmmmmm
+* N/S Indicator       : N/S
+* Longitude           : dddmm.mmmmmm
+* E/W Indicator       : E/W
+* Speed Over Ground   : knots
+* Course Over Ground  : degrees (TRUE)
+* Date                : ddmmyy
+* Magnetic Variation  : degrees (E/W)
+* East/West Indicator : E/W
+* Mode                : A = Autonomous
+*                       D = DGPS
+*                       E = DR
+*                       N = Output Data Not Valid
+*                       R = Coarse Position
+********************************************************************************/
+boolean GPSAnalyzer32(char *gpsBuffer) {
+   char *token;
+   byte i=0;
+   float Speedkmh;
+   /* get the first token */
+   //Serial.println("****************Content of gpsBuffer*******************");
+   //Serial.println("valor do buffer :");
+   //Serial.println(gpsBuffer);
+   
+   //Get Command sent
+   token = strtok(gpsBuffer,"\n\r" );
+   if(token == NULL)  return false;
+
+   //Get "+CGPSINF:" string
+   token = strtok(NULL, ":");   
+   if(token == NULL)  return false;
+   
+   //Get CGPSINF value
+   token = strtok(NULL, ",");
+   
+   while (i<8) {     
+     if((token != NULL) && (i==7)){
+       strncpy(Speed,token,sizeof(Speed)); //Speed in Knot
+       Speed[sizeof(Speed)-1] = '\0';     
+       Serial.print("SPEED  KNOT      : ");
+       Serial.println(Speed);             
+       
+       Speedkmh = atof(Speed);
+       Speedkmh = Speedkmh*1.852;
+       dtostrf(Speedkmh,3,3,Speed);   
+
+       Serial.print("SPEED  KMH       : ");
+       Serial.println(Speed);             
+       
+       return true;
+     }else {
+       if (token == NULL){
+         return false;
+       }else{
+        token = strtok(NULL, ",");
+        i++;       
+       }
+     }    
+   }  
+}
+
+
+
+
+/********************************************************************************
+* GPVTG
+* AT+CGPSINF=64
+* +CGPSINF: 64,299.79,T,,M,0.072,N,0.133,K,A
+* Message ID    : $CPVTG = 64
+* Course        : degrees
+* Reference     : TRUE
+* Course        : degrees (Measured heading)
+* Reference     : M (Magnetc)
+* Speed         : knots (Measured horizontal speed)
+* Units         : N (Knots)
+* Speed         : Km/h (Measured horizontal speed)
+* Units         : Kilometers/h
+* Mode          : A = Autonomous
+*                 D = DGPS
+*                 E = DR
+*                 N = Output Data Not Valid
+*                 R = Coarse Position
+********************************************************************************/
 
 

  }
}

/********************************************************************************
 * boolean GPSAnalyzer(char *gpsBuffer)
 * Analyze the Serial information received after request the information 
 * AT+CCPSINF=2
 * +CGPSINF: 2,050656.000,0030.2706,N,00120.1007,E,1,9,0.90,51.9,M,7.0,M,,
 * AT+CGPSINF=2, get GPS location with format
 * Message ID       = 2

 * Units            = M
 * Geoid Separation = xxx
 * Units            = M
  ********************************************************************************/
boolean GPSAnalyzer(char *gpsBuffer) {
   char *token;

