ESP8266 EEPROM commit for CLI commands pwd, get, ip added

This commit is contained in:
2019-06-16 23:26:35 +03:00
parent ae868f42d6
commit d7e4181377
4 changed files with 23 additions and 5 deletions

Binary file not shown.

View File

@@ -1158,11 +1158,16 @@ void cmdFunctionGet(int arg_cnt, char **args) {
void printBool(bool arg) { (arg) ? debugSerial<<F("+") : debugSerial<<F("-"); } void printBool(bool arg) { (arg) ? debugSerial<<F("+") : debugSerial<<F("-"); }
void saveFlash(short n, char *str) { void saveFlash(short n, char *str) {
short i;
short len=strlen(str); short len=strlen(str);
if (len>31) len=31; if (len>MAXFLASHSTR-1) len=MAXFLASHSTR-1;
for(int i=0;i<len;i++) EEPROM.write(n+i,str[i]); for(int i=0;i<len;i++) EEPROM.write(n+i,str[i]);
EEPROM.write(n+len,0); EEPROM.write(n+len,0);
#if defined(ARDUINO_ARCH_ESP8266)
// write the data to EEPROM
short res = EEPROM.commitReset();
Serial.println((res) ? "EEPROM Commit OK" : "Commit failed");
#endif.
} }
int loadFlash(short n, char *str, short l) { int loadFlash(short n, char *str, short l) {
@@ -1176,6 +1181,12 @@ int loadFlash(short n, char *str, short l) {
void saveFlash(short n, IPAddress& ip) { void saveFlash(short n, IPAddress& ip) {
for(int i=0;i<4;i++) EEPROM.write(n++,ip[i]); for(int i=0;i<4;i++) EEPROM.write(n++,ip[i]);
#if defined(ARDUINO_ARCH_ESP8266)
// write the data to EEPROM
short res = EEPROM.commitReset();
Serial.println((res) ? "EEPROM Commit OK" : "Commit failed");
#endif.
} }
int ipLoadFromFlash(short n, IPAddress &ip) { int ipLoadFromFlash(short n, IPAddress &ip) {
@@ -1192,8 +1203,12 @@ lan_status loadConfigFromHttp(int arg_cnt, char **args)
if (arg_cnt > 1) { if (arg_cnt > 1) {
strncpy(configServer, args[1], sizeof(configServer) - 1); strncpy(configServer, args[1], sizeof(configServer) - 1);
saveFlash(OFFSET_CONFIGSERVER, configServer); saveFlash(OFFSET_CONFIGSERVER, configServer);
debugSerial<<configServer<<F(" Saved")<<endl;
} else if (!loadFlash(OFFSET_CONFIGSERVER, configServer)) } else if (!loadFlash(OFFSET_CONFIGSERVER, configServer))
{
strncpy_P(configServer,configserver,sizeof(configServer)); strncpy_P(configServer,configserver,sizeof(configServer));
debugSerial<<F(" Default config server used: ")<<configServer<<endl;
}
#ifndef DEVICE_NAME #ifndef DEVICE_NAME
snprintf(URI, sizeof(URI), "/cnf/%02x-%02x-%02x-%02x-%02x-%02x.config.json", mac[0], mac[1], mac[2], mac[3], mac[4], snprintf(URI, sizeof(URI), "/cnf/%02x-%02x-%02x-%02x-%02x-%02x.config.json", mac[0], mac[1], mac[2], mac[3], mac[4],
mac[5]); mac[5]);

View File

@@ -224,7 +224,7 @@ void printBool(bool arg);
void saveFlash(short n, char *str); void saveFlash(short n, char *str);
int loadFlash(short n, char *str, short l=32); int loadFlash(short n, char *str, short l=MAXFLASHSTR);
void saveFlash(short n, IPAddress& ip); void saveFlash(short n, IPAddress& ip);

View File

@@ -21,14 +21,17 @@
#define MIN_VOLUME 10 #define MIN_VOLUME 10
#define INIT_VOLUME 50 #define INIT_VOLUME 50
#define MAXFLASHSTR 32
#define PWDFLASHSTR 16
#define OFFSET_MAC 0 #define OFFSET_MAC 0
#define OFFSET_IP OFFSET_MAC+6 #define OFFSET_IP OFFSET_MAC+6
#define OFFSET_DNS OFFSET_IP+4 #define OFFSET_DNS OFFSET_IP+4
#define OFFSET_GW OFFSET_DNS+4 #define OFFSET_GW OFFSET_DNS+4
#define OFFSET_MASK OFFSET_GW+4 #define OFFSET_MASK OFFSET_GW+4
#define OFFSET_CONFIGSERVER OFFSET_MASK+4 #define OFFSET_CONFIGSERVER OFFSET_MASK+4
#define OFFSET_MQTT_PWD OFFSET_CONFIGSERVER+32 #define OFFSET_MQTT_PWD OFFSET_CONFIGSERVER+MAXFLASHSTR
#define EEPROM_offset_NotAlligned OFFSET_MQTT_PWD+16 #define EEPROM_offset_NotAlligned OFFSET_MQTT_PWD+PWDFLASHSTR
#define EEPROM_offset EEPROM_offset_NotAlligned + (4 -(EEPROM_offset_NotAlligned & 3)) #define EEPROM_offset EEPROM_offset_NotAlligned + (4 -(EEPROM_offset_NotAlligned & 3))
#ifndef INTERVAL_CHECK_INPUT #ifndef INTERVAL_CHECK_INPUT