Browse Source

Moved ftpSrv to heap (forgot global object)

master
Torsten Stauder 5 years ago
parent
commit
6e82ef70d4
  1. 3
      src/logmessages.h
  2. 5
      src/logmessages_EN.h
  3. 25
      src/main.cpp

3
src/logmessages.h

@ -166,3 +166,6 @@ static const char backupRecoveryWebsite[] PROGMEM = "<p>Das Backup-File wird ein
static const char restartWebsite[] PROGMEM = "<p>Der Tonuino wird neu gestartet...<br />Zur letzten Seite <a href=\"javascript:history.back()\">zur&uuml;ckkehren</a>.</p>";
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";

5
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 = "<p>Backup-file is being applied...<br />Back to <a href=\"javascript:history.back()\">last page</a>.</p>";
static const char restartWebsite[] PROGMEM = "<p>Tonuino is being restarted...<br />Back to <a href=\"javascript:history.back()\">last page</a>.</p>";
static const char mqttMsgReceived[] PROGMEM = "MQTT-message received";
static const char trackPausedAtPos[] PROGMEM = "Track paused at position";
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";

25
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
}
}

Loading…
Cancel
Save