c16f7693fd
Make ESP8266 use LittleFS instead of deprecated SPIFFS Make framework use the correct filesystem automatically and handle the call the FS.begin() Change default MQTT keepalive to 60 seconds Fix lodash security issue
46 lines
1.8 KiB
C++
46 lines
1.8 KiB
C++
#include <SystemStatus.h>
|
|
|
|
SystemStatus::SystemStatus(AsyncWebServer* server, SecurityManager* securityManager) {
|
|
server->on(SYSTEM_STATUS_SERVICE_PATH,
|
|
HTTP_GET,
|
|
securityManager->wrapRequest(std::bind(&SystemStatus::systemStatus, this, std::placeholders::_1),
|
|
AuthenticationPredicates::IS_AUTHENTICATED));
|
|
}
|
|
|
|
void SystemStatus::systemStatus(AsyncWebServerRequest* request) {
|
|
AsyncJsonResponse* response = new AsyncJsonResponse(false, MAX_ESP_STATUS_SIZE);
|
|
JsonObject root = response->getRoot();
|
|
#ifdef ESP32
|
|
root["esp_platform"] = "esp32";
|
|
root["max_alloc_heap"] = ESP.getMaxAllocHeap();
|
|
root["psram_size"] = ESP.getPsramSize();
|
|
root["free_psram"] = ESP.getFreePsram();
|
|
#elif defined(ESP8266)
|
|
root["esp_platform"] = "esp8266";
|
|
root["max_alloc_heap"] = ESP.getMaxFreeBlockSize();
|
|
root["heap_fragmentation"] = ESP.getHeapFragmentation();
|
|
#endif
|
|
root["cpu_freq_mhz"] = ESP.getCpuFreqMHz();
|
|
root["free_heap"] = ESP.getFreeHeap();
|
|
root["sketch_size"] = ESP.getSketchSize();
|
|
root["free_sketch_space"] = ESP.getFreeSketchSpace();
|
|
root["sdk_version"] = ESP.getSdkVersion();
|
|
root["flash_chip_size"] = ESP.getFlashChipSize();
|
|
root["flash_chip_speed"] = ESP.getFlashChipSpeed();
|
|
|
|
// TODO - Ideally this class will take an *FS and extract the file system information from there.
|
|
// ESP8266 and ESP32 do not have feature parity in FS.h which currently makes that difficult.
|
|
#ifdef ESP32
|
|
root["fs_total"] = ESPFS.totalBytes();
|
|
root["fs_used"] = ESPFS.usedBytes();
|
|
#elif defined(ESP8266)
|
|
FSInfo fs_info;
|
|
ESPFS.info(fs_info);
|
|
root["fs_total"] = fs_info.totalBytes;
|
|
root["fs_used"] = fs_info.usedBytes;
|
|
#endif
|
|
|
|
response->setLength();
|
|
request->send(response);
|
|
}
|