Struct capsules_core::virtualizers::virtual_uart::UartDevice
source · pub struct UartDevice<'a> { /* private fields */ }
Implementations§
source§impl<'a> UartDevice<'a>
impl<'a> UartDevice<'a>
Trait Implementations§
source§impl<'a> ListNode<'a, UartDevice<'a>> for UartDevice<'a>
impl<'a> ListNode<'a, UartDevice<'a>> for UartDevice<'a>
fn next(&'a self) -> &'a ListLink<'a, UartDevice<'a>>
source§impl<'a> Receive<'a> for UartDevice<'a>
impl<'a> Receive<'a> for UartDevice<'a>
source§fn receive_buffer(
&self,
rx_buffer: &'static mut [u8],
rx_len: usize
) -> Result<(), (ErrorCode, &'static mut [u8])>
fn receive_buffer( &self, rx_buffer: &'static mut [u8], rx_len: usize ) -> Result<(), (ErrorCode, &'static mut [u8])>
Receive data until buffer is full.
source§fn set_receive_client(&self, client: &'a dyn ReceiveClient)
fn set_receive_client(&self, client: &'a dyn ReceiveClient)
Set the receive client, which will he called when reads complete.
source§fn receive_abort(&self) -> Result<(), ErrorCode>
fn receive_abort(&self) -> Result<(), ErrorCode>
Abort any ongoing receive transfers and return what is in the
receive buffer with the
receive_complete
callback. If
Ok(()) is returned, there will be no callback (no call to
receive
was outstanding). If there was a receive
outstanding, which is cancelled successfully then BUSY
will
be returned and there will be a callback with a Result<(), ErrorCode>
of CANCEL
. If there was a reception outstanding, which is
not cancelled successfully, then FAIL
will be returned and
there will be a later callback.source§fn receive_word(&self) -> Result<(), ErrorCode>
fn receive_word(&self) -> Result<(), ErrorCode>
Receive a single word of data. The word length is determined
by the UART configuration: it can be 6, 7, 8, or 9 bits long.
If the
Result<(), ErrorCode>
is Ok(()), on completion,
received_word
will be called on the ReceiveClient
.
Other valid ErrorCode
values are: Read moresource§impl<'a> ReceiveClient for UartDevice<'a>
impl<'a> ReceiveClient for UartDevice<'a>
source§fn received_buffer(
&self,
rx_buffer: &'static mut [u8],
rx_len: usize,
rcode: Result<(), ErrorCode>,
error: Error
)
fn received_buffer( &self, rx_buffer: &'static mut [u8], rx_len: usize, rcode: Result<(), ErrorCode>, error: Error )
A call to
Receive::receive_buffer
completed. The Result<(), ErrorCode>
indicates whether the buffer was successfully received. A call
to receive_word
or receive_buffer
made within this callback
SHOULD NOT return BUSY: when this callback is made the UART should
be ready to receive another call. Read moresource§fn received_word(&self, _word: u32, _rval: Result<(), ErrorCode>, _error: Error)
fn received_word(&self, _word: u32, _rval: Result<(), ErrorCode>, _error: Error)
A call to
Receive::receive_word
completed. The Result<(), ErrorCode>
indicates whether the word was successfully received. A call
to receive_word
or receive_buffer
made within this callback
SHOULD NOT return BUSY: when this callback is made the UART should
be ready to receive another call. Read moresource§impl<'a> Transmit<'a> for UartDevice<'a>
impl<'a> Transmit<'a> for UartDevice<'a>
source§fn transmit_buffer(
&self,
tx_data: &'static mut [u8],
tx_len: usize
) -> Result<(), (ErrorCode, &'static mut [u8])>
fn transmit_buffer( &self, tx_data: &'static mut [u8], tx_len: usize ) -> Result<(), (ErrorCode, &'static mut [u8])>
Transmit data.
source§fn set_transmit_client(&self, client: &'a dyn TransmitClient)
fn set_transmit_client(&self, client: &'a dyn TransmitClient)
Set the transmit client, which will be called when transmissions
complete.
source§fn transmit_abort(&self) -> Result<(), ErrorCode>
fn transmit_abort(&self) -> Result<(), ErrorCode>
Abort an outstanding call to
transmit_word
or transmit_buffer
.
The return code indicates whether the call has fully terminated or
there will be a callback. Cancelled calls to transmit_buffer
MUST
always make a callback, to return the passed buffer back to the caller. Read moresource§fn transmit_word(&self, word: u32) -> Result<(), ErrorCode>
fn transmit_word(&self, word: u32) -> Result<(), ErrorCode>
Transmit a single word of data asynchronously. The word length is
determined by the UART configuration: it can be 6, 7, 8, or 9 bits long.
If the
Result<(), ErrorCode>
is Ok(()), on completion,
transmitted_word
will be called on the TransmitClient
.
Other valid Result<(), ErrorCode>
values are: Read moresource§impl<'a> TransmitClient for UartDevice<'a>
impl<'a> TransmitClient for UartDevice<'a>
source§fn transmitted_buffer(
&self,
tx_buffer: &'static mut [u8],
tx_len: usize,
rcode: Result<(), ErrorCode>
)
fn transmitted_buffer( &self, tx_buffer: &'static mut [u8], tx_len: usize, rcode: Result<(), ErrorCode> )
A call to
Transmit::transmit_buffer
completed. The Result<(), ErrorCode>
indicates whether the buffer was successfully transmitted. A call
to transmit_word
or transmit_buffer
made within this callback
SHOULD NOT return BUSY: when this callback is made the UART should
be ready to receive another call. Read moresource§fn transmitted_word(&self, rcode: Result<(), ErrorCode>)
fn transmitted_word(&self, rcode: Result<(), ErrorCode>)
A call to
Transmit::transmit_word
completed. The Result<(), ErrorCode>
indicates whether the word was successfully transmitted. A call
to transmit_word
or transmit_buffer
made within this callback
SHOULD NOT return BUSY: when this callback is made the UART should
be ready to receive another call. Read moreAuto Trait Implementations§
impl<'a> !Freeze for UartDevice<'a>
impl<'a> !RefUnwindSafe for UartDevice<'a>
impl<'a> !Send for UartDevice<'a>
impl<'a> !Sync for UartDevice<'a>
impl<'a> Unpin for UartDevice<'a>
impl<'a> !UnwindSafe for UartDevice<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more