/*
Comandos pela serial
*/
#define RESET asm("jmp (0x0000)")
#define atributos 10
String comando;
String array[atributos];
int i, index, StringCount;
void setup(){
Serial.begin(115200);
Serial.println(" ");
Serial.print("#>");
}
void loop(){
if(Serial.available() > 0){
comando = Serial.readString();
comando.trim(); // remova qualquer espaço em branco \r \n no final da String
StringCount = 0;
while(comando.length() > 0){
index = comando.indexOf(' ');
if(index == -1){
array[StringCount++] = comando;
break;
}
else{
array[StringCount++] = comando.substring(0, index);
comando = comando.substring(index+1);
}
}
//Mostra o comando
for(i=0; i<StringCount; i++){
Serial.print(array[i]);
Serial.print(" ");
}
Serial.println(" ");
//Interpreta o comando
if(array[0] == "cmd"){
if(array[1] == "1"){
Serial.println("Comando 1");
}
else if(array[1] == "2"){
Serial.println("Comando 2");
}
else{
Serial.println("Falta atributo!");
}
}
else if(array[0] == "cmdx"){
Serial.println("Comando x");
}
else if(array[0] == "reset"){
Serial.println("Resetando o módulo...");
delay(100);
RESET;
}
else{
Serial.println("Comando não reconhecido!");
}
//Serial.println("");
Serial.print("#>");
}
comando = " ";
for(i=0; i<atributos; i++){
array[i] = " ";
}
}