diff --git a/src/src/DataStructs/LogBuffer.cpp b/src/src/DataStructs/LogBuffer.cpp index 065db1c90..f3b3e3f06 100644 --- a/src/src/DataStructs/LogBuffer.cpp +++ b/src/src/DataStructs/LogBuffer.cpp @@ -34,7 +34,7 @@ bool LogBuffer::getNext(LogDestination logDestination, uint32_t& timestamp, Stri return false; } -uint32_t LogBuffer::getNrMessages(LogDestination logDestination) const +uint32_t LogBuffer::getNrMessages(LogDestination logDestination) { uint32_t res{}; @@ -47,6 +47,10 @@ uint32_t LogBuffer::getNrMessages(LogDestination logDestination) const ++res; } } + + if (!res) { + lastReadTimeStamp[logDestination] = millis(); // Reset if we aren't going to fetch a next message + } return res; } diff --git a/src/src/DataStructs/LogBuffer.h b/src/src/DataStructs/LogBuffer.h index 8df20ab07..4eeb76779 100644 --- a/src/src/DataStructs/LogBuffer.h +++ b/src/src/DataStructs/LogBuffer.h @@ -53,7 +53,7 @@ struct LogBuffer { uint8_t & loglevel); // Return the number of messages left for given log destination. - uint32_t getNrMessages(LogDestination logDestination) const; + uint32_t getNrMessages(LogDestination logDestination); bool logActiveRead(LogDestination logDestination); diff --git a/src/src/ESPEasyCore/ESPEasy_Console_Port.cpp b/src/src/ESPEasyCore/ESPEasy_Console_Port.cpp index e8d6e077f..502f8793d 100644 --- a/src/src/ESPEasyCore/ESPEasy_Console_Port.cpp +++ b/src/src/ESPEasyCore/ESPEasy_Console_Port.cpp @@ -220,9 +220,9 @@ ESPEasySerialPort EspEasy_Console_Port::getPortType() const bool EspEasy_Console_Port::process_serialWriteBuffer() { - if (_serialWriteBuffer.getNrMessages() == 0) { return false; } - - if (_serial == nullptr) { return false; } + if ((_serial == nullptr) || (_serialWriteBuffer.getNrMessages() == 0)) { + return false; + } #ifdef ESP32 if (!xPortCanYield()) { return false; } diff --git a/src/src/Helpers/Log_Helper.cpp b/src/src/Helpers/Log_Helper.cpp index 2254f6e48..bd6a8615f 100644 --- a/src/src/Helpers/Log_Helper.cpp +++ b/src/src/Helpers/Log_Helper.cpp @@ -60,7 +60,7 @@ bool LogHelper::getNext(LogDestination logDestination, uint32_t& timestamp, Stri return _logBuffer.getNext(logDestination, timestamp, message, loglevel); } -uint32_t LogHelper::getNrMessages(LogDestination logDestination) const +uint32_t LogHelper::getNrMessages(LogDestination logDestination) { return _logBuffer.getNrMessages(logDestination); } diff --git a/src/src/Helpers/Log_Helper.h b/src/src/Helpers/Log_Helper.h index b0ea29fc4..1de25d19a 100644 --- a/src/src/Helpers/Log_Helper.h +++ b/src/src/Helpers/Log_Helper.h @@ -19,7 +19,7 @@ public: String & message, uint8_t & loglevel); - uint32_t getNrMessages(LogDestination logDestination) const; + uint32_t getNrMessages(LogDestination logDestination); void loop(bool serialOnly);