pw_stream_uart_linux#

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++#

class UartStreamLinux : public pw::stream::NonSeekableReaderWriter#

pw::stream::NonSeekableReaderWriter implementation for UARTs on Linux.

Public Functions

Status Open(const char *path, uint32_t baud_rate)#

Open a UART device using the specified baud rate.

Parameters:
  • path[in] Path to the TTY device.

  • baud_rate[in] Baud rate to use for the device.

Returns:

Code

Description

OK

The device was successfully opened and configured.

INVALID_ARGUMENT

An unsupported baud rate was supplied.

FAILED_PRECONDITION

A device was already open.

UNKNOWN

An error was returned by the operating system.

Examples#

A simple example illustrating writing to a UART:

constexpr const char* kUartPath = "/dev/ttyS0";
constexpr uint32_t kBaudRate = 115200;

pw::stream::UartStreamLinux stream;
PW_TRY(stream.Open(kUartPath, kBaudRate));

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 is modified.