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
UnknownMessage
if the given message id is not part of the dialect- any other
ParserError
returned 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.