Buongiorno sono nuovo, mi presento.
Sono Andrea, da poco ho conosciuto il linguaggio c/c++ all'università di fisica. Nel tempo libero cerco di imparare un po' di html e javascript(per il momento la mia conoscenza di questi ultimi due linguaggi è molto scarsa). Appena ho conosciuto la scheda Esp-12 non ho potuto farne a meno e ne ho subito acquistata una.
Ora veniamo al dunque. Di recente ho scritto un programma che simula una transazione di denaro utilizzando la scheda Esp-12 impostata come punto di accesso. Appena accendo la scheda si avvia la simulazione della transazione. Successivamente con il wifi del telefono mi collego ad essa (e fin qui tutto bene). Il problema avviene quando andando su internet digito l'indirizzo della pagina web, che sta dentro alla scheda Esp-12, la transazione rincomincia da capo. Per esempio se la transazione ad un certo istante di tempo è al 20% e qualche minuto dopo digito l'indirizzo della pagina web per visualizzare lo stato di avanzamento della transazione, la transazione rincomincia da capo e ritorna allo 0%. Volevo chiedervi se sia possibile fare eseguire il programma in maniera tale che una volta digitato l'indirizzo per accedere alla pagina web la transazione non rincomincia da capo ma continui.
Qui di seguito vi lascio il programma.
Grazie per la disponibilità. Cordiali saluti.
Andrea.
#include <ESP8266WiFi.h>
const char *ssid = "Club_Untouchables";
const char *password = "cespuglio";
WiFiServer server(80);
void setup() {
Serial.begin(9600);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.begin();
Serial.println("HTTP server started");
delay(10);
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println("new client");
while(!client.available()){
delay(1);
}
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<style>");
client.println("#myProgress{");
client.println("position: relative;");
client.println("width: 100%;");
client.println("height: 30px;");
client.println("background-color: #FFD700;}");
client.println("#myBar{");
client.println("position: absolute;");
client.println("width: 0%;");
client.println("height: 100%;");
client.println("background-color: #4CAF50;}");
client.println("#label{");
client.println("text-align: center;");
client.println("line-height: 30px;");
client.println("color: black;}");
client.println("</style>");
client.println("<body>");
client.println("<h1>Trasferimento contanti in corso...</h1>");
client.println("<div id=\"myProgress\">");
client.println("<div id=\"myBar\">");
client.println("<div id=\"label\">0%</div>");
client.println("</div>");
client.println("</div>
");
client.println("<div id=\"textDiv\"></div>");
client.println("<p style=\"font-size:30px\">Inserire la password per fermare la transazione!</p>
");
client.println("<input type=\"password\" id=\"myPsw\" style=\"width:200px;height:50px\" value=\"\">");
client.println("<button style=\"width:75px;height:50px\" onclick=\"ferma()\">INVIO</button>");
client.println("
");
client.println("<script>");
client.println("var per_ogni_ms = 9000;");
client.println("var n = 1;");
client.println("var k = 1;");
client.println("var larghezza = 0;");
client.println("var elem;");
client.println("var id;");
client.println("var cambio = 0;");
client.println("var cash = 700000;");
client.println("var denaro = 0;");
client.println("var z = 0;");
client.println("function ferma(){");
client.println("var x = document.getElementById(\"myPsw\").value;");
client.println("if(x==\"Neutrino\"){ per_ogni_ms = 9000000;cambio = 1;alert(\"TRASFERIMENTO CONTANTE
BLOCCATO!\");}");
client.println("else{alert(\"ERRORE RITENTA!\");}");
client.println("}");
client.println("function move(){");
client.println("elem = document.getElementById(\"myBar\");");
client.println("id = setInterval(frame,per_ogni_ms);");
client.println("function frame(){");
client.println("if(n == 1){denaro = 700000 - (larghezza/100)*cash; n=0;}");
client.println("var text = document.getElementById(\"textDiv\").textContent;");
client.println("document.getElementById(\"textDiv\").textContent = denaro +\" \"+\"EURO\"+\" \"+\"su un totale di\"+\" \"+\"700000 EURO\";");
client.println("if((cambio == 1) && (k == 1)){clearInterval(id);k=0;");
client.println("denaro = 700000 - (larghezza/100)*cash;");
client.println("document.getElementById(\"textDiv\").textContent = denaro +\" \"+\"EURO\"+\" \"+\"su un totale di\"+\" \"+\"700000 EURO\";");
client.println("}");
client.println("if((larghezza >= 100) && (K == 1)){");
client.println("clearInterval(id); alert(\"TRASFERIMENTO COMPLETATO\");");
client.println("k=0; denaro = 700000 -(larghezza/100)*cash;");
client.println("document.getElementById(\"texDiv\").textContent = denaro + \" \" + \"EURO\" + \" \" + \"su un totale di\" + \" \" + \"700000 EURO\";}");
client.println("if((larghezza <= 99) && (k == 1)){");
client.println("larghezza++;");
client.println("denaro = 700000 - (larghezza/100)*cash;");
client.println("document.getElementById(\"textDiv\").textContent = denaro + \" \" + \"EURO\" + \" \" + \"su un totale di\" + \" \" + \"700000 EURO\";");
client.println("elem.style.width = larghezza + '%';");
client.println("document.getElementById(\"label\").innerHTML = larghezza * 1 + '%';}");
client.println("}}");
client.println("move();");
client.println("</script>");
client.println("</body>");
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}