pub struct ExclusiveDevice<BUS, CS, D> { /* private fields */ }
Expand description

SpiDevice implementation with exclusive access to the bus (not shared).

This is the most straightforward way of obtaining an SpiDevice from an SpiBus, ideal for when no sharing is required (only one SPI device is present on the bus).

Implementations§

source§

impl<BUS, CS, D> ExclusiveDevice<BUS, CS, D>

source

pub fn new(bus: BUS, cs: CS, delay: D) -> Self

Create a new ExclusiveDevice

Trait Implementations§

source§

impl<BUS, CS, D> ErrorType for ExclusiveDevice<BUS, CS, D>where BUS: ErrorType, CS: OutputPin,

§

type Error = ExclusiveDeviceError<<BUS as ErrorType>::Error, <CS as ErrorType>::Error>

Error type
source§

impl<Word: Copy + 'static, BUS, CS, D> SpiDevice<Word> for ExclusiveDevice<BUS, CS, D>where BUS: SpiBus<Word>, CS: OutputPin, D: DelayUs,

source§

async fn transaction( &mut self, operations: &mut [Operation<'_, Word>] ) -> Result<(), Self::Error>

Perform a transaction against the device. Read more
source§

async fn read(&mut self, buf: &mut [Word]) -> Result<(), Self::Error>

Do a read within a transaction. Read more
source§

async fn write(&mut self, buf: &[Word]) -> Result<(), Self::Error>

Do a write within a transaction. Read more
source§

async fn transfer( &mut self, read: &mut [Word], write: &[Word] ) -> Result<(), Self::Error>

Do a transfer within a transaction. Read more
source§

async fn transfer_in_place( &mut self, buf: &mut [Word] ) -> Result<(), Self::Error>

Do an in-place transfer within a transaction. Read more
source§

impl<Word: Copy + 'static, BUS, CS, D> SpiDevice<Word> for ExclusiveDevice<BUS, CS, D>where BUS: SpiBus<Word>, CS: OutputPin, D: DelayUs,

source§

fn transaction( &mut self, operations: &mut [Operation<'_, Word>] ) -> Result<(), Self::Error>

Perform a transaction against the device. Read more
source§

fn read(&mut self, buf: &mut [Word]) -> Result<(), Self::Error>

Do a read within a transaction. Read more
source§

fn write(&mut self, buf: &[Word]) -> Result<(), Self::Error>

Do a write within a transaction. Read more
source§

fn transfer( &mut self, read: &mut [Word], write: &[Word] ) -> Result<(), Self::Error>

Do a transfer within a transaction. Read more
source§

fn transfer_in_place(&mut self, buf: &mut [Word]) -> Result<(), Self::Error>

Do an in-place transfer within a transaction. Read more

Auto Trait Implementations§

§

impl<BUS, CS, D> RefUnwindSafe for ExclusiveDevice<BUS, CS, D>where BUS: RefUnwindSafe, CS: RefUnwindSafe, D: RefUnwindSafe,

§

impl<BUS, CS, D> Send for ExclusiveDevice<BUS, CS, D>where BUS: Send, CS: Send, D: Send,

§

impl<BUS, CS, D> Sync for ExclusiveDevice<BUS, CS, D>where BUS: Sync, CS: Sync, D: Sync,

§

impl<BUS, CS, D> Unpin for ExclusiveDevice<BUS, CS, D>where BUS: Unpin, CS: Unpin, D: Unpin,

§

impl<BUS, CS, D> UnwindSafe for ExclusiveDevice<BUS, CS, D>where BUS: UnwindSafe, CS: UnwindSafe, D: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.