Here the code for EEPROM.put in the softAp code
void myPage(const char* url, ResponseCallback* cb, void* cbArg, Reader* body, Writer* result, void* reserved)
{
char _url[strlen(url)+1];
char* query;
char* value;
Log.trace("handling page %s", url);
strcpy(_url, url);
if (strtok_r(_url, "?&", &query))
{ /
Log.trace("pre for() - URL: <%s>, *query: <%s>", _url, query);
while(query)
{
Log.trace("in for() - URL: <%s>, *query: <%s>", _url, query);
char *token = strtok_r(query, "=", &value);
Log.trace("*query: <%s>, *value: <%s>, *token: <%s>", query, value, token);
EEPROM.clear();
int eeprom_addr[4] = {0,32,96,128};
if(strcmp(token, "str1") == 0)
{
char* val = strtok_r(NULL, "?&=", &value);
strncpy(str[0], val, sizeof(str[0]));
//str[0][sizeof(str[0]) - 1] = 0;
EEPROM.put(eeprom_addr[0],(const char*)str[0]);
Log.trace("String1: <%s>", str[0]);
}
else if(strcmp(token, "str2") == 0)
{ // with a key str2
char* val = strtok_r(NULL, "?&=", &value);
strncpy(str[1], val, sizeof(str[1]));
//str[1][sizeof(str[1]) - 1] = 0;
EEPROM.put(eeprom_addr[1],(const char*)str[1]);
Log.trace("String2: <%s>", str[1]);
}
else if(strcmp(token, "str3") == 0)
{ // with a key str2
char* val = strtok_r(NULL, "?&=", &value);
strncpy(str[2], val, sizeof(str[2]));
//str[2][sizeof(str[2]) - 1] = 0;
EEPROM.put(eeprom_addr[2],(const char*)str[2]);
Log.trace("String3: <%s>", str[2]);
}
else if(strcmp(token, "str4") == 0)
{ // with a key str2
char* val = strtok_r(NULL, "?&=", &value);
strncpy(str[3], val, sizeof(str[3]));
//str[3][sizeof(str[3]) - 1] = 0;
EEPROM.put(eeprom_addr[3],(const char*)str[3]);
Log.trace("String4: <%s>", str[3]);
}
//EEPROM.put(0,(const char*)str[0]);
query = value; // continue with the rest
}
}
here the code for getting those data using EEPROM.get inside the void loop
char value[4][32];
EEPROM.get(0,value[0]);
EEPROM.get(32,value[1]);
EEPROM.get(96,value[2]);
EEPROM.get(128,value[3]);
Particle.publish("data_1",value[0]);
delay(1000);
Particle.publish("data_2",value[1]);
delay(1000);
Particle.publish("data_3",value[3]);
delay(1000);
Particle.publish("data_4",value[4]);
delay(1000);