Add RESET/CONFIG/SAFEMODE to command line

[ESP444]RESET will set default values to EEPROM and restart module
[ESP444]CONFIG will display EEPROM but password
[ESP444]SAFEMODE will switch to safe mode = default mode but without
modifying EEPROM and no restart
This commit is contained in:
luc 2015-10-21 20:38:07 +08:00
parent 26ce0ba15b
commit 65ec16f4d5
5 changed files with 41 additions and 18 deletions

View File

@ -20,6 +20,7 @@
#include "command.h" #include "command.h"
#include "config.h" #include "config.h"
#include "wifi.h"
#include "webinterface.h" #include "webinterface.h"
extern "C" { extern "C" {
#include "user_interface.h" #include "user_interface.h"
@ -49,6 +50,21 @@ void COMMAND::execute_command(int cmd,String cmd_params)
Serial.print("\r\n"); Serial.print("\r\n");
} }
break; break;
case 444:
if (cmd_params=="RESET")
{
CONFIG::reset_config();
web_interface->restartmodule=true;
}
if (cmd_params=="SAFEMODE")
{
wifi_config.Safe_Setup();
}
if (cmd_params=="CONFIG")
{
CONFIG::print_config();
}
break;
case 888: case 888:
if (cmd_params=="RESTART") if (cmd_params=="RESTART")
{ {

View File

@ -159,7 +159,6 @@ bool CONFIG::reset_config()
if(!CONFIG::write_buffer(EP_XY_FEEDRATE,(const byte *)&DEFAULT_XY_FEEDRATE,INTEGER_LENGTH))return false; if(!CONFIG::write_buffer(EP_XY_FEEDRATE,(const byte *)&DEFAULT_XY_FEEDRATE,INTEGER_LENGTH))return false;
if(!CONFIG::write_buffer(EP_Z_FEEDRATE,(const byte *)&DEFAULT_Z_FEEDRATE,INTEGER_LENGTH))return false; if(!CONFIG::write_buffer(EP_Z_FEEDRATE,(const byte *)&DEFAULT_Z_FEEDRATE,INTEGER_LENGTH))return false;
if(!CONFIG::write_buffer(EP_E_FEEDRATE,(const byte *)&DEFAULT_E_FEEDRATE,INTEGER_LENGTH))return false; if(!CONFIG::write_buffer(EP_E_FEEDRATE,(const byte *)&DEFAULT_E_FEEDRATE,INTEGER_LENGTH))return false;
return true; return true;
} }
@ -171,7 +170,7 @@ void CONFIG::print_config()
int ibuf=0; int ibuf=0;
if (CONFIG::read_byte(EP_WIFI_MODE, &bbuf ))Serial.println(byte(bbuf)); if (CONFIG::read_byte(EP_WIFI_MODE, &bbuf ))Serial.println(byte(bbuf));
if (CONFIG::read_string(EP_SSID, sbuf , MAX_SSID_LENGTH))Serial.println(sbuf); if (CONFIG::read_string(EP_SSID, sbuf , MAX_SSID_LENGTH))Serial.println(sbuf);
if (CONFIG::read_string(EP_PASSWORD, sbuf , MAX_PASSWORD_LENGTH))Serial.println(sbuf); //if (CONFIG::read_string(EP_PASSWORD, sbuf , MAX_PASSWORD_LENGTH))Serial.println(sbuf);
if (CONFIG::read_byte(EP_IP_MODE, &bbuf ))Serial.println(byte(bbuf)); if (CONFIG::read_byte(EP_IP_MODE, &bbuf ))Serial.println(byte(bbuf));
if (CONFIG::read_buffer(EP_IP_VALUE,(byte *)sbuf , IP_LENGTH))Serial.println(wifi_config.ip2str((byte *)sbuf)); if (CONFIG::read_buffer(EP_IP_VALUE,(byte *)sbuf , IP_LENGTH))Serial.println(wifi_config.ip2str((byte *)sbuf));
if (CONFIG::read_buffer(EP_MASK_VALUE, (byte *)sbuf , IP_LENGTH))Serial.println(wifi_config.ip2str((byte *)sbuf)); if (CONFIG::read_buffer(EP_MASK_VALUE, (byte *)sbuf , IP_LENGTH))Serial.println(wifi_config.ip2str((byte *)sbuf));
@ -189,5 +188,4 @@ void CONFIG::print_config()
if (CONFIG::read_buffer(EP_XY_FEEDRATE, (byte *)&ibuf , INTEGER_LENGTH))Serial.println(ibuf); if (CONFIG::read_buffer(EP_XY_FEEDRATE, (byte *)&ibuf , INTEGER_LENGTH))Serial.println(ibuf);
if (CONFIG::read_buffer(EP_Z_FEEDRATE, (byte *)&ibuf , INTEGER_LENGTH))Serial.println(ibuf); if (CONFIG::read_buffer(EP_Z_FEEDRATE, (byte *)&ibuf , INTEGER_LENGTH))Serial.println(ibuf);
if (CONFIG::read_buffer(EP_E_FEEDRATE, (byte *)&ibuf , INTEGER_LENGTH))Serial.println(ibuf); if (CONFIG::read_buffer(EP_E_FEEDRATE, (byte *)&ibuf , INTEGER_LENGTH))Serial.println(ibuf);
} }

