diff --git a/WifiControlSensor/EEPROM.h b/WifiControlSensor/EEPROM.h new file mode 100644 index 0000000..3dc1730 --- /dev/null +++ b/WifiControlSensor/EEPROM.h @@ -0,0 +1,12 @@ +#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); + diff --git a/WifiControlSensor/EEPROM.ino b/WifiControlSensor/EEPROM.ino index 5286c45..3fd567c 100644 --- a/WifiControlSensor/EEPROM.ino +++ b/WifiControlSensor/EEPROM.ino @@ -4,7 +4,9 @@ IP_CONFIG could be 0 for DHCP, 1 for static Setup mode is trigger by setting GPIO3 to ground or at first boot */ +#include "EEPROM.h" +char eeprom[CONFIG_EEPROM_SIZE]; int EepromSaveConfig(uint8_t bootMode, String ssid, String password, String host, String mqttServer, String mqttUser, String mqttPasswd, @@ -50,8 +52,10 @@ void readConfElement(char** element, int &i) { } while (i < CONFIG_EEPROM_SIZE && eeprom[i - 1] != ';'); eeprom[i - 1] = '\0'; - if (i >= CONFIG_EEPROM_SIZE) + if (i >= CONFIG_EEPROM_SIZE){ + SKETCH_DEBUG_PRINTLN("Looks like there is a configuration issue (too long)"); **element = '\0'; + } } diff --git a/WifiControlSensor/WifiControlSensor.ino b/WifiControlSensor/WifiControlSensor.ino index 7616309..24a3fcd 100644 --- a/WifiControlSensor/WifiControlSensor.ino +++ b/WifiControlSensor/WifiControlSensor.ino @@ -45,12 +45,12 @@ #include "MQTT.h" #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" +#include "EEPROM.h" extern "C" { #include } -char eeprom[CONFIG_EEPROM_SIZE]; #define BOOTMODE_SETUP 0 #define BOOTMODE_NORMAL 1 @@ -75,17 +75,6 @@ void WebHandleOTA(); void WebHandleNotFound(); void WebSetupServer(int bootmode); -/* EEPROM decl */ -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); - void WifiSetup(int bootmode, char *confSsid, char *confPassword, char *confHost, int ip_config, uint32_t ip, uint32_t gw, uint32_t mask, uint32_t dns, uint32_t dns2) { IPAddress myIP; diff --git a/WifiControlSensor/config_device.h b/WifiControlSensor/config_device.h index 51ec201..d26800f 100644 --- a/WifiControlSensor/config_device.h +++ b/WifiControlSensor/config_device.h @@ -42,4 +42,5 @@ // EEPROM SIZE +// Max is 4096, but this amount will be allocated in RAM for reading its content //#CONFIG_EEPROM_SIZE 256