button to force screen reset

This commit is contained in:
2017-09-06 16:31:48 +02:00
parent 0af62f47e6
commit f693373a34
8 changed files with 28 additions and 2 deletions
+1 -1
View File
@@ -51,7 +51,7 @@ ansi_parser_reset(void) {
cs = ansi_start;
inside_string = false;
apars_reset_utf8buffer();
ansi_warn("Parser timeout, state reset");
ansi_warn("Parser state reset (timeout?)");
}
}
+1 -1
View File
@@ -26,7 +26,7 @@ ansi_parser_reset(void) {
cs = ansi_start;
inside_string = false;
apars_reset_utf8buffer();
ansi_warn("Parser timeout, state reset");
ansi_warn("Parser state reset (timeout?)");
}
}
+17
View File
@@ -7,6 +7,7 @@
#include "persist.h"
#include "syscfg.h"
#include "uart_driver.h"
#include "ansi_parser.h"
#define SET_REDIR_SUC "/cfg/system"
#define SET_REDIR_ERR SET_REDIR_SUC"?err="
@@ -18,6 +19,22 @@ static void ICACHE_FLASH_ATTR tmrCb(void *arg)
system_restart();
}
httpd_cgi_state ICACHE_FLASH_ATTR cgiResetScreen(HttpdConnData *connData)
{
if (connData->conn==NULL) {
//Connection aborted. Clean up.
return HTTPD_CGI_DONE;
}
info("--- User request to reset screen! ---");
// this copies termconf to scratch and also resets the screen
terminal_apply_settings();
ansi_parser_reset();
httpdRedirect(connData, "/");
return HTTPD_CGI_DONE;
}
httpd_cgi_state ICACHE_FLASH_ATTR cgiResetDevice(HttpdConnData *connData)
{
if (connData->conn==NULL) {
+1
View File
@@ -8,5 +8,6 @@ httpd_cgi_state cgiPing(HttpdConnData *connData);
httpd_cgi_state cgiResetDevice(HttpdConnData *connData);
httpd_cgi_state cgiSystemCfgSetParams(HttpdConnData *connData);
httpd_cgi_state tplSystemCfg(HttpdConnData *connData, char *token, void **arg);
httpd_cgi_state cgiResetScreen(HttpdConnData *connData);
#endif // CGI_PING_H
+1
View File
@@ -38,6 +38,7 @@ HttpdBuiltInUrl routes[] = {
// --- System control ---
ROUTE_CGI("/system/reset/?", cgiResetDevice),
ROUTE_CGI("/system/ping/?", cgiPing),
ROUTE_CGI("/system/cls/?", cgiResetScreen),
// --- WiFi config --- (TODO make this conditional and configurable)
#if WIFI_PROTECT