Trait MavConnection

Source
pub trait MavConnection<M: Message> {
    // Required methods
    fn recv(&self) -> Result<(MavHeader, M), MessageReadError>;
    fn try_recv(&self) -> Result<(MavHeader, M), MessageReadError>;
    fn send(
        &self,
        header: &MavHeader,
        data: &M,
    ) -> Result<usize, MessageWriteError>;
    fn set_protocol_version(&mut self, version: MavlinkVersion);
    fn protocol_version(&self) -> MavlinkVersion;
    fn set_allow_recv_any_version(&mut self, allow: bool);
    fn allow_recv_any_version(&self) -> bool;
    fn setup_signing(&mut self, signing_data: Option<SigningConfig>);

    // Provided methods
    fn send_frame(
        &self,
        frame: &MavFrame<M>,
    ) -> Result<usize, MessageWriteError> { ... }
    fn recv_frame(&self) -> Result<MavFrame<M>, MessageReadError> { ... }
    fn send_default(&self, data: &M) -> Result<usize, MessageWriteError> { ... }
}
Available on crate feature std only.
Expand description

A MAVLink connection

Required Methods§

Source

fn recv(&self) -> Result<(MavHeader, M), MessageReadError>

Receive a MAVLink message.

Blocks until a valid frame is received, ignoring invalid messages.

Source

fn try_recv(&self) -> Result<(MavHeader, M), MessageReadError>

Try to receive a MAVLink message.

Non-blocking variant of recv(), returns immediately with a MessageReadError if there is an error or no message is available.

Source

fn send(&self, header: &MavHeader, data: &M) -> Result<usize, MessageWriteError>

Send a MAVLink message

Source

fn set_protocol_version(&mut self, version: MavlinkVersion)

Sets the MAVLink version to use for receiving (when allow_recv_any_version() is false) and sending messages.

Source

fn protocol_version(&self) -> MavlinkVersion

Gets the currently used MAVLink version

Source

fn set_allow_recv_any_version(&mut self, allow: bool)

Set wether MAVLink messages of either version may be received.

If set to false only messages of the version configured with set_protocol_version() are received.

Source

fn allow_recv_any_version(&self) -> bool

Wether messages of any MAVLink version may be received

Source

fn setup_signing(&mut self, signing_data: Option<SigningConfig>)

Available on crate feature signing only.

Setup secret key used for message signing, or disable message signing

Provided Methods§

Source

fn send_frame(&self, frame: &MavFrame<M>) -> Result<usize, MessageWriteError>

Write whole frame

Source

fn recv_frame(&self) -> Result<MavFrame<M>, MessageReadError>

Read whole frame

Source

fn send_default(&self, data: &M) -> Result<usize, MessageWriteError>

Send a message with default header

Implementors§