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§
Sourcefn message_id(&self) -> u32
fn message_id(&self) -> u32
MAVLink message ID
Sourcefn message_name(&self) -> &'static str
fn message_name(&self) -> &'static str
MAVLink message name
Sourcefn target_system_id(&self) -> Option<u8>
fn target_system_id(&self) -> Option<u8>
Target system ID if the message is directed to a specific system
Sourcefn target_component_id(&self) -> Option<u8>
fn target_component_id(&self) -> Option<u8>
Target component ID if the message is directed to a specific component
Sourcefn ser(&self, version: MavlinkVersion, bytes: &mut [u8]) -> usize
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
Sourcefn parse(
version: MavlinkVersion,
msgid: u32,
payload: &[u8],
) -> Result<Self, ParserError>
fn parse( version: MavlinkVersion, msgid: u32, payload: &[u8], ) -> Result<Self, ParserError>
Parse a Message from its message id and payload bytes
§Errors
UnknownMessageif the given message id is not part of the dialect- any other
ParserErrorreturned by the individual message deserialization
Sourcefn message_id_from_name(name: &str) -> Option<u32>
fn message_id_from_name(name: &str) -> Option<u32>
Return message id of specific message name
Sourcefn default_message_from_id(id: u32) -> Option<Self>
fn default_message_from_id(id: u32) -> Option<Self>
Return a default message of the speicfied message id
Sourcefn extra_crc(id: u32) -> u8
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", so this trait is not object safe.
Implementors§
impl Message for mavlink::ardupilotmega::MavMessage
ardupilotmega only.impl Message for mavlink::asluav::MavMessage
asluav only.impl Message for mavlink::avssuas::MavMessage
avssuas only.impl Message for mavlink::common::MavMessage
common only.impl Message for mavlink::csairlink::MavMessage
csairlink only.impl Message for mavlink::cubepilot::MavMessage
cubepilot only.impl Message for mavlink::development::MavMessage
development only.impl Message for mavlink::icarous::MavMessage
icarous only.impl Message for mavlink::loweheiser::MavMessage
loweheiser only.impl Message for mavlink::matrixpilot::MavMessage
matrixpilot only.impl Message for mavlink::minimal::MavMessage
minimal only.impl Message for mavlink::paparazzi::MavMessage
paparazzi only.impl Message for mavlink::python_array_test::MavMessage
python_array_test only.impl Message for mavlink::standard::MavMessage
standard only.impl Message for mavlink::storm32::MavMessage
storm32 only.impl Message for mavlink::test::MavMessage
test only.impl Message for mavlink::ualberta::MavMessage
ualberta only.impl Message for mavlink::uavionix::MavMessage
uavionix only.