limit WebUI log to 25 if no psram

This commit is contained in:
proddy
2024-09-08 20:05:24 +02:00
parent 48fa6f149b
commit 30fb4fbad7
2 changed files with 13 additions and 3 deletions

View File

@@ -75,12 +75,15 @@ size_t WebLogService::maximum_log_messages() const {
void WebLogService::maximum_log_messages(size_t count) { void WebLogService::maximum_log_messages(size_t count) {
maximum_log_messages_ = std::max((size_t)1, count); maximum_log_messages_ = std::max((size_t)1, count);
if (limit_log_messages_ > maximum_log_messages_) { if (limit_log_messages_ > maximum_log_messages_) {
limit_log_messages_ = maximum_log_messages_; limit_log_messages_ = maximum_log_messages_;
} }
while (log_messages_.size() > maximum_log_messages_) { while (log_messages_.size() > maximum_log_messages_) {
log_messages_.pop_front(); log_messages_.pop_front();
} }
EMSESP::webSettingsService.update([&](WebSettings & settings) { EMSESP::webSettingsService.update([&](WebSettings & settings) {
settings.weblog_buffer = count; settings.weblog_buffer = count;
return StateUpdateResult::CHANGED; return StateUpdateResult::CHANGED;
@@ -200,7 +203,7 @@ void WebLogService::fetchLog(AsyncWebServerRequest * request) {
request->send(200); request->send(200);
} }
// sets the values like level after a POST // sets the values after a POST
void WebLogService::getSetValues(AsyncWebServerRequest * request, JsonVariant json) { void WebLogService::getSetValues(AsyncWebServerRequest * request, JsonVariant json) {
if ((request->method() == HTTP_GET) || (!json.is<JsonObject>())) { if ((request->method() == HTTP_GET) || (!json.is<JsonObject>())) {
// GET - return the values // GET - return the values
@@ -209,12 +212,13 @@ void WebLogService::getSetValues(AsyncWebServerRequest * request, JsonVariant js
root["level"] = log_level(); root["level"] = log_level();
root["max_messages"] = maximum_log_messages(); root["max_messages"] = maximum_log_messages();
root["compact"] = compact(); root["compact"] = compact();
root["psram"] = (EMSESP::system_.PSram() > 0);
response->setLength(); response->setLength();
request->send(response); request->send(response);
return; return;
} }
// POST - write the settings
auto && body = json.as<JsonObject>(); auto && body = json.as<JsonObject>();
uuid::log::Level level = body["level"]; uuid::log::Level level = body["level"];

View File

@@ -361,9 +361,15 @@ StateUpdateResult WebSettings::update(JsonObject root, WebSettings & settings) {
EMSESP::system_.bool_dashboard(settings.bool_dashboard); EMSESP::system_.bool_dashboard(settings.bool_dashboard);
settings.weblog_level = root["weblog_level"] | EMSESP_DEFAULT_WEBLOG_LEVEL; settings.weblog_level = root["weblog_level"] | EMSESP_DEFAULT_WEBLOG_LEVEL;
settings.weblog_buffer = root["weblog_buffer"] | EMSESP_DEFAULT_WEBLOG_BUFFER;
settings.weblog_compact = root["weblog_compact"] | EMSESP_DEFAULT_WEBLOG_COMPACT; settings.weblog_compact = root["weblog_compact"] | EMSESP_DEFAULT_WEBLOG_COMPACT;
// if no psram limit weblog buffer to 25 messages
if (EMSESP::system_.PSram() > 0) {
settings.weblog_buffer = root["weblog_buffer"] | EMSESP_DEFAULT_WEBLOG_BUFFER;
} else {
settings.weblog_buffer = root["weblog_buffer"] | 25;
}
// save the settings // save the settings
if (get_flags() == WebSettings::ChangeFlags::RESTART) { if (get_flags() == WebSettings::ChangeFlags::RESTART) {
return StateUpdateResult::CHANGED_RESTART; // tell WebUI that a restart is needed return StateUpdateResult::CHANGED_RESTART; // tell WebUI that a restart is needed