Recupérer paramètre GET ESP32-S2 - problème de type pour chaine

Salut,
Je me suis pris la tête beaucoup trop longtemps sur un problème idiot... Donc je demande de l'aide.

J'utilise sur ma lolin ESP32-S2 PICO la librairie <ESPAsyncWebServer.h> pour afficher des variables sur une page web et permetre de modifier leurs valeurs.

Je me prends le choux avec les lignes suivantes. Je veux recuperer une chaine de caractère d'un paramètre get et l'affecter à une variable :

 if (p->name() == "varWeb4") {
        varWeb4 = p->value();
      }

J'ai pas tous compris sur les char, char *, string, ... Mais quelque soit le type de "varWeb4" impossible de lui pousser la chaine recupérer via "p->value();".
Je n'arrive qu'à le faire avec des type entier de la facon suivante :

      if (p->name() == "varWeb1") {
        varWeb1 = p->value().toInt();
      }

Un peu plus de code pour le contexte :

server.on("/", HTTP_GET, [](AsyncWebServerRequest* request) {
    if (!request->authenticate(http_username, http_password))
      return request->requestAuthentication();
    int paramsNr = request->params();
    Serial.println(paramsNr);

    //// recuperation des actions utilisateur
    for (int i = 0; i < paramsNr; i++) {
      AsyncWebParameter* p = request->getParam(i);
      if (p->name() == "varWeb1") {
        varWeb1 = p->value().toInt();
      }
      if (p->name() == "varWeb2") {
        varWeb2 = p->value().toInt();
      }
      if (p->name() == "varWeb3") {
        varWeb3 = p->value();
      }

Merci à vous !

Bon,
J'y avais passé du temps (surtout vu le temps de compilation sur l'ESP), la solution est trouvée, du coup je vais nager recuperer ma bouteille !

      if (p->name() == "varWeb3") {
        p->value().toCharArray(varWeb3, 32);
      }

avec une déclaration en debut de code : char varWeb3[32] ;

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.