Ce que tu as trouvé c'est pas mal =) Et oui tu t'approches d'une vérité =)
Si tu veux du moins lourd, je peux te proposer une alternative :
=> En partant du principe que ta trame est formaté et de taille connu tu peux te servir de ces données pour simplifier le traitement.
if(Serial.available()) // si un commande est disponible sur le port série trame de forme : <requete;pramètre;valeur>
{
char requete[10]=""; // variable tableau stockant la requète
char param[6]=""; // variable tableau stockant le paramètre
char value[6]=""; // variable tableau stockant la valeur
String request; // variable String stockant la requete
String parameter; // variable String stockant le paramètre
String valeur; // variable String stockant la valeur
int val; // variable int stockant la valeur
int para; // variable int stockant la valeur
serialdata= Serial.read(); // lecture du premier charactère
if(serialdata=='<') // test si début de trame
{
Serial.readBytesUntil(';',requete,10); // stockage des données requetes paramètre et valeur dans les tableaux correspondants
Serial.readBytesUntil(';',param,6);
Serial.readBytesUntil('>',value,6); // test de trame de fin après la 3 ème valeur
request=requete; // conversion des données requete paramètre et valeur en string
valeur=value;
parameter=param;
val = valeur.toInt(); // conversion de paramètre et valeur en int et pars requete car ici requète est un texte comme " avancer"
para = parameter.toInt();
}
}
un truc du genre te permet de " parser " en lisant ta trame, et donc pas besoin de lire toute ta trame puis de parser en utilisant des pointeur ...
Après pour des trames de longueur variable il est préférable de soit changer les caractère de départ de trame, soit lire toute la trame et parser après coup comme proposé précédement...
Et une fois que tu as la base qui marche tu peux ensuite ajouter des petit bout de code pour faire de la gestion d'erreur ...
De même tu peux largement améliorer le bout de code que je te propose en faisant un tableau de tableau de char et en utilisant une structure ...
Si tu veux faire le protocole toi même me mieux est toujours de partir sur un truc simple et de le complexifier par la suite













