Importare variabili da form html ESP8266

Scusa è colpa mia: nello scrivere la parte HTML per abitudine non ho messo la maiuscola (è consuetudine usare tutto minuscolo per tag, id, nomi delle classi etc etc )

<input name="frequenza" type="number" />

Quindi il parametro che arriva al server con la richiesta /get è frequenza e non Frequenza che è invece la stringa che vai a cercare nello sketch e che ovviamente non trovi.

Beh che dire, ho seguito ciò che mi hai chiesto di cambiare, ed ho creato anche 2 variabili indipendenti: in funzione ciclica ho creato una variabile "frequenzac" e in funzione sequenziale, una variabile "frequenzas", ma nulla da fare, neanche con la tua pagina html, davvero sono senza idee... :upside_down_face:

Ho dato uno sguardo più approfondito allo sketch...

il fatto è che tu vai a valutare gli argomenti passati con la richiesta /get
in questo modo

.....
if (request->hasParam(PARAM_STRING)) {
      inputMessage = request->getParam(PARAM_STRING)->value();
      writeFile(SPIFFS, "/inputString.txt", inputMessage.c_str());
    }
    // GET inputInt value on <ESP_IP>/get?inputInt=<inputMessage>
    else if (request->hasParam(PARAM_INT)) {
      inputMessage = request->getParam(PARAM_INT)->value();
      writeFile(SPIFFS, "/inputInt.txt", inputMessage.c_str());
    }
.... etc etc

Quando ti arrivano 2 parametri tu leggi sempre e solo il primo perché il meccanismo if/else if esclude tutti gli altri.

Avevi ragione, ho racchiuso così, ma per farle aggiornare insieme come le includo dopo hasParam? Scrivo (ncicli, Frequenzas)?

if (request->hasParam(ncicli)) {
      inputMessage = request->getParam(ncicli)->value();
      writeFile(SPIFFS, "/ncicli.txt", inputMessage.c_str());
      inputMessage = request->getParam(Frequenzas)->value();
      writeFile(SPIFFS, "/Frequenzas.txt", inputMessage.c_str());
    }

Ho cambiato inputfloat con ncicli che sarebbe la mia variabile definitiva senza il nome d'esempio

Comunque ho l'impressione che stai un po' complicando più del necessario.

L'obiettivo dello sketch esattamente qual'é?
Memorizzare dei valori "configurabili" dall'utente?

L'obiettivo è salvare valori che immetto nel DAC per generare delle onde triangolari, e a volte l'utente può chiedere di salvarne 3 contemporaneamente per impostare un onda triangolare multifunzione con un tempo finito e con ampiezza variabile

Allora ti bastava uno dei tanti WiFi Manager che consentono di aggiungere alla pagina di configurazione anche variabili "custom" tra cui anche quello di cui ho recentemente aggiunto (vedi link più in alto) anche se in realtà la parte WiFi manager è di "contorno".

Alla fine sono riuscito a farlo funzionare come serviva a me, purtroppo parto da basi un po' scarse, ma l'importante è aver raggiunto l'obiettivo. Ultima cosa e poi ho davvero finito, nella parte finale dello sketch, dove stampo sul seriale, esce la variabile booleana che volevo

Reading file: /pa.txt

  • read from file:
    true

ma subito dopo esce *** Partenza: 0. come posso sostituire 0 con una variabile booleana true e false?

  int pa = readFile(SPIFFS, "/pa.txt").toInt();
  Serial.print("*** Partenza: ");
  Serial.print(pa);

Grazie davvero di tutto, ho raggiunto questo traguardo solo grazie a te e nei tempi previsti per la consegna del progetto :heart_eyes: :heart_eyes: :heart_eyes:

In realtà true e false sono del tutto equivalenti a 1 e 0 dal punto di vista del compilatore.
Comunque se quello che ti interessa è solo la "forma" in cui viene stampato il messaggio ti basta usare un semplice operatore ternario
<valore booleano> ? < itruzione se true> : <istruzuione se false>;

Serial.print("*** Partenza: ");
Serial.print(pa ? "true" : "false");

Dopo tantissimo tempo finalmente ce l'abbiamo fatta. Ringrazio di cuore tutti e in particolare @cotestatnt che davvero ha contribuito tanto al mio progetto. Davvero grazie mille!

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