mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-06-15 12:26:33 +03:00
use PSRAM
This commit is contained in:
@@ -168,25 +168,27 @@ char * WebLogService::messagetime(char * out, const uint64_t t, const size_t buf
|
|||||||
|
|
||||||
// send to web eventsource
|
// send to web eventsource
|
||||||
void WebLogService::transmit(const QueuedLogMessage & message) {
|
void WebLogService::transmit(const QueuedLogMessage & message) {
|
||||||
JsonDocument jsonDocument;
|
// JsonDocument is PSRAM-backed so its internal node/string pool is on PSRAM
|
||||||
|
JsonDocument jsonDocument(PSRAM_DOC);
|
||||||
|
|
||||||
JsonObject logEvent = jsonDocument.to<JsonObject>();
|
JsonObject logEvent = jsonDocument.to<JsonObject>();
|
||||||
char time_string[25];
|
char time_string[25];
|
||||||
|
|
||||||
logEvent["t"] = messagetime(time_string, message.uptime_, sizeof(time_string));
|
logEvent["t"] = messagetime(time_string, message.uptime_, sizeof(time_string));
|
||||||
logEvent["l"] = message.level_; // .content_->level;
|
logEvent["l"] = message.level_;
|
||||||
logEvent["i"] = message.id_;
|
logEvent["i"] = message.id_;
|
||||||
logEvent["n"] = message.name_; // content_->name;
|
logEvent["n"] = message.name_;
|
||||||
logEvent["m"] = message.text_; // content_->text;
|
logEvent["m"] = message.text_;
|
||||||
|
|
||||||
size_t len = measureJson(jsonDocument) + 1;
|
// Reuse a PSRAM-backed scratch buffer
|
||||||
char * buffer = new char[len];
|
const size_t len = measureJson(jsonDocument);
|
||||||
if (buffer) {
|
if (scratch_buf_.capacity() < len + 1) {
|
||||||
serializeJson(jsonDocument, buffer, len);
|
scratch_buf_.reserve(len + 1);
|
||||||
events_.send(buffer, "message", message.id_);
|
|
||||||
log_message_id_tail_ = message.id_;
|
|
||||||
}
|
}
|
||||||
delete[] buffer;
|
scratch_buf_.resize(len);
|
||||||
|
serializeJson(jsonDocument, scratch_buf_.data(), len + 1);
|
||||||
|
events_.send(scratch_buf_.c_str(), "message", message.id_);
|
||||||
|
log_message_id_tail_ = message.id_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sets the values after a POST
|
// sets the values after a POST
|
||||||
|
|||||||
@@ -71,6 +71,9 @@ class WebLogService : public uuid::log::Handler {
|
|||||||
unsigned long log_message_id_tail_ = 0; // last event shown on the screen after fetch
|
unsigned long log_message_id_tail_ = 0; // last event shown on the screen after fetch
|
||||||
bool compact_ = true;
|
bool compact_ = true;
|
||||||
uuid::log::Level level_ = uuid::log::Level::INFO;
|
uuid::log::Level level_ = uuid::log::Level::INFO;
|
||||||
|
|
||||||
|
// PSRAM-backed scratch buffer reused across every SSE log event
|
||||||
|
stringPSRAM scratch_buf_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace emsesp
|
} // namespace emsesp
|
||||||
|
|||||||
Reference in New Issue
Block a user