[solucionado] transformar función a libreria (buscar keyword y pasarlo a int)


hola estimados,
estuve investigando por hay y si con ciertos códigos que uni y modifique para lograr lo que necesitaba.
tomar la cadena que envía el navegador el famoso ("123.13.13.1?sensor1=001&sensor2=022&sensor3=303&sensor4=444&sensor5=005&sensor6=006")
y que me leyera el valor del key sensorx y me lo devolviera como un int para poder usarlo como set de alguna variable.
ahora quiero hacerlo una librería para incluirlo de manera mas fácil la función pero tengo error, al pasarlo librería, les agradecería una orientación,
los códigos son:
funcion
code: [select]
void setup() {
 // put setup code here, run once:
serial.begin(9600);
}
//define largos de variable  "?sensor1=001&sensor2=022&sensor3=303&sensor4=444&sensor5=005&sensor6=006"
int lenvarname = 7; //largo del nombre de la variable, len name of variable ej: "sensor1" len = 7
int lenvardig = 3; //largo de comando de la variable, len name of command ej: "000" len = 3
//tranforma el substring web int
int webtoint(string incomingweb,string keyweb){
   int indexvar = incomingweb.indexof(keyweb); //obtiene el inicio del nombre de la variable
   string comando = incomingweb.substring(indexvar+lenvarname+1,indexvar+lenvarname+lenvardig+1);//crea el substring para meter la tranformacion
//    string substring = comando;
   // crear un array con el largo de la cadena mas un null
   char valuearray[comando.length() + 1];
   // copiar el sub string en el array
   comando.tochararray(valuearray, sizeof(valuearray));
   // convertir el array en int
  int value = atoi(valuearray);
  //devuelve el valor transformado
  return value;
}
void loop() {
 // put main code here, run repeatedly:
   char *data ="123.13.13.1?sensor1=001&sensor2=022&sensor3=303&sensor4=444&sensor5=005&sensor6=006";
                               //14      8 10     8
string cadenaserver = data;  //copia informacion del servidor como cadena
 int web1 = webtoint(cadenaserver , "sensor6");
 serial.println(web1);
 delay(2000);
}


webtoint.ccp
code: [select]
#include "webtoint.h";
#include "arduino.h";



//define largos de variable  "?sensor1=001&sensor2=022&sensor3=303&sensor4=444&sensor5=005&sensor6=006"



int lenvarname = 7;//largo del nombre del key leer
int lenvardig = 3;//numero de caracteres del numero transformar


//tranforma el substring web int


int webtoint(string incomingweb,string keyweb){
 
 
int indexvar = incomingweb.indexof(keyweb); //obtiene el inicio del nombre de la variable

 
string comando = incomingweb.substring(indexvar+lenvarname+1,indexvar+lenvarname+lenvardig+1);//crea el substring para meter la tranformacion
//  
 
string substring = comando;
   // crear un array con el largo de la cadena mas un null
   

char valuearray[comando.length() + 1];
   // copiar el sub string en el array
 
 
comando.tochararray(valuearray, sizeof(valuearray));
   // convertir el array en int
 

int value = atoi(valuearray);
  //devuelve el valor transformado

 
return value;
}


webtoint.h
code: [select]
#ifndef webtoint_h
#define webtoint_h
#include "arduino.h";
class webtoint
{
   public:
        int webtoint(string incomingweb,string keyweb);
int lenvarname;
int lenvardig;
    private:
          string comando;
          char valuearray;
          int value;
        int _lenvarname;
          int _lenvardig;
};
#endif


saludos

ayudaría si copiaras el error que te da, suele tener pistas para localizar el fallo.

no mirado muy en profundidad tu código, pero creo que los variables como lenvarname y lenvardiag deberías pasarlas como argumento y no declararlas con un valor fijo en el código de la función ya que la idea es crear una librería que acepete otro tamaños supongo.


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > [solucionado] transformar función a libreria (buscar keyword y pasarlo a int)


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support