bien vu, je n'étais pas allé voir de ce côté
est-ce que la requête reçue ne correspond qu'à un seul slider ou vous groupez l'émission de plusieurs sliders d'un coup ?
S'il y en a plusieurs, je mettrais un truc du genre
for (int i = 0; i < request->params(); i++) {
AsyncWebParameter* p = request->getParam(i);
int indexSlider = atoi(p->name().c_str() + 1); // +1 pour sauter le s du début
Serial.print("Slider #"); Serial.print(indexSlider)
Serial.print(" prend la valeur #"); Serial.print(p->value().c_str())
}
S'il n'y en a qu'un seul, pas besoin de la boucle for
AsyncWebParameter* p = request->getParam(0); // premier paramètre
int indexSlider = atoi(p->name().c_str() + 1); // +1 pour sauter le s du début
Serial.print("Slider #"); Serial.print(indexSlider)
Serial.print(" prend la valeur #"); Serial.print(p->value().c_str())
ensuite il suffit d'avoir un tableau pour les valeurs (au lieu de valeur1, valeur2, ...)
valeurSliders[indexSlider] = atoi(p->value().c_str());
Il y a plusieurs variables à récupérer, plus de 30, c'est pourquoi je souhaite réaliser cette boucle. Chaque variable est ensuite stockée dans l'eeprom.
je m'y remets ce soir, merci
Il y a plusieurs variables à récupérer, plus de 30, c'est pourquoi je souhaite réaliser cette boucle. Chaque variable est ensuite stockée dans l'eeprom.
j'ai bien compris qu'il y a plusieurs variables, la question c'est "combien passez vous de variables dans l'URL ?"
est-ce que vous avez conservé mon code et vous faites
http://xxx//slider?s1=22&s2=33&s3=55.... ➜ avec vos 30+ sliders listés dans l'URL
ou est-ce que chaque slider finalement déclenche sa propre URL
http://xxx//slider?s4=22. ➜ avec 1 seul slider dans l'URL
si vous passez tous les sliders, la boucle for va les passer en revue et on peut extraire l'index du slider
for (int i = 0; i < request->params(); i++) {
AsyncWebParameter* p = request->getParam(i);
int indexSlider = atoi(p->name().c_str() + 1); // +1 pour sauter le s du début
Serial.print("Slider #"); Serial.print(indexSlider)
Serial.print(" prend la valeur #"); Serial.print(p->value().c_str())
}
si vous émettez le GET avec 1 seul slider, on peut se passer de la boucle
Un switch case serait aussi long finalement que de faire du cas par cas avec des if même si c'est un peu plus élégant et certes plus lisible...
Non c'est pas aussi long, c'est aussi rapide ![]()
@J-M-L je parlais du switch dans le cas de l'utilisions d'une variable différente pour chaque valeur.
Mais je préfère effectivement stocker dans un tableau, ce qui simplifie l'affectation de valeur.
J'avais besoin de cela exactement, ça marche à merveille sur esp8266. Merci beaucoup.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.