Tengo un gran problema con los datos que me devuelve el arduino
Estoy tratando de procesar datos de la conecion serial, pero lo que me devuelve el arduino no tiene sentido.
el parámetro que le paso es este: cocina-tre-id03-onn-74
el resultado esperado es este:
vpar[0] cocina
vpar[1] tre
vpar[2] id03
vpar[3] onn
vpar[4] 74
pero el que obtengo es este:
vpar[0] cocina
vpar[1]
vpar[2]
vpar[3]
vpar[4] id03onn
este es mi codigo
int p = 0;
String Parametro[19];
String vpar[5];
int leo = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0) //si hay coneccion
{
// lee el byte entrante:
leo = ((char)Serial.read());
if (leo==-1)
{
//no hay datos en la coneccion
}
else
{
if (-1 != leo)
{
if(p<19)
{
if(leo==46)
{
Parametro[p] = ".";
p++;
}
if(leo==45)
{
Parametro[p] = "-";
p++;
}
if(leo==48)
{
Parametro[p] = "0";
p++;
}
if(leo==49)
{
Parametro[p] = "1";
p++;
}
if(leo==50)
{
Parametro[p] = "2";
p++;
}
if(leo==51)
{
Parametro[p] = "3";
p++;
}
if(leo==52)
{
Parametro[p] = "4";
p++;
}
if(leo==53)
{
Parametro[p] = "5";
p++;
}
if(leo==54)
{
Parametro[p] = "6";
p++;
}
if(leo==55)
{
Parametro[p] = "7";
p++;
}
if(leo==56)
{
Parametro[p] = "8";
p++;
}
if(leo==57)
{
Parametro[p] = "9";
p++;
}
if(leo==97)
{
Parametro[p] = "A";
p++;
}
if(leo==98)
{
Parametro[p] = "B";
p++;
}
if(leo==99)
{
Parametro[p] = "C";
p++;
}
if(leo==100)
{
Parametro[p] = "D";
p++;
}
if(leo==101)
{
Parametro[p] = "E";
p++;
}
if(leo==102)
{
Parametro[p] = "F";
p++;
}
if(leo==103)
{
Parametro[p] = "G";
p++;
}
if(leo==104)
{
Parametro[p] = "H";
p++;
}
if(leo==105)
{
Parametro[p] = "I";
p++;
}
if(leo==106)
{
Parametro[p] = "J";
p++;
}
if(leo==107)
{
Parametro[p] = "K";
p++;
}
if(leo==108)
{
Parametro[p] = "L";
p++;
}
if(leo==109)
{
Parametro[p] = "M";
p++;
}
if(leo==110)
{
Parametro[p] = "N";
p++;
}
if(leo==111)
{
Parametro[p] = "O";
p++;
}
if(leo==112)
{
Parametro[p] = "P";
p++;
}
if(leo==113)
{
Parametro[p] = "Q";
p++;
}
if(leo==114)
{
Parametro[p] = "R";
p++;
}
if(leo==115)
{
Parametro[p] = "S";
p++;
}
if(leo==116)
{
Parametro[p] = "T";
p++;
}
if(leo==117)
{
Parametro[p] = "U";
p++;
}
if(leo==118)
{
Parametro[p] = "V";
p++;
}
if(leo==119)
{
Parametro[p] = "W";
p++;
}
if(leo==120)
{
Parametro[p] = "X";
p++;
}
if(leo==121)
{
Parametro[p] = "Y";
p++;
}
if(leo==122)
{
Parametro[p] = "Z";
p++;
}
}
if(p==19)
{
for(int l=0;l<19;l++)
{
Serial.println(Parametro[l]);
}
int h=0;
for(int i=0;i<19;i++)
{
if(Parametro[i]=="-")
{
if(h==0)
{
h=1;
i++;
}
if(h==1)
{
h=2;
i++;
}
if(h==2)
{
h=3;
i++;
}
if(h==3)
{
h=4;
i++;
}
if(h==4)
{
i++;
}
}
vpar[h] = vpar[h] + Parametro[i];
}
Serial.println(vpar[0]);
Serial.println(vpar[1]);
Serial.println(vpar[2]);
Serial.println(vpar[3]);
Serial.println(vpar[4]);
Serial.flush();
p=0;
h=0;
}
}
}
}
}