Struct mavio::io::AsyncReceiver
source · pub struct AsyncReceiver<R: AsyncRead + Unpin, V: MaybeVersioned> { /* private fields */ }
Expand description
Receives MAVLink frames asynchronously.
Receives MAVLink frames from an instance of AsyncRead
.
Implementations§
source§impl<R: AsyncRead + Unpin> AsyncReceiver<R, Versionless>
impl<R: AsyncRead + Unpin> AsyncReceiver<R, Versionless>
sourcepub fn new<V: MaybeVersioned>(reader: R) -> AsyncReceiver<R, V>
pub fn new<V: MaybeVersioned>(reader: R) -> AsyncReceiver<R, V>
Default constructor.
sourcepub fn versionless(reader: R) -> AsyncReceiver<R, Versionless>
pub fn versionless(reader: R) -> AsyncReceiver<R, Versionless>
Create a MAVLink version agnostic receiver.
Creates a protocol-agnostic receiver which will look up for both MAVLink 1
and MAVLink 2
frames.
If you want a receiver restricted to a specific MAVLink protocol version, use
AsyncReceiver::versioned
.
If you want to instantiate a generic receiver, use AsyncReceiver::new
.
sourcepub fn versioned<Version: Versioned>(
reader: R,
version: Version
) -> AsyncReceiver<R, Version>
pub fn versioned<Version: Versioned>( reader: R, version: Version ) -> AsyncReceiver<R, Version>
Create a receiver specific to a particular MAVLink protocol version.
Same as AsyncReceiver::new::<V1>
/ AsyncReceiver::new::<V2>
but with an explicit
version
marker as a parameter.
Since versioned receiver will look up for MAVLink frames starting with a specific
MavSTX
magic byte, it may behave incorrectly, if the incoming
stream contains frames of a different protocol version. If this is the case, it is preferred
to construct versionless receiver by AsyncReceiver::new
and then attempt to convert incoming
frames into a specific protocol version with Frame::try_into_versioned
.
source§impl<R: AsyncRead + Unpin, V: MaybeVersioned> AsyncReceiver<R, V>
impl<R: AsyncRead + Unpin, V: MaybeVersioned> AsyncReceiver<R, V>
Trait Implementations§
source§impl<R: Clone + AsyncRead + Unpin, V: Clone + MaybeVersioned> Clone for AsyncReceiver<R, V>
impl<R: Clone + AsyncRead + Unpin, V: Clone + MaybeVersioned> Clone for AsyncReceiver<R, V>
source§fn clone(&self) -> AsyncReceiver<R, V>
fn clone(&self) -> AsyncReceiver<R, V>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more