From 370c6cd9fc3bdc8c080b2b42e125dc723b592482 Mon Sep 17 00:00:00 2001 From: arovak Date: Fri, 29 May 2020 19:23:33 +0200 Subject: [PATCH 1/5] add configclear function --- src/hasp_config.cpp | 19 +++++++++++++++++++ src/hasp_config.h | 1 + src/hasp_dispatch.cpp | 3 +++ 3 files changed, 23 insertions(+) diff --git a/src/hasp_config.cpp b/src/hasp_config.cpp index 2def1d73..5b601b34 100644 --- a/src/hasp_config.cpp +++ b/src/hasp_config.cpp @@ -374,6 +374,25 @@ void configSetup() //#endif } +void configClear() +{ + #if defined(STM32F4xx) + // Method 2 + Log.verbose(F("CONF: Clearing EEPROM")); + char buffer[1024 + 128]; + memset(buffer, 1 ,sizeof(buffer)); + if(sizeof(buffer) > 0) { + uint16_t i; + for(i = 0; i < sizeof(buffer); i++) eeprom_buffered_write_byte(i, buffer[i]); + eeprom_buffered_write_byte(i, 0); + eeprom_buffer_flush(); + Log.verbose(F("CONF: [SUCCESS] Cleared EEPROM")); + } else { + Log.error(F("CONF: Failed to clear to EEPROM")); + } +#endif +} + void configOutput(const JsonObject & settings) { String output((char *)0); diff --git a/src/hasp_config.h b/src/hasp_config.h index ee425190..9ccb9b09 100644 --- a/src/hasp_config.h +++ b/src/hasp_config.h @@ -38,6 +38,7 @@ void configStop(void); void configSetConfig(JsonObject & settings); void configGetConfig(JsonDocument & settings); void configWriteConfig(); +void configClear(void); void configOutput(const JsonObject & settings); bool configSet(int8_t & value, const JsonVariant & setting, const char * name); diff --git a/src/hasp_dispatch.cpp b/src/hasp_dispatch.cpp index cec24e28..94e5ae53 100644 --- a/src/hasp_dispatch.cpp +++ b/src/hasp_dispatch.cpp @@ -119,6 +119,9 @@ void dispatchAttribute(String strTopic, const char * payload) } else if(strTopic == F("update")) { dispatchWebUpdate(payload); + } else if(strTopic == F("clearconfig")) { + configClear(); + } else if(strTopic == F("setupap")) { // haspDisplayAP(String(F("HASP-ABC123")).c_str(), String(F("haspadmin")).c_str()); From f61f9330f524406af468549d8cc707bae9e6c454 Mon Sep 17 00:00:00 2001 From: arovak Date: Fri, 29 May 2020 19:24:11 +0200 Subject: [PATCH 2/5] change spi2 to generic espSPI --- src/hasp_wifi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hasp_wifi.cpp b/src/hasp_wifi.cpp index 00df9802..55de1312 100644 --- a/src/hasp_wifi.cpp +++ b/src/hasp_wifi.cpp @@ -23,7 +23,7 @@ static WiFiEventHandler gotIpEventHandler, disconnectedEventHandler; // #include // #include "WiFiSpi.h" // extern WiFiSpiClass WiFi; -SPIClass spi2(ESPSPI_MOSI, ESPSPI_MISO, ESPSPI_SCLK); // SPI port where esp is connected +SPIClass espSPI(ESPSPI_MOSI, ESPSPI_MISO, ESPSPI_SCLK); // SPI port where esp is connected #endif //#include "DNSserver.h" @@ -165,7 +165,7 @@ void wifiSetup() // // Initialize the WifiSpi library - WiFiSpi.init(ESPSPI_CS, 8000000, &spi2); + WiFiSpi.init(ESPSPI_CS, 8000000, &espSPI); // check for the presence of the shield: if (WiFiSpi.status() == WL_NO_SHIELD) { From 2f4a67c6ae01992fe2db542d2ae5eb0b9ca934a5 Mon Sep 17 00:00:00 2001 From: arovak Date: Fri, 29 May 2020 20:47:03 +0200 Subject: [PATCH 3/5] resetConfig function --- src/hasp_config.cpp | 43 ++++++++++++++++++++++++------------------- src/hasp_config.h | 2 +- src/hasp_http.cpp | 4 +--- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/hasp_config.cpp b/src/hasp_config.cpp index 5b601b34..cf07995e 100644 --- a/src/hasp_config.cpp +++ b/src/hasp_config.cpp @@ -374,25 +374,6 @@ void configSetup() //#endif } -void configClear() -{ - #if defined(STM32F4xx) - // Method 2 - Log.verbose(F("CONF: Clearing EEPROM")); - char buffer[1024 + 128]; - memset(buffer, 1 ,sizeof(buffer)); - if(sizeof(buffer) > 0) { - uint16_t i; - for(i = 0; i < sizeof(buffer); i++) eeprom_buffered_write_byte(i, buffer[i]); - eeprom_buffered_write_byte(i, 0); - eeprom_buffer_flush(); - Log.verbose(F("CONF: [SUCCESS] Cleared EEPROM")); - } else { - Log.error(F("CONF: Failed to clear to EEPROM")); - } -#endif -} - void configOutput(const JsonObject & settings) { String output((char *)0); @@ -411,4 +392,28 @@ void configOutput(const JsonObject & settings) if(password.length() > 2) output.replace(password, passmask); Log.trace(F("CONF: %s"), output.c_str()); +} + +bool configClear() +{ +#if defined(STM32F4xx) + Log.verbose(F("CONF: Clearing EEPROM")); + char buffer[1024 + 128]; + memset(buffer, 1 ,sizeof(buffer)); + if(sizeof(buffer) > 0) { + uint16_t i; + for(i = 0; i < sizeof(buffer); i++) eeprom_buffered_write_byte(i, buffer[i]); + eeprom_buffered_write_byte(i, 0); + eeprom_buffer_flush(); + Log.verbose(F("CONF: [SUCCESS] Cleared EEPROM")); + return true; + } else { + Log.error(F("CONF: Failed to clear to EEPROM")); + return false; + } +#elif HASP_USE_SPIFFS > 0 + return SPIFFS.format(); +#else + return false; +#endif } \ No newline at end of file diff --git a/src/hasp_config.h b/src/hasp_config.h index 9ccb9b09..cb447c23 100644 --- a/src/hasp_config.h +++ b/src/hasp_config.h @@ -38,11 +38,11 @@ void configStop(void); void configSetConfig(JsonObject & settings); void configGetConfig(JsonDocument & settings); void configWriteConfig(); -void configClear(void); void configOutput(const JsonObject & settings); bool configSet(int8_t & value, const JsonVariant & setting, const char * name); bool configSet(uint8_t & value, const JsonVariant & setting, const char * name); bool configSet(uint16_t & value, const JsonVariant & setting, const char * name); +bool configClear(); #endif \ No newline at end of file diff --git a/src/hasp_http.cpp b/src/hasp_http.cpp index 13528a79..b83e05ff 100644 --- a/src/hasp_http.cpp +++ b/src/hasp_http.cpp @@ -1547,15 +1547,13 @@ void httpHandleResetConfig() httpMessage += F("
"); if(resetConfirmed) { // User has confirmed, so reset everything -#if HASP_USE_SPIFFS > 0 - bool formatted = SPIFFS.format(); + bool formatted = configClear(); if(formatted) { httpMessage += F("Resetting all saved settings and restarting device into WiFi AP mode"); } else { httpMessage += F("Failed to format the internal flash partition"); resetConfirmed = false; } -#endif } else { httpMessage += F("

