Implemented flush for Serial UART API

This commit is contained in:
Eric Katzfey
2024-03-07 10:27:56 -08:00
parent 65a73496e7
commit cc48676eaa
9 changed files with 58 additions and 20 deletions
+5
View File
@@ -80,6 +80,11 @@ ssize_t Serial::write(const void *buffer, size_t buffer_size)
return _impl.write(buffer, buffer_size);
}
void Serial::flush()
{
return _impl.flush();
}
uint32_t Serial::getBaudrate() const
{
return _impl.getBaudrate();
@@ -64,6 +64,8 @@ public:
ssize_t write(const void *buffer, size_t buffer_size);
void flush();
// If port is already open then the following configuration functions
// will reconfigure the port. If the port is not yet open then they will
// simply store the configuration in preparation for the port to be opened.
@@ -309,6 +309,13 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
return written;
}
void SerialImpl::flush()
{
if (_open) {
tcflush(_serial_fd, TCIOFLUSH);
}
}
const char *SerialImpl::getPort() const
{
return _port;
@@ -64,6 +64,8 @@ public:
ssize_t write(const void *buffer, size_t buffer_size);
void flush();
const char *getPort() const;
uint32_t getBaudrate() const;
+2
View File
@@ -64,6 +64,8 @@ public:
ssize_t write(const void *buffer, size_t buffer_size);
void flush();
const char *getPort() const;
uint32_t getBaudrate() const;
@@ -309,6 +309,13 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
return written;
}
void SerialImpl::flush()
{
if (_open) {
tcflush(_serial_fd, TCIOFLUSH);
}
}
const char *SerialImpl::getPort() const
{
return _port;
+2
View File
@@ -63,6 +63,8 @@ public:
ssize_t write(const void *buffer, size_t buffer_size);
void flush();
const char *getPort() const;
bool setPort(const char *port);
+9
View File
@@ -251,6 +251,15 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
return ret_write;
}
void SerialImpl::flush()
{
if (_open) {
uint8_t buffer[4];
// A read clears out all current data
read(buffer, 4);
}
}
const char *SerialImpl::getPort() const
{
return _port;