Ayuda con cambio de orden al enviar por Serial

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 :wink:

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 :wink:

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