Warning

This process will reset all settings to the default values. The internal flash " From 08d793c848bd22275169c79c80679779bcb0bfb9 Mon Sep 17 00:00:00 2001 From: arovak Date: Fri, 29 May 2020 23:10:27 +0200 Subject: [PATCH 4/5] reset lolin24 rotation --- lcd_config.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lcd_config.ini b/lcd_config.ini index dcbd3ebb..0e421971 100644 --- a/lcd_config.ini +++ b/lcd_config.ini @@ -8,7 +8,7 @@ lolin24 = -D ILI9341_DRIVER=1 -D TFT_WIDTH=240 -D TFT_HEIGHT=320 - -D TFT_ROTATION=2 ; 0=0, 1=90, 2=180 or 3=270 degree + -D TFT_ROTATION=0 ; 0=0, 1=90, 2=180 or 3=270 degree -D SPI_FREQUENCY=40000000 -D SPI_TOUCH_FREQUENCY=2500000 -D SPI_READ_FREQUENCY=20000000 From 8d32de4cc65bea3eddebde3a3358d82facfba4c0 Mon Sep 17 00:00:00 2001 From: arovak Date: Fri, 29 May 2020 23:11:31 +0200 Subject: [PATCH 5/5] fix WiFiSpi on empty config --- src/hasp_wifi.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/hasp_wifi.cpp b/src/hasp_wifi.cpp index 55de1312..b173f8ba 100644 --- a/src/hasp_wifi.cpp +++ b/src/hasp_wifi.cpp @@ -181,12 +181,14 @@ void wifiSetup() } // attempt to connect to Wifi network - int status = WL_IDLE_STATUS; // the Wifi radio's status - + // int status = WL_IDLE_STATUS; // the Wifi radio's status + if(!wifiShowAP()) { // while (status != WL_CONNECTED) { Log.notice(F("WIFI: Connecting to : %s"), wifiSsid); // Connect to WPA/WPA2 network - status = WiFi.begin(wifiSsid, wifiPassword); + // status = WiFi.begin(wifiSsid, wifiPassword); + WiFi.begin(wifiSsid, wifiPassword); + } // } #else @@ -214,7 +216,9 @@ void wifiSetup() bool wifiEvery5Seconds() { #if defined(STM32F4xx) - if(WiFi.status() == WL_CONNECTED) { + if(wifiShowAP()) { // no ssid is set yet wait for user on-screen input + return false; + } else if(WiFi.status() == WL_CONNECTED) { #else if(WiFi.getMode() != WIFI_STA) { return false;