diff --git a/ampel-firmware/util.cpp b/ampel-firmware/util.cpp index b1aeb86a4a828669a403537a4bc638b660db639c..e3b2d6e8913172cce6e4dd868aace8c03e8be02f 100644 --- a/ampel-firmware/util.cpp +++ b/ampel-firmware/util.cpp @@ -52,8 +52,14 @@ namespace ntp { void Ampel::showFreeSpace() { Serial.print(F("Free heap space : ")); - Serial.print(get_free_heap_size()); + Serial.print(ESP.getFreeHeap()); Serial.println(F(" bytes.")); + Serial.print(F("Max free block size : ")); + Serial.print(esp_get_max_free_block_size()); + Serial.println(F(" bytes.")); + Serial.print(F("Heap fragmentation : ")); + Serial.print(esp_get_heap_fragmentation()); + Serial.println(F(" %")); } char sensorId[10]; // e.g "ESPxxxxxx\0" diff --git a/ampel-firmware/util.h b/ampel-firmware/util.h index 093cf28ab8034ca8fe33bc3c7038f611bccd7726..db424db6892d1beea14f3e4151c91356af464e4e 100644 --- a/ampel-firmware/util.h +++ b/ampel-firmware/util.h @@ -9,10 +9,12 @@ #if defined(ESP8266) # include <ESP8266WiFi.h> // required to get MAC address -# define get_free_heap_size() system_get_free_heap_size() +# define esp_get_max_free_block_size() ESP.getMaxFreeBlockSize() +# define esp_get_heap_fragmentation() ESP.getHeapFragmentation() #elif defined(ESP32) # include <WiFi.h> // required to get MAC address -# define get_free_heap_size() esp_get_free_heap_size() +# define esp_get_max_free_block_size() ESP.getMaxAllocHeap() //largest block of heap that can be allocated. +# define esp_get_heap_fragmentation() "?" // apparently not available for ESP32 #endif namespace ntp { diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp index 531ca19cf7a3dd6534ccb93d553a7dd9561afc08..40cd15b3e7e5a1dae0777a36dfe85138f58bb7a5 100644 --- a/ampel-firmware/web_server.cpp +++ b/ampel-firmware/web_server.cpp @@ -112,6 +112,7 @@ namespace web_server { "<tr><td>Local address</td><td><a href='http://%s.local/'>%s.local</a></td></tr>\n" "<tr><td>Local IP</td><td><a href='http://%s'>%s</a></td></tr>\n" "<tr><td>Free heap space</td><td>%6d bytes</td></tr>\n" + "<tr><td>Largest heap block</td><td>%6d bytes</td></tr>\n" "<tr><td>Max loop duration</td><td>%5d ms</td></tr>\n" "<tr><td>Board</td><td>%s</td></tr>\n" "<tr><td>Uptime</td><td>%2d d %4d h %02d min %02d s</td></tr>\n" @@ -237,7 +238,8 @@ namespace web_server { config::lorawan_sending_interval, #endif config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", ampel.sensorId, ampel.sensorId, - wifi::local_ip, wifi::local_ip, get_free_heap_size(), ampel.max_loop_duration, ampel.board, dd, hh, mm, ss); + wifi::local_ip, wifi::local_ip, ESP.getFreeHeap(), esp_get_max_free_block_size(), ampel.max_loop_duration, + ampel.board, dd, hh, mm, ss); Serial.print(F(" - Body size : ")); http.sendContent(content);