Go Down

Topic: [esp8266] esecuzione impedita di operazioni da parametri dopo la prima volta (Read 630 times) previous topic - next topic

Cricri

Buongiorno, sto usando il modulo esp8266 come access point grazie alla libreria WiFiEsp come da sketch in allegato con il quale in base al valore del parametro "hi=" effettua operazioni distinte. In particolare:
Code: [Select]

   if (result.equals("saluta HTTP/1.1")) {
            Serial.println("Ciao");
          } else if (result.equals("salutaTizio HTTP/1.1")) {
            Serial.println("Ciao tizio");
          }

E funziona, restituendo andando sull'indirizzo 192.168.1.1/hi=saluta :

Code: [Select]
[WiFiEsp] Server started on port 80
Server started
[WiFiEsp] New client 0
New client
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao
Ciao
[WiFiEsp] Disconnecting  0
Client disconnected


Ma, se dopo questa operazione vado su 192.168.1.1/hi=salutaTizio, stampa:

Code: [Select]
[WiFiEsp] New client 0
New client
[WiFiEsp] Disconnecting  0
Client disconnected


Le mie domande sono:
perché stampa così tante volte "ciao" ?
Perché la seconda volta non stampa ?

Cricri

Scusate se pubblico due post di seguito ma non ricevendo risposte volevo chiedervi: manca qualcosa nella descrizione del problema, in cui non sono stato chiaro?
Ovviamente non devo utilizzare obbligatoriamente questa libreria, quindi se ci sono altre librerie che fanno ciò che chiedo (se questo è chiaro) ben vengano le segnalazioni!!

ORSO2001

Ciao....non me ne intendo...e la parte di codice è un po' poca da analizzare...comunque tu usi una variabile String chiamata result... come la crei? la "azzeri" da qualche parte?

Cricri

Code: [Select]
result = getParametro(stringa, "hi=");

[...]


String getParametro(String s, String par ) {

  int pos = s.indexOf(par);
  if (pos < 0) {
    return "";
  }
  int i = pos + par.length();
  String parVal = "";
  while ((s.charAt(i) != '&') && (s.charAt(i) != '\n') && (s.charAt(i) != '\0') && (i < s.length()) && (s.charAt(i) != '\r') && (s.charAt(i) != '\t') ) {

    parVal += s.charAt(i);
    i++;

  }
  return parVal;
}


ORSO2001

allora per la ripetizione del "ciao"...prova ad azzerare result dopo la Serial.println("Ciao")

per quanto riguarda il "ciao Tizio"...semplicemente...verifica cosa hai salvato nella variabile "stringa" che poi verifichi nella funzione getParametro().

Cricri

Ho accantonato questo codice ed ora sto provando in un modo completamente diverso, ma ho un problema anche con questo... penso che però sia opportuno trattarne in un altro Topic!

Go Up