diff --git a/esp8266/esp8266.ino b/esp8266/esp8266.ino
index 105d3c8b..17398822 100644
--- a/esp8266/esp8266.ino
+++ b/esp8266/esp8266.ino
@@ -167,4 +167,9 @@ uint8_t i,data;
COMMAND::read_buffer_serial(sbuf, len);
}
}
+ if (web_interface->restartmodule)
+ {
+ ESP.restart();
+ while (1){delay(1);};
+ }
}
diff --git a/esp8266/webinterface.cpp b/esp8266/webinterface.cpp
index 6a98d265..7238eccc 100644
--- a/esp8266/webinterface.cpp
+++ b/esp8266/webinterface.cpp
@@ -314,6 +314,8 @@ const char POLLING_TITLE[]PROGMEM ="Refresh Web page (s):";
const char POLLING_NAME[]PROGMEM ="Refresh printer status every :";
const char POLLING_ID[]PROGMEM ="POLLING";
const char TEXT_HTML[]PROGMEM ="text/html";
+const char RESTARTCMD [] PROGMEM ="";
+const char RESTARTINGMSG [] PROGMEM = "
Restarting, please wait.... ";
@@ -772,14 +774,14 @@ void handle_web_interface_configSys()
}
else buffer2send+=(PROGMEM2CHAR(FORM_SUBMIT));
- buffer2send+=(PROGMEM2CHAR(FORM_END));
- buffer2send+=(PROGMEM2CHAR(PANEL_END));
- buffer2send+=(PROGMEM2CHAR(PAGE_BOTTOM));
- web_interface->WebServer.send(200, "text/html", buffer2send);
+ buffer2send+=(PROGMEM2CHAR(FORM_END));
+ buffer2send+=(PROGMEM2CHAR(PANEL_END));
if (msg_alert_success && !msg_alert_error)
{
- system_restart();
+ buffer2send+= PROGMEM2CHAR(RESTARTCMD);
}
+ buffer2send+=(PROGMEM2CHAR(PAGE_BOTTOM));
+ web_interface->WebServer.send(200, "text/html", buffer2send);
}
void handle_web_interface_configAP()
@@ -1136,14 +1138,14 @@ void handle_web_interface_configAP()
else buffer2send+=(PROGMEM2CHAR(FORM_SUBMIT));
- buffer2send+=(PROGMEM2CHAR(FORM_END));
- buffer2send+=(PROGMEM2CHAR(PANEL_END));
- buffer2send+=(PROGMEM2CHAR(PAGE_BOTTOM));
- web_interface->WebServer.send(200, "text/html", buffer2send);
- if (msg_alert_success && !msg_alert_error)
+ buffer2send+=(PROGMEM2CHAR(FORM_END));
+ buffer2send+=(PROGMEM2CHAR(PANEL_END));
+ if (msg_alert_success && !msg_alert_error)
{
- system_restart();
+ buffer2send+=PROGMEM2CHAR(RESTARTCMD);
}
+ buffer2send+=(PROGMEM2CHAR(PAGE_BOTTOM));
+ web_interface->WebServer.send(200, "text/html", buffer2send);
}
@@ -1477,14 +1479,14 @@ void handle_web_interface_configSTA()
else buffer2send+=(PROGMEM2CHAR(FORM_SUBMIT));
- buffer2send+=(PROGMEM2CHAR(FORM_END));
- buffer2send+=(PROGMEM2CHAR(PANEL_END));
- buffer2send+=(PROGMEM2CHAR(PAGE_BOTTOM));
- web_interface->WebServer.send(200, "text/html", buffer2send);
+ buffer2send+=(PROGMEM2CHAR(FORM_END));
+ buffer2send+=(PROGMEM2CHAR(PANEL_END));
if (msg_alert_success && !msg_alert_error)
{
- system_restart();
+ buffer2send+= PROGMEM2CHAR(RESTARTCMD);
}
+ buffer2send+=(PROGMEM2CHAR(PAGE_BOTTOM));
+ web_interface->WebServer.send(200, "text/html", buffer2send);
}
@@ -1713,6 +1715,12 @@ void handle_web_interface_status()
}
+void handle_restart()
+{
+ web_interface->WebServer.send(200,"text/html",PROGMEM2CHAR(RESTARTINGMSG));
+ web_interface->restartmodule=true;
+}
+
void handle_web_command()
{
if (web_interface->WebServer.hasArg(PROGMEM2CHAR(COMMAND_ID)))
@@ -1784,6 +1792,7 @@ WEBINTERFACE_CLASS::WEBINTERFACE_CLASS (int port):WebServer(port)
WebServer.on("/PRINTER",HTTP_ANY, handle_web_interface_printer);
WebServer.on("/CMD",HTTP_ANY, handle_web_command);
WebServer.on("/mincss.css",HTTP_GET, handle_css);
+ WebServer.on("/RESTART",HTTP_GET, handle_restart);
#ifdef SSDP_FEATURE
WebServer.on("/description.xml", HTTP_GET, handle_SSDP);
#endif
@@ -1793,6 +1802,7 @@ WEBINTERFACE_CLASS::WEBINTERFACE_CLASS (int port):WebServer(port)
answer4M220="100";
answer4M221="100";
last_temp=system_get_time();
+ restartmodule=false;
}
WEBINTERFACE_CLASS * web_interface;
diff --git a/esp8266/webinterface.h b/esp8266/webinterface.h
index 3afff371..61b8468d 100644
--- a/esp8266/webinterface.h
+++ b/esp8266/webinterface.h
@@ -45,6 +45,7 @@ class WEBINTERFACE_CLASS
STORESTRINGS_CLASS error_msg;
STORESTRINGS_CLASS info_msg;
STORESTRINGS_CLASS status_msg;
+ bool restartmodule;
private:
};