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.