pw_stream_uart_linux#
Stable
pw_stream_uart_linux
implements the
pw::stream::NonSeekableReaderWriter interface for reading from and
writing to a UART using Linux TTY interfaces.
Note
This module will likely be superseded by a future pw_uart
interface.
C++ API#
Moved: pw_stream_uart_linux
Examples#
A simple example illustrating only changing baud-rate and writing to a UART:
constexpr const char* kUartPath = "/dev/ttyS0";
constexpr pw::stream::UartStreamLinux::Config kConfig = {
.baud_rate = 115200,
// Flow control is unmodified on tty.
};
pw::stream::UartStreamLinux stream;
PW_TRY(stream.Open(kUartPath, kConfig));
std::array<std::byte, 10> to_write = {};
PW_TRY(stream.Write(to_write));
A simple example illustrating enabling flow control and writing to a UART:
constexpr const char* kUartPath = "/dev/ttyS0";
constexpr pw::stream::UartStreamLinux::Config kConfig = {
.baud_rate = 115200,
.flow_control = true, // Enable hardware flow control.
};
pw::stream::UartStreamLinux stream;
PW_TRY(stream.Open(kUartPath, kConfig));
std::array<std::byte, 10> to_write = {};
PW_TRY(stream.Write(to_write));
Caveats#
No interfaces are supplied for configuring data bits, stop bits, or parity. These attributes are left as they are already configured on the TTY; only the speed or flow control is modified.