Trait seify::TxStreamer
source · pub trait TxStreamer: 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 write(
&mut self,
buffers: &[&[Complex32]],
at_ns: Option<i64>,
end_burst: bool,
timeout_us: i64
) -> Result<usize, Error>;
fn write_all(
&mut self,
buffers: &[&[Complex32]],
at_ns: Option<i64>,
end_burst: bool,
timeout_us: i64
) -> Result<(), Error>;
}
Expand description
Transmit samples with 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 write()
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 write(
&mut self,
buffers: &[&[Complex32]],
at_ns: Option<i64>,
end_burst: bool,
timeout_us: i64
) -> Result<usize, Error>
fn write(
&mut self,
buffers: &[&[Complex32]],
at_ns: Option<i64>,
end_burst: bool,
timeout_us: i64
) -> Result<usize, Error>
Attempt to write samples to the device from the provided buffer.
The stream must first be activated.
buffers
contains one source slice for each channel of the stream.
at_ns
is an optional nanosecond precision device timestamp relative to the time the
function is called at which the device will begin the transmission.
end_burst
indicates the end of a burst transmission.
Returns the number of samples written, which may be smaller than the size of the passed arrays.
Panics
- If
buffers
are not the same length as thechannels
array passed toDevice::tx_stream
. - If the buffers in
buffers
are not the same length.
sourcefn write_all(
&mut self,
buffers: &[&[Complex32]],
at_ns: Option<i64>,
end_burst: bool,
timeout_us: i64
) -> Result<(), Error>
fn write_all(
&mut self,
buffers: &[&[Complex32]],
at_ns: Option<i64>,
end_burst: bool,
timeout_us: i64
) -> Result<(), Error>
Write all samples to the device.
This method repeatedly calls write until the entire provided buffer has been written.
The stream must first be activated.
buffers
contains one source slice for each channel of the stream.
at_ns
is an optional nanosecond precision device timestamp relative to the time the
function is called at which the device will begin the transmission.
end_burst
indicates the end of a burst transmission.
Panics
- If
buffers
are not the same length as thechannels
array passed toDevice::tx_stream
. - If the buffers in
buffers
are not the same length.