From 1b0752f2bf174244e28b3805491eed6243cf8dae Mon Sep 17 00:00:00 2001 From: John-Michael Baier Date: Sun, 1 Nov 2020 13:18:52 +0100 Subject: [PATCH] flush raw log after maximum allowed master length --- src/ebusd/mainloop.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ebusd/mainloop.cpp b/src/ebusd/mainloop.cpp index 581894fc..c862fb9b 100644 --- a/src/ebusd/mainloop.cpp +++ b/src/ebusd/mainloop.cpp @@ -472,7 +472,10 @@ void MainLoop::notifyDeviceData(symbol_t symbol, bool received) { m_logRawBuffer << setw(2) << setfill('0') << hex << static_cast(symbol); m_logRawLastSymbol = symbol; } - if (symbol == SYN && m_logRawBuffer.tellp() > 0) { // flush + if (m_logRawBuffer.tellp() > (symbol == SYN ? 0 : 61)) { // flush: (direction+5 hdr+24 max data+crc)*2 + if (symbol != SYN) { + m_logRawBuffer << "..."; + } const string bufStr = m_logRawBuffer.str(); const char* str = bufStr.c_str(); if (m_logRawFile) { @@ -481,6 +484,9 @@ void MainLoop::notifyDeviceData(symbol_t symbol, bool received) { logNotice(lf_bus, str); } m_logRawBuffer.str(""); + if (symbol != SYN) { + m_logRawBuffer << "..."; + } } }