From 568431ada4c18ae24c71be5f15563bf4ea67269d Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 25 Apr 2025 12:16:33 +0200 Subject: [PATCH] use messagetime in WebLogService::show() --- interface/package.json | 2 +- interface/yarn.lock | 10 +++++----- src/web/WebLogService.cpp | 22 ++++++---------------- src/web/WebLogService.h | 3 +-- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/interface/package.json b/interface/package.json index 9093c257a..99f61b992 100644 --- a/interface/package.json +++ b/interface/package.json @@ -47,7 +47,7 @@ "@preact/compat": "^18.3.1", "@preact/preset-vite": "^2.10.1", "@trivago/prettier-plugin-sort-imports": "^5.2.2", - "@types/node": "^22.15.1", + "@types/node": "^22.15.2", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.2", "concurrently": "^9.1.2", diff --git a/interface/yarn.lock b/interface/yarn.lock index 76f062897..fed63ccfb 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -1408,12 +1408,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.15.1": - version: 22.15.1 - resolution: "@types/node@npm:22.15.1" +"@types/node@npm:^22.15.2": + version: 22.15.2 + resolution: "@types/node@npm:22.15.2" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/80bd7fff7d6f4058875feb2c980fa066266b02ffde51e794cf4b7bea5f1316c08baa135fa7cbffa677efb999b0945b2697b318e84af4563c1ab8d3392a17bf9a + checksum: 10c0/39da31d5fc63b14fabd217bb8a921c4a7fc3d99f233440209f9fc2d5d736e8773f7efc65223e2fd0e8db8390b0baab9c0cd2e951c2ece8b237f07313ab3cf295 languageName: node linkType: hard @@ -1603,7 +1603,7 @@ __metadata: "@preact/preset-vite": "npm:^2.10.1" "@table-library/react-table-library": "npm:4.1.15" "@trivago/prettier-plugin-sort-imports": "npm:^5.2.2" - "@types/node": "npm:^22.15.1" + "@types/node": "npm:^22.15.2" "@types/react": "npm:^19.1.2" "@types/react-dom": "npm:^19.1.2" alova: "npm:3.2.10" diff --git a/src/web/WebLogService.cpp b/src/web/WebLogService.cpp index 6e46e5eaf..7921812b1 100644 --- a/src/web/WebLogService.cpp +++ b/src/web/WebLogService.cpp @@ -124,18 +124,6 @@ void WebLogService::operator<<(std::shared_ptr message) { } log_messages_.emplace_back(++log_message_id_, std::move(message)); - - EMSESP::esp32React.getNTPSettingsService()->read([&](NTPSettings & settings) { - if (!settings.enabled || (time(nullptr) < 1500000000L)) { - time_offset_ = 0; - } else { - uint32_t offset = time(nullptr) - uuid::get_uptime_sec(); - // if NTP is more that 1 sec apart, correct setting - if (time_offset_ < offset - 1 || time_offset_ > offset + 1) { - time_offset_ = offset; - } - } - }); } // dumps out the contents of log buffer to shell console @@ -151,7 +139,8 @@ void WebLogService::show(Shell & shell) { for (const auto & message : log_messages_) { log_message_id_tail_ = message.id_; - shell.print(uuid::log::format_timestamp_ms(message.content_->uptime_ms, 3)); + char time_string[26]; + shell.print(messagetime(time_string, message.content_->uptime_ms, sizeof(time_string))); shell.printf(" %c %lu: [%s] ", uuid::log::format_level_char(message.content_->level), message.id_, message.content_->name); if ((message.content_->level == uuid::log::Level::ERR) || (message.content_->level == uuid::log::Level::WARNING)) { @@ -204,12 +193,13 @@ void WebLogService::loop() { // convert time to real offset char * WebLogService::messagetime(char * out, const uint64_t t, const size_t bufsize) { - if (!time_offset_) { + time_t offset = time(nullptr) - uuid::get_uptime_sec(); + if (offset < 1500000000L) { strlcpy(out, uuid::log::format_timestamp_ms(t, 3).c_str(), bufsize); } else { - time_t t1 = time_offset_ + t / 1000ULL; + time_t t1 = offset + (time_t)(t / 1000); char timestr[bufsize]; - strftime(timestr, bufsize, "%F %T", localtime(&t1)); + strftime(timestr, bufsize, "%FT%T", localtime(&t1)); snprintf(out, bufsize, "%s.%03d", timestr, (uint16_t)(t % 1000)); } return out; diff --git a/src/web/WebLogService.h b/src/web/WebLogService.h index 55886c324..bac1d9173 100644 --- a/src/web/WebLogService.h +++ b/src/web/WebLogService.h @@ -70,8 +70,7 @@ class WebLogService : public uuid::log::Handler { unsigned long log_message_id_ = 0; // The next identifier to use for queued log messages unsigned long log_message_id_tail_ = 0; // last event shown on the screen after fetch std::deque log_messages_; // Queued log messages, in the order they were received - time_t time_offset_ = 0; - bool compact_ = true; + bool compact_ = true; }; } // namespace emsesp