Buenas estoy haciendo mi un proyecto y me he quedado estancado, veréis, necesito enviar unas cuantas variables pongamos por ejemplo: Var1 Var2 Var3 y Var4 (pueden ser todas del mismo tipo o no) modificando el orden de envío sin tener que re-programar el microcontrolador. Por ejemplo, Envío por Serial: Var1,Var3,Var2,Var4 en ese orden pero luego lo quiero re-configurar para enviar: Var3,Var2,Var4,Var1.
MrWilliam932:
Buenas estoy haciendo mi un proyecto y me he quedado estancado, veréis, necesito enviar unas cuantas variables pongamos por ejemplo: Var1 Var2 Var3 y Var4 (pueden ser todas del mismo tipo o no) modificando el orden de envío sin tener que re-programar el microcontrolador. Por ejemplo, Envío por Serial: Var1,Var3,Var2,Var4 en ese orden pero luego lo quiero re-configurar para enviar: Var3,Var2,Var4,Var1
Muchas gracias de antebrazo
Puedes enviarle por el serial monitor un mensaje que indique el orden y numero de variables ,por ejemplo var1 = p de primera ,var2 = s de segunda ,var3 = t de tercera etc etc y una letra/simbolo que indique el final del mensaje(por ejemplo f de final).luego recojes el mensaje en el sketch y lo interpretas actuando en consecuencia.por ejemplo envias el mensaje stpf para indicar segunda,tercera,primera y final de mensaje o sea var2 ,var3 y var1
Si te he entendido bien, para eso deberías usar el uso de un símbolo que te indique el inicio y el fin de la variable
envías en una variable
var1[x] = '#1=15/';
Luego cuando recibes la variable hace algo como
char valor[10];
// Busca el inicio
if(Serial.read(() == "#"){
// Variable 1
if(Serial.read() == '1'){
// inicio de la información
if(Serial.read() == '='){
int i = 0;
// Guarda la información de la variable
while(c != '/'){
c = Serial.read();
valor[i] = c;
i++;
}
}
}
// Variable 2
if(Serial.read() == '2'){
// inicio de la información
if(Serial.read() == '='){
int i = 0;
// Guarda la información de la variable
while(c != '/'){
c = Serial.read();
valor[i] = c;
i++;
}
}
}
// Variable 3
if(Serial.read() == '3'){
// inicio de la información
if(Serial.read() == '='){
int i = 0;
// Guarda la información de la variable
while(c != '/'){
c = Serial.read();
valor[i] = c;
i++;
}
}
}
}
No sé si es lo que necesitas, y de seguro el código se puede optimizar creando una función, pero es una idea para comenzar