From a57d91c63d30e36d72aceb63d3781d7f90cc7ec1 Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 1 Nov 2021 11:19:31 +0100 Subject: [PATCH] add flush for gwserial --- lib/serial/GwSerial.cpp | 9 ++++++++- lib/serial/GwSerial.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/serial/GwSerial.cpp b/lib/serial/GwSerial.cpp index d29c173..351dc9b 100644 --- a/lib/serial/GwSerial.cpp +++ b/lib/serial/GwSerial.cpp @@ -67,7 +67,7 @@ size_t GwSerial::enqueue(const uint8_t *data, size_t len) } GwBuffer::WriteStatus GwSerial::write(){ if (! isInitialized()) return GwBuffer::ERROR; - return buffer->fetchData(writer,false); + return buffer->fetchData(writer,-1,false); } void GwSerial::sendToClients(const char *buf,int sourceId){ if ( sourceId == id) return; @@ -92,4 +92,11 @@ bool GwSerial::readMessages(GwBufferWriter *writer){ if (! isInitialized()) return false; if (! allowRead) return false; return readBuffer->fetchMessage(writer,'\n',true) == GwBuffer::OK; +} + +void GwSerial::flush(){ + if (! isInitialized()) return; + while (buffer->fetchData(writer,-1,false) == GwBuffer::AGAIN){ + vTaskDelay(1); + } } \ No newline at end of file diff --git a/lib/serial/GwSerial.h b/lib/serial/GwSerial.h index 6fbab5f..730afa6 100644 --- a/lib/serial/GwSerial.h +++ b/lib/serial/GwSerial.h @@ -26,5 +26,6 @@ class GwSerial{ void sendToClients(const char *buf,int sourceId); void loop(bool handleRead=true); bool readMessages(GwBufferWriter *writer); + void flush(); }; #endif \ No newline at end of file