add a possibility to flush the serial TX buffer on the console.

This commit is contained in:
Thomas Göttgens 2023-01-04 10:37:27 +01:00
parent 4f26a2a74a
commit d077be1496
2 changed files with 6 additions and 2 deletions

View File

@ -20,9 +20,7 @@ void consolePrintf(const char *format, ...)
va_start(arg, format); va_start(arg, format);
console->vprintf(format, arg); console->vprintf(format, arg);
va_end(arg); va_end(arg);
#ifdef ARCH_ESP32
console->flush(); console->flush();
#endif
} }
SerialConsole::SerialConsole() : StreamAPI(&Port), RedirectablePrint(&Port), concurrency::OSThread("SerialConsole") SerialConsole::SerialConsole() : StreamAPI(&Port), RedirectablePrint(&Port), concurrency::OSThread("SerialConsole")
@ -51,6 +49,10 @@ int32_t SerialConsole::runOnce()
return runOncePart(); return runOncePart();
} }
void SerialConsole::flush() {
Port.flush();
}
// For the serial port we can't really detect if any client is on the other side, so instead just look for recent messages // For the serial port we can't really detect if any client is on the other side, so instead just look for recent messages
bool SerialConsole::checkIsConnected() bool SerialConsole::checkIsConnected()
{ {

View File

@ -26,6 +26,8 @@ class SerialConsole : public StreamAPI, public RedirectablePrint, private concur
virtual int32_t runOnce() override; virtual int32_t runOnce() override;
void flush();
protected: protected:
/// Check the current underlying physical link to see if the client is currently connected /// Check the current underlying physical link to see if the client is currently connected