Fix for disconnects on ESP8266 with static JSON buffer

This commit is contained in:
Blaž Kristan 2021-12-10 17:30:57 +01:00
parent 5dbc45ecb9
commit fed16fd14e
2 changed files with 7 additions and 1 deletions

View File

@ -301,6 +301,12 @@
#define JSON_BUFFER_SIZE 20480 #define JSON_BUFFER_SIZE 20480
#endif #endif
#ifdef WLED_USE_DYNAMIC_JSON
#define MIN_HEAP_SIZE JSON_BUFFER_SIZE+512
#else
#define MIN_HEAP_SIZE 4096
#endif
// Maximum size of node map (list of other WLED instances) // Maximum size of node map (list of other WLED instances)
#ifdef ESP8266 #ifdef ESP8266
#define WLED_MAX_NODES 24 #define WLED_MAX_NODES 24

View File

@ -688,7 +688,7 @@ void WLED::handleConnection()
// reconnect WiFi to clear stale allocations if heap gets too low // reconnect WiFi to clear stale allocations if heap gets too low
if (now - heapTime > 5000) { if (now - heapTime > 5000) {
uint32_t heap = ESP.getFreeHeap(); uint32_t heap = ESP.getFreeHeap();
if (heap < JSON_BUFFER_SIZE+512 && lastHeap < JSON_BUFFER_SIZE+512) { if (heap < MIN_HEAP_SIZE && lastHeap < MIN_HEAP_SIZE) {
DEBUG_PRINT(F("Heap too low! ")); DEBUG_PRINT(F("Heap too low! "));
DEBUG_PRINTLN(heap); DEBUG_PRINTLN(heap);
forceReconnect = true; forceReconnect = true;