Struct capsules::virtual_spi::VirtualSpiMasterDevice
[−]
[src]
pub struct VirtualSpiMasterDevice<'a, Spi: SpiMaster + 'a> { mux: &'a MuxSpiMaster<'a, Spi>, chip_select: Cell<Spi::ChipSelect>, txbuffer: TakeCell<'static, [u8]>, rxbuffer: TakeCell<'static, [u8]>, operation: Cell<Op>, next: ListLink<'a, VirtualSpiMasterDevice<'a, Spi>>, client: Cell<Option<&'a SpiMasterClient>>, }
Fields
mux: &'a MuxSpiMaster<'a, Spi>
chip_select: Cell<Spi::ChipSelect>
txbuffer: TakeCell<'static, [u8]>
rxbuffer: TakeCell<'static, [u8]>
operation: Cell<Op>
next: ListLink<'a, VirtualSpiMasterDevice<'a, Spi>>
client: Cell<Option<&'a SpiMasterClient>>
Methods
impl<'a, Spi: SpiMaster> VirtualSpiMasterDevice<'a, Spi>
[src]
pub const fn new(
mux: &'a MuxSpiMaster<'a, Spi>,
chip_select: Spi::ChipSelect
) -> VirtualSpiMasterDevice<'a, Spi>
[src]
mux: &'a MuxSpiMaster<'a, Spi>,
chip_select: Spi::ChipSelect
) -> VirtualSpiMasterDevice<'a, Spi>
pub fn set_client(&'a self, client: &'a SpiMasterClient)
[src]
Trait Implementations
impl<'a, Spi: SpiMaster> SpiMasterClient for VirtualSpiMasterDevice<'a, Spi>
[src]
fn read_write_done(
&self,
write_buffer: &'static mut [u8],
read_buffer: Option<&'static mut [u8]>,
len: usize
)
[src]
&self,
write_buffer: &'static mut [u8],
read_buffer: Option<&'static mut [u8]>,
len: usize
)
Called when a read/write operation finishes
impl<'a, Spi: SpiMaster> ListNode<'a, VirtualSpiMasterDevice<'a, Spi>> for VirtualSpiMasterDevice<'a, Spi>
[src]
fn next(&'a self) -> &'a ListLink<'a, VirtualSpiMasterDevice<'a, Spi>>
[src]
impl<'a, Spi: SpiMaster> SpiMasterDevice for VirtualSpiMasterDevice<'a, Spi>
[src]
fn configure(&self, cpol: ClockPolarity, cpal: ClockPhase, rate: u32)
[src]
Setup the SPI settings and speed of the bus.
fn read_write_bytes(
&self,
write_buffer: &'static mut [u8],
read_buffer: Option<&'static mut [u8]>,
len: usize
) -> ReturnCode
[src]
&self,
write_buffer: &'static mut [u8],
read_buffer: Option<&'static mut [u8]>,
len: usize
) -> ReturnCode
Perform an asynchronous read/write operation, whose completion is signaled by invoking SpiMasterClient.read_write_done on the provided client. write_buffer must be Some, read_buffer may be None. If read_buffer is Some, the length of the operation is the minimum of the size of the two buffers. Read more