Skip to main content

Message

Trait Message 

Source
pub trait Message: Sized {
    // Required methods
    fn message_id(&self) -> u32;
    fn message_name(&self) -> &'static str;
    fn target_system_id(&self) -> Option<u8>;
    fn target_component_id(&self) -> Option<u8>;
    fn ser(&self, version: MavlinkVersion, bytes: &mut [u8]) -> usize;
    fn parse(
        version: MavlinkVersion,
        msgid: u32,
        payload: &[u8],
    ) -> Result<Self, ParserError>;
    fn message_id_from_name(name: &str) -> Option<u32>;
    fn default_message_from_id(id: u32) -> Option<Self>;
    fn extra_crc(id: u32) -> u8;
}
Expand description

A MAVLink message payload

Each message sets MavMessage enum implements this trait. The Message trait is used to represent messages in an abstract way (for example, common::MavMessage).

Required Methods§

Source

fn message_id(&self) -> u32

MAVLink message ID

Source

fn message_name(&self) -> &'static str

MAVLink message name

Source

fn target_system_id(&self) -> Option<u8>

Target system ID if the message is directed to a specific system

Source

fn target_component_id(&self) -> Option<u8>

Target component ID if the message is directed to a specific component

Source

fn ser(&self, version: MavlinkVersion, bytes: &mut [u8]) -> usize

Serialize Message into byte slice and return count of bytes written

§Panics

Will panic if the buffer provided is to small to store this message

Source

fn parse( version: MavlinkVersion, msgid: u32, payload: &[u8], ) -> Result<Self, ParserError>

Parse a Message from its message id and payload bytes

§Errors
  • UnknownMessage if the given message id is not part of the dialect
  • any other ParserError returned by the individual message deserialization
Source

fn message_id_from_name(name: &str) -> Option<u32>

Return message id of specific message name

Source

fn default_message_from_id(id: u32) -> Option<Self>

Return a default message of the speicfied message id

Source

fn extra_crc(id: u32) -> u8

Return a message types CRC_EXTRA byte

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§