Represents an abstract UART interface.
The Uart
interface provides a basic set of methods for performing blocking UART communication.
Public Member Functions | |
StatusWithSize | ReadAtLeast (ByteSpan rx_buffer, size_t min_bytes) |
StatusWithSize | ReadExactly (ByteSpan rx_buffer) |
Status | Read (ByteSpan rx_buffer) |
StatusWithSize | TryReadAtLeastFor (ByteSpan rx_buffer, size_t min_bytes, chrono::SystemClock::duration timeout) |
StatusWithSize | TryReadExactlyFor (ByteSpan rx_buffer, chrono::SystemClock::duration timeout) |
StatusWithSize | TryReadFor (ByteSpan rx_buffer, chrono::SystemClock::duration timeout) |
Status | Write (ConstByteSpan tx_buffer) |
StatusWithSize | TryWriteFor (ConstByteSpan tx_buffer, chrono::SystemClock::duration timeout) |
Status | FlushOutput () |
![]() | |
Status | Enable () |
Status | Disable () |
Status | SetBaudRate (uint32_t baud_rate) |
Status | SetFlowControl (bool enable) |
size_t | ConservativeReadAvailable () |
Status | ClearPendingReceiveBytes () |
Private Member Functions | |
virtual StatusWithSize | DoTryReadFor (ByteSpan rx_buffer, std::optional< chrono::SystemClock::duration > timeout) |
virtual StatusWithSize | DoTryReadFor (ByteSpan, size_t, std::optional< chrono::SystemClock::duration >) |
virtual StatusWithSize | DoTryWriteFor (ConstByteSpan tx_buffer, std::optional< chrono::SystemClock::duration > timeout)=0 |
Writes data from a provided buffer to the UART with an optional timeout. | |