pub trait Uart {
Show 13 methods
// Required methods
fn get_baudrate(&self) -> Result<u32>;
fn set_baudrate(&self, baudrate: u32) -> Result<()>;
fn poll_read(
&self,
cx: &mut Context<'_>,
buf: &mut [u8],
) -> Poll<Result<usize>>;
fn write(&self, buf: &[u8]) -> Result<()>;
// Provided methods
fn get_flow_control(&self) -> Result<FlowControl> { ... }
fn set_flow_control(&self, flow_control: bool) -> Result<()> { ... }
fn get_device_path(&self) -> Result<String> { ... }
fn read(&self, buf: &mut [u8]) -> Result<usize> { ... }
fn read_timeout(&self, buf: &mut [u8], timeout: Duration) -> Result<usize> { ... }
fn clear_rx_buffer(&self) -> Result<()> { ... }
fn set_break(&self, _enable: bool) -> Result<()> { ... }
fn set_parity(&self, _parity: Parity) -> Result<()> { ... }
fn get_parity(&self) -> Result<Parity> { ... }
}
Expand description
A trait which represents a UART.
Required Methods§
Sourcefn get_baudrate(&self) -> Result<u32>
fn get_baudrate(&self) -> Result<u32>
Returns the UART baudrate. May return zero for virtual UARTs.
Sourcefn set_baudrate(&self, baudrate: u32) -> Result<()>
fn set_baudrate(&self, baudrate: u32) -> Result<()>
Sets the UART baudrate. May do nothing for virtual UARTs.
Sourcefn poll_read(&self, cx: &mut Context<'_>, buf: &mut [u8]) -> Poll<Result<usize>>
fn poll_read(&self, cx: &mut Context<'_>, buf: &mut [u8]) -> Poll<Result<usize>>
Reads UART receive data into buf
, returning the number of bytes read.
If data is not yet ready, Poll::Pending
will be returned and cx
would be notified when it’s available.
When this function is called with multiple wakers, all wakers should be notified instead of just the last one.
Provided Methods§
fn get_flow_control(&self) -> Result<FlowControl>
Sourcefn set_flow_control(&self, flow_control: bool) -> Result<()>
fn set_flow_control(&self, flow_control: bool) -> Result<()>
Enables software flow control for write
s.
Sourcefn get_device_path(&self) -> Result<String>
fn get_device_path(&self) -> Result<String>
Returns "/dev/ttyUSBn"
or similar OS device path usable by external programs for
directly accessing the serial port.
Sourcefn read(&self, buf: &mut [u8]) -> Result<usize>
fn read(&self, buf: &mut [u8]) -> Result<usize>
Reads UART receive data into buf
, returning the number of bytes read.
This function is blocking.
Sourcefn read_timeout(&self, buf: &mut [u8], timeout: Duration) -> Result<usize>
fn read_timeout(&self, buf: &mut [u8], timeout: Duration) -> Result<usize>
Reads UART receive data into buf
, returning the number of bytes read.
The timeout
may be used to specify a duration to wait for data.
If timeout expires without any data arriving Ok(0)
will be returned, never Err(_)
.
Sourcefn clear_rx_buffer(&self) -> Result<()>
fn clear_rx_buffer(&self) -> Result<()>
Clears the UART RX buffer.
fn set_break(&self, _enable: bool) -> Result<()>
fn set_parity(&self, _parity: Parity) -> Result<()>
fn get_parity(&self) -> Result<Parity>
Trait Implementations§
Source§impl<'a> ConsoleDevice for dyn Uart + 'a
impl<'a> ConsoleDevice for dyn Uart + 'a
Source§fn console_poll_read(
&self,
cx: &mut Context<'_>,
buf: &mut [u8],
) -> Poll<Result<usize>>
fn console_poll_read( &self, cx: &mut Context<'_>, buf: &mut [u8], ) -> Poll<Result<usize>>
Source§fn console_write(&self, buf: &[u8]) -> Result<()>
fn console_write(&self, buf: &[u8]) -> Result<()>
fn set_break(&self, enable: bool) -> Result<()>
Source§impl Read for &dyn Uart
impl Read for &dyn Uart
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
read
, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
buf
. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
buf
. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read more