pub struct Payload { /* private fields */ }
Expand description
mavspec
MAVlink message payload.
Encapsulates MAVLink payload.
In no_std
non-allocating targets it uses fixed-sized
arrays of bytes. Otherwise, payload is stored on heap as a dynamically sized sequence.
Implementations§
source§impl Payload
impl Payload
sourcepub fn new(id: u32, payload: &[u8], version: MavLinkVersion) -> Payload
pub fn new(id: u32, payload: &[u8], version: MavLinkVersion) -> Payload
Default constructor.
Upon creation, the length of the provided payload will define
Payload::length
the maximum length of the
Payload::bytes
.
If payload
is longer, than PAYLOAD_MAX_SIZE
, all trailing elements will be ignored.
sourcepub fn bytes(&self) -> &[u8] ⓘ
pub fn bytes(&self) -> &[u8] ⓘ
Message payload as bytes.
For MAVLink 2
zero trailing bytes will be truncated.
See MAVLink 2 payload truncation.
sourcepub fn bytes_mut(&mut self) -> &mut [u8] ⓘ
pub fn bytes_mut(&mut self) -> &mut [u8] ⓘ
Message payload as mutable byte slice.
For MAVLink 2
zero trailing bytes will be truncated.
See MAVLink 2 payload truncation.
sourcepub fn version(&self) -> MavLinkVersion
pub fn version(&self) -> MavLinkVersion
MAVLink protocol version.
See MavLinkVersion
.
sourcepub fn length(&self) -> u8
pub fn length(&self) -> u8
Payload size in bytes.
Note that for MAVLink 2
payloads trailing zero bytes are truncated.
See Payload::bytes
.
sourcepub fn upgrade(&mut self)
pub fn upgrade(&mut self)
Upgrade payload to MAVLink 2
protocol version in-place.
The reverse procedure is not possible since MAVLink 2
payload may contain extra fields
and its trailing zero bytes are truncated.
To replace an existing payload by value, use Payload::upgraded
.
sourcepub fn upgraded(self) -> Payload
pub fn upgraded(self) -> Payload
Upgrade protocol version to MAVLink 2
replacing payload by value.
The reverse procedure is not possible since MAVLink 2
payload may contain extra fields
and its trailing zero bytes are truncated.
To upgrade payload in-place, use Payload::upgrade
.