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