diff --git a/src/logmessages.h b/src/logmessages.h index 5962993..7728bf6 100644 --- a/src/logmessages.h +++ b/src/logmessages.h @@ -166,3 +166,6 @@ static const char backupRecoveryWebsite[] PROGMEM = "

Das Backup-File wird ein static const char restartWebsite[] PROGMEM = "

Der Tonuino wird neu gestartet...
Zur letzten Seite zurückkehren.

"; static const char mqttMsgReceived[] PROGMEM = "MQTT-Nachricht empfangen"; static const char trackPausedAtPos[] PROGMEM = "Titel pausiert bei Position"; +static const char freeHeapWithoutFtp[] PROGMEM = "Freier Heap-Speicher vor FTP-Instanzierung"; +static const char freeHeapWithFtp[] PROGMEM = "Freier Heap-Speicher nach FTP-Instanzierung"; +static const char freeHeapAfterSetup[] PROGMEM = "Freier Heap-Speicher nach Setup-Routine"; \ No newline at end of file diff --git a/src/logmessages_EN.h b/src/logmessages_EN.h index 86258c8..5233a90 100644 --- a/src/logmessages_EN.h +++ b/src/logmessages_EN.h @@ -165,4 +165,7 @@ static const char sdMountedSpiMode[] PROGMEM = "SD card mounted in SPI-mode conf static const char backupRecoveryWebsite[] PROGMEM = "

Backup-file is being applied...
Back to last page.

"; static const char restartWebsite[] PROGMEM = "

Tonuino is being restarted...
Back to last page.

"; static const char mqttMsgReceived[] PROGMEM = "MQTT-message received"; -static const char trackPausedAtPos[] PROGMEM = "Track paused at position"; \ No newline at end of file +static const char trackPausedAtPos[] PROGMEM = "Track paused at position"; +static const char freeHeapWithoutFtp[] PROGMEM = "Free heap before FTP-allocation"; +static const char freeHeapWithFtp[] PROGMEM = "Free heap after FTP-allocation"; +static const char freeHeapAfterSetup[] PROGMEM = "Free heap after setup"; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index e4089fa..803e366 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -268,7 +268,7 @@ TaskHandle_t rfid; // FTP #ifdef FTP_ENABLE - FtpServer ftpSrv; + FtpServer *ftpSrv; // Heap-alloction takes place later (when needed) bool ftpEnableLastStatus = false; bool ftpEnableCurrentStatus = false; #endif @@ -3076,11 +3076,17 @@ bool writeWifiStatusToNVS(bool wifiStatus) { } +// Creates FTP-instance only when requested #ifdef FTP_ENABLE void ftpManager(void) { if (ftpEnableLastStatus && !ftpEnableCurrentStatus) { + snprintf(logBuf, serialLoglength, "%s: %u", (char *) FPSTR(freeHeapWithoutFtp), ESP.getFreeHeap()); + loggerNl(logBuf, LOGLEVEL_DEBUG); ftpEnableCurrentStatus = true; - ftpSrv.begin(FSystem, ftpUser, ftpPassword); + ftpSrv = new FtpServer(); + ftpSrv->begin(FSystem, ftpUser, ftpPassword); + snprintf(logBuf, serialLoglength, "%s: %u", (char *) FPSTR(freeHeapWithFtp), ESP.getFreeHeap()); + loggerNl(logBuf, LOGLEVEL_DEBUG); #if (LANGUAGE == 1) Serial.println(F("FTP-Server gestartet")); #else @@ -3090,6 +3096,7 @@ bool writeWifiStatusToNVS(bool wifiStatus) { } #endif + // Provides management for WiFi wl_status_t wifiManager(void) { // If wifi whould not be activated, return instantly @@ -4046,17 +4053,15 @@ void setup() { lastTimeActiveTimestamp = millis(); // initial set after boot - /** - * Create empty Index json file when no file exists. - */ - if(!fileExists(FSystem,DIRECTORY_INDEX_FILE)){ + // Create empty index json-file when no file exists. + if (!fileExists(FSystem,DIRECTORY_INDEX_FILE)) { createFile(FSystem,DIRECTORY_INDEX_FILE,"[]"); ESP.restart(); } bootComplete = true; - Serial.print(F("Free heap: ")); - Serial.println(ESP.getFreeHeap()); + snprintf(logBuf, serialLoglength, "%s: %u", (char *) FPSTR(freeHeapAfterSetup), ESP.getFreeHeap()); + loggerNl(logBuf, LOGLEVEL_DEBUG); } @@ -4085,13 +4090,13 @@ void loop() { #endif #ifdef FTP_ENABLE if (ftpEnableLastStatus && ftpEnableCurrentStatus) { - ftpSrv.handleFTP(); + ftpSrv->handleFTP(); } #endif } #ifdef FTP_ENABLE if (ftpEnableLastStatus && ftpEnableCurrentStatus) { - if (ftpSrv.isConnected()) { + if (ftpSrv->isConnected()) { lastTimeActiveTimestamp = millis(); // Re-adjust timer while client is connected to avoid ESP falling asleep } }