Boas pessoal tudo bem?
Estou aqui com uma duvida em relação a como dividir uma string por "\t" (tabs) no arduino.
Eu tenho uma variável do tipo String ("0.91 0.43 0.90 0.43 0.75 -0.66 0.76 -0.65 -0.02 -1.00 -0.01 -1.00") e queria guardar cada parcela num array.
O problema é que quando eu crio um array de Strings o meu programa buga nao sei bem porque (mas é so quando crio esse array de Strings).
Já converti tambem a minha variável para Char para tentar fazer a divisão de chars, mas até agora o máximo que consegui foi através do strtok separar a primeira parcela.
O mais próximo que consegui para chegar ao pretendido foi utilizando este código:
String aux;
void setup() {
Serial.begin(9600);
aux = "OLA\tMUNDO";
// Length (with one extra character for the null terminator)
int str_len = aux.length() + 1;
char char_array[str_len];
aux.toCharArray(char_array, str_len);
//char charBuf[50];
//aux.toCharArray(charBuf, 50);
Serial.println(aux);
String xval = getValue(char_array,'\t', 0);
Serial.println(xval);
xval = getValue(char_array, ' ', 1);
Serial.println(xval);
}
void loop() {
}
String getValue(String data, char separator, int index)
{
int found = 0;
int strIndex[] = {
0, -1 };
int maxIndex = data.length()-1;
for(int i=0; i<=maxIndex && found<=index; i++){
if(data.charAt(i)==separator || i==maxIndex){
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1] = (i == maxIndex) ? i+1 : i;
}
}
return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}
Mas o problema é que queria guardar isso em um array e como disse quando crio um array de Strings no meu programa este crasha.
Alguém me pode dar uma ajuda?