mirror of https://github.com/jeelabs/esp-link.git
parent
d2764573d2
commit
159f075e06
@ -0,0 +1,70 @@ |
||||
#include <EEPROM.h> |
||||
#include "WebServer.h" |
||||
|
||||
#define MAGIC 0xABEF |
||||
|
||||
#define MAX_STR_LEN 32 |
||||
|
||||
#define POS_MAGIC 0 |
||||
#define POS_FIRST_NAME (POS_MAGIC + 2) |
||||
#define POS_LAST_NAME (POS_FIRST_NAME + MAX_STR_LEN) |
||||
|
||||
void userInit() |
||||
{ |
||||
uint16_t magic; |
||||
EEPROM.get(POS_MAGIC, magic); |
||||
|
||||
if( magic != MAGIC ) |
||||
{ |
||||
magic = MAGIC; |
||||
EEPROM.put(POS_MAGIC, magic); |
||||
EEPROM.update(POS_FIRST_NAME, 0); |
||||
EEPROM.update(POS_LAST_NAME, 0); |
||||
} |
||||
} |
||||
|
||||
void userWriteStr(char * str, int ndx) |
||||
{ |
||||
for(uint8_t i=0; i < MAX_STR_LEN-1; i++) |
||||
{ |
||||
EEPROM.update(ndx + i, str[i]); |
||||
if( str[i] == 0 ) |
||||
break; |
||||
} |
||||
EEPROM.update(ndx + MAX_STR_LEN - 1, 0); |
||||
} |
||||
|
||||
void userReadStr(char * str, int ndx) |
||||
{ |
||||
for(uint8_t i=0; i < MAX_STR_LEN; i++) |
||||
{ |
||||
str[i] = EEPROM[ndx + i]; |
||||
} |
||||
} |
||||
|
||||
void userHtmlCallback(WebServerCommand command, char * data, int dataLen) |
||||
{ |
||||
switch(command) |
||||
{ |
||||
case SET_FIELD: |
||||
if( strcmp_P(data, PSTR("first_name")) == 0 ) |
||||
userWriteStr(webServer.getArgString(), POS_FIRST_NAME); |
||||
if( strcmp_P(data, PSTR("last_name")) == 0 ) |
||||
userWriteStr(webServer.getArgString(), POS_LAST_NAME); |
||||
break; |
||||
case LOAD: |
||||
{ |
||||
char buf[MAX_STR_LEN]; |
||||
webServer.setArgNum(2); |
||||
userReadStr( buf, POS_FIRST_NAME ); |
||||
webServer.setArgString("first_name", buf); |
||||
userReadStr( buf, POS_LAST_NAME ); |
||||
webServer.setArgString("last_name", buf); |
||||
} |
||||
break; |
||||
case REFRESH: |
||||
// do nothing
|
||||
break; |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue