Struct soapysdr::RxStream

source ·
pub struct RxStream<E: StreamSample> { /* private fields */ }
Expand description

A stream open for receiving.

To obtain a RxStream, call Device::rx_stream. The type parameter E represents the type of this stream’s samples.

Streams may involve multiple channels.

Implementations§

source§

impl<E: StreamSample> RxStream<E>

source

pub fn mtu(&self) -> Result<usize, Error>

Get the stream’s maximum transmission unit (MTU) in number of elements.

The MTU specifies the maximum payload transfer in a stream operation. This value can be used as a stream buffer allocation size that can best optimize throughput given the underlying stream implementation.

source

pub fn activate(&mut self, time_ns: Option<i64>) -> Result<(), Error>

Activate a stream.

Call activate to enable a stream before using read()

Arguments:
  • time_ns – optional activation time in nanoseconds
source

pub fn deactivate(&mut self, time_ns: Option<i64>) -> Result<(), Error>

Deactivate a stream. The implementation will control switches or halt data flow.

Arguments:
  • time_ns – optional deactivation time in nanoseconds
source

pub fn read( &mut self, buffers: &mut [&mut [E]], timeout_us: i64 ) -> Result<usize, Error>

Read samples from the stream into the provided buffers.

buffers contains one destination slice for each channel of this stream.

Returns the number of samples read, which may be smaller than the size of the passed arrays.

Panics
  • If buffers is not the same length as the channels array passed to Device::rx_stream.

Trait Implementations§

source§

impl<E: StreamSample> Drop for RxStream<E>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<E: StreamSample> Send for RxStream<E>

Streams may only be used on one thread at a time but may be sent between threads

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for RxStream<E>

§

impl<E> !Sync for RxStream<E>

§

impl<E> Unpin for RxStream<E>

§

impl<E> UnwindSafe for RxStream<E>

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.