Trait seify::RxStreamer
source · pub trait RxStreamer: Send {
fn mtu(&self) -> Result<usize, Error>;
fn activate(&mut self, time_ns: Option<i64>) -> Result<(), Error>;
fn deactivate(&mut self, time_ns: Option<i64>) -> Result<(), Error>;
fn read(
&mut self,
buffers: &mut [&mut [Complex32]],
timeout_us: i64
) -> Result<usize, Error>;
}
Expand description
Receive samples from a Device through one or multiple channels.
Required Methods§
sourcefn mtu(&self) -> Result<usize, Error>
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.
sourcefn activate(&mut self, time_ns: Option<i64>) -> Result<(), Error>
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 from the time the function is called.
sourcefn deactivate(&mut self, time_ns: Option<i64>) -> Result<(), Error>
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 from the time the function is called.
sourcefn read(
&mut self,
buffers: &mut [&mut [Complex32]],
timeout_us: i64
) -> Result<usize, Error>
fn read(
&mut self,
buffers: &mut [&mut [Complex32]],
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 thechannels
array passed toDevice::rx_stream
that created the streamer.