Ah wai donc si j'ai bien compris:
//Fonction qui exécute la commande
void executeCommande() {
Serial.println(commande); //Pour le débug
char * parse[2]; //Créer un tableau de pointeur au format char
int val = 0; //Valeur forcé à 0
parse[0] = strtok(commande, ";"); //Contenu de la première adresse pointeur
parse[1] = strtok(NULL, ";"); //Contenu de la seconde adresse pointeur
//Si le contenu de la première adresse
//est égale (strcmp) avec Out13
if(strcmp(parse[0], "Out13") == 0) {
//Compare le contenu de la seconde adresse avec HIGH
//Charger Val avec HIGH, sinon charger val avec LOW
(strcmp(parse[1], "HIGH") == 0) ? val = HIGH : val = LOW;
//Assigner à la sortie correspondante la valeur donné
digitalWrite(13, val);
}
//Les autres commandes
}
Ca c'est ce que j'ai fait. Des tests m'ont permis de remarqué que je pouvais faire une transmission toute les 1000µs, soit 1ms. Pour bien faire, il faut que chaque PWM soit refresh toutes les 20ms max. On est dans les points. Comme ma télécommande enverra chaque ordres à intervalle régulier en fonction des données. Mais bon, ça c'est la subtilité que j'ai pas encore fini de codé tant que ce que j'ai en code en cours n'est pas réellement fini.
Je me demande si je ne devrais pas faire ceci localement.
Travailler avec le tableau et au lieu de charger des variables sur place, les charger globalement. Ainsi, si rien ne change on maintient la valeur ou elle était.
Je dis peut-être une bêtise. Mais à ce moment là, si le tableau parse qui devrais donc s'appeler pParse (pour Pointeur Parse) pouraît donc être global. Ainsi, c'est au travers de &pParse[0] et &pParse[1] que j'aurais mes commandes. Ainsi donc je pourait avoir un tableau général de pointeur, deux cases par fonctions. Soit:
[Moteur1][valmoteur1] [Moteur2][valmoteur2] [Servo1][valservo1] [Servo2][valservo2] [Servo3][valservo3] [Pression][0/1 (selon locker ou pas)] [Light][0/1 (selon si c'est allumer ou pas)] [Urgence][0/1 (selon qu'on décrête l'urgence ou pas)]
Chez pas si c'est clair ?