View File

@ -27,7 +27,7 @@
#define SSDP_FEATURE #define SSDP_FEATURE
//CAPTIVE_PORTAL_FEATURE: In SoftAP redirect all unknow call to main page //CAPTIVE_PORTAL_FEATURE: In SoftAP redirect all unknow call to main page
//#define CAPTIVE_PORTAL_FEATURE #define CAPTIVE_PORTAL_FEATURE
#ifndef CONFIG_h #ifndef CONFIG_h
#define CONFIG_h #define CONFIG_h

View File

@ -57,6 +57,8 @@ WiFiClient serverClients[MAX_SRV_CLIENTS];
void setup() { void setup() {
// init : // init :
web_interface = NULL;
data_server = NULL;
// ESP.wdtDisable(); // ESP.wdtDisable();
system_update_cpu_freq(SYS_CPU_160MHZ); system_update_cpu_freq(SYS_CPU_160MHZ);
delay(8000); delay(8000);

View File

@ -28,6 +28,10 @@
extern "C" { extern "C" {
#include "user_interface.h" #include "user_interface.h"
} }
#ifdef CAPTIVE_PORTAL_FEATURE
#include <DNSServer.h>
extern DNSServer dnsServer;
#endif
const char * WIFI_CONFIG::get_hostname(){ const char * WIFI_CONFIG::get_hostname(){
if (WiFi.hostname().length()==0) if (WiFi.hostname().length()==0)
@ -105,20 +109,23 @@ char * WIFI_CONFIG::ip2str(IPAddress Ip )
void WIFI_CONFIG::Safe_Setup() void WIFI_CONFIG::Safe_Setup()
{ {
WiFi.disconnect(); #ifdef CAPTIVE_PORTAL_FEATURE
//setup Soft AP dnsServer.stop();
WiFi.mode(WIFI_AP); delay(100);
IPAddress local_ip (DEFAULT_IP_VALUE[0],DEFAULT_IP_VALUE[1],DEFAULT_IP_VALUE[2],DEFAULT_IP_VALUE[3]); #endif
IPAddress gateway (DEFAULT_GATEWAY_VALUE[0],DEFAULT_GATEWAY_VALUE[1],DEFAULT_GATEWAY_VALUE[2],DEFAULT_GATEWAY_VALUE[3]); WiFi.disconnect();
IPAddress subnet (DEFAULT_MASK_VALUE[0],DEFAULT_MASK_VALUE[1],DEFAULT_MASK_VALUE[2],DEFAULT_MASK_VALUE[3]); //setup Soft AP
String ssid = FPSTR(DEFAULT_SSID); WiFi.mode(WIFI_AP);
String pwd = FPSTR(DEFAULT_PASSWORD); IPAddress local_ip (DEFAULT_IP_VALUE[0],DEFAULT_IP_VALUE[1],DEFAULT_IP_VALUE[2],DEFAULT_IP_VALUE[3]);
WiFi.softAP(ssid.c_str(),pwd.c_str()); IPAddress gateway (DEFAULT_GATEWAY_VALUE[0],DEFAULT_GATEWAY_VALUE[1],DEFAULT_GATEWAY_VALUE[2],DEFAULT_GATEWAY_VALUE[3]);
delay(500); IPAddress subnet (DEFAULT_MASK_VALUE[0],DEFAULT_MASK_VALUE[1],DEFAULT_MASK_VALUE[2],DEFAULT_MASK_VALUE[3]);
wifi_set_phy_mode(PHY_MODE_11B); String ssid = FPSTR(DEFAULT_SSID);
WiFi.softAPConfig( local_ip, gateway, subnet); String pwd = FPSTR(DEFAULT_PASSWORD);
Serial.println(F("M117 Safe mode started")); WiFi.softAP(ssid.c_str(),pwd.c_str());
delay(1000); delay(500);
WiFi.softAPConfig( local_ip, gateway, subnet);
delay(1000);
Serial.println(F("M117 Safe mode started"));
} }
//Read configuration settings and apply them //Read configuration settings and apply them