#define DEBUG

#ifndef UTILES
#define UTILES
/*
   Comprueba si es momento de actualizar las medidas, porque las actualiza cada cierto tiempo
   Dado el último tiempo guardado, tt, y el tiempo que tiene que haber pasado, incre,
   devuelve true si el tiempo actual ha sobrepasado a tt en incre o mas
   y false, si no
*/
bool isTime( unsigned long *tt, unsigned long timer)
{
  //coge el tiempo actual
  unsigned long t = millis();
  //si es menor que el último, actualiza el último
  if (t < *tt)
  {
    *tt = t;
    return true;
  }
  //si todavia no ha pasado el tiempo
  if ((*tt + timer) >= t)
    return false;

  //si ya ha pasado el tiempo, actualiza el ultimo tiempo
  *tt = t;
  return true;
}
/*
 * Para imprimir por el puerto COM si esta en modo DEBUG
 */
static void printCOM(char *line)
{
  #ifdef DEBUG
  Serial.println(line);
  #endif  
}


class StringSplit
{
   char *str;
   char* separador;
   int n;
   public:
   StringSplit(char *src, char *sep )
   {
     separador=sep=sep;
     n=strlen(separador);
     str=src;
   }
    
   char* get()
   {
     if(!str)
      return str;
     char *res=str;
     char * sig=strstr(str, separador);
     
     if(!sig)
      str=0;
     else
     {
        str=&sig[n];
        sig[0]=0;
     }
     return res;
   }
};

#endif
