21#include "pw_assert/assert.h"
22#include "pw_bytes/span.h"
23#include "pw_chrono/system_clock.h"
24#include "pw_status/status.h"
25#include "pw_status/status_with_size.h"
26#include "pw_uart/uart_base.h"
40 ~Uart()
override =
default;
66 return DoTryReadFor(rx_buffer, rx_buffer.size(), std::nullopt);
126 return DoTryReadFor(rx_buffer, rx_buffer.size(), timeout);
220 std::optional<chrono::SystemClock::duration> timeout) {
221 return DoTryReadFor(rx_buffer, rx_buffer.size(), timeout);
250 std::optional<chrono::SystemClock::duration> ) {
251 return StatusWithSize::Unimplemented();
277 std::optional<chrono::SystemClock::duration> timeout) = 0;
278 virtual Status DoFlushOutput() = 0;
Definition: status_with_size.h:51
Definition: uart_base.h:32
std::chrono::duration< rep, period > duration
Alias for durations representable with this clock.
Definition: system_clock.h:90
StatusWithSize TryReadExactlyFor(ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
Definition: uart.h:124
Status FlushOutput()
Definition: uart.h:194
virtual StatusWithSize DoTryReadFor(ByteSpan rx_buffer, std::optional< chrono::SystemClock::duration > timeout)
Definition: uart.h:218
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.
virtual StatusWithSize DoTryReadFor(ByteSpan, size_t, std::optional< chrono::SystemClock::duration >)
Definition: uart.h:247
StatusWithSize ReadExactly(ByteSpan rx_buffer)
Definition: uart.h:65
StatusWithSize ReadAtLeast(ByteSpan rx_buffer, size_t min_bytes)
Definition: uart.h:52
StatusWithSize TryReadAtLeastFor(ByteSpan rx_buffer, size_t min_bytes, chrono::SystemClock::duration timeout)
Definition: uart.h:102
Status Write(ConstByteSpan tx_buffer)
Definition: uart.h:160
StatusWithSize TryWriteFor(ConstByteSpan tx_buffer, chrono::SystemClock::duration timeout)
Definition: uart.h:179
StatusWithSize TryReadFor(ByteSpan rx_buffer, chrono::SystemClock::duration timeout)
Definition: uart.h:146
Status Read(ByteSpan rx_buffer)
Definition: uart.h:81
Core UART interfaces.
Definition: blocking_adapter.h:21