diff --git a/WifiControlSensor/EEPROM.h b/WifiControlSensor/EEPROM.h
index 3dc1730..663173d 100644
--- a/WifiControlSensor/EEPROM.h
+++ b/WifiControlSensor/EEPROM.h
@@ -1,12 +1,23 @@
#pragma once
-int EepromSaveConfig(uint8_t bootMode, String ssid, String password, String host,
- String mqttServer, String mqttUser, String mqttPasswd,
- int mqttPort, int ip_config, uint32_t ip, uint32_t gw,
- uint32_t mask, uint32_t dns, uint32_t dns2);
-int EepromSaveBootMode(uint8_t bootMode);
-void EepromReadConfig(uint8_t &bootMode, char **ssid, char **password, char **host,
- char **mqttServer, char **mqttUser, char **mqttPasswd,
- int &mqttPort, int &ip_config, uint32_t &ip, uint32_t &gw,
- uint32_t &mask, uint32_t &dns, uint32_t &dns2);
+typedef struct productConfig_t {
+ uint8_t bootMode;
+ char *ssid;
+ char *password;
+ char *host;
+ char *mqttServer;
+ char *mqttUser;
+ char *mqttPasswd;
+ int mqttPort;
+ int ip_mode;
+ uint32_t ip;
+ uint32_t gw;
+ uint32_t mask;
+ uint32_t dns;
+ uint32_t dns2;
+} productConfig;
+
+int EepromSaveConfig(productConfig &config);
+int EepromSaveBootMode(uint8_t bootMode);
+void EepromReadConfig(productConfig &config);
diff --git a/WifiControlSensor/EEPROM.ino b/WifiControlSensor/EEPROM.ino
index 3fd567c..7ef05be 100644
--- a/WifiControlSensor/EEPROM.ino
+++ b/WifiControlSensor/EEPROM.ino
@@ -8,19 +8,16 @@
char eeprom[CONFIG_EEPROM_SIZE];
-int EepromSaveConfig(uint8_t bootMode, String ssid, String password, String host,
- String mqttServer, String mqttUser, String mqttPasswd,
- int mqttPort, int ip_config, uint32_t ip, uint32_t gw,
- uint32_t mask, uint32_t dns, uint32_t dns2) {
+int EepromSaveConfig(productConfig &config) {
String eeprom;
- eeprom = String(bootMode) + ";" + ssid + ";" + password + ";"
- + host + ";" + mqttServer + ";"
- + mqttUser + ";" + mqttPasswd + ";"
- + String(mqttPort) + ";"
- + String(ip_config) + ";"
- + ip + ";" + gw + ";" + mask + ";"
- + dns + ";" + dns2 + ";";
+ eeprom = String(config.bootMode) + ";" + config.ssid + ";" + config.password + ";"
+ + config.host + ";" + config.mqttServer + ";"
+ + config.mqttUser + ";" + config.mqttPasswd + ";"
+ + String(config.mqttPort) + ";"
+ + String(config.ip_mode) + ";"
+ + config.ip + ";" + config.gw + ";" + config.mask + ";"
+ + config.dns + ";" + config.dns2 + ";";
if (eeprom.length() > CONFIG_EEPROM_SIZE )
return -EMSGSIZE;
@@ -59,10 +56,7 @@ void readConfElement(char** element, int &i) {
}
-void EepromReadConfig(uint8_t &bootMode, char **ssid, char **password, char **host,
- char **mqttServer, char **mqttUser, char **mqttPasswd,
- int &mqttPort, int &ip_config, uint32_t &ip, uint32_t &gw,
- uint32_t &mask, uint32_t &dns, uint32_t &dns2) {
+void EepromReadConfig(productConfig &config) {
int i = 2;
@@ -70,34 +64,34 @@ void EepromReadConfig(uint8_t &bootMode, char **ssid, char **password, char **ho
char *tmpString;
if (boot == '1') {
- bootMode = BOOTMODE_NORMAL;
+ config.bootMode = BOOTMODE_NORMAL;
} else if (boot == '2') {
- bootMode = BOOTMODE_OTA;
+ config.bootMode = BOOTMODE_OTA;
} else {
//Do not need to parse EEPROM when not configured
- bootMode = BOOTMODE_SETUP;
+ config.bootMode = BOOTMODE_SETUP;
return;
}
- readConfElement(ssid, i);
- readConfElement(password, i);
- readConfElement(host, i);
- readConfElement(mqttServer, i);
- readConfElement(mqttUser, i);
- readConfElement(mqttPasswd, i);
+ readConfElement(&config.ssid, i);
+ readConfElement(&config.password, i);
+ readConfElement(&config.host, i);
+ readConfElement(&config.mqttServer, i);
+ readConfElement(&config.mqttUser, i);
+ readConfElement(&config.mqttPasswd, i);
readConfElement(&tmpString, i);
- mqttPort = atoi(tmpString);
+ config.mqttPort = atoi(tmpString);
readConfElement(&tmpString, i);
- ip_config = atoi(tmpString);
+ config.ip_mode = atoi(tmpString);
readConfElement(&tmpString, i);
- ip = atoi(tmpString);
+ config.ip = atoi(tmpString);
readConfElement(&tmpString, i);
- gw = atoi(tmpString);
+ config.gw = atoi(tmpString);
readConfElement(&tmpString, i);
- mask = atoi(tmpString);
+ config.mask = atoi(tmpString);
readConfElement(&tmpString, i);
- dns = atoi(tmpString);
+ config.dns = atoi(tmpString);
readConfElement(&tmpString, i);
- dns2 = atoi(tmpString);
+ config.dns2 = atoi(tmpString);
}
diff --git a/WifiControlSensor/WebServer.ino b/WifiControlSensor/WebServer.ino
index e3ed495..f9a0335 100644
--- a/WifiControlSensor/WebServer.ino
+++ b/WifiControlSensor/WebServer.ino
@@ -9,7 +9,7 @@ void WebHandleRoot() {
server.send(200, "text/html",
"
"
- "You are connected to " + String(hostName) + "
"
+ "You are connected to " + String(conf.host) + "
"
"