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